You are not logged in. Click here to log in.

Application Lifecycle Management

Search In Project

Search inClear

Tags:  not added yet

HOW-TO: Setup a XEN Eucalyptus Cloud Node using 32-bit Debian Lenny 5.05 Linux

Install Debian Linux Lenny (5.05 or newer) from the CD

Install the following packages

apt-get install xen-utils xen-tools xen-linux-system-2.6.26-2-xen-686

Reboot the system to startup the xen kernel. Check that the kernel is Xen based

> uname -a
Linux oahu 2.6.26-2-xen-686 #1 SMP Fri Sep 17 00:54:08 UTC 2010 i686 GNU/Linux

Install required packages for eucalyptus compilation

apt-get install libpthread-stubs0 openssh-server rsync gcc make apache2-threaded-dev ant openjdk-6-jdk libvirt-dev libcurl4-gnutls-dev vblade apache2 unzip curl vlan bridge-utils libvirt-bin sudo
Get the eucalyptus source code
See step #2 from http://open.eucalyptus.com/wiki/installing-eucalyptus-source-16

6 Set JAVA_HOME

Add the following line to the root account's /root/.bashrc file and then source this file:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/

>source .bashrc

7 Build the dependencies, and eucalyptus

Follow steps 3 and 4 from http://open.eucalyptus.com/wiki/installing-eucalyptus-source-16

Set the eucalyptus path to be "/". This causes eucalyptus files to be installed under the normal system paths such as /var/lib /var/log /etc, etc.

Create a directory called "packages" under "/"
Eucalyptus dependencies will be installed there.

8 Modify the xen daemon configuration

Edit the etc/xen/xend-config.sxp file.

Uncomment and set
 (xend-unix-server yes) 
Also uncomment the xend-unix-path line

After making these changes stop and restart the xend service:
/etc/init.d/xend restart

9 Test that virsh list works

The command should return indicating that Domain-0 is running.
 Id Name                 State
----------------------------------
  0 Domain-0             running

0 Setup the network bridge

Modify /etc/network/interfaces to specify the following for a network bridge (br0). eth0 is assumed to be the network device attached to the cloud network.
auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_maxwait 0
        bridge_fd 9
        bridge_hello 2
        bridge_ maxage 12
        bridge_stp off

1 Make custom settings in eucalyptus.conf

Edit /etc/eucalyptus/eucalyptus.conf to include the following settings:
HYPERVISOR="xen"
VNET_PUBINTERFACE="br0"
VNET_PRIVINTEFACE="br0"
VNET_BRIDGE="br0"
VNET_MODE="SYSTEM"
MAX_CORES="6"

2 Increase the number of loops

Edit /etc/modules to specify a larger number of loops.
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

loop max_loop=64
Add "max_loop=64" on the same line and after the word "loop".
After editing this file reboot the system.

Verify that the additional loop devices have been created under /dev.
> ls /dev/loop*
/dev/loop0   /dev/loop19  /dev/loop29  /dev/loop39  /dev/loop49  /dev/loop59
/dev/loop1   /dev/loop2   /dev/loop3   /dev/loop4   /dev/loop5	 /dev/loop6
/dev/loop10  /dev/loop20  /dev/loop30  /dev/loop40  /dev/loop50  /dev/loop60
/dev/loop11  /dev/loop21  /dev/loop31  /dev/loop41  /dev/loop51  /dev/loop61
/dev/loop12  /dev/loop22  /dev/loop32  /dev/loop42  /dev/loop52  /dev/loop62
/dev/loop13  /dev/loop23  /dev/loop33  /dev/loop43  /dev/loop53  /dev/loop63
/dev/loop14  /dev/loop24  /dev/loop34  /dev/loop44  /dev/loop54  /dev/loop7
/dev/loop15  /dev/loop25  /dev/loop35  /dev/loop45  /dev/loop55  /dev/loop8
/dev/loop16  /dev/loop26  /dev/loop36  /dev/loop46  /dev/loop56  /dev/loop9
/dev/loop17  /dev/loop27  /dev/loop37  /dev/loop47  /dev/loop57
/dev/loop18  /dev/loop28  /dev/loop38  /dev/loop48  /dev/loop58

3 Verify that the network bridge is up and running

Check that the network bridge is up and running:
>brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.00065bf614d4	no		eth0

Check that the network is configured and running properly. The network IP address will be assigned to br0 and not eth0:
br0       Link encap:Ethernet  HWaddr 00:06:5b:f6:14:d4  
          inet addr:192.168.10.160  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::206:5bff:fef6:14d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1135349 errors:0 dropped:0 overruns:0 frame:0
          TX packets:385485 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1232811139 (1.1 GiB)  TX bytes:162361369 (154.8 MiB)

eth0      Link encap:Ethernet  HWaddr 00:06:5b:f6:14:d4  
          inet6 addr: fe80::206:5bff:fef6:14d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1135798 errors:0 dropped:0 overruns:0 frame:0
          TX packets:405936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1253324685 (1.1 GiB)  TX bytes:165433795 (157.7 MiB)
          Interrupt:28 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1292 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1292 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:23320 (22.7 KiB)  TX bytes:23320 (22.7 KiB)

4 Add eucalyptus account

>useradd eucalyptus
>adduser eucalyptus libvirt

5 Configure Eucalyptus

Prior to running eucalyptus, run the following config command:
euca_conf -d / --hypervisor xen --instances /var/lib/eucalyptus --user eucalyptus --setup

6 Start up Eucalyptus

On the new node start up the eucalyptus service
/etc/init.d/eucalyptus-nc start

7 Copy Keys

Copy keys from the cloud controller to the new node.
You may need to create the /home/eucalyptus/.ssh directory on the new node.
On the new node set a password for the eucalyptus account:
>sudo passwd eucalyptus
On the cloud controller:
sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@<ip_of_node>

8 Register new node

Nodes that are running eucalyptus where eucalyptus has been installed from building the source packages are not automatically recognized using the euca_conf --discover-nodes command. These nodes must be manually registered as follows:
sudo euca_conf --register-nodes "<ip_of_new_node>"

9 Verify that the new node is properly registered

The new node should appear in the list with its IP address:
>sudo euca_conf --list_nodes

registered nodes:
   192.168.10.160  omscloud   

The number of available instances should increase by 6:
>sudo euca-describe-availability-zones verbose

AVAILABILITYZONE	omscloud	129.82.226.45
AVAILABILITYZONE	|- vm types	free / max   cpu   ram  disk
AVAILABILITYZONE	|- m1.small	0000 / 0006   1    192     2
AVAILABILITYZONE	|- c1.medium	0000 / 0006   1    256     5
AVAILABILITYZONE	|- m1.large	0000 / 0003   2    512    10
AVAILABILITYZONE	|- m1.xlarge	0000 / 0003   2   1024    20
AVAILABILITYZONE	|- c1.xlarge	0000 / 0001   4   2048    20

0 Verify that there are no errors in the new node's eucalyptus log files

Check under /var/log/eucalyptus.
The nc.log file should show the following messages cycling:
>tail -fn 50 nc.log 
doDescribeResource() invoked
doDescribeInstances() invoked
doDescribeResource() invoked
doDescribeInstances() invoked
doDescribeResource() invoked
doDescribeInstances() invoked
...

1 Set eucalyptus-nc service to automatically start

Set the eucalyptus-nc service to automatically start when the system boots:
update-rc.d eucalyptus-nc defaults 95 05