3.5. 자동 확장 배치 그룹
풀의 PG(배치 그룹) 수는 클러스터 피어링, 데이터를 배포 및 재조정하는 방법에 중요한 역할을 합니다.
PG 수를 자동 확장하여 클러스터를 더 쉽게 관리할 수 있습니다. pg-autoscaling
명령은 PG를 스케일링하기 위한 권장 사항을 제공하거나 클러스터 사용 방법에 따라 PG를 자동으로 스케일링합니다.
- 자동 확장 작동 방법에 대한 자세한 내용은 3.5.1절. “배치 그룹 자동 확장” 을 참조하십시오.
- 자동 확장을 활성화하거나 비활성화하려면 3.5.3절. “배치 그룹 자동 확장 모드 설정” 을 참조하십시오.
- 배치 그룹 스케일링 권장 사항을 보려면 3.5.4절. “배치 그룹 스케일링 권장 사항 보기” 을 참조하십시오.
- 배치 그룹 자동 스케일링을 설정하려면 3.5.5절. “배치 그룹 자동 확장 설정” 을 참조하십시오.
-
자동 스케일러를 전역적으로 업데이트하려면 다음을 참조하십시오. 3.5.6절. “
noautoscale
플래그 업데이트” - 대상 풀 크기를 설정하려면 3.6절. “대상 풀 크기 지정” 을 참조하십시오.
3.5.1. 배치 그룹 자동 확장
Auto-scaler의 작동 방식
자동 확장기에서는 풀을 분석하고 하위 트리별로 조정합니다. 각 풀은 서로 다른 rule에 매핑될 수 있으며 각 규칙이 서로 다른 장치에 데이터를 배포할 수 있으므로 Ceph는 계층 구조의 각 하위 트리의 사용률을 독립적으로 고려합니다. 예를 들어 클래스 ssd
의 OSD에 매핑되는 풀과 클래스 hdd
의 OSD에 매핑되는 풀은 각 장치 유형의 수에 따라 최적의 PG 개수를 갖습니다.
3.5.2. 배치 그룹 분할 및 병합
분할
Red Hat Ceph Storage는 기존 배치 그룹(PG)을 작은 PG로 분할할 수 있으므로 지정된 풀의 총 PG 수를 늘립니다. 기존 배치 그룹(PG)을 분할하면 스토리지 요구 사항이 증가함에 따라 소규모 Red Hat Ceph Storage 클러스터를 시간이 지남에 따라 확장할 수 있습니다. PG 자동 확장 기능은 pg_num
값을 늘릴 수 있으므로 스토리지 클러스터가 확장되면 기존 PG가 분할됩니다. PG 자동 확장 기능이 비활성화된 경우 pg_num
값을 수동으로 늘릴 수 있으므로 PG 분할 프로세스가 시작됩니다. 예를 들어 pg_num
값을 4
에서 16
으로 늘리면 4개의 조각으로 나뉩니다. pg_num
값을 늘리면 pgp_num
값도 증가하지만, 점진적으로 pgp_num
값이 증가합니다. 개체 데이터를 마이그레이션하면 시스템에 상당한 로드가 추가되기 때문에 스토리지 클러스터의 성능과 클라이언트 워크로드에 미치는 영향을 최소화하기 위해 이러한 점차 증가가 수행됩니다. 기본적으로 Ceph 대기열 및 는 "미플레이" 상태의 오브젝트 데이터의 5%를 초과하지 않습니다. 이 기본 백분율은 target_max_misplaced_ratio
옵션을 사용하여 조정할 수 있습니다.

병합
Red Hat Ceph Storage는 두 개의 기존 PG를 더 큰 PG로 병합하여 총 PG 수를 줄입니다. 두 PG를 함께 병합하면 특히 풀의 상대적 개체가 시간이 지남에 따라 감소하거나 선택한 PG의 초기 수가 너무 큰 경우 유용할 수 있습니다. PG를 병합하는 것은 유용할 수 있지만 복잡하고 민감한 과정이기도 합니다. 병합을 수행할 때 PG에 I/O를 일시 중지하면 한 번에 하나의 PG만 병합되어 스토리지 클러스터의 성능에 미치는 영향을 최소화합니다. 새 pg_num
값에 도달할 때까지 오브젝트 데이터를 병합하는 과정에서 Ceph가 느리게 작동합니다.

