Category → private cloud
Setting up Ubuntu Enterprise Cloud
On a previous post I briefly looked at Ubuntu Enterprise Cloud. Let’s see how UEC can be setup quickly on two machines. This is a simple configuration. One computer will have cloud controller (CLC), Walrus, cluster controller (CC), and storage controller (SC). The other computer will act as the node controller (NC). As the name implies cloud controller machine acts as a controlling node. Actual virtual machines will be running on node controllers. You can add node controllers as your resource requirements increase. More complex and supported topologies are listed in the Ubuntu wiki. UEC by default use KVM as the virtualization technology.
- Easiest way to install UEC is to do a CD Install. Follow the instruction on the Ubuntu Wiki to get it installed.
- Select CLC/Walrus/CC/SC on one machine
- Install NC in the second machine
- With the default configuration, the number of instances you can start is very limited. Through the web based admin console, you can configure number of CPUs and memory that goes into small, medium and large instances. Medium instances by default is configured to have 2 CPUs. If your host computer have 8 CPU cores, the number of medium instances you can start is 4. The maximum number of virtual machines KVM support by default is 8 * number of CPU cores. If you’re having 8 cores, KVM can start 64 guests (assuming you have enough memory). So, we need to get this number intu Eucalyptus. On the node controller machine, edit
/etc/eucalyptus/eucalypus.confand addMAX_CORES="64". Or whatever the number applicable to your system. - Next, when you install a cloud controller on a computer residing in your LAN, it’ll add another DHCP server. When you start your instances they’ll start getting IPs from the main DHCP server in the LAN. Which is not what you probably want. To prevent this from happening, you have to blacklist MAC addresses generated by UEC. UEC generated MAC addresses begins with
d0::0d. Ubuntu wiki contains how to do this for dnsmasq. If you’re using dhcpd you can add,class "uec-members" { match pick-first-value (option agent.remote-id); } subclass "uec-members" d0:0d:00:00:00:00; subclass "uec-members" d0:0d:ff:ff:ff:ff; subnet ... { pool { deny members of "uec-members"; range 10.100.1.100 10.100.1.252; } }
Voila! You’re on your way to do great things on your private cloud!
UEC in Lucid Lynx
Ubuntu 10.04, code named Lucid Lynx, ships UEC with their server distro. UEC uses Eucalyptus 1.6.2 to provide a private cloud infrastructure.
Getting it to work in a production setting requires a considerable amount of effort because you’ll be facing undocumented issues. Here, effort refers to scanning through forums and mailing lists.
Still, for me the experience was much pleasant compared to fiddling with some proprietary crap acting as a black box. Although, the documentation for Eucalyptus still a bit rough around the edges; if all else fails you have the option of reading the source to find out the intended behaviour. If you use open source stuff in production I don’t have to say how much time this saves.
After some failed attempts to get this shit up and running, the bazzilion things you should not do when installing UEC turned out to be a useful experience. Doing a CD install, selecting to install cloud stuff from the menu takes you on a short path to finish line. Make sure you select a right topology for your installation.
All the nitty gritty details intentionally left out for a later post.