Virtualization @ Google



Similar documents
Ganeti. Private Cloud as Google does it. Helga Velroyen Linuxtag Berlin, May 9th, 2014

Virtualization: Know your options on Ubuntu. Nick Barcet. Ubuntu Server Product Manager

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Basics of Virtualisation

Nutanix NOS 4.0 vs. Scale Computing HC3

Cloud Computing with Red Hat Solutions. Sivaram Shunmugam Red Hat Asia Pacific Pte Ltd.

IOS110. Virtualization 5/27/2014 1

Satish Mohan. Head Engineering. AMD Developer Conference, Bangalore

9/26/2011. What is Virtualization? What are the different types of virtualization.

RED HAT ENTERPRISE VIRTUALIZATION FOR SERVERS: COMPETITIVE FEATURES

Data Centers and Cloud Computing

2) Xen Hypervisor 3) UEC

Virtualization. Types of Interfaces

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software

HRG Assessment: Stratus everrun Enterprise

Η υπηρεσία Public IaaS ΕΔΕΤ ανάπτυξη και λειτουργία για χιλιάδες χρήστες

What s New with VMware Virtual Infrastructure

Cloud Server. Parallels. Key Features and Benefits. White Paper.

WebLogic on Oracle Database Appliance: Combining High Availability and Simplicity

What is virtualization

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

OpenNebula Open Souce Solution for DC Virtualization

Red Hat enterprise virtualization 3.0 feature comparison

SUSE Cloud 2.0. Pete Chadwick. Douglas Jarvis. Senior Product Manager Product Marketing Manager

Ganeti, "how we did it"

Enterprise-Class Virtualization with Open Source Technologies

Securing your Virtual Datacenter. Part 1: Preventing, Mitigating Privilege Escalation

The Art of Virtualization with Free Software

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Enabling Technologies for Distributed Computing

Distributed and Cloud Computing

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

COS 318: Operating Systems. Virtual Machine Monitors

PARALLELS CLOUD SERVER

High-Availability Using Open Source Software

IN DETAIL. Smart & Dedicated Servers

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Best Practices for Virtualised SharePoint

Ganeti is a software stack that allows easily managing a collection of

Installing & Using KVM with Virtual Machine Manager COSC 495

Cloud Server. Parallels. An Introduction to Operating System Virtualization and Parallels Cloud Server. White Paper.

FIA Athens 2014 ~OKEANOS: A LARGE EUROPEAN PUBLIC CLOUD BASED ON SYNNEFO. VANGELIS KOUKIS, TECHNICAL LEAD, ~OKEANOS

COM 444 Cloud Computing

Options in Open Source Virtualization and Cloud Computing. Andrew Hadinyoto Republic Polytechnic

SCO Virtualization Presentation to Customers

Virtual Machines.

Virtualization for Cloud Computing

WHITE PAPER 1

SYNNEFO: A COMPLETE CLOUD PLATFORM OVER GOOGLE GANETI WITH OPENSTACK APIs VANGELIS KOUKIS, TECH LEAD, SYNNEFO

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

OpenNebula Open Souce Solution for DC Virtualization

Data Centers and Cloud Computing. Data Centers. MGHPCC Data Center. Inside a Data Center

RED HAT ENTERPRISE VIRTUALIZATION 3.0

StACC: St Andrews Cloud Computing Co laboratory. A Performance Comparison of Clouds. Amazon EC2 and Ubuntu Enterprise Cloud

Private Cloud for WebSphere Virtual Enterprise Application Hosting

FOR SERVERS 2.2: FEATURE matrix

Virtualization Management the ovirt way

Solution Guide Parallels Virtualization for Linux

Masters Project Proposal

OpenNebula Open Souce Solution for DC Virtualization. C12G Labs. Online Webinar

2972 Linux Options and Best Practices for Scaleup Virtualization

Linux/Open Source and Cloud computing Wim Coekaerts Senior Vice President, Linux and Virtualization Engineering

Cloud Optimize Your IT

Ubuntu OpenStack on VMware vsphere: A reference architecture for deploying OpenStack while limiting changes to existing infrastructure

Xen Virtualization: Xen (source) and XenServer

Enabling Technologies for Distributed and Cloud Computing

