6.6. 分散コントロールプレーンの検証
分散コントロールプレーンの作成を確認します。
手順
ワーカーノードに基づいて、サービス Pod が正しい AZ で実行されていることを確認します。
$ oc get pods -o wide -l service=<service_name>特定のサービスのサービス Pod を確認するには、
<service_name>をcinder、glance、またはmanilaに置き換えます。たとえば、
worker-6ノードが AZ3 にある場合、次のコマンドの出力によりcinder-dc29b-volume-az3-0Pod が AZ3 で正しく実行されていることがわかります。$ oc get pods -o wide -l service=cinder NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cinder-dc29b-api-0 2/2 Running 0 4m24s 192.172.41.120 worker-7 <none> <none> cinder-dc29b-api-1 2/2 Running 0 4m48s 192.172.28.60 worker-5 <none> <none> cinder-dc29b-api-2 2/2 Running 0 5m5s 192.172.24.237 worker-0 <none> <none> cinder-dc29b-backup-0 2/2 Running 0 5m9s 192.172.24.234 worker-0 <none> <none> cinder-dc29b-scheduler-0 2/2 Running 0 5m5s 192.172.41.118 worker-7 <none> <none> cinder-dc29b-volume-az1-0 2/2 Running 0 5m9s 192.172.32.150 worker-2 <none> <none> cinder-dc29b-volume-az2-0 2/2 Running 0 5m9s 192.172.16.33 worker-3 <none> <none> cinder-dc29b-volume-az3-0 2/2 Running 0 5m8s 192.172.21.170 worker-6 <none> <none>
openstackclientPod へのリモートシェル接続を開きます。$ oc rsh -n openstack openstackclient内部サービスエンドポイントが各サービスに登録されていることを確認します。
$ openstack endpoint list -c 'Service Name' -c Interface -c URL --service glance +--------------+-----------+---------------------------------------------------------------+ | Service Name | Interface | URL | +--------------+-----------+---------------------------------------------------------------+ | glance | internal | https://glance-internal.openstack.svc | | glance | public | https://glance-default-public-openstack.apps.ostest.test.metalkube.org | +--------------+-----------+---------------------------------------------------------------+Red Hat Ceph Storage で Block Storage サービス (cinder) を使用している場合は、各アベイラビリティーゾーン (AZ) で
cinder-volumeサービスが実行されていることを確認します。$ openstack volume service list +------------------+--------------------------------+------+---------+-------+----------------------------+ | Binary | Host | Zone | Status | State | Updated At | +------------------+--------------------------------+------+---------+-------+----------------------------+ | cinder-scheduler | cinder-dc29b-scheduler-0 | az1 | enabled | up | 2025-05-21T14:07:11.000000 | | cinder-backup | cinder-dc29b-backup-0 | az1 | enabled | up | 2025-05-21T14:07:18.000000 | | cinder-volume | cinder-dc29b-volume-az1-0@ceph | az1 | enabled | up | 2025-05-21T14:07:13.000000 | | cinder-volume | cinder-dc29b-volume-az2-0@ceph | az2 | enabled | up | 2025-05-21T14:07:16.000000 | | cinder-volume | cinder-dc29b-volume-az3-0@ceph | az3 | enabled | up | 2025-05-21T14:07:15.000000 | +------------------+--------------------------------+------+---------+-------+----------------------------+サードパーティーのストレージで Block Storage サービスを使用している場合は、次の点を確認してください。
AZ でボリュームを作成できることを確認します。
$ openstack volume create --size 1 --availability-zone az1 vol_az1 $ openstack volume create --size 1 --availability-zone az2 vol_az2 $ openstack volume create --size 1 --availability-zone az3 vol_az3管理者として、次の種別のみを渡すことで特定の AZ にボリュームを作成できることを確認します。
$ openstack volume create --size 1 --type glance-ontap-az1 vol_az1_by_type $ openstack volume create --size 1 --type glance-ontap-az2 vol_az2_by_type $ openstack volume create --size 1 --type glance-ontap-az3 vol_az3_by_type-
各
glanceタイプのボリュームが使用可能であることをチェックして作成されたことを確認してから、削除できます。
サードパーティーのストレージで Image サービス (glance) を使用している場合は、次の点を確認して AZ ごとにイメージの作成をテストします。
利用可能なストアを確認します。
$ glance stores-info +----------+----------------------------------------------------------------------------------+ | Property | Value | +----------+----------------------------------------------------------------------------------+ | stores | [{"id": "az1", "description": "AZ1 NetApp iscsi cinder backend", "default": | | | "true"}, {"id": "az2", "description": "AZ2 NetApp iscsi cinder backend"}, {"id": | | | "az3", "description": "AZ3 NetApp iscsi cinder backend"}] | +----------+----------------------------------------------------------------------------------+結果を確認するために、ストア関連のパラメーターを渡さずにイメージを作成します。
sh-5.1$ openstack image create --disk-format qcow2 --container-format bare --public --file ./cirros-0.5.2-x86_64-disk.img cirros-default +------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ | container_format | bare | | created_at | 2025-06-18T22:55:21Z | | disk_format | qcow2 | | file | /v2/images/10fcfc90-e178-4776-ac76-853a7082844b/file | | id | 10fcfc90-e178-4776-ac76-853a7082844b | | min_disk | 0 | | min_ram | 0 | | name | cirros-default | | owner | 439f0ee839144b4c8640b9153a596a30 | | properties | os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros-default', owner_specified.openstack.sha256='' | | protected | False | | schema | /v2/schemas/image | | status | queued | | tags | | | updated_at | 2025-06-18T22:55:21Z | | visibility | public | +------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ sh-5.1$イメージはデフォルトの AZ であるため、
az1に作成されます。sh-5.1$ openstack image show 10fcfc90-e178-4776-ac76-853a7082844b | grep stores | properties | os_hash_algo='sha512', os_hash_value='6b813aa46bb90b4da216a4d19376593fa3f4fc7e617f03a92b7fe11e9a3981cbe8f0959dbebe36225e5f53dc4492341a4863cac4ed1ee0909f3fc78ef9c3e869', os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros-default', owner_specified.openstack.sha256='', stores='az1' | sh-5.1$
イメージを作成し、パラメーターを渡してストア az1 に直接保存します。
$ glance image-create --disk-format raw --container-format bare --name cirros-test --file cirros-0.5.2-x86_64-disk.img --store az1 +------------------+----------------------------------------------------------------------------------+ | Property | Value | +------------------+----------------------------------------------------------------------------------+ | checksum | b874c39491a2377b8490f5f1e89761a4 | | container_format | bare | | created_at | 2025-06-18T22:47:10Z | | disk_format | raw | | id | 5073f3f0-e4ac-4cca-9883-fecade29a1f3 | | min_disk | 0 | | min_ram | 0 | | name | cirros-test | | os_hash_algo | sha512 | | os_hash_value | 6b813aa46bb90b4da216a4d19376593fa3f4fc7e617f03a92b7fe11e9a3981cbe8f0959dbebe3622 | | | 5e5f53dc4492341a4863cac4ed1ee0909f3fc78ef9c3e869 | | os_hidden | False | | owner | 439f0ee839144b4c8640b9153a596a30 | | protected | False | | size | 16300544 | | status | active | | stores | az1 | | tags | [] | | updated_at | 2025-06-18T22:48:00Z | | virtual_size | 16300544 | | visibility | shared | +------------------+----------------------------------------------------------------------------------+イメージを az2 にインポートします。
$ glance image-import 5073f3f0-e4ac-4cca-9883-fecade29a1f3 --stores az2 --import-method copy-image +-----------------------+----------------------------------------------------------------------------------+ | Property | Value | +-----------------------+----------------------------------------------------------------------------------+ | checksum | b874c39491a2377b8490f5f1e89761a4 | | container_format | bare | | created_at | 2025-06-18T22:47:10Z | | disk_format | raw | | id | 5073f3f0-e4ac-4cca-9883-fecade29a1f3 | | min_disk | 0 | | min_ram | 0 | | name | cirros-test | | os_glance_import_task | 7a141f7f-409a-4ea9-b66f-0658a83e907b | | os_hash_algo | sha512 | | os_hash_value | 6b813aa46bb90b4da216a4d19376593fa3f4fc7e617f03a92b7fe11e9a3981cbe8f0959dbebe3622 | | | 5e5f53dc4492341a4863cac4ed1ee0909f3fc78ef9c3e869 | | os_hidden | False | | owner | 439f0ee839144b4c8640b9153a596a30 | | protected | False | | size | 16300544 | | status | active | | stores | az1 | | tags | [] | | updated_at | 2025-06-18T22:48:00Z | | virtual_size | 16300544 | | visibility | shared | +-----------------------+----------------------------------------------------------------------------------+イメージが az1 と az2 のストアにあることを確認します。
sh-5.1$ openstack image show 5073f3f0-e4ac-4cca-9883-fecade29a1f3 | grep stores | properties | os_glance_failed_import='', os_glance_importing_to_stores='', os_hash_algo='sha512', os_hash_value='6b813aa46bb90b4da216a4d19376593fa3f4fc7e617f03a92b7fe11e9a3981cbe8f0959dbebe36225e5f53dc4492341a4863cac4ed1ee0909f3fc78ef9c3e869', os_hidden='False', stores='az1,az2' | sh-5.1$前の手順のイメージ ID を保存している az1 と az2 の Block Storage サービスボリュームを確認します。
sh-5.1$ openstack volume list --all | grep 5073f3f0-e4ac-4cca-9883-fecade29a1f3 | 713f25b2-accc-4f4f-b5ba-8c71e2fac3aa | image-5073f3f0-e4ac-4cca-9883-fecade29a1f3 | available | 1 | | | b1917ec2-2d8e-42cc-b58c-55db48f1e054 | image-5073f3f0-e4ac-4cca-9883-fecade29a1f3 | available | 1 | | sh-5.1$イメージをサポートする各ボリュームの AZ、タイプ、およびホストを確認します。
sh-5.1$ openstack volume show b1917ec2-2d8e-42cc-b58c-55db48f1e054 -c type -c availability_zone -c os-vol-host-attr:host +-----------------------+---------------------------------------------------------------+ | Field | Value | +-----------------------+---------------------------------------------------------------+ | availability_zone | az1 | | os-vol-host-attr:host | cinder-cbca0-volume-ontap-iscsi-az1-0@ontap#cinder_iscsi_pool | | type | glance-ontap-az1 | +-----------------------+---------------------------------------------------------------+ sh-5.1$ openstack volume show 713f25b2-accc-4f4f-b5ba-8c71e2fac3aa -c type -c availability_zone -c os-vol-host-attr:host +-----------------------+---------------------------------------------------------------+ | Field | Value | +-----------------------+---------------------------------------------------------------+ | availability_zone | az2 | | os-vol-host-attr:host | cinder-cbca0-volume-ontap-iscsi-az2-0@ontap#cinder_iscsi_pool | | type | glance-ontap-az2 | +-----------------------+---------------------------------------------------------------+ sh-5.1$
Red Hat Ceph Storage で Shared File Systems サービス (manila) を使用している場合は、各 AZ で
manila-shareサービスが実行されていることを確認します。$ openstack share service list +----+------------------+----------------------+------+---------+-------+----------------------------+ | ID | Binary | Host | Zone | Status | State | Updated At | +----+------------------+----------------------+------+---------+-------+----------------------------+ | 1 | manila-scheduler | hostgroup | nova | enabled | up | 2025-05-21T14:10:08.498066 | | 4 | manila-share | hostgroup@cephfs_az3 | az3 | enabled | up | 2025-05-21T14:10:04.973221 | | 7 | manila-share | hostgroup@cephfs_az1 | az1 | enabled | up | 2025-05-21T14:10:05.228611 | | 10 | manila-share | hostgroup@cephfs_az2 | az2 | enabled | up | 2025-05-21T14:10:04.724407 | +----+------------------+----------------------+------+---------+-------+----------------------------+Shared File Systems サービスをサードパーティー製ストレージで使用しており、DHSS が無効になっている場合は、次の点を確認してください。
管理者として共有種別を作成します。
$ openstack share type create nfs-multiaz False --extra-specs share_backend_name=nfs_az共有種別を確認します。
$ openstack share type list +--------------------------------------+--------------+------------+------------+--------------------------------------+-----------------------------+-------------+ | ID | Name | Visibility | Is Default | Required Extra Specs | Optional Extra Specs | Description | +--------------------------------------+--------------+------------+------------+--------------------------------------+-----------------------------+-------------+ | a63ecc00-33f5-4bd8-9d93-a1fb31f2fe79 | nfs-multiaz | public | False | driver_handles_share_servers : False | share_backend_name : nfs_az | None | +--------------------------------------+--------------+------------+------------+--------------------------------------+-----------------------------+-------------+管理者以外のユーザーとして以下のコマンドを実行できます。各 AZ に共有を作成します。
openstack share create nfs 1 --name nfsaz1 --availability-zone az1 openstack share create nfs 1 --name nfsaz2 --availability-zone az2 openstack share create nfs 1 --name nfsaz3 --availability-zone az3OpenStackControlPlaneCR のmanilaテンプレートに次の設定があるため、openstack share createコマンドでは--share-type nfs-multiazを渡す必要はありません。manilaAPI: customServiceConfig: | [DEFAULT] storage_availability_zone = az1,az2,az3 default_share_type = nfs-multiazdefault_share_typeフィールドが設定されていない場合は、openstack share createコマンドで--share-type nfs-multiazオプションを渡します。
共有とその AZ を確認します。
$ openstack share list +--------------------------------------+--------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+ | ID | Name | Size | Share Proto | Status | Is Public | Share Type Name | Host | Availability Zone | +--------------------------------------+--------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+ | ef1fa319-4661-4d18-880b-a24b5e708234 | nfsaz1 | 1 | NFS | available | False | nfs-multiaz | hostgroup@nfs_az1#n2_nvme_15T | az1 | | f91e1e59-e101-4e1f-8b92-fb49edd706cf | nfsaz2 | 1 | NFS | available | False | nfs-multiaz | hostgroup@nfs_az2#n2_nvme_15T | az2 | | 09c9f709-1cf6-4279-ba39-8c80669b118a | nfsaz3 | 1 | NFS | available | False | nfs-multiaz | hostgroup@nfs_az3#n2_nvme_15T | az3 | +--------------------------------------+--------+------+-------------+-----------+-----------+-----------------+-------------------------------+-------------------+共有の NFS パスを取得します。
例:
$ openstack share show nfsaz1 | grep path | | path = 10.0.0.42:/share_9afcc8c4_2a09_4d05_8cdc_f28eb58a3dff共有にアクセスするために、Compute サービス (nova) インスタンスに基づいて適切な IP 範囲へのアクセスを許可します。
$ openstack share access create nfsaz1 ip 10.0.0.0/24 --access-level rwCompute サービスをデプロイすると、次のようなコマンドを使用して共有をマウントできます。
例:
$ mount -t nfs 10.0.0.42:/share_<UUID> /mnt/share
Shared File Systems サービスをサードパーティー製ストレージで使用しており、DHSS が有効になっている場合は、次の点を確認してください。
OpenStack 管理者として、共有種別を作成します。
$ openstack share type create nfs-multiaz true --extra-specs share_backend_name='nfs_az'プロジェクト管理者として、Shared File Systems サービスが使用するネットワークとサブネットを作成します。
$ openstack network create --project rhoso --provider-network-type vlan manila_net openstack subnet create --network manila_net --subnet-range <subnet> --dns-nameserver <dns> manila-subnetaz1プロジェクトユーザーとして、前の手順の値を使用して共有ネットワークを作成し、各 AZ の共有を定義します。
$ openstack share network create --name share_net --neutron-net-id <net_id> --neutron-subnet-id <sub_net_id> $ openstack share create nfs 1 --name nfsaz1 --share-network share_net --availability-zone az1 $ openstack share create nfs 1 --name nfsaz2 --share-network share_net --availability-zone az2 $ openstack share create nfs 1 --name nfsaz3 --share-network share_net --availability-zone az3- この例では、共有ネットワークには AZ セットがありません。これは、すべての AZ にまたがるデフォルトの共有ネットワークです。
- 各 AZ に Networking サービス (neutron) ネットワークとサブネットを作成し、AZ での共有の作成を対応するネットワークとサブネットに制限できます。共有の作成を分離するには、Shared File Systems サービスに複数の共有ネットワークサブネットを作成し、それぞれに独自の Networking サービスネットワーク、サブネット、AZ を設定します。
OpenStackControlPlaneCR のmanilaテンプレートに次の設定があるため、openstack share createコマンドでは--share-type nfs-multiazを渡す必要はありません。manilaAPI: customServiceConfig: | [DEFAULT] storage_availability_zone = az1,az2,az3 default_share_type = nfs-multiazdefault_share_typeフィールドが設定されていない場合は、openstack share createコマンドで--share-type nfs-multiazオプションを渡します。
共有にアクセスするために、Compute サービスインスタンスに基づいて適切な IP 範囲へのアクセスを許可します。
$ openstack share access create nfsaz1 ip 10.0.0.0/24 --access-level rwCompute サービスをデプロイすると、次のようなコマンドを使用して共有をマウントできます。
例:
$ mount -t nfs 10.0.0.42:/share_<UUID> /mnt/share
OpenStackClientPod を終了します。$ exit