6.4. マルチセルオーバークラウドのデプロイ

以下のステージにより、マルチセルオーバークラウドをデプロイします。

  1. 基本的なオーバークラウドにおいて、デフォルトの最初のセルからパラメーター情報を抽出する。このセルは、オーバークラウドの再デプロイ後にグローバルコントローラーになります。
  2. セルにカスタムロールおよびフレーバーを設定する。
  3. セル固有のパラメーターで環境ファイルを作成する。
  4. 新しいセルスタックでオーバークラウドを再デプロイする。
注記
  • このプロセスにより、オーバークラウドにセルが 1 つ追加されます。オーバークラウドにデプロイする追加のセルごとに、これらのステップを繰り返します。
  • 以下の手順では、新しいセルの名前を cell1 としています。すべてのコマンドの名前を実際のセル名に置き換えてください。

前提条件

  • 必要な数のコントローラーノードおよびコンピュートノードで、基本的なオーバークラウドをデプロイしている。
  • 「マルチセルのデプロイメントで考慮すべき事項」 」で説明するように、マルチセルオーバークラウドの要件および制限を確認してください。

オーバークラウドからのパラメーター情報の抽出

  1. 新しいセル用に新たなディレクトリーを作成し、コンテンツを新しいディレクトリーにエクスポートします。以下に例を示します。

    $ source ~/stackrc
    (undercloud) $ mkdir cell1
    (undercloud) $ export DIR=cell1
  2. オーバークラウドからセル用の新たな環境ファイルに、EndpointMapHostsEntryAllNodesConfigGlobalConfig パラメーター、およびパスワード情報をエクスポートします。以下に例を示します。

    (undercloud) $ openstack overcloud cell export cell1 -o cell1/cell1-ctrl-input.yaml
    注記

    環境ファイルがすでに存在する場合は、--force-overwrite または -f オプションを指定してコマンドを実行します。

セルのカスタムロールの設定

  1. CellController ロールをロールデータのファイルに追加し、ファイルを再生成します。以下に例を示します。

    (undercloud) $ openstack overcloud roles generate --roles-path \
                   /usr/share/openstack-tripleo-heat-templates/roles \
                   -o $DIR/cell_roles_data.yaml Compute CellController

    CellController カスタムロールには、デフォルトの Compute ロールからのサービスおよび以下のサービスの追加設定が含まれます。

    • Galera データベース
    • RabbitMQ
    • nova-conductor
    • nova novnc proxy
    • nova metadata (NovaLocalMetadataPerCell パラメーターを設定した場合のみ)
  2. ネットワークをグローバルコントローラーとセル間で分離する場合は、作成したロールファイルでネットワークアクセスを設定します。以下に例を示します。

    name: Compute
     description: |
       Basic Compute Node role
     CountDefault: 1
     # Create external Neutron bridge (unset if using ML2/OVS without DVR)
     tags:
       - external_bridge
     networks:
       InternalApi:
         subnet: internal_api_cell1
       Tenant:
         subnet: tenant_subnet
       Storage:
         subnet: storage_cell1
    ...
    - name: CellController
       description: |
         CellController role for the nova cell_v2 controller services
       CountDefault: 1
       tags:
         - primary
         - controller
       networks:
         External:
           subnet: external_cell1
         InternalApi:
           subnet: internal_api_cell1
         Storage:
           subnet: storage_cell1
         StorageMgmt:
           subnet: storage_mgmt_cell1
         Tenant:
           subnet: tenant_subnet

フレーバーの設定およびセルへのノードのタグ付け

  1. cellcontroller フレーバーを作成し、セルに割り当てるノードをタグ付けします。以下に例を示します。

    (undercloud) $ openstack flavor create --id auto --ram 4096 --disk 40 --vcpus 1 cellcontroller
    (undercloud) $ openstack flavor set --property "cpu_arch"="x86_64" \
                    --property "capabilities:boot_option"="local" \
                    --property "capabilities:profile"="cellcontroller" \
                    --property "resources:CUSTOM_BAREMETAL=1" \
                    --property "resources:DISK_GB=0" \
                    --property "resources:MEMORY_MB=0" \
                    --property "resources:VCPU=0" \
                   cellcontroller
  2. セルに割り当てる各ノードを cellcontroller プロファイルにタグ付けします。

    (undercloud) $ openstack baremetal node set --property \
                   capabilities='profile:cellcontroller,boot_option:local' <NODE_UUID>

    <NODE_UUID> を、セルに割り当てるコンピュートノードの実際の ID に置き換えてください。

