Creating an EC2 Provisioning Module for VCL Cameron Mann & Everett Toews
Virtual Computing Lab (VCL) Apache Incubator project Dynamically provision physical and virtual machines for end-users * Image from
Motivation Cloud computing is growing quickly AWS, OpenStack, Eucalyptus Opportunity to easily add significant compute resources to VCL Makes it easier to pilot or scale VCL What if all you had to do to setup a VCL system was supply the management node?
Objectives End users should never have to know they’re using the EC2 provisioning module Avoid changes to existing code Maintain VCL’s flexibility as much as possible
VCL Terminology Computer –Can refer to physical or virtual machine –Each virtual machine is associated with a VM host –Describes available hardware VM Host –Computer that hosts virtual machines Image –Disk image used to launch virtual machines –Minimum hardware requirements
EC2 Terminology Endpoint –Exposes the EC2 API to users Instance –Equivalent to a virtual machine Image –Disk image used to launch instances –Also kernel and ramdisk images Machine Type –Describes the hardware an instance will be launched with
VCL + EC2 Image –VCL image => EC2 image –Minimum hardware => machine type Computer –VM host => endpoint –Virtual machine => instance –Available hardware => largest machine type
Provisioning VCL 1.User selects image and time (reservation) 2.VCL finds a computer that the user has permission to use, meets the hardware requirements of the image and is available at the specified time 3.Virtual machine is created and OS post load tasks run OpenStack 1.User selects image and machine type 2.Scheduler finds a compute node with available capacity for the chosen machine type 1.Instance is launched
Provisioning Cont. 1.User selects image and time 2.VCL finds a computer that the user has permission to use, meets the hardware requirements of the image and is available at the specified time 3.Provisioning module generates run instances request and sends to EC2 API endpoint 4.Wait for instance to launch and run OS post load tasks
Image Capture Use the cloud’s existing image management, don’t try to replace it Images are cloud-dependent EC2 utilities available to bundle/upload/register Works well for Linux, Windows is more complicated
What’s Left? Networking –VCL assumes two interfaces: one private, one public –Instances have one private interface –Public IP addresses assigned through NAT Expectation conflicts with reality Open source under Apache License
Questions?