openstack-manuals/doc/install-guide/section_nova-compute.xml
Matthew Kassawara 9e863fc2f3 Updated content for RDO Icehouse release packages
I made the following changes to update content for the RDO
Icehouse release packages:

1) Changed RDO repository package from
   rdo-release-icehouse-2.noarch.rpm to
   rdo-release-icehouse-3.noarch.rpm.
2) Added "python-glanceclient" to list of packages to install for
   glance.
3) Added "auth_protocol = http" and "auth_port = 35357" to
   glance-api.conf and glance-registry.conf.
4) Changed "rpc_backend = nova.openstack.common.rpc.impl_qpid" to
   "rpc_backend = qpid" in nova.conf on all nodes.
5) Removed "python-novaclient" from list of packages to install for
   neutron on the network node.
6) Added "python-neutronclient" to list of packages to install for
   neutron controller node.

Change-Id: I7f2456d5b3ece249abb774b0524fac7639d04ecb
Closes-Bug: #1312921
2014-04-25 20:47:26 -06:00

206 lines
12 KiB
XML

<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="nova-compute">
<title>Configure a compute node</title>
<para>After you configure the Compute service on the controller
node, you must configure another system as a compute node. The
compute node receives requests from the controller node and hosts
virtual machine instances. You can run all services on a single
node, but the examples in this guide use separate systems. This
makes it easy to scale horizontally by adding additional Compute
nodes following the instructions in this section.</para>
<para>The Compute service relies on a hypervisor to run virtual
machine instances. OpenStack can use various hypervisors, but this
guide uses KVM.</para>
<procedure>
<step>
<para>Install the Compute packages:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install nova-compute-kvm python-guestfs</userinput></screen>
<para os="ubuntu;debian">When prompted to create a
<literal>supermin</literal> appliance, respond
<userinput>yes</userinput>.</para>
<note os="debian">
<para>To use the meta-packages and install other components on
your compute node, such as OpenStack Networking and Ceilometer
agents, run this command:</para>
<screen><prompt>#</prompt> <userinput>apt-get install openstack-compute-node</userinput></screen>
<para>The controller node has the
<package>openstack-proxy-node</package> and
<package>openstack-toaster</package> meta-packages that
install <package>openstack-proxy-node</package> and
<package>openstack-toaster</package> at the same
time.</para>
</note>
<screen os="centos;rhel;fedora"><prompt>#</prompt> <userinput>yum install openstack-nova-compute</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-nova-compute kvm openstack-utils</userinput></screen>
</step>
<step os="debian">
<para>Respond to the prompts for <link
linkend="debconf-dbconfig-common">database
management</link>, <link linkend="debconf-keystone_authtoken"
><literal>[keystone_authtoken]</literal> settings</link>,
<link linkend="debconf-rabbitqm">RabbitMQ
credentials</link>, and <link linkend="debconf-api-endpoints"
>API endpoint</link> registration.</para>
</step>
<step os="ubuntu">
<para>For security reasons, the Linux kernel is not readable by
normal users which restricts hypervisor services such as qemu
and libguestfs. For details, see <link
xlink:href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725"
>this bug</link>. To make the current kernel readable, run:
<screen><prompt>#</prompt> <userinput>dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname -r)</userinput></screen>
To also enable this override for all future kernel updates, create the
file <filename>/etc/kernel/postinst.d/statoverride</filename>
containing:<programlisting language="bash">#!/bin/sh
version="$1"
# passing the kernel version is required
[ -z "${version}" ] &amp;&amp; exit 0
dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}</programlisting>
Remember to make the file executable:
<screen><prompt>#</prompt> <userinput>chmod +x /etc/kernel/postinst.d/statoverride</userinput></screen>
</para>
</step>
<step>
<para os="fedora;rhel;centos;opensuse;sles">Edit the
<filename>/etc/nova/nova.conf</filename> configuration file:
</para>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf database connection mysql://nova:<replaceable>NOVA_DBPASS</replaceable>@controller/nova</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://<replaceable>controller</replaceable>:5000</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_host <replaceable>controller</replaceable></userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_protocol http</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_port 35357</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_user nova</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_tenant_name service</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password <replaceable>NOVA_PASS</replaceable></userinput></screen>
<para os="ubuntu;debian">Edit the
<filename>/etc/nova/nova.conf</filename> configuration file and add these
lines to the appropriate sections:</para>
<programlisting os="ubuntu;debian" language="ini">[DEFAULT]
...
auth_strategy = keystone
...
[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://nova:NOVA_DBPASS@controller/nova
[keystone_authtoken]
auth_uri = http://<replaceable>controller</replaceable>:5000
auth_host = <replaceable>controller</replaceable>
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = <replaceable>NOVA_PASS</replaceable></programlisting>
</step>
<step os="fedora;rhel;centos;ubuntu;opensuse;sles">
<para os="fedora;rhel;centos">Configure the Compute service to use the
Qpid message broker by setting these configuration keys:</para>
<screen os="fedora;rhel;centos"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
DEFAULT rpc_backend qpid</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT qpid_hostname <replaceable>controller</replaceable></userinput></screen>
<para os="ubuntu">Configure the Compute service to use
the RabbitMQ message broker by setting these configuration
keys in the <literal>[DEFAULT]</literal> configuration group of
the <filename>/etc/nova/nova.conf</filename> file:</para>
<programlisting os="ubuntu" language="ini">[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
<para os="opensuse;sles">Configure the Compute service to use the RabbitMQ message broker
by setting these configuration keys:</para>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
DEFAULT rpc_backend nova.rpc.impl_kombu</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_host controller</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT rabbit_password <replaceable>RABBIT_PASS</replaceable></userinput></screen>
</step>
<step>
<para>Configure Compute to provide remote console access to instances.</para>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 10.0.0.31</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled True</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 10.0.0.31</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf \
DEFAULT novncproxy_base_url http://<replaceable>controller</replaceable>:6080/vnc_auto.html</userinput></screen>
<para os="ubuntu;debian">Edit
<filename>/etc/nova/nova.conf</filename> and add the following
keys under the
<literal>[DEFAULT]</literal>
section:</para>
<programlisting os="ubuntu;debian" language="ini">[DEFAULT]
...
my_ip = 10.0.0.31
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = 10.0.0.31
novncproxy_base_url = http://<replaceable>controller</replaceable>:6080/vnc_auto.html</programlisting>
</step>
<step>
<para>Specify the host that runs the Image Service.<phrase
os="ubuntu;debian"> Edit
<filename>/etc/nova/nova.conf</filename> file and add
these lines to the <literal>[DEFAULT]</literal>
section:</phrase></para>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf DEFAULT glance_host <replaceable>controller</replaceable></userinput></screen>
<programlisting os="ubuntu;debian" language="ini">[DEFAULT]
...
glance_host = <replaceable>controller</replaceable></programlisting>
</step>
<step>
<para>If you install Compute on a virtual machine for testing
purposes, you must determine whether your hypervisor and/or CPU
support nested hardware acceleration using the following
command:</para>
<screen><prompt>$</prompt> <userinput>egrep -c '(vmx|svm)' /proc/cpuinfo</userinput></screen>
<para>If this command returns a value of
<emphasis>one or greater</emphasis>, your hypervisor and/or CPU
support nested hardware acceleration which requires no
additional configuration.</para>
<para os="ubuntu;debian">If this command returns a value of
<emphasis>zero</emphasis>, your hypervisor and/or CPU do not
support nested hardware acceleration and
<literal>libvirt</literal> must use QEMU instead of KVM. Edit
the <literal>[libvirt]</literal> section in the
<filename>/etc/nova/nova-compute.conf</filename> file to modify
this key:</para>
<programlisting os="ubuntu;debian" language="ini">[libvirt]
...
virt_type = qemu</programlisting>
<para os="rhel;centos;fedora;sles;opensuse">If this command returns
a value of <emphasis>zero</emphasis>, your hypervisor and/or CPU
do not support nested hardware acceleration and
<literal>libvirt</literal> must use QEMU instead of KVM.
Configure <literal>libvirt</literal> to use QEMU:</para>
<screen os="rhel;centos;fedora;sles;opensuse"><prompt>#</prompt> <userinput>openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu</userinput></screen>
</step>
<step os="ubuntu">
<para>Remove the SQLite database created by the packages:</para>
<screen><prompt>#</prompt> <userinput>rm /var/lib/nova/nova.sqlite</userinput></screen>
</step>
<step>
<para os="fedora;rhel;centos;opensuse;sles">Start the Compute
service and configure it to start when the system
boots:</para>
<para os="ubuntu;debian">Restart the Compute service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>service nova-compute restart</userinput></screen>
<screen os="fedora;rhel;centos"><prompt>#</prompt> <userinput>service libvirtd start</userinput>
<prompt>#</prompt> <userinput>service messagebus start</userinput>
<prompt>#</prompt> <userinput>chkconfig libvirtd on</userinput>
<prompt>#</prompt> <userinput>chkconfig messagebus on</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-compute start</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-nova-compute on</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>service libvirtd start</userinput>
<prompt>#</prompt> <userinput>chkconfig libvirtd on</userinput>
<prompt>#</prompt> <userinput>service openstack-nova-compute start</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-nova-compute on</userinput></screen>
</step>
</procedure>
</section>