Xen Live Migration. Networks and Distributed Systems Seminar, 24 April Matúš Harvan Xen Live Migration 1

Parallels Virtuozzo Containers

With Red Hat Enterprise Virtualization, you can: Take advantage of existing people skills and investments

RED HAT ENTERPRISE VIRTUALIZATION

The XenServer Product Family:

Intro to Virtualization

Parallels Cloud Server 6.0 Readme

Efficient Load Balancing using VM Migration by QEMU-KVM

To join the audio portion of this webcast: meeting code

Develop a process for applying updates to systems, including verifying properties of the update. Create File Systems

Data Centers and Cloud Computing. Data Centers

Computing in High- Energy-Physics: How Virtualization meets the Grid

Nutanix Tech Note. Configuration Best Practices for Nutanix Storage with VMware vsphere

Full and Para Virtualization

Virtualization and Cloud Management Using Capacity Planning

Virtualization. Dr. Yingwu Zhu

Unveiling ~okeanos: A public cloud IaaS service coming from the depths of the GRNET's DataCenter facilities

MySQL performance in a cloud. Mark Callaghan

Parallels Cloud Server 6.0

OGF25/EGEE User Forum Catania, Italy 2 March 2009

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

Windows Server Virtualization An Overview

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Virtualization Strategy with Oracle VM and Oracle Linux. Bjorn Naessens

Transcription:

Virtualization @ Google Alexander Schreiber Google Switzerland Libre Software Meeting 2012 Geneva, Switzerland, 2012-06-10

Introduction Talk overview Corporate infrastructure Overview Use cases Technology Open Source components Internal components Workflows Common Workflows Outlook Open Source road map Internal deployment roadmap Outline

Overview I will talk about... Virtualization @ Google in the corporate (internal) infrastructure this is not used for user-facing products (search, gmail,... ) use cases, software used, tools and infrastructure Terminology I might use (accidentally): node physical machine (Xen dom0, KVM host) instance virtual machine (Xen domu, KVM guest)

Introduction Talk overview Corporate infrastructure Overview Use cases Technology Open Source components Internal components Workflows Common Workflows Outlook Open Source road map Internal deployment roadmap Outline

Corporate Infrastructure comprises servers located in offices support local office infrastructure low-latency services (e.g. DNS, caches) (very) small numbers of machines spread across many offices world wide and servers located in datacenters various purposes just a few datacenters but many machines per datacenter note that we virtualize mostly Linux servers

Office Deployments how to provide (redundant) services with minimal machine count? some offices are remote enough that timely replacement of parts is not likely other offices are large enough to need multiple, redundant copies of services initial use of Xen (early 2006) and start of tool development this allowed shrinking footprint down to 2-4 machines and improved reliability against hardware failures however it somewhat decreased software reliability

Datacenter deployments in DCs we have multiple use cases: corporate infrastructure (DNS, LDAP,... ) team servers/one-off applications virtual workstations and the challenges are different scaling management software to many machines capacity planning redundancy across racks intra and inter DC virtual machine moves

Use case: server consolidation the standard way to use virtualization reduces hardware cost/footprint/power services owned by dedicated team or by a small team redundancy can be implemented at VM or service level resource guarantee needs vary from very strict to relaxed interesting corner cases services which cannot afford downtime of live migration services which cannot afford performance penalties due to virtualization

Use case: desktop virtualization internal project name Ubiquity offers a virtual workstation for every engineer in the internal cloud (nearby datacenter) accessible over either ssh or NX advantages workstation state stored in cloud, not on (less managed, less reliable) local workstation workstation closer to datacenter-based services easier to provision more hardware in datacenters than (possibly space/energy restricted) offices workstations can follow people as they travel potential issues depending on hardware refresh cycles, a dedicated physical workstation can be more powerful than a shared virtual one latency to datacenters can be a problem

Use case: machine management layer some workloads are too big for a shared environment but virtualization has other advantages besides consolidation independence from hardware (well, storage... ) the hypervisor layer can abstract/unify hardware monitoring much easier to move to new platforms hence the use of virtualization in a single-vm-per-machine mode, aka the dedicated model still in testing what to do when size of VM smaller than size of HW? currently investigating hard partitioned model share machines, but do not oversubscribe any resource try to isolate CPU cores, disk spindles, network, RAM

