System Configuration. Paul Anderson. publications/oslo-2008a-talk.pdf I V E R S I U N T Y T H

Similar documents
What is This Thing Called System Configuration?

LCFG. Paul Anderson. A practical tool for system configuration.

Managing real-world system configurations with constraints

A Declarative Approach to Automated System Configuration

Introduction. Seeing the Elephant. PLM Data Migration happens rarely at a company, but is very difficult to plan and design.

Virtualization. Q&A with an industry leader. Virtualization is rapidly becoming a fact of life for agency executives,

What s in Installing and Configuring Windows Server 2012 (70-410):

Updating Your Windows Server 2003 Technology Skills to Windows Server 2008

Microsoft Updating Your Windows Server 2003 Technology Skills to Windows Server 2008

Distributed Configuration & Service Change Planning

programming the virtual infrastructure

Enabling Grids for E-sciencE. A centralized administration of the Grid infrastructure using Cfengine. Tomáš Kouba Varna, NEC2009.

Architectural Design

Architectural Design

Caches 3/23/17. Agenda. The Dataflow Model (of a Computer)

Caches. Samira Khan March 23, 2017

CIT 470: Advanced Network and System Administration. Topics. Workstation Management. Workstations

Compilers. Prerequisites

Services: Monitoring and Logging. 9/16/2018 IST346: Info Tech Management & Administration 1

Software Engineering

Composition & References

Tips for a Good Meshing Experience

Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015

VMware Identity Manager Connector Installation and Configuration (Legacy Mode)

15-441: Computer Networking. Lecture 24: Ad-Hoc Wireless Networks

Applying Machine Learning to Real Problems: Why is it Difficult? How Research Can Help?

Small Organisations. Ivor Macfarlane. Copyright IBM Corporation 2009

Writing LCFG components

What's New in SUSE LINUX Enterprise Server 9

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer

Chapter 2 Overview of the Design Methodology

Deployment. Chris Wilson, AfNOG / 26

OSGi on the Server. Martin Lippert (it-agile GmbH)

15-441: Computer Networking. Wireless Networking

Distributed Systems. Chapter 1: Introduction

Course No. MCSA Days Instructor-led, Hands-on

Reference Architecture. 28 MAY 2018 vrealize Operations Manager 6.7

Managing Application Configuration Data with CIM

Multi-Vendor Key Management with KMIP

The MPI Message-passing Standard Practical use and implementation (I) SPD Course 2/03/2010 Massimo Coppola

Copyright ECSC Group plc 2017 ECSC - UNRESTRICTED

Security+ SY0-501 Study Guide Table of Contents

A guide to correct PostgreSQL setup and management

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Introduction to Assurance

Reference Architecture

Usability and Confusion in Configuration Languages

Data Mining, Parallelism, Data Mining, Parallelism, and Grids. Queen s University, Kingston David Skillicorn

MCSE Server Infrastructure. This Training Program prepares and enables learners to Pass Microsoft MCSE: Server Infrastructure exams

Scalability, Performance & Caching

Analyzing Systems. Steven M. Bellovin November 26,

Linux Administration

Merging Enterprise Applications with Docker* Container Technology

Reference Architecture. Modified on 17 AUG 2017 vrealize Operations Manager 6.6

Microsoft Certified Solutions Associate (MCSA)

Data Integrity in Stateful Services. Velocity, China, 2016

Up and Running Software The Development Process

Messaging & Directory Servers. XMPP over HF Radio: CEO Isode Ltd. HFIA San Diego, January

Scalability, Performance & Caching

CS 390 Chapter 2 Homework Solutions

CS162 Operating Systems and Systems Programming Lecture 21. Networking. Page 1

Introduction to Distributed Systems

Page 1. Installer s Guide

CMPUT 695 Fall 2004 Assignment 2 Xelopes

Simplify Client Virtualization

End-to-End Cloudification of Mobile Telecoms. The MCN Consortium Presenter: Andy Edmonds ZHAW

Testing Objectives. Successful testing: discovers previously unknown errors


Toward provenancebased. configuration languages

Memory Management. Kevin Webb Swarthmore College February 27, 2018

70-742: Identity in Windows Server Course Overview

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

Motion Graph Practice

Advanced Security Measures for Clients and Servers

Citrix Exam 1Y0-A23 XenApp 5 for Windows Server 2003: Administration

Eoin Woods Secure by Design security design principles for the rest of us

On the Usability of Firewall Configuration. Tina Wong

Autonomic Computing. Pablo Chacin

Networking Guide for Redwood Manager

