6.4. マルチセルオーバークラウドのデプロイ
以下のステージにより、マルチセルオーバークラウドをデプロイします。
- 基本的なオーバークラウドにおいて、デフォルトの最初のセルからパラメーター情報を抽出する。このセルは、オーバークラウドの再デプロイ後にグローバルコントローラーになります。
- セルにカスタムロールおよびフレーバーを設定する。
- セル固有のパラメーターで環境ファイルを作成する。
- 新しいセルスタックでオーバークラウドを再デプロイする。
- このプロセスにより、オーバークラウドにセルが 1 つ追加されます。オーバークラウドにデプロイする追加のセルごとに、これらのステップを繰り返します。
-
以下の手順では、新しいセルの名前を
cell1
としています。すべてのコマンドの名前を実際のセル名に置き換えてください。
前提条件
- 必要な数のコントローラーノードおよびコンピュートノードで、基本的なオーバークラウドをデプロイしている。
- 「 「マルチセルのデプロイメントで考慮すべき事項」 」で説明するように、マルチセルオーバークラウドの要件および制限を確認してください。
オーバークラウドからのパラメーター情報の抽出
新しいセル用に新たなディレクトリーを作成し、コンテンツを新しいディレクトリーにエクスポートします。以下に例を示します。
source ~/stackrc
$ source ~/stackrc (undercloud) $ mkdir cell1 (undercloud) $ export DIR=cell1
Copy to Clipboard Copied! オーバークラウドからセル用の新たな環境ファイルに、
EndpointMap
、HostsEntry
、AllNodesConfig
、GlobalConfig
パラメーター、およびパスワード情報をエクスポートします。以下に例を示します。(undercloud) $ openstack overcloud cell export cell1 -o cell1/cell1-ctrl-input.yaml
(undercloud) $ openstack overcloud cell export cell1 -o cell1/cell1-ctrl-input.yaml
Copy to Clipboard Copied! 注記環境ファイルがすでに存在する場合は、
--force-overwrite
または-f
オプションを指定してコマンドを実行します。
セルのカスタムロールの設定
CellController
ロールをロールデータのファイルに追加し、ファイルを再生成します。以下に例を示します。(undercloud) $ openstack overcloud roles generate --roles-path \ /usr/share/openstack-tripleo-heat-templates/roles \ -o $DIR/cell_roles_data.yaml Compute CellController
(undercloud) $ openstack overcloud roles generate --roles-path \ /usr/share/openstack-tripleo-heat-templates/roles \ -o $DIR/cell_roles_data.yaml Compute CellController
Copy to Clipboard Copied! CellController
カスタムロールには、デフォルトのCompute
ロールからのサービスおよび以下のサービスの追加設定が含まれます。- Galera データベース
- RabbitMQ
-
nova-conductor
-
nova novnc proxy
-
nova metadata
(NovaLocalMetadataPerCell
パラメーターを設定した場合のみ)
ネットワークをグローバルコントローラーとセル間で分離する場合は、作成したロールファイルでネットワークアクセスを設定します。以下に例を示します。
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
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
Copy to Clipboard Copied!
フレーバーの設定およびセルへのノードのタグ付け
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
(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
Copy to Clipboard Copied! セルに割り当てる各ノードを
cellcontroller
プロファイルにタグ付けします。(undercloud) $ openstack baremetal node set --property \ capabilities='profile:cellcontroller,boot_option:local' <NODE_UUID>
(undercloud) $ openstack baremetal node set --property \ capabilities='profile:cellcontroller,boot_option:local' <NODE_UUID>
Copy to Clipboard Copied! <NODE_UUID>
を、セルに割り当てるコンピュートノードの実際の ID に置き換えてください。
セルパラメーターを設定した環境ファイルの作成
セルのディレクトリーに新しい環境ファイル /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
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
Copy to Clipboard Copied! 実際のデプロイメントのニーズに合わせて、この例のパラメーター値を変更してください。
ネットワーク設定によっては、セルにネットワークリソースを割り当てなければならない場合があります。ネットワークにセルを登録する必要がある場合は、以下のパラメーターを追加します。
resource_registry: OS::TripleO::CellController::Net::SoftwareConfig: single-nic-vlans/controller.yaml OS::TripleO::Compute::Net::SoftwareConfig: single-nic-vlans/compute.yaml
resource_registry: OS::TripleO::CellController::Net::SoftwareConfig: single-nic-vlans/controller.yaml OS::TripleO::Compute::Net::SoftwareConfig: single-nic-vlans/compute.yaml
Copy to Clipboard Copied! ネットワークをグローバルコントローラーとセル間で分離し、Compute メタデータ API をグローバルコントローラーではなく各セルで実行する場合は、以下のパラメーターを追加します。
parameter_defaults: NovaLocalMetadataPerCell: True
parameter_defaults: NovaLocalMetadataPerCell: True
Copy to Clipboard Copied! 注記- このファイルのパラメーターにより、オーバークラウドはすべてのセルに単一のネットワークを使用するように制限されます。
- コンピュートホストの名前は、全セルを通じて一意でなければなりません。
network_data.yaml ファイルをコピーし、セル名に応じて名前を付けます。以下に例を示します。
(undercloud) $ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml cell1/network_data-ctrl.yaml
(undercloud) $ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml cell1/network_data-ctrl.yaml
Copy to Clipboard Copied! セルに再利用するネットワークコンポーネントの 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]
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]
Copy to Clipboard Copied!
(オプション) セグメント化されたネットワーク用のネットワーク設定
ネットワークをグローバルコントローラーとコンピュートセル間で分離する場合は、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
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
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
Copy to Clipboard Copied!
オーバークラウドのデプロイ
以下のいずれかを選択します。
- マルチセルのデプロイメントと単一ネットワークの組み合わせ
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
$ 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
Copy to Clipboard Copied! - マルチセルのデプロイメントとセグメント化されたネットワークの組み合わせ
前のステップで作成した追加のネットワークデータ環境ファイルを指定して、
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
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
Copy to Clipboard Copied! 注記エッジサイトにコンピュートセルをデプロイする場合は、それぞれのサイトで
overcloud deploy
コマンドを実行し、そのサイトの各コンピュートセルに対する環境ファイルおよび設定を指定します。