Introduction Talk overview Corporate infrastructure Overview Use cases Technology Open Source components Internal components Workflows Common Workflows Outlook Open Source road map Internal deployment roadmap Outline

Overview we deploy Xen... on standard (COTS) x86 hardware (amd64 machines) on top of standard operating systems (Debian & Ubuntu) in paravirtualized mode no SAN/NAS: compute nodes are also storage nodes layered software model: machine cluster fleet machine level handles hardware & hypervisor management cluster level abstracts machines all resources are internal to, and managed by, the cluster software scales from one to a few hundred machines upper level deals with clusters, not machines fleet level abstracts clusters end users do not care about specific clusters (only geographic location and being close to services)

Machine level: OS/hypervisor we use Xen as KVM still has some disadvantages for us mostly performance related, but note that also Xen pvops is not (yet) as good as Xen native (2.6.18 xenlinux patch) but the field is still evolving and we could convert easily from one to the other we use Debian stable/ubuntu LTS as base OS choice of OS is due to many Debian developers in the team standard OS install, just trimmed down standard tools for base OS configuration (cfengine/puppet) all machine installs are fully automated at this level, it is mostly what you would get from a plain Debian & Xen installation

Cluster level we use Ganeti as virtualization manager it supports several hypervisors be we only use Xen for storage, we mostly use DRBD (network-level RAID1) and plain LVM storage cluster layout physical machines ( nodes ) are organized in node groups one or multiple nodegroup(s) constitute a cluster the node group is the default mobility domain for VMs no single point of failure for the cluster one machine acts as cluster master, but this is role can be transferred no external resource dependencies (especially storage) no network-level services required for cluster operation all software at cluster level is open-sourced

Cluster diagram Remote API SSH access current master node group Per machine monitoring (external) group Per machine monitoring (external) group Per machine monitoring (external) Ganeti cluster

Fleet level we integrate with internal systems at this level this is done via internal software (not Open Source) both generic (to Google) monitoring machine database and specific to Ganeti-in-Google web interface to clusters (code name: Virgil) cluster-level configuration manager (code name: Dradis) machine (repair) workflow manager (code name: Euripides) these are related to hardware workflows, not virtualization the generic components have Open Source alternatives Ganeti Web Manager is an Open Source web console no known equivalents for Dradis & Euripides large deployments of Ganeti will most likely need to reimplement them

Fleet Organisation clusters are categorized according to customer type clusters of the same type & in the same region are split in two maintenance windows allow for maintenance work on only half the clusters in a region compensates for the cluster being a single point of failure for a specific VM Virgil talks to all the clusters and provides fleet overview meta-level organisation implemented in Ganeti via cluster tags tags used for various task not directly expressible in Ganeti

Fleet diagram Ganeti cluster type Office no maint window Office ZURICH Virgil Euripides Dradis Ganeti cluster type General maint window A Ganeti cluster type General maint window B Ganeti cluster type General maint window A Ganeti cluster type General maint window B Ganeti cluster type Dedicated maint window A Ganeti cluster type Ubiquity no maint window Datacenter Z VM transfer Ganeti cluster type Ubiquity no maint window Datacenter X Ganeti cluster type Dedicated maint window B Ganeti cluster type General maint window A Datacenter Y

Other internal tools machine history console displays physical machine history ties into monitoring, hardware repairs process, life-cycle, etc. rolling-reboot tool allows rebooting an entire cluster without VM impact uses live migrations and sequential reboots ganeti-capacity: a capacity planning tool computes simulated cluster capacity VM specs versus physical resources, space, power soon to be open sourced, not related to internal systems and many other tools notification of owners per cluster/physical machine monitoring & resource dashboards...

Known Issues VM clock issue a long-standing problem we still see crashes where VM clocks are rolled back 3000s due to machine clock-source problems I/O issues DRBD + Xen = much lower performance than just DRBD or just Xen in general, hard to model I/O performance

Introduction Talk overview Corporate infrastructure Overview Use cases Technology Open Source components Internal components Workflows Common Workflows Outlook Open Source road map Internal deployment roadmap Outline

