7장. 에지에서 스토리지 배포

Red Hat OpenStack Platform director를 통해 분산된 계산 노드 배포를 확장하여 Red Hat OpenStack Platform 및 Ceph Storage를 사용하여 에지에 분산 이미지 관리 및 영구 스토리지를 포함할 수 있습니다.

DCN 아키텍처

7.1. 스토리지를 사용하여 에지 사이트 배포

중앙 사이트를 배포한 후 에지 사이트를 빌드하고 각 에지 위치가 주로 자체 스토리지 백엔드와 중앙 위치에 있는 스토리지 백엔드에 연결되는지 확인합니다.

ceph에 필요한 스토리지 및 storage_mgmt 네트워크를 추가하여 스파인 및 리프팅 네트워킹 구성이 이 구성에 포함되어야 합니다. 자세한 내용은 Spine idle networking을 참조하십시오.

사이트 간에 Glance 이미지를 이동할 수 있도록 각 에지 사이트에 있는 스토리지 네트워크와 스토리지 네트워크 간에 연결되어 있어야 합니다.

중앙 위치가 각 에지 사이트에서 mons 및 osds 와 통신할 수 있는지 확인합니다. 그러나 스토리지 관리 네트워크가 OSD 리밸런싱에 사용되기 때문에 사이트 위치 경계에서 스토리지 관리 네트워크를 종료해야 합니다.

절차

  1. 중앙 스택에서 스택 정보를 내보냅니다. 다음 명령을 실행하기 전에 중앙 스택을 배포해야 합니다.

    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

    Red Hat OpenStack Platform director 없이 Ceph를 배포하면 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 파일에 표시된 매개변수에 대한 자세한 내용은 Creating a custom environment file 을 참조하십시오.

  3. 이미지 서비스 구성 덮어쓰기를 위해 ~/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 서비스의 요구 사항을 충족하려면 DistributedComputeHCICount 역할에 세 개의 노드를 할당해야 합니다.

    parameter_defaults:
      ControllerCount: 0
      ComputeCount: 0
      DistributedComputeHCICount: 3
      DistributedComputeHCIScaleOutCount: 1  # Optional
      DistributedComputeScaleOutCount: 1     # Optional
  9. 에지 사이트의 컨테이너 이미지를 검색합니다.

    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 명령에서 배포에 사용할 모든 환경 파일을 포함해야 합니다.

  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 템플릿을 포함해야 합니다. 에지 아키텍처를 설계하려면 스파인 및 루프 네트워킹이 필요합니다. 자세한 내용은 Spine Leaf Networking 을 참조하십시오.