このセクションでは、コンピュートノードに Compute サービスをインストールして設定する方法を説明します。 Compute サービスでは、インスタンス すなわち 仮想マシン を配備する ハイパーバイザー が数種類サポートされています。簡単のため、この設定では、仮想マシン向けにハードウェア支援機能をサポートするコンピュートノードにおいて、KVM 拡張を持つ QEMU ハイパーバイザーを使用します。古いハードウェアでは、この設定では汎用的な QEMU ハイパーバイザーを使用します。これらの手順を少し修正するだけで、追加のコンピュートノードを用いて、お使いの環境を水平的にスケールできます。
注釈
このセクションは、このガイドにあるステップバイステップの手順に従い、最初のコンピュートノードを設定して来ていることを前提にしています。追加のコンピュートノードを設定したい場合、サンプルアーキテクチャー セクションの最初のコンピュートノードと同じ方法で準備します。追加のコンピュートノードは、それぞれ一意な IP アドレスを必要とします。
注釈
設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...
) は、保持すべきデフォルトの設定オプションを意味します。
パッケージをインストールします。
# zypper install openstack-nova-compute genisoimage qemu-kvm libvirt
/etc/nova/nova.conf
ファイルを編集し、以下の作業をすべて行います。
[DEFAULT]
セクションで、 compute API とメタデータ API のみを有効にします。
[DEFAULT]
...
enabled_apis = osapi_compute,metadata
[DEFAULT]
セクションに compute_driver
を設定します。
[DEFAULT]
# ...
compute_driver = libvirt.LibvirtDriver
[DEFAULT]
セクションに、RabbitMQ
メッセージキューのアクセス方法を設定します。
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller
RABBIT_PASS
を RabbitMQ
の openstack
アカウント用に選択したパスワードで置き換えます。
[DEFAULT]
セクションと [keystone_authtoken]
セクションに、Identity サービスへのアクセス方法を設定します。
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
NOVA_PASS
は Identity サービスで nova
ユーザー用に選択したパスワードで置き換えます。
注釈
[keystone_authtoken]
セクションにある他のオプションは、コメントアウトまたは削除します。
[DEFAULT]
セクションに my_ip
オプションを設定します。
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
MANAGEMENT_INTERFACE_IP_ADDRESS
はコンピュートノードの管理ネットワークインターフェースの IP アドレスに置き換えます。一般的に、サンプルアーキテクチャー にある 1 番目のノードは 10.0.0.31 です。
[DEFAULT]
セクションで、Networking サービスのサポートを有効にします。
[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
注釈
デフォルトで、Compute は組み込みのファイアウォールサービスを使用します。Networking サービスがファイアウォールサービスを提供するため、nova.virt.firewall.NoopFirewallDriver
ファイアウォールドライバーを使用して、Compute のファイアウォールサービスを無効化する必要があります。
[vnc]
セクションで、リモートコンソールアクセスを有効にし、その設定を行います。
[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
サーバーコンポーネントは、すべての IP アドレスをリッスンします。プロキシーコンポーネントはコンピュートノードの管理インターフェースの IP アドレスのみをリッスンします。ベース URL は、Web ブラウザーがこのコンピュートノードにあるインスタンスのリモートコンソールにアクセスするための場所を示します。
注釈
リモートコンソールにアクセスする Web ブラウザーをホスト名 controller
を解決できないホストで使用している場合、controller
をコントローラーノードの管理インターフェースの IP アドレスに置き換える必要があります。
[glance]
セクションで、Image サービス API の場所を設定します。
[glance]
...
api_servers = http://controller:9292
[oslo_concurrency]
セクションにロックパスを設定します。
[oslo_concurrency]
...
lock_path = /var/run/nova
カーネルモジュール nbd
が読み込まれていることを確認します。
# modprobe nbd
/etc/modules-load.d/nbd.conf
ファイルに nbd
を追加することで、確実に、モジュールが起動時に毎回読み込まれるようにします。
お使いのコンピュートノードが仮想マシンのハードウェア支援機能をサポートするかどうかを確認します。
$ egrep -c '(vmx|svm)' /proc/cpuinfo
このコマンドが 1 以上
の値を返した場合、お使いのコンピュートノードはハードウェア支援機能をサポートしており、通常は追加の設定は必要ありません。
このコマンドが 0
を返す場合、お使いのコンピュートノードはハードウェア支援機能をサポートしていません。libvirt
が KVM の代わりに QEMU を使用するように設定する必要があります。
/etc/nova/nova.conf
ファイルの [libvirt]
セクションを以下のように編集します。
[libvirt]
...
virt_type = qemu
Compute サービスおよび関連するサービスを起動します。また、それらのサービスがシステム起動時に自動的に起動するよう設定します。
# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service
注釈
nova-compute
サービスが起動しない場合、/var/log/nova/nova-compute.log
を確認します。AMQP server on controller:5672 is unreachable
というエラーメッセージは、コントローラーノードにあるファイアウォールが 5672 番ポートへのアクセスを遮断していることを意味します。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.