セルパラメーターを設定した環境ファイルの作成

  1. セルのディレクトリーに新しい環境ファイル /cell1/cell1.yaml を作成し、以下のパラメーターを追加します。

    resource_registry:
      # since the same networks are used in this example, the
      # creation of the different networks is omitted
      OS::TripleO::Network::External: OS::Heat::None
      OS::TripleO::Network::InternalApi: OS::Heat::None
      OS::TripleO::Network::Storage: OS::Heat::None
      OS::TripleO::Network::StorageMgmt: OS::Heat::None
      OS::TripleO::Network::Tenant: OS::Heat::None
      OS::TripleO::Network::Management: OS::Heat::None
      OS::TripleO::Network::Ports::OVNDBsVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
      OS::TripleO::Network::Ports::RedisVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
    
    parameter_defaults:
      # CELL Parameter to reflect that this is an additional CELL
      NovaAdditionalCell: True
    
      # mapping of the CellController flavor to the CellController role
      CellControllerFlavor: cellcontroller
    
      # The DNS names for the VIPs for the cell
      CloudName: cell1.ooo.test
      CloudNameInternal: cell1.internalapi.ooo.test
      CloudNameStorage: cell1.storage.ooo.test
      CloudNameStorageManagement: cell1.storagemgmt.ooo.test
      CloudNameCtlplane: cell1.ctlplane.ooo.test
    
      # Flavors used for the cell controller and computes
      OvercloudCellControllerFlavor: cellcontroller
      OvercloudComputeFlavor: compute
    
      # Number of controllers/computes in the cell
      CellControllerCount: 1
      ComputeCount: 1
    
      # Compute node name (must be unique)
      ComputeHostnameFormat: 'cell1-compute-%index%'
    
      # default gateway
      ControlPlaneStaticRoutes:
        - ip_netmask: 0.0.0.0/0
          next_hop: 192.168.24.1
          default: true
      DnsServers:
        - x.x.x.x

    実際のデプロイメントのニーズに合わせて、この例のパラメーター値を変更してください。

  2. ネットワーク設定によっては、セルにネットワークリソースを割り当てなければならない場合があります。ネットワークにセルを登録する必要がある場合は、以下のパラメーターを追加します。

    resource_registry:
      OS::TripleO::CellController::Net::SoftwareConfig: single-nic-vlans/controller.yaml
      OS::TripleO::Compute::Net::SoftwareConfig: single-nic-vlans/compute.yaml
  3. ネットワークをグローバルコントローラーとセル間で分離し、Compute メタデータ API をグローバルコントローラーではなく各セルで実行する場合は、以下のパラメーターを追加します。

    parameter_defaults:
       NovaLocalMetadataPerCell: True
    注記
    • このファイルのパラメーターにより、オーバークラウドはすべてのセルに単一のネットワークを使用するように制限されます。
    • コンピュートホストの名前は、全セルを通じて一意でなければなりません。
  4. network_data.yaml ファイルをコピーし、セル名に応じて名前を付けます。以下に例を示します。

    (undercloud) $ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml cell1/network_data-ctrl.yaml
  5. セルに再利用するネットワークコンポーネントの UUID を、新しいネットワークデータファイルに追加します。

    external_resource_network_id: [EXISTING_NETWORK_UUID]
    external_resource_subnet_id: [EXISTING_SUBNET_UUID]
    external_resource_segment_id: [EXISTING_SEGMENT_UUID]
    external_resource_vip_id: [EXISTING_VIP_UUID]

(オプション) セグメント化されたネットワーク用のネットワーク設定

ネットワークをグローバルコントローラーとコンピュートセル間で分離する場合は、routes.yaml 等の環境ファイルを作成し、セルのルーティング情報および仮想 IP アドレス (VIP) 情報を追加します。以下に例を示します。

parameter_defaults:
  InternalApiInterfaceRoutes:
    - destination: 172.17.2.0/24
      nexthop: 172.16.2.254
  StorageInterfaceRoutes:
    - destination: 172.17.1.0/24
      nexthop: 172.16.1.254
  StorageMgmtInterfaceRoutes:
    - destination: 172.17.3.0/24
      nexthop: 172.16.3.254

parameter_defaults:
  VipSubnetMap:
    InternalApi: internal_api_cell1
    Storage: storage_cell1
    StorageMgmt: storage_mgmt_cell1
    External: external_cell1

(オプション) エッジサイト用のネットワーク設定

複数のエッジサイトにコンピュートノードを分散するには、メインのコントローラーセル用に環境ファイルを 1 つ作成し、そのエッジサイトの各コンピュートセル用に個別の環境ファイルを作成します。

  • プライマリー環境ファイルで、コントローラーセルの ComputeCount パラメーターを 0 に設定します。このセルは、実際のコンピュートノードが含まれるエッジサイトのコンピュートセルとは別です。
  • コンピュートセルの環境ファイルに以下のパラメーターを追加して、外部仮想 IP ポートを無効にします。

    resource_registry:
      # Since the compute stack deploys only compute nodes ExternalVIPPorts are not required.
      OS::TripleO::Network::Ports::ExternalVipPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml

オーバークラウドのデプロイ

以下のいずれかを選択します。

マルチセルのデプロイメントと単一ネットワークの組み合わせ

overcloud deploy コマンドを実行して、新しいセルスタックを設定するのに作成した環境ファイルを追加します。以下に例を示します。

$ openstack overcloud deploy \
  --templates /usr/share/openstack-tripleo-heat-templates \
  --stack cell1 \
  -r $HOME/$DIR/cell_roles_data.yaml \
  -e $HOME/$DIR/cell1-ctrl_input.yaml \
  -e $HOME/$DIR/cell1.yaml
マルチセルのデプロイメントとセグメント化されたネットワークの組み合わせ

前のステップで作成した追加のネットワークデータ環境ファイルを指定して、overcloud deploy コマンドを実行します。

overcloud deploy コマンドの例を以下に示します。ここでは、セルのネットワークセグメントを指定するのに作成した環境ファイルを追加しています。実際にデプロイするセルの数および名前に合わせて、コマンドを編集します。

openstack overcloud deploy \
  --templates /usr/share/openstack-tripleo-heat-templates \
  --stack cell1-ctrl \
  -r $HOME/$DIR/cell_roles_data.yaml \
  -n $HOME/$DIR/cell1_routes.yaml \
  -n $HOME/$DIR/network_data-ctrl.yaml \
  -e $HOME/$DIR/cell1-ctrl-input.yaml \
  -e $HOME/$DIR/cell1.yaml
注記

エッジサイトにコンピュートセルをデプロイする場合は、それぞれのサイトで overcloud deploy コマンドを実行し、そのサイトの各コンピュートセルに対する環境ファイルおよび設定を指定します。