OpenStackの仮想ネットワーク管理機能「Quantum」の基本的な設定 4ページ

設定ファイルの編集:計算ノード

 ネットワークノードでは、制御ノードで設定したquantum.confおよびapi-paste.iniファイルの編集に加え、以下の設定が必要だ。

  • プラグインの設定
  • nova-computeの設定
  • sudoersファイルの設定
  • libvertdの設定

 プラグインの設定は、ネットワークノードの設定と同じく/linuxbridge/linuxbridge_conf.iniのみ編集が必要だ。これらは原則としてネットワークノードで設定したものと同じで構わない。

 続くnova-computeの設定だが、設定ファイルである/etc/nova.confの修正が必要だ。まず、「network_manager」項目をコメントアウトしておく。

# network_manager = nova.network.quantum.manager.QuantumManager

 次に、表3の項目について設定を変更しておく。

表3 nova.confで値を変更/追加すべき個所
設定項目
network_api_classnova.network.quantumv2.api.API
quantum_admin_username<管理用のユーザー名>
quantum_admin_password<管理用ユーザーのパスワード>
quantum_admin_auth_urlhttp://<Keystoneが稼働しているホスト名>:5000/v2.0/
quantum_auth_strategyKeystone
quantum_admin_tenant_name<管理用テナント名>
quantum_urlhttp://<Quantum Serverが稼働しているホスト名>:9696/
libvirt_vif_drivernova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver

 また、quantumユーザーがroot権限でコマンドを実行できるよう、ネットワークノードの場合と同様/etc/sudoersファイルに下記を追加しておく。

quantum ALL=(ALL)       NOPASSWD:ALL

 仮想化ソフトウェアのフロントエンドにlibvirtを利用している場合、その設定ファイルについても変更が必要だ。変更が必要なのは/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/hpet”,」の後に「”/dev/net/tun”,」を追加する。この個所は最終的に以下のようになる。

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",
]

 さらに、下記の太字の行についてもコメントアウトを外して有効にしておこう。

# The user ID for QEMU processes run by the system instance.
#user = "root"

# The group ID for QEMU processes run by the system instance.
#group = "root"

 最後に、「clear_emulator_capabilities」を「0」に設定しておく。

# If clear_emulator_capabilities is enabled, libvirt will drop all
# privileged capabilities of the QEmu/KVM emulator. This is enabled by
# default.
#
# Warning: Disabling this option means that a compromised guest can
# exploit the privileges and possibly do damage to the host.
#
# clear_emulator_capabilities = 1
clear_emulator_capabilities = 0  ←この行を追加する

 以上で設定は完了だ。libvirtdサービスおよびopenstack-nova-computeサービスを再起動して設定を反映させるとともに、プラグイン(quantum-linuxbridge-agent)サービスを稼働させておこう。

# service openstack-nova-compute restart
# service libvirtd restart
# service quantum-linuxbridge-agent start