5.5. 유사한 Ceph Storage 노드의 매개변수 덮어쓰기
CephStorage 또는 ComputeHCI 와 같이 Ceph OSD를 호스팅하는 역할이 있는 모든 노드는 5.3절. “Ceph Storage 노드 디스크 레이아웃 매핑” 에서 생성된 글로벌 장치 및 dedicated_devices 목록을 사용합니다. 이 목록은 이러한 모든 서버에 동일한 하드웨어가 있다고 가정합니다. 하드웨어가 있는 서버가 있는 경우 이는 동일하지 않은 경우 노드별 디스크 구성을 사용하여 다른 장치 및 dedicated_ 목록에 대한 세부 정보로 director를 업데이트해야 합니다.
devices
Ceph OSD를 호스팅하는 역할에는 roles_data.yaml 파일에 OS::TripleO::Services::CephOSD 서비스가 포함됩니다.
다른 노드와 동일한 하드웨어가 없는 Ceph Storage 노드는 성능 문제를 일으킬 수 있습니다. RHOSP(Red Hat OpenStack Platform) 환경에서 노드별 재정의로 구성하는 표준 노드와 노드 간에 차이가 많을수록 성능이 저하됩니다.
5.5.1. 노드별 디스크 구성 링크 복사링크가 클립보드에 복사되었습니다!
동일한 하드웨어가 없는 의 서비스에 대해 director를 구성해야 합니다. 이를 노드별 디스크 구성이라고 합니다.
다음 방법 중 하나를 사용하여 노드별 디스크 구성을 생성할 수 있습니다.
- 자동: JSON heat 환경 파일을 생성하여 노드별 디스크 구성을 자동으로 생성할 수 있습니다.
- Manual: 노드 디스크 레이아웃을 변경하여 노드별 디스크 구성을 만들 수 있습니다.
5.5.1.1. Ceph 장치용 JSON heat 환경 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
/usr/share/openstack-tripleo-heat-templates/tools/make_ceph_disk_list.py 스크립트를 사용하여 베어 메탈 프로비저닝 서비스(ironic)의 인트로스펙션 데이터에서 유효한 JSON heat 환경 파일을 자동으로 생성할 수 있습니다. 이 JSON 파일을 사용하여 노드별 디스크 구성을 director에 전달합니다.
절차
배포하려는 Ceph 노드의 베어 메탈 프로비저닝 서비스에서 인트로스펙션 데이터를 내보냅니다.
openstack baremetal introspection data save oc0-ceph-0 > ceph0.json openstack baremetal introspection data save oc0-ceph-1 > ceph1.json ...유틸리티를 Undercloud에서
stack사용자의 홈 디렉터리에 복사하고 이를 사용하여node_data_lookup.json파일을 생성합니다../make_ceph_disk_list.py -i ceph*.json -o node_data_lookup.json -k by_path배포 중에
NodeDataLookup만 정의할 수 있기 때문에 Ceph OSD를 호스팅하는 모든 노드에 대해openstack baremetal introspection data save명령에서 인트로스펙션 데이터 파일을 유틸리티로 전달합니다. i옵션은*.json과 같은 표현식이나 파일 목록을 입력으로 사용할 수 있습니다.k
옵션을사용하여 OSD 디스크를 식별하는 데 사용할 베어 메탈 프로비저닝 디스크 구조의 키를 정의합니다. 재부팅하는 동안 항상 동일한 장치를 가리키지 않을 수 있는/dev/sdd와 같은 장치의 파일을 생성하므로name을 사용하지 마십시오. 대신by_path를 사용합니다. 이는-k를 지정하지 않는 경우 기본값입니다.베어 메탈 프로비저닝 서비스는 시스템에서 사용 가능한 디스크 중 하나를 루트 디스크로 예약합니다. 유틸리티는 생성된 장치 목록에서 항상 루트 디스크를 제외합니다.
-
선택 사항: 사용 가능한 다른 옵션을 보려면
./make_ceph_disk_list.py -help를 사용할 수 있습니다. 오버클라우드를 배포할 때 환경과 관련된 다른 환경 파일과 함께
node_data_lookup.json파일을 포함합니다.$ openstack overcloud deploy \ --templates \ … -e <existing_overcloud_environment_files> \ -e node_data_lookup.json \ …
5.5.1.2. Ceph Storage 노드의 디스크 레이아웃 변경 링크 복사링크가 클립보드에 복사되었습니다!
동종이 아닌 Ceph Storage 노드는 성능 문제를 일으킬 수 있습니다. RHOSP(Red Hat OpenStack Platform) 환경에서 노드별 재정의로 구성하는 표준 노드와 노드 간에 차이가 많을수록 성능이 저하됩니다.
노드별 디스크 구성을 director에 전달하려면 node-spec-overrides.yaml 과 같은 heat 환경 파일을 openstack overcloud deploy 명령에 전달하고 파일 콘텐츠는 시스템 고유 UUID로 각 서버를 식별해야 글로벌 변수를 재정의해야 합니다.
개별 서버 또는 베어 메탈 프로비저닝 서비스(ironic) 데이터베이스에서 시스템 고유 UUID를 추출할 수 있습니다.
- 참고
-
다음 절차에서는 유효한 JSON이 포함된 유효한 YAML 환경 파일을 생성합니다.
make_ceph_disk_list.py를 사용하여 전체 JSON 파일을 생성하고 YAML처럼 배포 명령에 전달할 수도 있습니다. 자세한 내용은 Ceph 장치에 대한 JSON heat 환경 파일 생성을 참조하십시오.
절차
개별 서버의 UUID를 찾으려면 서버에 로그인하여 다음 명령을 입력합니다.
$ dmidecode -s system-uuid베어 메탈 프로비저닝 서비스 데이터베이스에서 UUID를 추출하려면 언더클라우드에 다음 명령을 입력합니다.
$ openstack baremetal introspection data save NODE-ID | jq .extra.system.product.uuid주의undercloud 설치 또는 업그레이드 및 인트로스펙션 전에 undercloud.conf에inspection_extras = true가 없으면 시스템 고유 UUID가 베어 메탈 프로비저닝 서비스 데이터베이스에 없습니다.중요시스템 고유 UUID는 베어 메탈 프로비저닝 서비스 UUID가 아닙니다.
유효한
node-spec-overrides.yaml파일은 다음과 같을 수 있습니다.parameter_defaults: NodeDataLookup: {"32E87B4C-C4A7-418E-865B-191684A6883B": {"devices": ["/dev/sdc"]}}처음 두 줄 뒤의 모든 행은 유효한 JSON이어야 합니다.
jq명령을 사용하여 JSON이 유효한지 확인합니다.-
파일에서 처음 두 줄(
parameter_defaults:및NodeDataLookup:)을 일시적으로 제거합니다. -
cat node-spec-overrides.yaml | jq .
-
파일에서 처음 두 줄(
node-spec-overrides.yaml파일이 증가함에 따라jq명령을 사용하여 포함된 JSON이 유효한지 확인할 수도 있습니다. 예를 들어,devices및dedicated_devices목록이 동일한 길이여야 하므로 다음 명령을 사용하여 배포를 시작하기 전에 동일한 길이인지 확인합니다. 다음 예에서node-spec-c05-h17-h21-h25-6048r.yaml에는 슬롯 h17, h21, h25에 디스크가 누락된 랙 c05에 세 개의 서버가 있습니다.(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]$-
JSON이 검증되면 유효한 환경 YAML 파일(
parameter_defaults: 및)으로 만드는 두 행을 다시 추가하고 배포에NodeDataLookup:-e를 포함합니다. 아래 예제에서 업데이트된 heat 환경 파일은 Ceph 배포에NodeDataLookup을 사용합니다. 서버 목록에는 35개의 디스크가 있는 장치 목록이 있습니다. 단, 그 중 하나가 디스크가 누락되어 있습니다. 이 환경 파일은 해당 단일 노드에 대해서만 기본 장치 목록을 재정의하고 전역 목록 대신 사용해야 하는 34개의 디스크 목록을 제공합니다. JSON이 검증되면 유효한 환경 YAML 파일(
parameter_defaults: 및)으로 만드는 두 행을 다시 추가하고 배포 명령에NodeDataLookup:-e를 포함합니다.다음 예에서 업데이트된 heat 환경 파일은 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" ] } }
5.5.2. BlueStore block.db 크기 변경 링크 복사링크가 클립보드에 복사되었습니다!
BlueStore block.db 는 데이터 세그먼트의 데이터베이스이며 BlueStore write-ahead 로그(WAL)입니다. 데이터베이스 크기를 변경하는 방법은 두 가지가 있습니다. 크기를 변경하려면 다음 방법 중 하나를 선택합니다.
5.5.2.1. ceph-volume을 사용할 때 BlueStore block.db 크기 변경 링크 복사링크가 클립보드에 복사되었습니다!
ceph-volume. ceph-volume 을 사용할 때 block.db 크기를 덮어쓰려면 다음 절차를 사용하십시오. osd_scenario: lvm.ceph-volume 이 block.db 크기를 자동으로 설정할 때 ceph-volume이 사용됩니다. 그러나 고급 시나리오의 block.db 크기를 재정의할 수 있습니다.
다음 예제에서는 Ceph 구성 파일이 재정의되지 않고 ceph-ansible 호스트 변수를 사용하여 사용되는 block_db_size 가 ceph-volume 호출에 전달되도록 합니다.
절차
다음과 유사한 콘텐츠를 사용하여 JSON 환경 파일을 생성하되 요구 사항에 따라 값을 바꿉니다.
{ "parameter_defaults": { "NodeDataLookup": { "32e87b4c-c4a7-41be-865b-191684a6883b": { "block_db_size": 3221225472 }, "ea6a84d6-cf89-4fe2-b7bd-869b3fe4dd6b": { "block_db_size": 3221225472 } } } }오버클라우드를 배포할 때 환경과 관련된 다른 환경 파일과 함께 JSON 파일을 포함합니다.
$ openstack overcloud deploy \ --templates \ … -e <existing_overcloud_environment_files> \ -e <json_environment_file> \ …
5.5.2.2. ceph-disk를 사용할 때 BlueStore block.db 크기 변경 링크 복사링크가 클립보드에 복사되었습니다!
ceph-disk . ceph-disk . ceph-disk 를 사용할 때 다음 절차를 사용하여 block.db 를 덮어씁니다. osd_scenario: non-col placed 또는 placed .osd_scenario: colceph-disk 가 사용됩니다.
다음 예제에서는 특정 노드에 대해 Ceph 구성 덮어쓰기를 사용하여 blustore_block_db_size 를 설정합니다. 이 Ceph 구성 옵션은 ceph-volume 을 사용할 때 무시되지만 ceph-disk 는 이 구성 옵션을 사용합니다.
절차
다음과 유사한 콘텐츠를 사용하여 JSON 환경 파일을 생성하되 요구 사항에 따라 값을 바꿉니다.
{ "parameter_defaults": { "NodeDataLookup": { "32e87b4c-c4a7-41be-865b-191684a6883b": { "ceph_conf_overrides": { "osd": { "bluestore_block_db_size": 3221225472 } } }, "ea6a84d6-cf89-4fe2-b7bd-869b3fe4dd6b": { "ceph_conf_overrides": { "osd": { "bluestore_block_db_size": 3221225472 } } } } } }오버클라우드를 배포할 때 환경과 관련된 다른 환경 파일과 함께 JSON 파일을 포함합니다.
$ openstack overcloud deploy \ --templates \ … -e <existing_overcloud_environment_files> \ -e <json_environment_file> \ …