Create your own cloud system in an hour

Recently, it has become possible to create your own cloud service (IaaS) without effort and programming. In the simplest case, you can create a Cloud-In-A-Box using just one computer with a processor that supports virtualization. This cloud has its limitations and, in my opinion, is suitable only for training. If you have two machines with processors that support virtualization, then you can create a full-fledged cloud suitable for testing and developing cloud solutions. Eucalyptus recently unveiled a new version of its Eucalyptus 3.4 product. Using FastStart, you can create a complete AWS and S3 compatible IaaS system without effort and in-depth product knowledge.

I used two Intel NUC machines to install Eucalyptus. Since NUC does not have a drive, I used the CentOS 6.2 machine to create a bootable USB key. First you need to get FastStart ISO by going to . After that, create a boot key. I used UNetbootin to create the key. Do not forget to copy FastStart ISO to the key after the end of UNetbootin. On my machine, UNetbootin left the file system on the key in read-only mode after the end of work, and I had to make the umount and mount keys for writing the file.

Before starting the installation, decide which IP you will assign to the machines and which you will use for virtual machines in your cloud. I decided to assign Frontend to the machine, Node Controller (NC) and use for the public addresses of the virtual machines. Make sure your network settings allow you to set static IPs for machines. If this is not possible, you will have to use DHCP, which is fraught with problems if the servers receive new IPs after installing the system. So that I would recommend using static IP.

After creating the key, boot the first machine from USB. First I installed Node Controller. During installation, in addition to several standard CentOS questions, I had to enter the IP server, network mask, Default Gateway and DNS.

After creating the NC, I booted up the second machine with USB and selected Install CentOS 6 with Eucalyptus Frontend from the menu. During installation, several additional questions were asked about network settings and public and private addresses for virtual machines. For public, I chose the above range, and for closed range 172.31.X.X proposed by the system. After, when the system suggested registering NC, I indicated the address of the first machine created And it's all. After rebooting, I got a working cloud system.

To work with it, you can use both the UI and the command line. After installation, the system reports all the parameters for working with the cloud. If you forgot something, just go to the Frontend machine via ssh and you will get a reminder like this:

[vasya @ localhost ~] $ ssh root@
root@'s password:
Last login: Wed Oct 30 14:45:12 2013 from
User Console URL (for managing instances, volumes, etc.):
User Credentials:
  * Account: demo
  * Username: admin
  * Password: password
Admin Console URL (for managing user accounts, VM types, etc.):
Admin Credentials:
  * Account: eucalyptus
  * Username: admin
  * Password: admin

To work through the UI, go to the address above

Enter your details for the demo user and you can start working. By default, the system already has one image based on CentOS 6.4 and several keys are created. So you can immediately start the virtual machine.

To work with the command line, go ssh to the Frontend machine. And load the environment variables for one of the two default users. For instance:

. ~ / credentials / admin / eucarc

After that, you can start using the command line to work with the system. For example, display all system resources available for starting virtual machines:

[root @ Box1 ~] # euca-describe-availability-zones verbose
AVAILABILITYZONE CLUSTER01 arn: euca: eucalyptus: CLUSTER01: cluster: cc_01 /  
AVAILABILITYZONE | - vm types free / max cpu ram disk  
AVAILABILITYZONE | - m1.small 0005/0008 1 256 5  
AVAILABILITYZONE | - t1.micro 0005/0008 1 256 5  
AVAILABILITYZONE | - m1.medium 0005/0006 1 512 10  
AVAILABILITYZONE | - c1.medium 0002/0004 2 512 10  
AVAILABILITYZONE | - m1.large 0002/0004 2 512 10  
AVAILABILITYZONE | - m1.xlarge 0002/0004 2 1024 10  
AVAILABILITYZONE | - c1.xlarge 0002/0004 2 2048 10  
AVAILABILITYZONE | - m2.xlarge 0002/0004 2 2048 10  
AVAILABILITYZONE | - m3.xlarge 0001/0002 4 2048 15  
AVAILABILITYZONE | - m2.2xlarge 0001/0002 2 4096 30  
AVAILABILITYZONE | - m3.2xlarge 0001/0002 4 4096 30  
AVAILABILITYZONE | - cc1.4xlarge 0000/0001 8 3072 60  
AVAILABILITYZONE | - m2.4xlarge 0000/0001 8 4096 60  
AVAILABILITYZONE | - hi1.4xlarge 0000/0000 8 6144 120  
AVAILABILITYZONE | - cc2.8xlarge 0000/0000 16 6144 120  
AVAILABILITYZONE | - cg1.4xlarge 0000/0000 16 12288 200  
AVAILABILITYZONE | - cr1.8xlarge 0000/0000 16 16384 240  
AVAILABILITYZONE | - hs1.8xlarge 0000/0000 48 119808 24000

My NC machine has a 4-core processor and a 128 GB drive. By default, after installation, I could run up to 4 virtual machines. But as you can see, the system offers to run up to 8 virtual machines. To achieve this, go ssh to the NC machine and edit several variables in the /etc/eucalyptus/eucalyptus.conf file. I set:
NC_WORK_SIZE = 70000

After that, you need to restart the NC process /etc/init.d/eucalyptus-nc restart and I had two more resources at my disposal. I would not abuse it with a change in the number of processors, but I think it’s safe to double them if virtual machines do not use 100% of their processor capacities.

If you prefer to use the Russian-language interface in the UI, then you can change the language settings of the UI. To do this, go ssh to the Frontend machine and edit the /etc/eucalyptus-console/console.ini file. It is necessary to change the locale language=ru_RU
After that, restart the eucalyptus-console process /etc/init.d/eucalyptus-console restart

Once again, going to the UI you will see that the menu and many messages are translated into Russian.

I spent less than an hour on the entire installation of two machines and settings.

Also popular now: