Author/Authors :
Sanjai Narain، نويسنده , , Gary Levin، نويسنده , , Sharad Malik ?
Vikram Kaul، نويسنده ,
Abstract :
There is a large conceptual gap between end-to-end infrastructure
requirements and detailed component configuration implementing those requirements.
Today, this gap is manually bridged so large numbers of configuration errors
are made. Their adverse effects on infrastructure security, availability, and cost of
ownership are well documented. This paper presents ConfigAssure to help automatically
bridge the above gap. It proposes solutions to four fundamental problems:
specification, configuration synthesis, configuration error diagnosis, and configuration
error repair. Central to ConfigAssure is a Requirement Solver. It takes as
input a configuration database containing variables, and a requirement as a firstorder
logic constraint in finite domains. The Solver tries to compute as output,
values for variables that make the requirement true of the database when instantiated
with these values. If unable to do so, it computes a proof of unsolvability. The
Requirement Solver is used in different ways to solve the above problems. The
Requirement Solver is implemented with Kodkod, a SAT-based model finder for
first-order logic. While any requirement can be directly encoded in Kodkod, parts of
it can often be solved much more efficiently by non model-finding methods using
information available in the configuration database. Solving these parts and simplifying
can yield a reduced constraint that truly requires the power of modelfinding.
To implement this plan, a quantifier-free form, QFF, is defined. A QFF is aBoolean combination of simple arithmetic constraints on integers. A requirement is
specified by defining a partial evaluator that transforms it into an equivalent QFF.
This QFF is efficiently solved by Kodkod. The partial evaluator is implemented
in Prolog. ConfigAssure is shown to be natural and scalable in the context of a
realistic, secure and fault-tolerant datacenter.