第7章 エッジサイトでのストレージのデプロイ
Red Hat OpenStack Platform director を活用して分散コンピュートノードのデプロイメントを拡張し、Red Hat OpenStack Platform と Ceph Storage を使用する利点と共に、エッジサイトに分散イメージの管理および永続ストレージを含めることができます。
7.1. ストレージが設定されたエッジサイトのデプロイ
中央サイトをデプロイしたら、エッジサイトを構築し、各エッジロケーションがプライマリーとして自己のストレージバックエンドに接続し、さらに中央サイトのストレージバックエンドにも接続するようにします。
スパイン/リーフ型ネットワーク設定に加えて、この設定には ceph が必要とする storage
および storage_mgmt
ネットワークを含める必要があります。詳しくは、スパイン/リーフ型ネットワーク を参照してください。
glance イメージをサイト間で移動することができるように、中央サイトと各エッジサイトのストレージネットワーク間に接続が必要です。
中央サイトが各エッジサイトの mons
および osds
と通信できるようにしてください。ただし、ストレージ管理ネットワークは OSD のリバランスに使用されるため、サイト境界でストレージ管理ネットワークを終端する必要があります。
手順
central
スタックからスタック情報をエクスポートします。以下のコマンドを実行する前に、central
スタックをデプロイする必要があります。openstack overcloud export \ --config-download-dir /var/lib/mistral/central/ \ --stack central \ --output-file ~/dcn-common/central-export.yaml
注記config-download-dir
のデフォルト値は/var/lib/mistral/<stack>/
です。central_ceph_external.yaml
ファイルを作成します。この環境ファイルにより、DCN サイトが中央ハブの Ceph クラスターに接続されので、詳細は前の手順でデプロイした Ceph クラスターに固有のものです。sudo -E openstack overcloud export ceph \ --stack central \ --config-download-dir /var/lib/mistral \ --output-file ~/dcn-common/central_ceph_external.yaml
Ceph が Red Hat OpenStack Platform director を使用せずにデプロイされる場合には、
openstack overcloud export ceph
コマンドを実行できません。central_ceph_external.yaml
ファイルを手動で作成します。parameter_defaults: CephExternalMultiConfig: - cluster: "central" fsid: "3161a3b4-e5ff-42a0-9f53-860403b29a33" external_cluster_mon_ips: "172.16.11.84, 172.16.11.87, 172.16.11.92" keys: - name: "client.openstack" caps: mgr: "allow *" mon: "profile rbd" osd: "profile rbd pool=vms, profile rbd pool=volumes, profile rbd pool=images" key: "AQD29WteAAAAABAAphgOjFD7nyjdYe8Lz0mQ5Q==" mode: "0600" dashboard_enabled: false ceph_conf_overrides: client: keyring: /etc/ceph/central.client.openstack.keyring
fsid
パラメーターは、Ceph Storage クラスターのファイルシステム ID です。この値は、クラスター設定ファイルの[global]
セクションで指定します。[global] fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 ...
key
パラメーターは、openstack アカウントの ceph クライアントキーです。[root@ceph ~]# ceph auth list ... [client.openstack] key = AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw== caps mgr = "allow *" caps mon = "profile rbd" caps osd = "profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups, profile rbd pool=metrics" ...
central_ceph_external.yaml
ファイルのサンプルにあるパラメーターについての詳しい情報は、カスタム環境ファイルの作成 を参照してください。
Image サービス設定のオーバーライド用に
~/dcn0/glance.yaml
ファイルを作成します。parameter_defaults: GlanceEnabledImportMethods: web-download,copy-image GlanceBackend: rbd GlanceStoreDescription: 'dcn0 rbd glance store' GlanceBackendID: dcn0 GlanceMultistoreConfig: central: GlanceBackend: rbd GlanceStoreDescription: 'central rbd glance store' CephClientUserName: 'openstack' CephClusterName: central
利用可能なハードウェアに該当する設定パラメーターで
ceph.yaml
ファイルを設定します。cat > /home/stack/dcn0/ceph.yaml << EOF parameter_defaults: CephClusterName: dcn0 CephAnsibleDisksConfig: osd_scenario: lvm osd_objectstore: bluestore devices: - /dev/sda - /dev/sdb CephPoolDefaultSize: 3 CephPoolDefaultPgNum: 128 EOF
詳しくは、Ceph Storage ノードのディスクレイアウトのマッピング を参照してください。
実際の環境要件に適した以下のパラメーターが含まれるファイルを使用して、システムのチューニングを実施します。
cat > /home/stack/dcn0/tuning.yaml << EOF parameter_defaults: CephAnsibleExtraConfig: is_hci: true CephConfigOverrides: osd_recovery_op_priority: 3 osd_recovery_max_active: 3 osd_max_backfills: 1 ## Set relative to your hardware: # DistributedComputeHCIParameters: # NovaReservedHostMemory: 181000 # DistributedComputeHCIExtraConfig: # nova::cpu_allocation_ratio: 8.2 EOF
-
パラメーター
CephAnsibleExtraConfig
の値の設定については、Setting ceph-ansible group variables を参照してください。 -
パラメーター
CephConfigOverrides
の値の設定の詳細については、Customizing the Ceph Storage cluster を参照してください。
-
パラメーター
site-name.yaml
環境ファイルでサイトの命名規則を設定します。Nova アベイラビリティーゾーンと Cinder ストレージアベイラビリティーゾーンが一致している必要があります。ストレージと共にエッジサイトをデプロイする場合は、CinderVolumeCluster
パラメーターを含めます。このパラメーターは、エッジサイトで必要な cinder-volume をアクティブ/アクティブ設定としてデプロイする場合に使用されます。ベストプラクティスとしては、Cinder クラスター名をアベイラビリティーゾーンと一致するように設定します。cat > /home/stack/central/site-name.yaml << EOF parameter_defaults: ... NovaComputeAvailabilityZone: dcn0 NovaCrossAZAttach: false CinderStorageAvailabilityZone: dcn0 CinderVolumeCluster: dcn0
dcn0 のデプロイメントに使用する
roles.yaml
ファイルを生成します。以下に例を示します。openstack overcloud roles generate DistributedComputeHCI DistributedComputeHCIScaleOut -o ~/dcn0/roles_data.yaml
それぞれのロールに必要な値で
~/dcn0/roles-counts.yaml
ファイルを作成して、各ロールに番号システムを設定します。ハイパーコンバージドインフラストラクチャー (HCI) を使用する場合は、Ceph Mon および
GlanceApiEdge
サービスの要件を満たすために、3 台のノードを DistributedComputeHCICount ロールに割り当てる必要があります。parameter_defaults: ControllerCount: 0 ComputeCount: 0 DistributedComputeHCICount: 3 DistributedComputeHCIScaleOutCount: 1 # Optional DistributedComputeScaleOutCount: 1 # Optional
エッジサイトのコンテナーイメージを取得します。
sudo openstack tripleo container image prepare \ --environment-directory dcn0 \ -r ~/dcn0/roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ ... -e /home/stack/dcn-common/central-export.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ --output-env-file ~/dcn0/dcn0-images-env.yaml
注記openstack tripleo container image prepare
コマンドに、デプロイメントに使用するすべての環境ファイルを追加する必要があります。エッジサイトをデプロイします。
openstack overcloud deploy \ --stack dcn0 \ --templates /usr/share/openstack-tripleo-heat-templates/ \ -r ~/dcn0/roles_data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/dcn-hci.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \ -e ~/dnc0/dcn0-images-env.yaml \ .... -e ~/dcn-common/central-export.yaml \ -e ~/dcn-common/central_ceph_external.yaml \ -e ~/dcn0/dcn_ceph_keys.yaml \ -e ~/dcn0/role-counts.yaml \ -e ~/dcn0/ceph.yaml \ -e ~/dcn0/site-name.yaml \ -e ~/dcn0/tuning.yaml \ -e ~/dcn0/glance.yaml
注記openstack overcloud deploy
コマンドに、ネットワーク設定用の heat テンプレートを追加する必要があります。エッジアーキテクチャーの設計には、スパイン/リーフ型ネットワークが必要です。詳しくは、スパイン/リーフ型ネットワーク を参照してください。