270 likes | 394 Views
OpenStack and Eucalyptus on FutureGrid https://portal.futuregrid.org/tutorials/openstack Slides are at https://portal.futuregrid.org/projects/241. Presenters: Javier Diaz Gregor von Laszewski. Before you can use OpenStack and Eucalyptus. Please make sure you have a portal account
E N D
OpenStack and Eucalyptus on FutureGridhttps://portal.futuregrid.org/tutorials/openstackSlides are at https://portal.futuregrid.org/projects/241 Presenters: Javier Diaz Gregor von Laszewski
Before you can use OpenStack and Eucalyptus • Please make sure you have a portal account • https://portal.futuregrid.org • Please make sure you are part of a valid FG project • You can either create a new one or • You can join an existing one with permission of the Lead • Please make sure the project you have is approved and valid • OpenStack and Eucalyptus accounts are automatically created when previous requirements are fulfilled
OpenStack vs Eucalyptus • Both OpenStack and Eucalyptus are IaaS cloud frameworks (similar functionality) • We are going to focus on OpenStack during this tutorial • We make use of the EC2 interface thought Euca2ools • ALL commands explained here work in the same way in Eucalyptus
OpenStack • OpenStack is a collection of open source components to deliver public and private IaaS clouds • Components: Nova, Swift, Glance, Keystone, and Quantum • IaaS Cloud Services allows users to manage: • VMs, Virtual networks, storage resources
OpenStack Functionality • Amazon AWS Interface Compatibility • Flexible Clustering and Availability Zones • Access Control List (ACL) with policies management • Network Management, Security Groups, Traffic Isolation • Cloud Semantics and Self-Service Capability • Image registration and image attribute manipulation • Bucket-Based Storage Abstraction (S3-Compatible) • Block-Based Storage Abstraction (EBS-Compatible) • Hypervisor support: Xen, KVM, VMware Vsphere, LXC, UML and MS HyperV
OpenStack Testbed • OpenStackis available to FutureGrid Users on the India cluster • Users can make use of a maximum of 24 nodes on India • Instances Types https://portal.futuregrid.org
Log into India cluster • Example: My username is jdiaz $ ssh <username>@india.futuregrid.org $ ssh jdiaz@india.futuregrid.org
User Credentials • Credentials in your $HOME directory under .futuregrid/openstack/ • (In Eucalyptus this was .futuregrid/eucalyptus) • Load environment variables $ unzip ~/.futuregrid/openstack/openstack-essex-jdiaz-india.zip-d ~/openstack $ source ~/openstack/novarc
Install/Load Euca2ools • Euca2ools are the command line clients used to interact with OpenStack. • If using your own platform, install euca2ools bundle from http://www.eucalyptus.com/downloads/euca2ools • Instructions for various Linux platforms are available on the download page. • On FutureGrid, load the Euca2ools module $ module load euca2ools
Euca2ools • Testing your setup.Use euca-describe-availability-zones to test the setup • List the existing images using euca-describe-images • $ euca-describe-availability-zones • AVAILABILITYZONE india available • $ euca-describe-images • IMAGE ami-00000012 centos2012/euca-centos-2012.1.14-x86_64.img.manifest.xmavailable public x86_64 machine aki-00000010 ari-00000011 instance-store • IMAGE ami-00000013 debian2011/euca-debian-2011.07.02-x86_64.img.manifest.xml available public x86_64 machine aki-0000000e ari-0000000f instance-store • … https://portal.futuregrid.org
Key Management • Before you instanciate a VM, you need to create at least one key pair. This key pair will be injected into the VM, allowing you to SSH into the VM • Create a keypair and add the public key to OpenStack (Replace userkey with your username i.e. jdiazkey) • Fix the permissions on the generated private key • $ euca-add-keypair userkey > userkey.pem • $ chmod 0600 userkey.pem • $ euca-describe-keypairs • KEYPAIR userkey 0d:d8:7c:2c:bd:85:af:7e:ad:8d: 09:b8:ff:b0:54:d5:8c:66:86:5d
Now we are ready to start a VM using one of the pre-existing images. • We need the ami-id of the image that we wish to start (euca-describe-images) • We use the euca-run-instances command to start a VM with the image ami-00000017 Image Instantiation • $ euca-run-instances -k userkey -n 1 ami-00000017 -t m1.small • RESERVATION r-zvtbbj8j default • INSTANCE i-0000073f ami-00000017 server-1854 server-1854 pending userkey 0 m1.small 2012-07-09T15:49:46.000Z unknown zone aki-0000000e ari-0000000f
euca-describe-instances shows the status of the VMs Monitoring • $ euca-describe-instances i-0000073f • RESERVATION r-cbcagzl4 461884eef90047fbb4eb9ec92f22a1e3 default • INSTANCE i-0000073f ami-00000033 server-1855 server-1855 pending userkey 0 m1.small 2012-07-09T15:49:46.000Z india aki-0000000e ari-0000000f • Shortly after… • $ euca-describe-instances i-0000073f • RESERVATION r-cbcagzl4 461884eef90047fbb4eb9ec92f22a1e3 default • INSTANCE i-0000073f ami-00000033 149.165.158.159 server-1855 running userkey 0 m1.small 2012-07-09T15:49:46.000Z india aki-0000000e ari-0000000f
VM Access • The ssh private key that was generated earlier can now be used to log into the VM • Please, exit from the VM to continue with the Tutorial • $ ssh -i userkey.pem root@149.165.158.159 • # exit
Nova Volumes • Nova-volume provides persistent block storage compatible with Amazon’s Elastic Block Store • The storage in the instances is non-persistent and it gets lost when the instance is terminated • Persistent volumes keeps data generated during instance life time after the instance is terminated • Volumes are accessed via iSCSI
Create Volumes • Create a 1GB Volume in the India zone • List available volumes • $ euca-create-volume -s 1 -z india • VOLUME vol-00000031 1 india creating 2012-07-10T15:15:47.244Z • $ euca-describe-volumes • VOLUME vol-00000027 100 india in-use 2012-06-06T21:39:47.000Z • ATTACHMENT vol-00000027 i-0000070f /dev/vdc attached • VOLUME vol-00000028 50 india available 2012-06-06T21:44:30.000Z • VOLUME vol-0000002a 30 india available 2012-06-06T21:45:37.000Z https://portal.futuregrid.org
Attach Volume • Attach volume to a running instance • A volume can only be attached to one instance. Euca-describe-volumes will show the volume status as “attached” • An additional SCSI disk is created in the instance • Although we specified the device, it may differ if that device already exists (look into /dev, /var/log/syslog, /dev/log/messages or use fdisk -l to find the new device) • $ euca-attach-volume -i i-0000073f-d /dev/vdc vol-0000031
Using the New Disk • Log into the instance again • Format disk (skip this step if you want to reuse data stored) • Mount disk • Exit from the instance to continue • $ ssh -i userkey.pem root@149.165.158.159 • # mkfs /dev/vdc • # mount /dev/vdc /mnt • # exit
Detach Volumes • Volumes are automatically detached when instance is terminated • Detach volume • If you detach the volume while instance is running, it loses access to the disk. Make sure that you umount (umount /mnt) the disk before you detach the volume. • If you terminate the instance, the volume is automatically detached • $ euca-detach-volume vol-00000031
Volume Snapshots • Snapshots are useful to create backups or replicate volumes in different zones • Create Snapshot • List Snapshots • $ euca-create-snapshot -d ’Testing snapshot’vol-00000027 • SNAPSHOT snap-00000001 vol-00000027 creating 2012-07-16T14:22:21.728Z 0% Testing snapshot • $ euca-describe-snapshots • SNAPSHOT snap-00000001 vol-00000027 available 2012-07-16T14:22:21.000Z 100%
Create Volume from Snapshot (currently it does not work in OpenStack Essex) • The snapshot must be in available status (100% completed) • New volume can be bigger if desired • Create a 2GB volume from snapshop • $ euca-create-volume -s 2 --snapshot snap-00000001 -z india • VOLUME vol-00000032 2 snap-00000001 india creating 2012-07-16T14:47:07.916Z
We will use an CentOS 5 image to test the image registration • Download the gzipped tar ball • Uncompress and Untar the archive Image Registration (1/4) • $ wget i120/test-image/centos5.tgz • $ tar vxfz centos5.tgz
Image Registration (2/4) • Next we bundle the image with a kernel and a ramdisk using the euca-bundle-image command • We will use a kernel already registered. • euca-describe-images returns the kernel and ramdisk IDs that we need $ euca-bundle-image -i centos5.img --kernel aki-0000000e --ramdisk ari-0000000f Checking image Encrypting image Splitting image... Part: centos5.img.part.00 …….. Part: centos5.img.part.35 Generating manifest /tmp/centos5.img.manifest.xml https://portal.futuregrid.org
Image Registration (3/4) • Upload the image (euca-upload-bundle) • Register the image (euca-register) $ euca-upload-bundle -b jdiaz-bucket -m /tmp/centos5.img.manifest.xml Checking bucket: jdiaz-bucket Creating bucket: jdiaz-bucket Uploading manifest file Uploading part: centos5.img.part.00 …. Uploading part: centos5.img.part.35 Uploaded image as jdiaz-bucket/centos5.img.manifest.xml • $ euca-register jdiaz-bucket/centos5.img.manifest.xml • IMAGE ami-00000034
Image Registration (4/4) • You cannot run instances until the image is in available status • Check status • $ euca-describe-instances ami-00000034 • IMAGE ami-00000034 jdiaz-bucket/centos5.img.manifest.xml available private x86_64 machine aki-0000000e ari-0000000f instance-store
Image/Volume Deletion and Instance Termination • You can delete your volume • You can delete your image (Please do NOT delete other users’ images) • You can terminate your VM • $ euca-delete-volume vol-00000031 • $ euca-deregister ami-00000034 • $ euca-terminate-instances i-0000073f
More Information • We keep this tutorial updated in the FutureGrid portal • https://portal.futuregrid.org/tutorials/openstack