Adding Extra Compute Nodes to Rackspace Private Cloud
The first four of these posts covered setup and installation of my home lab, including the networking, PXE booting Ubuntu and installation of Rackspace Private Cloud. I ended up with 2 Controllers in HA, and 3 Computes.
In this post I show how easy it is to add 2 extra Compute nodes to the lab.
The extra nodes are HP N54L MicroServers. They’re 2.2GHz AMD Turion II machines that come with 250Gb HDD and 2Gb RAM. I add an Integral 4Gb DIMM to each as well as an extra TP-Link NIC:
The first thing to do is prep my network services so I can PXE Boot. This includes adding the new services to DNS and DHCP (static IP assignment from MAC). As I use my QNAP TS-210 (192.168.1.1) as my DNS and DHCP service (courtesy of Dnsmasq) I add the following to /etc/hosts on there:
192.168.1.106 openstack6.home.mydomain.co.uk openstack6 192.168.1.107 openstack7.home.mydomain.co.uk openstack7
I then open up /opt/etc/dnsmasq.conf and add in the static MAC assignment:
After reloading the dnsmasq service (/opt/etc/init.d/S56dnsmasq restart) I’m ready to PXE boot the servers. See this post for details of my PXE Boot setup using the QNAP NAS boxes.
Now that they have Ubuntu installed on the two new servers, openstack6 (192.168.1.106) and openstack7 (192.168.1.107), as well as having root‘s SSH key setup, I first check that the networking is setup correctly on the new servers. The /etc/network/interfaces should have the following contents:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Host/Management auto eth0 iface eth0 inet dhcp # Neutron Provider interface auto eth1 iface eth1 inet manual up ip link set $IFACE up down ip link set $IFACE down
Bootstrap, assign role, chef-client, done!
With that in place, I can now bootstrap them with the Chef Client and assign the relevant roles which puts them as part of my OpenStack Compute lab. To do this I log onto my Chef server (running on openstack1) as root and issue the following:
knife bootstrap -E RPCS -r role[single-compute] 192.168.1.106 knife bootstrap -E RPCS -r role[single-compute] 192.168.1.107 knife ssh "hostname:openstack6" "ovs-vsctl add-port br-eth1 eth1" knife ssh "hostname:openstack7" "ovs-vsctl add-port br-eth1 eth1" knife ssh "role:single-compute" chef-client
And it is that easy!
I execute chef-client on all my computes and not just the new ones. This isn’t strictly necessary to add these new nodes, but it’s good practice to run it to ensure that my computes are consistent.
I can view that my hypervisors (the compute nodes) are correctly available by issuing the following:
. openrc nova hypervisor-list
This will produce the following output for my lab:
root@openstack1:~# nova hypervisor-list +----+--------------------------------+ | ID | Hypervisor hostname | +----+--------------------------------+ | 1 | openstack5.home.mydomain.co.uk | | 3 | openstack3.home.mydomain.co.uk | | 5 | openstack4.home.mydomain.co.uk | | 7 | openstack6.home.mydomain.co.uk | | 8 | openstack7.home.mydomain.co.uk | +----+--------------------------------+