このエントリーをはてなブックマークに追加

3.2.6. Cloud compute (Nova)のインストール

Novaはサブコンポーネントがいくつもありそれら全てをあわせてNovaと呼びます。

3.2.6.1. Novaのインストール

nova-computeはControllerNodeには必要ありませんがオールインワンとしての利用、仮想マシンのリソースとしても利用する場合はインストールします。
# yum install -y openstack-nova

3.2.6.2. Novaの設定

Novaのコンフィグに設定できる項目は数多く有ります。
設定するファイルは nova.conf nova-compute.conf api-paste.ini の3つです。
要件にあったものを設定する必要はありますがまずは動作するものをまずは設定しましょう。
設定項目に関しては後で記述していますので環境にあった設定を模索してみて下さい。

3.2.6.2.1. コンフィグのバックアップ

# cp -a /etc/nova /etc/nova_bak

3.2.6.2.2. nova.confの設定

適宜IPアドレスなどは環境にあったものに変更してください。
my_ip はコンピュートノードそれぞれのアドレスに設定する必要があります。
あと、バグなのか memcached_servers の設定を行うとnoVNCを利用することができませんので注意して下さい。
# vi /etc/nova/nova.conf
[DEFAULT]
verbose=true
my_ip=192.168.10.50
allow_admin_api=true
api_paste_config=/etc/nova/api-paste.ini
instances_path=/var/lib/nova/instances
compute_driver=libvirt.LibvirtDriver
rootwrap_config=/etc/nova/rootwrap.conf
multi_host=true
send_arp_for_ha=true
libvirt_nonblocking=True
libvirt_inject_partition=-1

#behavior of an instance of when the host has been started
start_guests_on_host_boot=true
resume_guests_state_on_host_boot=true

#logging and other administrative
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lib/nova/tmp

#network
libvirt_use_virtio_for_bridges = True
network_manager=nova.network.manager.FlatDHCPManager
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
public_interface=br100
flat_interface=eth0
flat_network_bridge=br100
fixed_range=10.0.0.0/24
flat_network_dhcp_start=10.0.0.2
network_size=255
force_dhcp_release = True
injected_network_template = /usr/share/nova/interfaces.template
flat_injected=false
use_ipv6=false

#vnc
novncproxy_base_url=http://192.168.10.60:6080/vnc_auto.html
xvpvncproxy_base_url=http://192.168.10.60:6081/console
vncserver_proxyclient_address=127.0.0.1
vncserver_listen=0.0.0.0
vnc_keymap=ja

#scheduler
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler

#object
s3_host=stack01
use_cow_images=yes

#glance
image_service=nova.image.glance.GlanceImageService
glance_api_servers=stack01:9292

#qpid
rpc_backend = nova.openstack.common.rpc.impl_qpid
qpid_hostname=stack01
qpid_port=5672
#qpid_username=
#qpid_password=

#nova database
sql_connection=mysql://nova:password@stack01/nova

#use cinder
#enabled_apis=ec2,osapi_compute,metadata
enabled_apis=ec2,osapi_compute
volume_api_class=nova.volume.cinder.API

#keystone
auth_strategy=keystone
keystone_ec2_url=http://stack01:5000/v2.0/ec2tokens

#firewall
firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver

#memcache
#memcached_servers=stack01:11211

3.2.6.2.3. nova-compute.confの設定

仮想マシンを起動するハイパーバイザー、コンテナを指定します。
ここではKVMを指定します。他にはlxcやxenなども選択できます。
# vi /etc/nova/nova-compute.conf
[default]
libvirt_type=kvm

3.2.6.2.4. api-paste.iniの設定

Keystone連携を行うための設定を行います。
[filter:authtoken]の項目に追加します。
# vi /etc/nova/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = stack01
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = nova
signing_dirname = /tmp/keystone-signing-nova
auth_version = v2.0

3.2.6.3. データベースの作成

Novaが利用するデータベースを作成します。
Keystoneのデータベースを設定するためのユーザ、パスワードはMySQLをインストールした時のものですので注意して下さい。
データベース名nova、ユーザ名nova、パスワードはpasswordとしているため適切なものへ変更してください。
ホスト名も同様にstack01としていますので変更が必要であればおこなって下さい。
# MYSQL_PASS_NOVA=password
# NOVA_CONTOLLER_HOSTNAME=stack01
# mysql -uroot -pnova -e "drop database if exists nova;"
# mysql -uroot -pnova -e "create database nova;"
# mysql -uroot -pnova -e "grant all privileges on nova.* to 'nova'@'%' identified by '$MYSQL_PASS_NOVA';"
# mysql -uroot -pnova -e "grant all privileges on nova.* to 'nova'@'localhost' identified by '$MYSQL_PASS_NOVA';"
# mysql -uroot -pnova -e "grant all privileges on nova.* to 'nova'@'$NOVA_CONTOLLER_HOSTNAME' identified by '$MYSQL_PASS_NOVA';"
# nova-manage db sync

3.2.6.4. プロセスの起動

novaのサブプロセスは多いためfor文で起動します。自動起動の設定も行います。
但し、nova-computeの起動はOS起動時にうまく行かないことが多いためOS起動時はキチンと確認して下さい。
OS起動時でなくてもCentOS6.4では x not in list というエラーが出て起動しないことがありました。
何度も起動スクリプトを実行すると起動しますのでそのようにします。
起動した後は特に不具合は無いみたいです。
# for proc in api metadata-api cert network compute objectstore console scheduler consoleauth xvpvncproxy conductor
do
  service openstack-nova-$proc restart
done
# for proc in api metadata-api cert network compute objectstore console scheduler consoleauth xvpvncproxy conductor
do
  chkconfig openstack-nova-$proc on
done

3.2.6.4.1. プロセスの確認

以下のようにプロセスが起動していれば問題ありません。

# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-cert        stack01                              internal         enabled    :-)   2013-03-12 07:01:57
nova-console     stack01                              internal         enabled    :-)   2013-03-12 07:01:58
nova-scheduler   stack01                              internal         enabled    :-)   2013-03-12 07:01:48
nova-consoleauth stack01                              internal         enabled    :-)   2013-03-12 07:01:48
nova-conductor   stack01                              internal         enabled    :-)   2013-03-12 07:01:48
nova-network     stack01                              internal         enabled    :-)   2013-03-12 07:01:48
nova-compute     stack01                              nova             enabled    :-)   2013-03-12 07:01:57
Novaのインストールは以上です。
ここまでで仮想マシンなどは起動可能ですがやはりGUIで操作できたほうが便利ですのでDashboardもインストールしましょう。