130 likes | 215 Views
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 http://cwiki.apache.org/VCL. Motivation. Cloud computing is growing quickly
E N D
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 http://cwiki.apache.org/VCL
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 • User selects image and time (reservation) • 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 • Virtual machine is created and OS post load tasks run OpenStack • User selects image and machine type • Scheduler finds a compute node with available capacity for the chosen machine type • Instance is launched
Provisioning Cont. • User selects image and time • 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 • Provisioning module generates run instances request and sends to EC2 API endpoint • 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