Eucalyptus 4.0 is one of the biggest releases in Eucalyptus history with several major architectural changes. Lots of new re-engineered components and some behavioral changes have landed with this new release.
Major changes in Eucalyptus 4.0
Service Separation
This is the biggest one and probably the one many of us were waiting for a long time. From 4.0 CLC DB and user-facing services can be installed/registered in different hosts. With that said, now it is also possible to have multiple user-facing services (UFS).
UFS registration command looks like this,
euca_conf --register-service --service-type user-api --host 10.111.1.110 --service-name API_110
And describe UFS command is given below,
euca-describe-services -T user-api
Output:
SERVICE user-api API_110 API_110 ENABLED 45 http://10.111.1.110:8773/services/User-API arn:euca:bootstrap:API_110:user-api:API_110/ SERVICE user-api API_112 API_112 ENABLED 45 http://10.111.1.112:8773/services/User-API arn:euca:bootstrap:API_112:user-api:API_112/ SERVICE user-api API_119 API_119 ENABLED 45 http://10.111.1.119:8773/services/User-API arn:euca:bootstrap:API_119:user-api:API_119/ SERVICE user-api API_179 API_179 ENABLED 45 http://10.111.1.179:8773/services/User-API arn:euca:bootstrap:API_179:user-api:API_179/
Object Storage Gateway (OSG)
Another attractive feature in Eucalyptus 4.0. With this new service, it is possible to use different object storage backends. For now OSG has complete support for RiakCS and WalrusBackend as object storage backends. Other object storages like Ceph should be pluggable as well with OSG, but is not fully tested.
More about Object Storage Gateway and RiakCS were discussed in previous posts.
Image Management
This is another great addition to Eucalyptus. Now image management was never been so fun than this. One important thing is, from 4.0 Eustore has been replaced with couple of other interesting commands in the toolset.
Installing an HVM image was never been easier,
euca-install-image -i /root/precise-server-cloudimg-amd64-disk1.img -n "demoimage" -r x86_64 --virtualization-type hvm -b demobucket
Another interesting fact is, now it is possible to get an EBS backed image from HVM image with just one single command,
euca-import-volume /root/precise-server-cloudimg-amd64-disk1.img --format raw \ --availability-zone PARTI00 --bucket demobucket --owner-akid $EC2_ACCESS_KEY \ --owner-sak $EC2_SECRET_KEY --prefix demoimportvol --description "demo import volume"
Run the following command to check the conversion task status,
euca-describe-conversion-tasks
When completed create a snapshot from the volume Id in the describe result and register the EBS-backed image.
Heads up: an imaging worker instance will appear running the conversion task is started.
There is another super handy command that will create an EBS backed image from a HVM image and run an instance with provided detail,
euca-import-instance /root/precise-server-cloudimg-amd64-disk1.img --format raw \ --architecture x86_64 --platform Linux --availability-zone PARTI00 --bucket ibucket \ --owner-akid $EC2_ACCESS_KEY \ --owner-sak $EC2_SECRET_KEY --prefix image-name-prefix \ --description "textual description" --key sshlogin --instance-type m1.small
EDGE Networking Mode
EDGE is a new networking mode which was introduced in 3.4 as a tech-preview feature. The main reason behind this networking mode is to remove the need of Cluster Controller to be in the data for all the running VMs. Also, this helps to eradicate the need of tagging VLAN packets to achieve Layer 2 isolation between the VMs. With this network mode, now there will be a new standalone component called eucanetd will be running on the Node Controller. In EDGE networking mode eucanetd running on the Node Controller maintains the networking and ensures any single point of failure.
Re-engineered Eucalyptus Console
This is one of the biggest changes that happened in 4.0. We said goodbye to the Eucalyptus Admin UI (https://<CLC_IP_address>:8443), Eucalyptus User Console and welcomed the newly designed EucaConsole with the administrative features.
Tech-Preview of CloudFormation
CloudFormation!!! Yes, CloudFormation feature has been implemented and released in Eucalyptus 4.0 as a tech-preview, though the implementation is pretty well.
In the currently implementation of CloudFormation, the service does not come with other user-facing services, it needs to be registered separately on the same host with CLC/DB (EUCA-9505).
euca_conf --register-service -T CloudFormation -H 10.111.1.11 -N API_11
Here is a basic CloudFormation template just to try it out right away,
{ "Parameters" : { "KeyName" : { "Description" : "The EC2 Key Pair to allow SSH access to the instance", "Type" : "String" } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" }, "default" ], "KeyName" : { "Ref" : "KeyName"}, "ImageId" : "emi-3c17bd33" } { }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0" } ] } } } }
The following command can be used to validate the template,
euform-validate-template --template-file cloudformationdemo.template
Then create a stack with the template,
euform-create-stack --template-file cloudformationdemo.template --parameter KeyName=demokey MyDemoStack
Check CloudFormation stack status,
euform-describe-stacks MyDemoStack Output: STACK MyDemoStack CREATE_COMPLETE Complete! 2014-06-04T14:02:27.38Z
Check CF stack resources,
euform-describe-stack-resources -n MyDemoStack
More FourZero
Apart from those, another big improvement was with Administrative Roles. There are now pre-defined roles for Eucalyptus admin account, e.g Cloud Account Admin, Cloud Resource Admin, Infrastructure Admin. ELB supports session stickiness, modify attributes of instances is supported and so on. Also many AWS compatibility issues have been fixed in this Fantastic release.
Installing Eucalyptus is now easier than ever. You can start with a CentOS 6.5 minimal server and get your own Amazon compatible Eucalyptus cloud.
To get started run the following command and have your own private cloud up and running,
bash <(curl -Ls http://eucalyptus.com/install)
Enjoy Eucalyptus 4.0!!!