4. Compute Node インストール手順

Compute Node を構成します。

4.1. パッケージアップデート

パッケージのアップデートを行います。

$ sudo apt-get -y update
$ sudo apt-get -y upgrade
$ sudo apt-get -y dist-upgrade
$ sudo apt-get -y autoremove

4.2. ネットワーク設定

ネットワークの設定を行います。

$ sudo vim /etc/network/interfaces
 auto eth0
 iface eth0 inet static
     address 192.168.1.4
     netmask 255.255.255.0
     network 192.168.1.0
     broadcast 192.168.1.255

 auto eth1
 iface eth1 inet static
     address 192.168.2.4
     netmask 255.255.255.0
     network 192.168.2.0
     broadcast 192.168.2.255

 auto eth2
 iface eth2 inet dhcp

 $ sudo /etc/init.d/networking restart

4.3. NTP のインストール

各ノードの時刻がずれているとサービスが起動しません。時刻同期のため、NTP を使用します。

$ sudo apt-get -y install ntp

時刻同期先に任意のサーバを指定し、NTP を再起動します。

参考: NTPの使い方 : インターネットマルチフィード時刻情報サービス for Public

4.4. その他

その他ネットワーク関連パッケージ等のインストール及び設定を行います。

$ sudo apt-get -y install vlan bridge-utils
$ sudo vim /etc/sysctl.conf
net.ipv4.ip_forward を 1 に設定
$ sudo sysctl -w net.ipv4.ip_forward=1

4.5. KVM のインストール

KVM のインストールを行います。

$ sudo apt-get -y install kvm libvirt-bin pm-utils

4.5.1. /etc/libvirt/qemu.conf の設定

cgroup_device_acl に /dev/net/tun を追加します。

$ sudo vim /etc/libvirt/qemu.conf
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet","/dev/net/tun"
]

4.5.2. /etc/libvirt/libvirtd.conf の設定

ライブマイグレーション用に設定を変更します。

$ sudo vim /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

4.5.3. /etc/init/libvirt-bin.conf の設定

ライブマイグレーション用に設定を変更します。

$ sudo vim /etc/init/libvirt-bin.conf
env libvirtd_opts="-d -l"

4.5.4. /default/libvirt-bin の設定

ライブマイグレーション用に設定を変更します。

$ sudo vim /etc/default/libvirt-bin
libvirtd_opts="-d -l"

4.5.5. 不要なデバイスの削除

不要なデバイスを削除します。

$ sudo virsh net-destroy default
$ sudo virsh net-undefine default

4.5.6. サービス再起動

設定が完了したらサービスを再起動します。

$ sudo service libvirt-bin restart

4.6. Open vSwitch のインストール

Open vSwitch をインストールします。

$ sudo apt-get -y install openvswitch-switch openvswitch-datapath-dkms

4.6.1. ブリッジの作成

ネットワークノードとの通信用にブリッジを作成します。

$ sudo ovs-vsctl add-br br-int

4.7. Quantum のインストール

Quantum OVS Plugin をインストールします。

$ sudo apt-get -y install quantum-plugin-openvswitch-agent

4.7.1. /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini の設定

ここでは、接続先データベースの指定 と OVSセクションを編集します。

$ sudo vim /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
[DATABASE]
sql_connection = mysql://quantum:y7u8i9YUI@192.168.1.2/quantum

[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 192.168.2.4
enable_tunneling = True

4.7.2. /etc/quantum/quantum.conf の設定

RabbitMQ Server のアドレスを編集します。vhosts, ID, PASS などを変更している場合はそれらも合わせて修正します。

$ sudo vim /etc/quantum/quantum.conf
rabbit_host = 192.168.1.2

4.7.3. サービス再起動

設定が終わったらサービスの再起動を行います。

$ sudo service quantum-plugin-openvswitch-agent restart

4.8. Nova のインストール

nova-compute だけインストールします。

$ sudo apt-get -y install nova-compute-kvm

4.8.1. /etc/nova/api-paste.ini の設定

Keystone 連携用設定を行います。

$ sudo vim /etc/nova/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
auth_host = 192.168.1.2
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = y7u8i9YUI
signing_dirname = /tmp/keystone-signing-nova

4.8.2. /etc/nova/nova-compute.conf の設定

Nova の基本設定を行います。パk(ry

今回は VirtualBox 上に構築しているので libvirt_type を qemu にします。実機の場合は kvm で。

$ sudo vim /etc/nova/nova-compute.conf
[DEFAULT]
libvirt_type=qemu
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True

4.8.3. /etc/nova/nova.conf の設定

Nova の基本設定を行います。パk(ry

$ sudo vim /etc/nova/nova.conf
[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
s3_host=192.168.1.2
ec2_host=192.168.1.2
ec2_dmz_host=192.168.1.2
rabbit_host=192.168.1.2
cc_host=192.168.1.2
dmz_cidr=169.254.169.254/32
metadata_host=192.168.1.2
metadata_listen=0.0.0.0
nova_url=http://192.168.1.2:8774/v1.1/
sql_connection=mysql://nova:y7u8i9YUI@192.168.1.2/nova
ec2_url=http://192.168.1.2:8773/services/Cloud
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf

# Auth
use_deprecated_auth=false
auth_strategy=keystone
keystone_ec2_url=http://192.168.1.2:5000/v2.0/ec2tokens
# Imaging service
glance_api_servers=192.168.1.2:9292
image_service=nova.image.glance.GlanceImageService

# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.56.2:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=192.168.1.4
vncserver_listen=0.0.0.0

# Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.1.2:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=y7u8i9YUI
quantum_admin_auth_url=http://192.168.1.2:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver

# Compute #
compute_driver=libvirt.LibvirtDriver

# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900

4.8.4. サービス再起動と確認

Nova データベース 初期化後、各種 Nova サービスを再起動します。

$ for NOVA in `ls /etc/init.d/nov*` ; do sudo $NOVA restart ; done
$ sudo nova-manage service list
Binary           Host        Zone        Status     State Updated_At
nova-cert        srv         nova        enabled    :-)   2013-02-15 03:09:42
nova-consoleauth srv         nova        enabled    :-)   2013-02-15 03:09:42
nova-scheduler   srv         nova        enabled    :-)   2013-02-15 03:09:42
nova-compute     com         nova        enabled    :-)   2013-02-15 03:09:52