How to setup Debian on scale-out Power Servers as an OpenStack Compute Node

In this article, let us see how to use the Power scale-out servers for Linux, running Debian LE (ppc64el), as an OpenStack compute node. Thanks to my colleague Sudipta Biswas, who helped me to put this together.

We’ll use the latest Debian Jessie build. You can get the dvd iso of the daily build here. If you prefer to use network install, then the required images are available here.

For detailed steps on the OS installation you can refer to the following links

The steps mentioned in the links are specific to Ubuntu, but applies to Debian as well.

Prepare the Compute Node to run Guests

As of this writing, libvirt, which is available from the default jessie repos does not have all the required architecture specific patches. Hence, install libvirt from experimental repo.

$sudo echo “deb http://ftp.debian.org/debian experimental main” >> /etc/apt/sources.list

$sudo apt-get install -t experimental libvirt-bin qemu

Before you can start any guest, you need to turn of symmetric multi-threading (SMT) in the host.

$sudo ppc64_cpu –smt=off

Restart libvirt daemon

$sudo service libvirtd restart

It is advisable to create an initialization script to turn off SMT before before starting libvirt daemon.

Setup OpenStack Compute on the Compute Node

By default all openstack packages on Debian LE are from Icehouse.

You should have the OpenStack controller details like IP, Nova auth server and password, Rabbit Host, Rabbit username and password, Neutron Server and other details handy.

Install nova-compute package. This will install nova-common, python-nova, python-libvirt, nova-compute-qemu as additional packages.

$sudo apt-get install nova-compute

This opens a configuration UI showing the following options one after the other. You’ll need to provide OpenStack controller details.
Do you want to setup a Nova DB – Say No.

IP address of Rabbit Host: <IP/hostname of the Rabbit host>

Username of the Rabbit server: <Rabbit username>

Password for Rabbit server: <Rabbit password>

Nova Auth server: <IP/hostname of the controller>

Auth password: <Nova auth password(admin_password)>

Neutron server URL: <IP/hostname of the controller>

Neutron admin password: <Neutron admin password (neutron_admin_password)>

API services for Nova: <Choose Metadata>

My_ip: <The IP of this compute node>

Following things have to be manually edited in the nova.conf:

neutron_admin_tenant_name = <<tenant_name>
neutron_admin_username = <neutron_username>
neutron_admin_auth_url = http://controller_ip:35357/v2.0
glance_api_servers = <Controller_ip>:9292
glance_host = <Controller_ip>

Additionally, include the following entries in the nova.conf file.

[libvirt]
virt_type = kvm
cpu_mode = none
[spice]
enabled = false

If you plan to use VNC, then enable the vnc settings accordingly.

Start nova-compute service
$sudo service nova-compute start

This should start up the Nova services on the host. On successful registration:

nova-manage service list should show the hypervisor registered with a :-)

Setup Neutron agent on the Compute Node

Install neutron-plugin-openvswitch-agent
$sudo apt-get install neutron-plugin-openvswitch-agent

This opens a configuration UI. Again you will be required to enter controller specific details

Do you want to setup neutron DB: No.

Rabbit Server: <IP/hostname of the Rabbit host>

Rabbit username: <Rabbit username>

Rabbit password: <Rabbit password>

Auth server: <Neutron Auth Server IP/hostname>

Auth password: <Neutron auth password>

Neutron Plugin: ML2.

If you have enabled tunneling, ensure that the tunnel_type is consistent between the controller and the /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini

From the Controller, verify that the neutron-agent works fine by issuing

neutron agent-list

Also checkĀ  /var/log/neutron/server.log in the Controller for any errors reported from the agent.

Install Additional Packages on the Compute Node

Install additional required packages for Guest image configuration

$sudo apt-get install libguestfs0 libguestfs-tools python-guestfs

Create Glance Image

glance image-create –name=ubuntu –is-public=true –disk-format=raw –container-format=bare –file /root/vivid-server-cloudimg-ppc64el-disk1.img –property architecture=ppc64

Update the image property for hw_video_model to vga.

glance image-update ubuntu –property hw_video_model=vga

Now you can deploy the VM from the OpenStack dashboard.

This should give you a fair idea about adding Power servers running Debian into your OpenStack environment. Hope this helps.

Pradipta Kumar Banerjee

I'm a Cloud and Linux/ OpenSource enthusiast, with 16 years of industry experience at IBM. You can find more details about me here - Linkedin

You may also like...