第6章 エッジサイトでのストレージのデプロイ

Red Hat OpenStack Platform director を活用して分散コンピュートノードのデプロイメントを拡張し、Red Hat OpenStack Platform と Ceph Storage を使用する利点と共に、エッジサイトに分散イメージの管理および永続ストレージを含めることができます。

dcn アーキテクチャー

6.1. ストレージが設定されたエッジサイトのデプロイ

中央サイトをデプロイしたら、エッジサイトを構築し、各エッジロケーションがプライマリーとして自己のストレージバックエンドに接続し、さらに中央サイトのストレージバックエンドにも接続するようにします。

スパイン/リーフ型ネットワーク構成に加えて、この設定には ceph が必要とする storage および storage_mgmt ネットワークを含める必要があります。詳しくは、『スパイン/リーフ型ネットワーク』を参照してください。

glance イメージをサイト間で移動することができるように、中央サイトと各エッジサイトのストレージネットワーク間に接続が必要です。

中央サイトが各エッジサイトの mons および osds と通信できるようにしてください。ただし、ストレージ管理ネットワークは OSD のリバランスに使用されるため、サイト境界でストレージ管理ネットワークを終端する必要があります。

手順

  1. 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>/ です。

  2. 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
  3. glance 設定のオーバーライド用に ~/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
  4. 利用可能なハードウェアに該当する設定パラメーターで 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 ノードのディスクレイアウトのマッピング」を参照してください。

  5. 実際の環境要件に適した以下のパラメーターが含まれるファイルを使用して、システムのチューニングを実施します。

    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
  6. 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
  7. dcn0 のデプロイメントに使用する roles.yaml ファイルを生成します。以下に例を示します。

    openstack overcloud roles generate DistributedComputeHCI DistributedComputeHCIScaleOut -o ~/dcn0/roles_data.yaml
  8. それぞれのロールに必要な値で ~/dcn0/roles-counts.yaml ファイルを作成して、各ロールに番号システムを設定します。

    ハイパーコンバージドインフラストラクチャー (HCI) を使用する場合は、Ceph Mon および GlanceApiEdge サービスの要件を満たすために、3 台のノードを DistributedComputeHCICount ロールに割り当てる必要があります。

    parameter_defaults:
      ControllerCount: 0
      ComputeCount: 0
      DistributedComputeHCICount: 3
      DistributedComputeHCIScaleOutCount: 1  # Optional
      DistributedComputeScaleOutCount: 1     # Optional
  9. エッジサイトのコンテナーイメージを取得します。

    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 コマンドに、デプロイメントに使用するすべての環境ファイルを追加する必要があります。

  10. エッジサイトをデプロイします。

    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 テンプレートを追加する必要があります。エッジアーキテクチャーの設計には、スパイン/リーフ型ネットワークが必要です。詳しくは、『スパイン/リーフ型ネットワーク』を参照してください。