VM Allocation 1. Virgil gets an allocation request (region, cluster type) 2. creates machine record (DNS, other systems) 3. selects best cluster based on VM spec & capacity data 4. and tells it to create the VM 5. cluster selects best physical machine(s) to host VM 6. VM is created and OS install scripts are run install software configure authentification Ganeti cluster type General Ganeti cluster type General Ganeti cluster type Ubiquity Ganeti cluster type Dedicated gather capacity RAPI interface scan capacity Alloc request Virgil Machine DB Monitoring

Handling machine failures Euripides Send machine to repairs (2) Virgil Monitoring detects fault (1) Ganeti HW Ganeti HW broken HW Ganeti HW Ganeti cluster Tell cluster to evacuate the broken machine (4) Mark machine broken (3) Send to repairs (5) Machine database

Handling machine failures 1. monitoring detects a HW problem (e.g. disk error, memory problem, etc.) 2. Euripides (for non-critical problems) tells Virgil a machine needs to be sent to repairs for critical events (machine dead), on-call person is paged, instructs Euripides how to proceed 3. Virgil first marks the machine as not in production 4. then tells the cluster to evacuate the VMs from it 5. finally requests repairs by local tech Note for known errors, the process if fully automated otherwise, an exception case is created for investigation

Handling repaired/new machines Euripides Detects machine was repaired (1) Machine DB Watches machine for 24hrs (2) Ganeti HW Ganeti HW repaired HW Ganeti HW Tells Virgil to reintegrate machine (3) Add to cluster (5) Rebalance (7) Virgil Configure (4) Dradis Mark serving (6)

Handling repaired/new machines 1. Euripides detects new or repaired machine in Machine DB 2. at first, it s being kept under watch for a period of time 3. it tells Virgil to integrate new machine 4. Virgil calls Dradis to configure the machine appropriately 5. Virgil tells the cluster to add the new machine 6. finally the new machine is marked as serving 7. the cluster will be rebalanced in order to utilise the machine Note assuming no errors in the OS installation, configuration, etc., the process is fully automated

Internal cluster workflows htool component shipped with Ganeti can balance the cluster compute cluster capacity compute node evacuation strategy do automatic selection of nodes for VM placement plugin vs. API node evacuation and instance placement use internal IAllocator plugin framework the other are command line tools that talk to Ganeti using its external APIs the documentation explains how to use all these

Introduction Talk overview Corporate infrastructure Overview Use cases Technology Open Source components Internal components Workflows Common Workflows Outlook Open Source road map Internal deployment roadmap Outline

Software road map I improve the cluster resource model currently models only RAM/VCPUs/disk space as resources will add spindles/networking (I/O) resources will add dynamic memory (balloning/tmem) support will improve support for non-xen hypervisors improve remote API: eliminate the need for ssh some operations not available over RAPI will integrate e.g. cluster capacity reporting ongoing effort towards full parity eventually ssh will not be needed for operations will add hard-partitioning model (still being designed)

Software road map II improve VM OS deployment model: currently OS scripts run on the physical machine this requires trusted source for OS templates Ganeti users must write their own installation scripts improve Xen CPU scheduler control add smart LVM allocation currently based on simple largest-free-space model optimizations possible for DRBD layout, flash usage,... better handling of SAN/NAS storage

Deployment roadmap I looking at using balloning/tmem first need support in Ganeti and capacity planning tools fleet refresh almost completed current fleet a mix of older an newer hardware most machines now using 10 GbE machine heterogenity makes cluster algorithms more complex

Deployment roadmap II dom0 kernel versions unification: currently running a mix of kernel versions originally we used 2.6.18 + native Xen Linux patch native Xen had better performance than pvops for us, 2.6.3x kernels have I/O performance problems after qualification, decided to standardize on 3.2.x kernel series homogenizing fleet towards it fast moving target, receives relevant fixes & improvements keep reading kernel changelogs

Questions? Thanks!

Appendix Links Ganeti homepage http://code.google.com/p/ganeti Code repositories http://git.ganeti.org/ Documentation http://docs.ganeti.org/ganeti/current/html/ Ganeti Web Manager http://code.osuosl.org/projects/ganeti-webmgr Image-based OS template http://code.osuosl.org/projects/ganeti-image Presentation on virtual workstations http://neatx.googlecode.com/files/ herding-virtual-workstations-fisl-2009.pdf