0% found this document useful (0 votes)
109 views8 pages

How To Create Your Own Private Cloud?: Let's Implement

Download as doc, pdf, or txt
Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1/ 8

Cloud computing

How to create your own private cloud?


We used Ubuntu's Enterprise Server, which is a freely downloadble solution to let you build
your own IaaS based private cloud in your data center

Let's Implement
You need at least two servers for deploying the Ubuntu Cloud. One (Machine A) would act as
the cloud, cluster, warehouse, and storage controller; while the other (Machine B) would be
the node controller. One thing to keep in mind is that the node controller should support
virtualization as virtual machines would be running on it.
By default a single virtual machine would run per core, therefore having a multi-core node
controller is highly recommended. We configured Machine A on a Core2duo X6800 processor
based machine with 2 GB DDR 2 RAM and 80 GB HDD. Machine B was running on an AMD
Phenome II X4 965 processor with 4 GB DDR 3 RAM and 250 GB HDD.

To install the Ubuntu based Cloud, select 'Install Ubuntu


Enterprise Cloud' from the first screen for installation on
both Machines A and B.

Choose 'Select cloud installation mode', and then select


cloud, cluster, warehouse, and storage controller for
Machine A and choose node controller for Machine B.
?
While installing on Machine A, give a range of available Elastic IPs in
the window named 'configuring eucalyptus-cc'.
You'll need to burn the Ubuntu server ISO on a CD/DVD and boot machine A from it. From the
first screen that pops up, choose 'Install Ubuntu Enterprise Cloud'. The installer would
automatically check for Eucalyptus components on the network and recommend that you
install the required components. From the screen with 'Select Cloud installation mode'
heading, select Cloud, cluster, warehouse, and storage controller. Other Cloud specific inputs
required during installation are cluster name (cluster1 in our case) and range of public IPs that
can be assigned to instances. Once Machine A is up and running, you'll need to setup the Node
Controller. For this, boot Machine B with the Ubuntu Enterprise Server CD/DVD and? select
'Install Ubuntu Enterprise Cloud'. This would automatically detect the cluster1 and pre-select
'node controller' in 'Select Cloud installation mode'. Once the installation is done, reboot
machine B and we are done.
Configuring your Private Cloud
Before you can start using the nodes, they have to be registered. In our case, registration is
done automatically as we are installing Ubuntu Enterprise Cloud using the ISO. To verify this
registration, run following command on Machine A:
cat /var/log/eucalyptus/registration.log
Next you need to? get credentials of the users. This can be done either through a web browser
or by using the command line. Just visit the IP address of your Cloud controller (in our case,
192.168.2.10), login using 'admin' as both user name and password. This action would prompt
you to change your password. Once done with these changes, click on 'Credentials' tab on the
top, and then click on 'Download Credentials' button on the top. Save this zipped file to
'~/.euca', then unzip this file using:
unzip -d ~/.euca mycreds.zip
To check if nodes are properly registered, run the following command on
Machine A: 'cat /var/log/eucalyptus/registration.log'.
?

You can install sample images plus create users using the web interface
of the cloud controller. For this, login as using 'admin' as both username
and password.
Credentials of users can be taken either from a web browser or from the
command line. Just visit the IP address of your cloud controller and go to
'Credentials' tab.
?

Click on the 'Region'. This would pop up a window named 'Manage EC2
Regions'. Enter region name and the IP address
'http://192.168.2.10:8773/services/Eucalyptus'.
Click on 'Credentials' tab on the top; this would pop up 'Manage EC2
Credentials' window. Get value of 'AWS Access Key' and 'AWS Secret Access
Key' from 'http://192.168.2.10'.

The other way of achieving credentials is by running the following commands on the cloud
controller:
mkdir -p ~/.euca
chmod 700 ~/.euca
cd ~/.euca
sudo euca_conf --get-credentials mycreds.zip
unzip mycreds.zip
ln -s ~/.euca/eucarc ~/.eucarc
cd ?
To use your credentials, install the required cloud user tools as follows:
sudo apt-get install euca2ools
And to check if everything is running properly
. ~/.euca/eucarc
euca-describe-availability-zones verbose
Installing and running an image
We have created our infrastructure. Now we show you how to run applications on top of this.
You can either create your own image or get the sample images from the image store on web
interface. Simply access Machine A from a web browser by typing its IP address, and login as
admin. From this interface, click on 'Store' and then click on 'Search'. Now simply click on
install button presented in front of the available images. Once installed, the image would
show 'How to run?' link in front of it. This link displays commands to run the pre-installed
image. All installed images can be seen under the Images tab.
Get all the installed images under 'Images' tab. Select the listed
instance and click on 'Start Instances (s)' on the top. This would imitate
instance and assign Elastic IP to it.