Minsoo Ryu. College of Information and Communications Hanyang University.

Chapter 8. Achmad Benny Mutiara

Proceedings of the 17 th Large Installation Systems Administration Conference

Introduction to Interactive Systems. Overview. What Is an Interactive System? SMD158 Interactive Systems Spring 2005

Configuration Tools: Working Together

Red Hat Certified System Administrator (RHCSA) RHCSA 7 Requirements and Syllabus

How to Leverage Containers to Bolster Security and Performance While Moving to Google Cloud

Deploying the BIG-IP System for LDAP Traffic Management

Independent implementations of an interface

Slide Set 5. for ENCM 501 in Winter Term, Steve Norman, PhD, PEng

CS603: Distributed Systems

The task or context will be familiar and involve few variable aspects. The techniques used will be familiar or commonly undertaken.

Installing and Configuring Windows Server 2012

vsphere Upgrade Update 2 Modified on 4 OCT 2017 VMware vsphere 6.0 VMware ESXi 6.0 vcenter Server 6.0

Root cause codes: Level One: See Chapter 6 for a discussion of using hierarchical cause codes.

Developing MapReduce Programs

Scaling for the Enterprise

Booklets in the Series

Trust is the Foundations for Computer Security

Visual Layout of Graph-Like Models

Key-value store with eventual consistency without trusting individual nodes

Transcription:

E U N I V E R S I System Configuration T H O T Y H F G Paul Anderson E D I N B U R dcspaul@ed.ac.uk http://homepages.inf.ed.ac.uk/dcspaul/ publications/oslo-2008a-talk.pdf

System Configuration What is system configuration? and why is it hard? some criteria for evaluating tools/processes Practical system configuration manual vs automatic procedures Configuration tools specification & deployment The state of the art the ideal vs reality some current issues

What is System Configuration?

What is System Configuration? Service Specification

What is System Configuration? Service Specification

What is System Configuration? Service Specification

What is System Configuration? Service Specification

What is involved? Decide what is needed: what software goes in each machine? what goes in all the configuration files? Implement it: load the software create the configuration files Maintain it when things change: either the requirements or the system (failures)

Why is this hard? (obvious) It is large problem: O(1000) machines x O(100-1000) parameters The relationships between all the internal services are complex: DHCP, DNS, LDAP, Kerberos, IMAP, SMTP, AFS, NFS... Things change all the time failures are normal Mistakes are bad: immediate service failures, or (perhaps worse)... hidden problems (security holes) they are a very significant, real cost

Why is this hard? (less obvious) Many different people are likely to be involved they will have overlapping concerns they will have different levels of skill they may work for different organisations Deployment is a distributed process it involves latency and uncertainty asymptotic configuration Existing tools are primitive designed for manual use at a low-level no support for top-down configuration

An example - a new web server Configure the supporting infrastructure create a DNS entry create a DHCP entry create holes in the firewall create and sign SSL certificate add to backup system etc... Configure the server partition the disks, load the software etc.. set up the services: dns, networking, timeservice, apache, authorisation etc..

A few typical problems The relationships have to be maintained manually the machine running the web server & the firewall How do we know the configuration is correct? there is no explicit representation How do we configure a replacement? some aspects of the replacement machine may be different (eg. disk layout, network devices) different people may be responsible for different services how do we prevent them conflicting how do we handle security?

Practical system configuration There are no tools (or even frameworks ) to support the entire configuration process Practical solutions involve a careful blend of manual procedures and assorted tools The appropriate degree of automation depends on the organisation automated configuration is more likely to be correct, it is more agile and more efficient but it needs more infrastructure and specialist knowledge Organisations tend to move towards greater automation in (painful) steps

Efficiency obviously Why automate? Manage the complexity Have confidence in the correctness what happens if one machine in 1000 node cluster has the wrong version of a maths library? Security are we confident there are no insecure dependencies? Reliability autonomic reconfiguration

Why not automate? System administrators are familiar with manual processes a new mindset is needed to accept automatic configuration There are no standards for tools a variety of changing tools to learn they do not interoperate well A high degree of trust is needed failures have serious consequences automatic systems need to explain their reasons

Some degrees of automation 1. Copy this disk image onto these machines 2. Put these files on these machines 3. Put this line in sendmail.cf on this machine 4. Configure machine X as a mail server 5. Configure machine X as a mail server for this cluster (and the clients to match) 6. Configure any suitable machine as a mail server for this cluster (and the clients to match) 7. Configure enough mail servers to guarantee an SMTP response time of X seconds

