6.9. 고급 서비스 사양을 사용하여 Ceph OSD 배포
OSD 유형의 서비스 사양은 디스크의 속성을 사용하여 클러스터 레이아웃을 설명하는 방법입니다. 이는 사용자에게 장치 이름 및 경로의 세부 사항을 모르는 상태에서 필요한 구성으로 OSD로 전환해야 하는 디스크를 Ceph에 알리는 추상적인 방법을 제공합니다.
yaml
파일 또는 json
파일을 정의하여 각 장치 및 각 호스트의 OSD를 배포할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 호스트는 클러스터에 추가됩니다.
- 모든 관리자 및 모니터 데몬이 배포됩니다.
절차
모니터 노드에서
osd_spec.yaml
파일을 생성합니다.예제
[root@host01 ~]# touch osd_spec.yaml
다음 세부 정보를 포함하도록
osd_spec.yaml
파일을 편집합니다.구문
service_type: osd service_id: SERVICE_ID placement: host_pattern: '*' # optional data_devices: # optional model: DISK_MODEL_NAME # optional paths: - /DEVICE_PATH osds_per_device: NUMBER_OF_DEVICES # optional db_devices: # optional size: # optional all: true # optional paths: - /DEVICE_PATH encrypted: true
간단한 시나리오: 이 경우 모든 노드에 동일한 설정이 적용됩니다.
예제
service_type: osd service_id: osd_spec_default placement: host_pattern: '*' data_devices: all: true paths: - /dev/sdb encrypted: true
예제
service_type: osd service_id: osd_spec_default placement: host_pattern: '*' data_devices: size: '80G' db_devices: size: '40G:' paths: - /dev/sdc
간단한 시나리오: 이 경우 모든 노드는 LVM 계층 없이 원시 모드로 생성된 OSD 장치와 동일한 설정을 갖습니다.
예제
service_type: osd service_id: all-available-devices encrypted: "true" method: raw placement: host_pattern: "*" data_devices: all: "true"
고급 시나리오: 이렇게 하면 모든 HDD를
data_devices
로 사용하고 두 SSD가 전용 DB 또는 WAL 장치로 할당되어 원하는 레이아웃이 생성됩니다. 나머지 SSD는 NVMEs 벤더가 전용 DB 또는 WAL 장치로 할당된data_devices
입니다.예제
service_type: osd service_id: osd_spec_hdd placement: host_pattern: '*' data_devices: rotational: 0 db_devices: model: Model-name limit: 2 --- service_type: osd service_id: osd_spec_ssd placement: host_pattern: '*' data_devices: model: Model-name db_devices: vendor: Vendor-name
고유하지 않은 노드가 있는 고급 시나리오는 다음과 같습니다. 이는 host_hiera 키에 따라 다른 호스트에 다른 OSD 사양을 적용합니다.
예제
service_type: osd service_id: osd_spec_node_one_to_five placement: host_pattern: 'node[1-5]' data_devices: rotational: 1 db_devices: rotational: 0 --- service_type: osd service_id: osd_spec_six_to_ten placement: host_pattern: 'node[6-10]' data_devices: model: Model-name db_devices: model: Model-name
전용 WAL 및 DB 장치가 있는 고급 시나리오:
예제
service_type: osd service_id: osd_using_paths placement: hosts: - host01 - host02 data_devices: paths: - /dev/sdb db_devices: paths: - /dev/sdc wal_devices: paths: - /dev/sdd
장치당 여러 OSD가 있는 고급 시나리오:
예제
service_type: osd service_id: multiple_osds placement: hosts: - host01 - host02 osds_per_device: 4 data_devices: paths: - /dev/sdb
사전 생성된 볼륨의 경우 다음 세부 정보를 포함하도록
osd_spec.yaml
파일을 편집합니다.구문
service_type: osd service_id: SERVICE_ID placement: hosts: - HOSTNAME data_devices: # optional model: DISK_MODEL_NAME # optional paths: - /DEVICE_PATH db_devices: # optional size: # optional all: true # optional paths: - /DEVICE_PATH
예제
service_type: osd service_id: osd_spec placement: hosts: - machine1 data_devices: paths: - /dev/vg_hdd/lv_hdd db_devices: paths: - /dev/vg_nvme/lv_nvme
ID별 OSD의 경우 다음 세부 사항을 포함하도록
osd_spec.yaml
파일을 편집합니다.참고이 구성은 Red Hat Ceph Storage 5.3z1 이상 릴리스에 적용됩니다. 이전 릴리스의 경우 사전 생성된 lvm을 사용합니다.
구문
service_type: osd service_id: OSD_BY_ID_HOSTNAME placement: hosts: - HOSTNAME data_devices: # optional model: DISK_MODEL_NAME # optional paths: - /DEVICE_PATH db_devices: # optional size: # optional all: true # optional paths: - /DEVICE_PATH
예제
service_type: osd service_id: osd_by_id_host01 placement: hosts: - host01 data_devices: paths: - /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-0-5 db_devices: paths: - /dev/disk/by-id/nvme-nvme.1b36-31323334-51454d55204e564d65204374726c-00000001
경로별 OSD의 경우 다음 세부 사항을 포함하도록
osd_spec.yaml
파일을 편집합니다.참고이 구성은 Red Hat Ceph Storage 5.3z1 이상 릴리스에 적용됩니다. 이전 릴리스의 경우 사전 생성된 lvm을 사용합니다.
구문
service_type: osd service_id: OSD_BY_PATH_HOSTNAME placement: hosts: - HOSTNAME data_devices: # optional model: DISK_MODEL_NAME # optional paths: - /DEVICE_PATH db_devices: # optional size: # optional all: true # optional paths: - /DEVICE_PATH
예제
service_type: osd service_id: osd_by_path_host01 placement: hosts: - host01 data_devices: paths: - /dev/disk/by-path/pci-0000:0d:00.0-scsi-0:0:0:4 db_devices: paths: - /dev/disk/by-path/pci-0000:00:02.0-nvme-1
컨테이너의 디렉터리에 YAML 파일을 마운트합니다.
예제
[root@host01 ~]# cephadm shell --mount osd_spec.yaml:/var/lib/ceph/osd/osd_spec.yaml
디렉터리로 이동합니다.
예제
[ceph: root@host01 /]# cd /var/lib/ceph/osd/
OSD를 배포하기 전에 예행을 실행합니다.
참고이 단계에서는 데몬을 배포하지 않고 배포를 미리 봅니다.
예제
[ceph: root@host01 osd]# ceph orch apply -i osd_spec.yaml --dry-run
서비스 사양을 사용하여 OSD를 배포합니다.
구문
ceph orch apply -i FILE_NAME.yml
예제
[ceph: root@host01 osd]# ceph orch apply -i osd_spec.yaml
검증
서비스를 나열합니다.
예제
[ceph: root@host01 /]# ceph orch ls osd
노드 및 장치의 세부 정보를 확인합니다.
예제
[ceph: root@host01 /]# ceph osd tree
추가 리소스
- Red Hat Ceph Storage Operations Guide 의 OSD 배포를 위한 고급 서비스 사양 및 필터 를 참조하십시오.