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.
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.
virt_type = kvm
cpu_mode = none
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
$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
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.