7장. 에지에서 스토리지 배포
Red Hat OpenStack Platform director를 통해 분산된 계산 노드 배포를 확장하여 Red Hat OpenStack Platform 및 Ceph Storage를 사용하여 에지에 분산 이미지 관리 및 영구 스토리지를 포함할 수 있습니다.
7.1. 스토리지를 사용하여 에지 사이트 배포
중앙 사이트를 배포한 후 에지 사이트를 빌드하고 각 에지 위치가 주로 자체 스토리지 백엔드와 중앙 위치에 있는 스토리지 백엔드에 연결되는지 확인합니다.
ceph에 필요한 스토리지 및 storage_mgmt
네트워크를 추가하여 스파인 및 리프팅
네트워킹 구성이 이 구성에 포함되어야 합니다. 자세한 내용은 Spine idle networking을 참조하십시오.
사이트 간에 Glance 이미지를 이동할 수 있도록 각 에지 사이트에 있는 스토리지 네트워크와 스토리지 네트워크 간에 연결되어 있어야 합니다.
중앙 위치가 각 에지 사이트에서 mons 및
와 통신할 수 있는지 확인합니다. 그러나 스토리지 관리 네트워크가 OSD 리밸런싱에 사용되기 때문에 사이트 위치 경계에서 스토리지 관리 네트워크를 종료해야 합니다.
osds
절차
중앙
스택에서 스택 정보를 내보냅니다. 다음 명령을 실행하기 전에중앙
스택을 배포해야 합니다.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
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 을 참조하십시오.
이미지 서비스 구성 덮어쓰기를 위해
~/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
매개변수의 값을 설정하는 방법에 대한 자세한 내용은 ceph-ansible 그룹 변수 설정을 참조하십시오. -
CephConfigOverrides 매개변수 값 설정에 대한 자세한 내용은 Ceph
Storage 클러스터 사용자 지정을 참조하십시오.
-
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
서비스의 요구 사항을 충족하려면 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 템플릿을 포함해야 합니다. 에지 아키텍처를 설계하려면 스파인 및 루프 네트워킹이 필요합니다. 자세한 내용은 Spine Leaf Networking 을 참조하십시오.