3.5.3. 배치 그룹 자동 확장 모드 설정
Red Hat Ceph Storage 클러스터의 각 풀에는 PG에 대한 pg_autoscale_mode
속성이 있으며, , 또는 경고를
해제
하도록 설정할 수 있습니다.
-
off
: 풀에 대해 자동 확장을 비활성화합니다. 관리자는 각 풀에 적절한 PG 번호를 선택합니다. 자세한 내용은 배치 그룹 수 섹션을 참조하십시오. -
On
: 지정된 풀에 PG 수를 자동으로 조정할 수 있습니다. -
경고
: PG 수가 조정되어야 할 때 상태 경고를 발생시킵니다.
Red Hat Ceph Storage 5 이상 릴리스에서 pg_autoscale_mode
는 기본적으로 켜져 있습니다
. 업그레이드된 스토리지 클러스터는 기존 pg_autoscale_mode
설정을 유지합니다. 새로 생성된 풀의 pg_auto_scale
모드가 켜져
있습니다. PG 수가 자동으로 조정되고 ceph 상태가
PG 수가 조정되는 동안 복구 상태가 표시될 수 있습니다.
자동 스케일러는 대규모
플래그를 사용하여 PG를 완전히 보완하여 시작해야 하는 풀을 결정하고 풀 전체의 사용량 비율도 그렇지 않은 경우에만 축소됩니다. 그러나 풀에 대규모 플래그가 없는 경우 풀은
최소한의 PG로 시작하고 풀에 더 많은 사용량이 있을 때만 풀이 시작됩니다.
자동 스케일러는 겹치는 루트를 식별하고 이러한 루트가 있는 풀을 스케일링하지 못하도록 합니다. 중복되는 루트는 확장 프로세스에 문제가 발생할 수 있기 때문입니다.
절차
기존 풀에서 자동 확장을 활성화합니다.
구문
ceph osd pool set POOL_NAME pg_autoscale_mode on
예제
[ceph: root@host01 /]# ceph osd pool set testpool pg_autoscale_mode on
새로 생성된 풀에서 자동 확장을 활성화합니다.
구문
ceph config set global osd_pool_default_pg_autoscale_mode MODE
예제
[ceph: root@host01 /]# ceph config set global osd_pool_default_pg_autoscale_mode on
대규모 플래그를 사용하여
풀을
생성합니다.구문
ceph osd pool create POOL_NAME --bulk
예제
[ceph: root@host01 /]# ceph osd pool create testpool --bulk
기존 풀의 대규모
플래그
를 설정하거나 설정 해제합니다.중요값은
true
,false
,1
또는0
으로 작성되어야 합니다.1
은true
와 같고0
은false
와 동일합니다. 다른 대문자로 작성하거나 다른 콘텐츠로 작성된 경우 오류가 발생합니다.다음은 잘못된 구문으로 작성된 명령의 예입니다.
[ceph: root@host01 /]# ceph osd pool set ec_pool_overwrite bulk True Error EINVAL: expecting value 'true', 'false', '0', or '1'
구문
ceph osd pool set POOL_NAME bulk true/false/1/0
예제
[ceph: root@host01 /]# ceph osd pool set testpool bulk true
기존 풀
의
대규모 플래그를 가져옵니다.구문
ceph osd pool get POOL_NAME bulk
예제
[ceph: root@host01 /]# ceph osd pool get testpool bulk bulk: true
3.5.4. 배치 그룹 스케일링 권장 사항 보기
풀, 상대 사용률 및 스토리지 클러스터에서 PG 수에 대한 제안된 변경 사항을 볼 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터
- 모든 노드에 대한 루트 수준 액세스.
절차
다음을 사용하여 각 풀, 상대 사용률 및 PG 수에 권장되는 모든 변경 사항을 볼 수 있습니다.
[ceph: root@host01 /]# ceph osd pool autoscale-status
출력은 다음과 유사합니다.
POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO EFFECTIVE RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE BULK device_health_metrics 0 3.0 374.9G 0.0000 1.0 1 on False cephfs.cephfs.meta 24632 3.0 374.9G 0.0000 4.0 32 on False cephfs.cephfs.data 0 3.0 374.9G 0.0000 1.0 32 on False .rgw.root 1323 3.0 374.9G 0.0000 1.0 32 on False default.rgw.log 3702 3.0 374.9G 0.0000 1.0 32 on False default.rgw.control 0 3.0 374.9G 0.0000 1.0 32 on False default.rgw.meta 382 3.0 374.9G 0.0000 4.0 8 on False
크기
조정은 풀에 저장된 데이터 양입니다.
TARGET 크기
(있는 경우)는 관리자가 지정한 데이터 양입니다. 시스템은 두 값 중 더 큰 계산을 사용합니다.
RATE
는 풀에서 사용하는 원시 스토리지 용량의 양을 결정하는 풀의 곱셈입니다. 예를 들어 3
개의 복제본 풀은 3.0
의 비율을 가지며 k=4,m=2
dissure 코딩된 풀은 1.5
의 비율을 갖습니다.
RAW CAPACITY
는 풀의 데이터를 저장하는 OSD의 총 원시 스토리지 용량입니다.
RATIO
는 풀이 사용하는 총 용량의 비율입니다. 즉, ratio = size * rate / raw capacity입니다.
TARGET RATIO
(있는 경우 TARGET RATIO)는 관리자가 대상 비율이 설정된 다른 풀과 상대적으로 풀이 소비되도록 지정한 스토리지 비율입니다. 대상 크기 바이트와 비율을 모두 지정하면 비율이 우선합니다. TARGET RATIO
의 기본값은 풀을 생성하는 동안 지정된 경우를 제외하고 0
입니다. 풀에 제공할 --target_ratio
가 많을수록 풀이 예상하는 PG가 커집니다.
ECDHEFECTIVE RATIO
는 두 가지 방법으로 조정한 후 대상 비율입니다. 1. 대상 크기 집합을 가진 풀에서 사용할 것으로 예상되는 용량을 뺀다. 2. 대상 비율로 풀 간에 대상 비율을 표준화하여 나머지 공간을 전체적으로 대상으로 합니다. 예를 들어 대상 비율
1.0이 있는 풀 4는 유효 비율이
0.25입니다. 시스템은 실제 비율과 계산에 유효 비율을 사용합니다.
BIAS
는 특정 풀이 보유할 것으로 예상되는 PG에 대한 사전 정보를 기반으로 풀의 PG를 수동으로 조정하는 멀티플라이어로 사용됩니다. 기본적으로 풀을 만들 때 지정하지 않는 한 1.0인 경우 값입니다. 풀에서 제공하는 --bias
가 많을수록 풀에 있을 것으로 예상되는 PG가 더 커집니다.
PG_NUM
은 풀의 현재 PG 수 또는 pg_num
변경이 진행 중인 경우 풀이 진행 중인 PG의 현재 수입니다. NEW PG_NUM
(있는 경우)은 제안된 PG 수입니다 (pg_num
). 이는 항상 2의 힘이며 제안된 값이 현재 값과 3개 이상의 요인에 따라 달라지는 경우에만 존재합니다.
AUTOSCALE
, pg_autoscale_mode
풀이며, ,off
또는 warn
에
있습니다.
BULK
는 PG를 완전히 보완하여 시작해야 하는 풀을 결정하는 데 사용됩니다. 사용량 비율이 풀에서 교차하는 경우에만 BULK
가 축소됩니다. 풀에 이 플래그가 없는 경우 풀은 최소 양의 PG로 시작하고 풀에 더 많은 사용량이 있을 때만 사용됩니다.
BULK
값은 true
,false
,1
또는 0
입니다. 여기서 1
은 true
와 같고 0
은 false
와 동일합니다. 기본값은 false
입니다.
풀 생성 중 또는 후에 BULK
값을 설정합니다.
일괄 플래그를 사용하는 방법에 대한 자세한 내용은 풀 생성 및 배치 그룹 자동 확장 모드를 참조하십시오.
3.5.5. 배치 그룹 자동 확장 설정
클러스터가 클러스터 사용량에 따라 PG를 자동으로 스케일링할 수 있도록 허용하는 것이 PG를 확장하는 가장 간단한 방법입니다. Red Hat Ceph Storage는 전체 시스템에 사용할 수 있는 총 스토리지와 대상 PG 수를 가져와서 각 풀에 저장된 데이터 양을 비교하고 이에 따라 PG를 적용합니다. 이 명령은 현재 PG 수(pg_num
)가 계산된 또는 제안된 PG 번호에서 3배 이상 떨어져 있는 풀만 변경합니다.
OSD당 대상 PG 수는 구성 가능한 mon_target_pg_per_osd
를 기반으로 합니다. 기본값은 100
으로 설정됩니다.
절차
mon_target_pg_per_osd
:구문
ceph config set global mon_target_pg_per_osd number
예를 들면 다음과 같습니다.
[ceph: root@host01 /]# ceph config set global mon_target_pg_per_osd 150
3.5.6. noautoscale
플래그 업데이트
모든 풀에 대해 자동 스케일러를 동시에 활성화하거나 비활성화하려면 noautoscale
글로벌 플래그를 사용할 수 있습니다. 이 글로벌 플래그는 일부 OSD가 초과되거나 클러스터가 유지 관리 중인 경우 스토리지 클러스터를 업그레이드하는 동안 유용합니다. 활동 전에 플래그를 설정하고 작업이 완료되면 설정을 해제할 수 있습니다.
기본적으로 noautoscale
플래그는 off
로 설정됩니다. 이 플래그가 설정되면 모든 풀에 pg_autoscale_mode
가 해제
되고 모든 풀이 자동 스케일러가 비활성화되어 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터
- 모든 노드에 대한 루트 수준 액세스.
절차
noautoscale
플래그 값을 가져옵니다.예제
[ceph: root@host01 /]# ceph osd pool get noautoscale
활동 전에
noautoscale
플래그를 설정합니다.예제
[ceph: root@host01 /]# ceph osd pool set noautoscale
작업이 완료되면
noautoscale
플래그를 설정 해제합니다.예제
[ceph: root@host01 /]# ceph osd pool unset noautoscale