In Hybridfox, go to 'Volume and Snapshots' tab. Here you can create


volumes; click on green plus sign and fill in amount of storage required and
put available zone (Cluster1 in our case).
In 'Attach Volume' pop up window, select Instance and add device name
'/dev/sdb'. You have successfully created and attached volume to your
running instance.
Using Command line to run image
To run images go to Machine A and run following commands:
if [ ! -e ~/.euca/mykey.priv ]; then
mkdir -p -m 700 ~/.euca
touch ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv
euca-add-keypair mykey > ~/.euca/mykey.priv
fi
These commands are to create a keypair (ssh key) that you can use to log into your instance as
root, once it boots. As the key is stored, you only need to create them once. You also need to
allow access to port 22 of instance. This can be done using:
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
Then create instances of your registered images as follows:
euca-run-instances $EMI -k mykey emi-E1461079 -t m1.small ?addressing private
You can get an image id from the web interface of the Cloud controller by clicking on 'How to
run?' under the 'Store' tab. You can monitor state of instance using the following:
watch -n5 euca-describe-instances
Output of this command shows information about the instance, including its state. While first-
time caching is being performed, the instance's state will be 'pending'. When the instance is
fully started, the above state will become 'running'. Look at the IP address assigned to your
instance in the output and then connect to it:
IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print
$4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
To terminate instance run
INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk
'{print $2}')
euca-terminate-instances $INSTANCEID
Using Hybridfox extension to run Images
Besides using command line, one easy and efficient way to manage your Ubuntu private cloud
is via Firefox extension known as Hybridfox. Download this extension from
http://code.google.com/p/hybridfox/. Once installed, you need to connect it to Ubuntu
private Cloud. Click on 'Region' on the top. This would pop up a window named 'Manage EC2
Regions' asking for region name and endpoint URL. Name region (India, in our case) and put
'http://192.168.2.10:8773/services/Eucalyptus' where '192.168.2.10' is the IP address of
Machine A. Second important step to be carried out is to add credentials to hybridfox. Click on
'Credentials' tab on the top; this would pop up 'Manage EC2 Credentials' window. Get value of
'AWS Access Key' and 'AWS Secret Access Key' from '192.168.2.10', click on 'Credentials' tab and
then click on 'Show keys' button under 'Query interface credentials'. Here 'Query ID' is 'AWS
Access Key' and 'Secret Key' is 'AWS Secret Access Key'. Now refresh your page and you should
get all the installed images under 'Images' tab. Simply select the listed instance and click on
'Start Instances(s)' button on the top (green start icon). This would imitate instance and assign
Elastic IP to it. You can see the different states of imitated Instance; initially it starts as
'pending' then changes to 'running' and when terminated changes to 'terminated'. To get list of
available Elastic IP's, simply click on 'Elastic IP's' tab on the top. Elastic IP's are nothing but
public IP's that were defined during installation on Machine A. These are assigned to instances
for access by users.
Allocate Resource on the fly
To summarize IaaS in plain English, it gives the capability of adding/ subtracting resources to
your application on the fly. Suppose you had anticipated that x number of CPU's and y amount
of memory would be enough to run your application, but later you found that extra
memory/storage/processing power was needed, you might be in a fix. However, if you are
using Cloud setup, it is just a matter of few clicks that would add those extra resources
needed by your application and that too on the fly. Here, I show you how to create a virtual
storage unit and then attach this storage unit to running instance on the fly. In Hybridfox, go
to 'Volume and Snapshots' tab on the top. Here you can create volumes, click on green plus
sign and fill in amount of storage required plus put available zone (Cluster1, in our case).
Once volume is created, it would be assigned a volume ID, now select this volume and attach
it to running instance by clicking on green button with tick mark. In 'Attach Volume' pop up
window, select Instance and add device name '/dev/sdb'. With this, you have successfully
created and attached volume to your running instance. You can also detach volumes by
clicking on red button with cross image.
All these steps show how easy it is to take the first step in creation of your own private Cloud
and that too with minimal investment.

You might also like