コンピュートノードのインストールと設定

コンピュートノードのインストールと設定

このセクションでは、コンピュートノードに Compute サービスをインストールして設定する方法を説明します。 Compute サービスでは、インスタンス すなわち 仮想マシン を配備する ハイパーバイザー が数種類サポートされています。簡単のため、この設定では、仮想マシン向けにハードウェア支援機能をサポートするコンピュートノードにおいて、KVM 拡張を持つ QEMU ハイパーバイザーを使用します。古いハードウェアでは、この設定では汎用的な QEMU ハイパーバイザーを使用します。これらの手順を少し修正するだけで、追加のコンピュートノードを用いて、お使いの環境を水平的にスケールできます。

注釈

このセクションは、このガイドにあるステップバイステップの手順に従い、最初のコンピュートノードを設定して来ていることを前提にしています。追加のコンピュートノードを設定したい場合、サンプルアーキテクチャー セクションの最初のコンピュートノードと同じ方法で準備します。追加のコンピュートノードは、それぞれ一意な IP アドレスを必要とします。

コンポーネントのインストールと設定

注釈

設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...) は、保持すべきデフォルトの設定オプションを意味します。

  1. パッケージをインストールします。

    # apt install nova-compute
    
  1. /etc/nova/nova.conf ファイルを編集し、以下の作業をすべて行います。

    • [DEFAULT] セクションに、RabbitMQ メッセージキューのアクセス方法を設定します。

      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      RABBIT_PASSRabbitMQopenstack アカウント用に選択したパスワードで置き換えます。

    • [api][keystone_authtoken] セクションに、Identity サービスへのアクセス方法を設定します。

      [api]
      # ...
      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/lib/nova/tmp
      
    • パッケージ作成のバグがあるため、 [DEFAULT] セクションから log_dir オプションを削除します。
    • In the [placement] section, configure the Placement API:

      [placement]
      # ...
      os_region_name = RegionOne
      project_domain_name = Default
      project_name = service
      auth_type = password
      user_domain_name = Default
      auth_url = http://controller:35357/v3
      username = placement
      password = PLACEMENT_PASS
      

      Replace PLACEMENT_PASS with the password you choose for the placement user in the Identity service. Comment out any other options in the [placement] section.

インストールの最終作業

  1. お使いのコンピュートノードが仮想マシンのハードウェア支援機能をサポートするかどうかを確認します。

    $ egrep -c '(vmx|svm)' /proc/cpuinfo
    

    このコマンドが 1 以上 の値を返した場合、お使いのコンピュートノードはハードウェア支援機能をサポートしており、通常は追加の設定は必要ありません。

    このコマンドが 0 を返す場合、お使いのコンピュートノードはハードウェア支援機能をサポートしていません。libvirt が KVM の代わりに QEMU を使用するように設定する必要があります。

    • /etc/nova/nova-compute.conf ファイルの [libvirt] セクションを以下のように編集します。

      [libvirt]
      # ...
      virt_type = qemu
      
  1. Compute Service を再起動します。

    # service nova-compute restart
    

注釈

nova-compute サービスが起動しない場合、/var/log/nova/nova-compute.log を確認します。AMQP server on controller:5672 is unreachable というエラーメッセージは、コントローラーノードにあるファイアウォールが 5672 番ポートへのアクセスを遮断していることを意味します。コントローラーノードにおいて 5672 番ポートが開いていることを確認してから、コンピュートノードにおいて nova-compute サービスを再起動します。

Add the compute node to the cell database

重要

Run the following commands on the controller node.

  1. Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database:

    $ . admin-openrc
    
    $ openstack hypervisor list
    +----+---------------------+-----------------+-----------+-------+
    | ID | Hypervisor Hostname | Hypervisor Type | Host IP   | State |
    +----+---------------------+-----------------+-----------+-------+
    |  1 | compute1            | QEMU            | 10.0.0.31 | up    |
    +----+---------------------+-----------------+-----------+-------+
    
  2. Discover compute hosts:

    # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
    
    Found 2 cell mappings.
    Skipping cell0 since it does not contain hosts.
    Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
    Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
    Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
    Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
    

    注釈

    When you add new compute nodes, you must run nova-manage cell_v2 discover_hosts on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in /etc/nova/nova.conf:

    [scheduler]
    discover_hosts_in_cells_interval = 300
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.