Atom feed of this document
  
 

 Configure a compute node

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.

The Compute service relies on a hypervisor to run virtual machine instances. OpenStack can use various hypervisors, but this guide uses KVM.

  1. Install the Compute packages:

    # apt-get install nova-compute-kvm python-guestfs

    When prompted to create a supermin appliance, respond yes.

  2. For security reasons, the Linux kernel is not readable by normal users which restricts hypervisor services such as qemu and libguestfs. For details, see this bug. To make the current kernel readable, run:

    # dpkg-statoverride  --update --add root root 0644 /boot/vmlinuz-$(uname -r)

    To also enable this override for all future kernel updates, create the file /etc/kernel/postinst.d/statoverride containing:

    #!/bin/sh
    version="$1"
    # passing the kernel version is required
    [ -z "${version}" ] && exit 0
    dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}

    Remember to make the file executable:

    # chmod +x /etc/kernel/postinst.d/statoverride

  3. Edit the /etc/nova/nova.conf configuration file and add these lines to the appropriate sections:

    [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://controller:5000
    auth_host = controller
    auth_port = 35357
    auth_protocol = http
    admin_tenant_name = service
    admin_user = nova
    admin_password = NOVA_PASS
  4. Configure the Compute service to use the RabbitMQ message broker by setting these configuration keys in the [DEFAULT] configuration group of the /etc/nova/nova.conf file:

    [DEFAULT]
    ...
    rpc_backend = rabbit
    rabbit_host = controller
    rabbit_password = RABBIT_PASS
  5. Configure Compute to provide remote console access to instances.

    Edit /etc/nova/nova.conf and add the following keys under the [DEFAULT] section:

    [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://controller:6080/vnc_auto.html
  6. Specify the host that runs the Image Service. Edit /etc/nova/nova.conf file and add these lines to the [DEFAULT] section:

    [DEFAULT]
    ...
    glance_host = controller
  7. 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:

    $ egrep -c '(vmx|svm)' /proc/cpuinfo

    If this command returns a value of one or greater, your hypervisor and/or CPU support nested hardware acceleration which requires no additional configuration.

    If this command returns a value of zero, your hypervisor and/or CPU do not support nested hardware acceleration and libvirt must use QEMU instead of KVM. Edit the [libvirt] section in the /etc/nova/nova-compute.conf file to modify this key:

    [libvirt]
    ...
    virt_type = qemu
  8. Remove the SQLite database created by the packages:

    # rm /var/lib/nova/nova.sqlite
  9. Restart the Compute service:

    # service nova-compute restart
Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page

loading table of contents...