5.2.5. 디스크 레이아웃을 비Homogeneous Ceph Storage 노드에 매핑
비정상적인 Ceph Storage 노드는 예측할 수 없는 성능 손실 위험과 같은 성능 문제를 일으킬 수 있습니다. Red Hat OpenStack Platform 환경에서 동종이 아닌 Ceph Storage 노드를 구성할 수 있지만 Red Hat은 권장하지 않습니다.
기본적으로 Ceph OSD를 호스팅하는 모든 노드는 5.2절. “Ceph Storage 노드 디스크 레이아웃 매핑” 에서 설정한 글로벌 장치
와 dedicated_devices
목록을 사용합니다.
이 기본 구성은 모든 Ceph OSD 노드에 동종 하드웨어가 있는 경우 적합합니다. 그러나 이러한 서버의 하위 집합에 동종 하드웨어가 없는 경우 director에서 노드별 디스크 구성을 정의해야 합니다.
Ceph OSD를 호스팅하는 노드를 식별하려면 roles_data.yaml
파일을 검사하고 OS::TripleO::Services::CephOSD
서비스가 포함된 모든 역할을 식별합니다.
노드별 구성을 정의하려면 각 서버를 식별하고 전역 변수를 재정의하는 로컬 변수 목록을 포함하는 사용자 지정 환경 파일을 생성하고 openstack overcloud deploy
명령에 환경 파일을 포함합니다. 예를 들어 node-spec-overrides.yaml
이라는 노드별 구성 파일을 생성합니다.
개별 서버 또는 Ironic 데이터베이스에 대해 시스템의 고유한 UUID를 추출할 수 있습니다.
개별 서버의 UUID를 찾으려면 서버에 로그인하고 다음 명령을 실행합니다.
dmidecode -s system-uuid
Ironic 데이터베이스에서 UUID를 추출하려면 언더클라우드에서 다음 명령을 실행합니다.
openstack baremetal introspection data save NODE-ID | jq .extra.system.product.uuid
undercloud.conf 파일에 언더클라우드 설치 또는 업그레이드 및 인트로스펙션 전에 inspection_extras = true
가 없는 경우 시스템의 고유 UUID는 Ironic 데이터베이스에 없습니다.
시스템의 고유 UUID는 Ironic UUID가 아닙니다.
유효한 node-spec-overrides.yaml
파일은 다음과 같습니다.
parameter_defaults: NodeDataLookup: | {"32E87B4C-C4A7-418E-865B-191684A6883B": {"devices": ["/dev/sdc"]}}
처음 두 행 이후의 모든 행은 유효한 JSON이어야 합니다. JSON이 유효한지 확인하는 쉬운 방법은 jq
명령을 사용하는 것입니다. 예를 들면 다음과 같습니다.
-
파일에서 처음 두 행(
parameter_defaults:
및NodeDataLookup: |
)을 일시적으로 제거합니다. -
cat node-spec-overrides.yaml | jq .
node-spec-overrides.yaml
파일이 증가함에 따라 jq
를 사용하여 포함된 JSON이 유효한지 확인할 수도 있습니다. 예를 들어 devices
및 dedicated_devices
목록은 길이가 동일해야 하므로 다음을 사용하여 배포를 시작하기 전에 동일한 길이인지 확인합니다.
(undercloud) [stack@b08-h02-r620 tht]$ cat node-spec-c05-h17-h21-h25-6048r.yaml | jq '.[] | .devices | length' 33 30 33 (undercloud) [stack@b08-h02-r620 tht]$ cat node-spec-c05-h17-h21-h25-6048r.yaml | jq '.[] | .dedicated_devices | length' 33 30 33 (undercloud) [stack@b08-h02-r620 tht]$
이 예에서 node-spec-c05-h17-h21-h25-6048r.yaml
에는 랙 c05에 세 개의 서버가 있으며 이 슬롯 h17, h21, h25는 디스크가 누락되어 있습니다. 이 섹션의 끝에 더 복잡한 예제가 포함되어 있습니다.
JSON 구문을 검증한 후 환경 파일의 처음 두 줄을 다시 채우고 -e
옵션을 사용하여 배포 명령에 파일을 포함해야 합니다.
다음 예에서 업데이트된 환경 파일은 Ceph 배포에 NodeDataLookup을 사용합니다. 모든 서버에는 하나의 서버가 누락된 디스크를 제외하고 35개의 디스크가 있는 장치 목록이 있었습니다.
다음 예제 환경 파일을 사용하여 글로벌 목록 대신 사용해야 하는 디스크 목록과 34개의 디스크 목록이 있는 노드의 기본 장치 목록을 재정의합니다.
parameter_defaults: # c05-h01-6048r is missing scsi-0:2:35:0 (00000000-0000-0000-0000-0CC47A6EFD0C) NodeDataLookup: | { "00000000-0000-0000-0000-0CC47A6EFD0C": { "devices": [ "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:1:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:32:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:2:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:3:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:4:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:5:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:6:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:33:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:7:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:8:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:34:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:9:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:10:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:11:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:12:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:13:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:14:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:15:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:16:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:17:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:18:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:19:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:20:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:21:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:22:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:23:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:24:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:25:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:26:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:27:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:28:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:29:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:30:0", "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:2:31:0" ], "dedicated_devices": [ "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:81:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1", "/dev/disk/by-path/pci-0000:84:00.0-nvme-1" ] } }