Some common problems Translating high level requirements into a level where they can be implemented directly Coordinating contributions from many different people different specialists, different organisations Providing (multiple) appropriate interfaces for users, technicians, Mr email, Mr security, etc.. Coordinating automatic & manual procedures Change management Managing trust in a federated environment

Configuration tools In many cases, it is useful to think of configuration tools in terms of their support for specifying a configuration their support for deploying a configuration (think of a programming language and its interpreter) Generally, managing the specification is the more difficult problem consider the problems on the previous slide It is much more common for practical tools to concentrate on the deployment issues

Declarative specifications There seems to be a general agreement that configuration tools should be declarative the language specifies the desired configuration not the process required to achieve it the tool computes the necessary configuration changes Non-declarative tools cause difficulties all operations must be explicitly idempotent we cannot reason about the configuration state Declarative tools must compute the necessary deployment operations

Prescriptive specifications A prescriptive tool will specify the complete configuration of the target system the target system can be recreated completely by the tool Non-prescriptive tools need part of the specification to be provided from elsewhere manually, or by some other tool Care is needed with non-prescriptive systems with apparently identical configurations may diverge as parameters are moved in and out of the scope

Models & Languages Specifying a configuration involves a model of the system being configured a language for describing the model Rich models are needed to define the semantics well this is useful for interoperability eg. the Common Information Model (CIM) But these can complex and heavyweight common practical tools have very simple semantics this can limit their descriptive power but it makes them agile enough to be used easily by system administrators

Models Think about the different models necessary for the following levels of description.. - copy this disk image onto these machines - put these files on these machines - put this line in sendmail.cf on this machine - configure machine X as a mail server - configure machine X as a mail server for this cluster (and the clients to match) - configure any suitable machine as a mail server for this cluster (and the clients to match) - configure enough mail servers to guarantee an SMTP response time of X seconds

Specification languages (Declarative) configuration languages are not programming languages they describe data, not computations Some useful features include structuring (to reflect the system and the use) aspect composition independence of source order constraints provenance & access control clarity

Deploying configurations If the tool is declarative, then it must compute the deployment operations from the differences between the designated and actual configurations This is a planning problem it is not well-addressed by current practical tools

The state of the art The ideal vs the reality Some current issues a consistent framework constraints & aspects distributed processing planning autonomics

Ideal requirements Declarative specifications Support for devolved management different skill levels, conflict resolution, access control Support for autonomics at multiple levels - host & network Robustness distributed processing and deployment Standards and interoperable tools Provably correct implementations of specifications

The reality Low-level tools only difficult to interface to higher-level tools Incompatible tools with partial solutions both vendor tools & open source tools Non-declarative specifications copy this file, change these parameters Different communities network, application (Grid) and system configuration Moving to a more structured configuration technology is big jump for many sites a perceived steep learning curve & social issues

A consistent framework A top-down process we care about high-level policies - not the details eg. I want 2 DHCP servers on every subnet refining requirements into detailed specifications We cannot automate in general at this level but we want a consistent framework to integrate manual and automatic processes There are some analogies with programming high-level languages to replace machine code formal techniques & sound engineering practice

Constraints & Aspects The language forces explicit values to be specified: Aspect A Use server Y Aspect B Use server X This conflict is irreconcilable without human intervention because we don t know the intention The user really only wants to say Aspect A Use any server on my Ethernet segment Aspect B Use one of the servers X,Y or Z These constraints can be satisfied by using Y (assuming Y is on the right segment)

Distributed processing Centralised compilation has some disadvantages.. it may be too slow there is a single-point of failure the source of the information may be distributed But, distributed configuration compilation is hard the network is unreliable communication overhead is likely to be high validation before deployment is difficult provenance is difficult to establish security is harder

Planning Having computed a new configuration, planning and executing the sequence of changes to achieve it is difficult certain intermediate stages may be invalid certain changes may block indefinitely feedback on the current state may not be reliable For example, to change a server from A to B deploy server B change all clients to point to B instead of A undeploy server A

Autonomics Autonomics requires completely unattended, automatic configuration It needs to happen at multiple levels configure a replacement for a broken server restart a failed daemon with different parameters Constraints are important here as well over-constrained autonomic systems are no use we need to compose human-generated constraints with system-generated constraints

Further Information System Configuration (the SAGE booklet) http://www.sage.org/pubs/14_sysconfig/ 14_sysconfig.html Some practical tools Cfengine LCFG Puppet BCFG Paul Anderson dcspaul@ed.ac.uk