このセクションでは、コンピュートノードに Compute サービスをインストールして設定する方法を説明します。 Compute サービスでは、インスタンス すなわち 仮想マシン を配備する ハイパーバイザー が数種類サポートされています。簡単のため、この設定では、仮想マシン向けにハードウェア支援機能をサポートするコンピュートノードにおいて、KVM 拡張を持つ QEMU ハイパーバイザーを使用します。古いハードウェアでは、この設定では汎用的な QEMU ハイパーバイザーを使用します。これらの手順を少し修正するだけで、追加のコンピュートノードを用いて、お使いの環境を水平的にスケールできます。
注釈
このセクションは、このガイドにあるステップバイステップの手順に従い、最初のコンピュートノードを設定して来ていることを前提にしています。追加のコンピュートノードを設定したい場合、サンプルアーキテクチャー セクションの最初のコンピュートノードと同じ方法で準備します。追加のコンピュートノードは、それぞれ一意な IP アドレスを必要とします。
注釈
設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...) は、保持すべきデフォルトの設定オプションを意味します。
パッケージをインストールします。
# yum install openstack-nova-compute sysfsutils
/etc/nova/nova.conf ファイルを編集し、以下の作業をすべて行います。
[DEFAULT] と [oslo_messaging_rabbit] セクションに、RabbitMQ メッセージキューのアクセス方法を設定します。
[DEFAULT]
...
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
RABBIT_PASS を RabbitMQ の openstack アカウント用に選択したパスワードで置き換えます。
[DEFAULT] セクションと [keystone_authtoken] セクションに、Identity サービスへのアクセス方法を設定します。
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = 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]
...
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
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 service の場所を設定します。
[glance]
...
host = controller
[oslo_concurrency] セクションにロックパスを設定します。
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp
(オプション) トラブルシューティングしやすくするために、冗長ロギングを [DEFAULT] セクションで有効にします。
[DEFAULT]
...
verbose = True
お使いのコンピュートノードが仮想マシンのハードウェア支援機能をサポートするかどうかを確認します。
$ 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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.