6장. director를 사용하여 Ceph Storage 클러스터에서 다양한 워크로드를 위한 성능 계층 정의
RHOSP(Red Hat OpenStack Platform) director를 사용하여 다양한 Red Hat Ceph Storage 성능 계층을 배포할 수 있습니다. Ceph CRUSH 규칙과 CephPools director 매개변수를 결합하여 장치 클래스 기능을 사용하고 다양한 계층을 빌드하여 성능 요구 사항이 다른 워크로드를 수용할 수 있습니다. 예를 들어 일반 워크로드에 대해 HDD 클래스와 고성능 로드를 위해 SSD에서만 데이터를 배포하는 SSD 클래스를 정의할 수 있습니다. 이 시나리오에서는 새 블록 스토리지 볼륨을 생성할 때 HDD 또는 SSD 중 하나의 성능 계층을 선택할 수 있습니다.
- 경고
-
기존 환경에 성능 계층을 정의하면 Ceph 클러스터에서 대용량 데이터 이동이 발생할 수 있습니다. 스택 업데이트 중에 director가 트리거하는
ceph-ansible에는 풀이 클러스터에 이미 정의되어 있는지와 데이터가 포함되어 있는지 확인하는 논리가 없습니다. 즉, 풀과 연결된 기본 CRUSH 규칙을 변경하면 데이터 이동 때문에 기존 환경에서 성능 계층을 정의하는 것은 위험할 수 있습니다. 노드 추가 또는 제거에 대한 지원이나 권장 사항이 필요한 경우 Red Hat 지원에 문의하십시오.
Ceph는 디스크 유형을 자동 감지하고 Linux 커널에서 노출하는 하드웨어 속성을 기반으로 해당 장치 클래스(HD, SSD 또는 NVMe)에 할당합니다. 그러나 필요에 따라 범주를 사용자 지정할 수도 있습니다.
사전 요구 사항
- 새 배포의 경우 RHCS(Red Hat Ceph Storage) 버전 4.1 이상입니다.
- 기존 배포의 경우 RHCS(Red Hat Ceph Storage) 버전 4.2 이상입니다.
다른 Red Hat Ceph Storage 성능 계층을 배포하려면 CRUSH 맵 세부 정보가 포함된 새 환경 파일을 생성한 다음 배포 명령에 포함합니다.
다음 절차에서 각 Ceph Storage 노드에는 3개의 OSD가 포함되어 있으며 sdb 및 sdc 는 디스크 회전이며 sdc 는 SSD입니다. Ceph는 올바른 디스크 유형을 자동으로 감지합니다. 그런 다음 두 개의 CRUSH 규칙(HDD 및 SSD)을 구성하여 두 개의 해당 장치 클래스에 매핑합니다. HDD 규칙은 기본값이며 다른 규칙을 사용하여 풀을 구성하지 않는 한 모든 풀에 적용됩니다.
마지막으로 fastpool 이라는 추가 풀을 생성하여 SSD 규칙에 매핑합니다. 이 풀은 궁극적으로 Block Storage(cinder) 백엔드를 통해 노출됩니다. 이 블록 스토리지 백엔드를 사용하는 모든 워크로드는 SSD에서 빠른 성능만 지원합니다. 이를 데이터 또는 볼륨에서 부팅하는 데 활용할 수 있습니다.
6.1. 성능 계층 구성 링크 복사링크가 클립보드에 복사되었습니다!
- 경고
-
기존 환경에 성능 계층을 정의하면 Ceph 클러스터에서 대용량 데이터 이동이 발생할 수 있습니다. 스택 업데이트 중에 director가 트리거하는
ceph-ansible에는 풀이 클러스터에 이미 정의되어 있는지와 데이터가 포함되어 있는지 확인하는 논리가 없습니다. 즉, 풀과 연결된 기본 CRUSH 규칙을 변경하면 데이터 이동 때문에 기존 환경에서 성능 계층을 정의하는 것은 위험할 수 있습니다. 노드 추가 또는 제거에 대한 지원이나 권장 사항이 필요한 경우 Red Hat 지원에 문의하십시오.
director는 이 기능을 다룰 특정 매개 변수를 노출하지 않지만 다음 단계를 완료하여 ceph-ansible 예상 변수를 생성할 수 있습니다.
절차
-
stack사용자로 Undercloud 노드에 로그인합니다. -
Ceph 구성 매개 변수 및 장치 클래스 변수를 포함하도록
/home/stack/templates/ceph-config.yaml과 같은 환경 파일을 생성합니다. 또는 기존 환경 파일에 다음 구성을 추가할 수 있습니다. 환경 파일에서
CephAnsibleDisksConfig매개변수를 사용하여 Ceph OSD로 사용하려는 블록 장치를 나열합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: Ceph는 디스크 유형을 자동으로 탐지하여 해당 장치 클래스에 할당합니다. 그러나 authenticate
_device_class속성을 사용하여 특정 장치가 특정 클래스에 속하거나 고유한 사용자 정의 클래스를 만들 수 있습니다. 다음 예제에는 지정된 클래스와 동일한 OSD 목록이 포함되어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow CephAnsibleExtraVars매개변수를 추가합니다. assets_rules매개 변수에는 Ceph가 자동으로 탐지하는 각 클래스에 대한 규칙이 포함되어야 합니다. 새 풀을 만들 때 규칙이 지정되지 않은 경우 Ceph가 기본값으로 사용할 규칙을 선택합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow CephPools매개변수를 추가합니다.-
rule_name매개 변수를 사용하여 기본 규칙을 사용하지 않는 각 풀의 계층을 지정합니다. 다음 예에서fastpool풀은 빠른 계층으로 구성된 SSD 장치 클래스를 사용하여 블록 스토리지 볼륨을 관리합니다. <appropriate_PG_num>을 적절한 PG(배포 그룹) 수로 바꿉니다. 또는 배치 그룹 자동 확장기를 사용하여 Ceph 풀의 PG 수를 계산합니다.자세한 내용은 다른 Ceph 풀에 사용자 지정 속성 할당을 참조하십시오.
CinderRbdExtraPools매개변수를 사용하여fastpool을 블록 스토리지 백엔드로 구성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
다음 예제를 사용하여 환경 파일에 올바른 값이 포함되어 있는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack overcloud deploy명령에 새 환경 파일을 포함합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <other_overcloud_environment_files>를 배포에 포함된 환경 파일 목록으로 바꿉니다.
기존 Ceph 클러스터에 환경 파일을 적용하면 기존 Ceph 풀이 새 규칙에 따라 업데이트되지 않습니다. 따라서 규칙을 지정된 풀로 설정하려면 배포가 완료된 후 다음 명령을 입력해야 합니다.
ceph osd pool set <pool> crush_rule <rule>
$ ceph osd pool set <pool> crush_rule <rule>
-
<pool>을 새 규칙을 적용할 풀의 이름으로 바꿉니다. -
<rule>을 지정한 규칙 이름 중 하나로교체합니다. -
<appropriate_PG_num>을 적절한 배치 그룹 수 또는target_size_ratio로 바꾸고를pg_autoscale_modetrue로 설정합니다.
이 명령을 사용하여 변경할 모든 규칙에 대해 기존 항목을 업데이트하거나 기존 템플릿의 CephPools 매개변수에 새 항목을 추가합니다.
CephPools:
- name: <pool>
pg_num: <appropriate_PG_num>
rule_name: <rule>
application: rbd
CephPools:
- name: <pool>
pg_num: <appropriate_PG_num>
rule_name: <rule>
application: rbd