3.4. 자동 확장 배치 그룹
풀의 배치 그룹(PG) 수는 클러스터 피어가 데이터를 분산하고, 균형을 조정하는 방법에 중요한 역할을 합니다.
PG 수를 자동 확장하여 클러스터를 더 쉽게 관리할 수 있습니다. pg-autoscaling
명령은 PG 확장에 대한 권장 사항을 제공하거나 클러스터 사용 방법에 따라 PG를 자동으로 스케일링합니다.
- 자동 확장 작동 방법에 대한 자세한 내용은 3.4.1절. “배치 그룹 자동 확장” 을 참조하십시오.
- 자동 확장을 활성화하거나 비활성화하려면 3.4.3절. “배치 그룹 자동 확장 모드 설정” 을 참조하십시오.
- 배치 그룹 자동 확장 권장 사항을 보려면 3.4.4절. “배치 그룹 자동 확장 권장 사항 보기” 를 참조하십시오.
- 배치 그룹 자동 확장을 설정하려면 3.4.5절. “배치 그룹 자동 확장 설정” 를 참조하십시오.
- 대상 풀 크기를 설정하려면 3.4.6절. “대상 풀 크기 지정” 를 참조하십시오.
3.4.1. 배치 그룹 자동 확장
자동 스케일링러 작동 방식
auto-scaler는 풀을 분석하고 각 하위 트리별로 조정합니다. 각 풀은 다른 CRUSH 규칙에 매핑될 수 있으며 각 규칙은 서로 다른 장치에 데이터를 배포할 수 있으므로 Ceph는 계층 구조의 각 하위 트리를 독립적으로 활용합니다. 예를 들어, ssd
의 OSD에 매핑되는 풀과 hdd
의 OSD에 매핑되는 풀은 각 장치 유형의 수에 따라 최적의 PG 수를 갖습니다.
3.4.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 큐는 "misplaced" 상태인 오브젝트 데이터의 5%를 넘지 않습니다. 이 기본 백분율은 target_max_misplaced_ratio
옵션을 사용하여 조정할 수 있습니다.
병합
Red Hat Ceph Storage는 두 개의 기존 PG를 더 큰 PG에 병합하여 총 PG 수를 줄일 수 있습니다. 두 개의 PG를 함께 병합하면 특히 풀의 상대적 크기가 시간이 지남에 따라 감소하거나 선택한 PG의 초기 수가 너무 크면 유용할 수 있습니다. PG를 병합하는 것은 유용할 수 있지만 복잡하고 섬세한 프로세스이기도 합니다. 병합을 수행하면 PG에 I/O를 일시 중지하면 스토리지 클러스터 성능에 미치는 영향을 최소화하기 위해 한 번에 하나의 PG만 병합됩니다. Ceph는 새 pg_num
값에 도달할 때까지 오브젝트 데이터를 병합하는 데 느리게 작동합니다.
3.4.3. 배치 그룹 자동 확장 모드 설정
Red Hat Ceph Storage 클러스터의 각 풀에는 PGs의 pg_autoscale_mode
속성이 있으며, 이는 ,on
또는 warn
입니다.
-
off
: 풀에 대한 자동 확장을 비활성화합니다. 관리자는 각 풀에 적절한 PG 번호를 선택할 수 있습니다. 자세한 내용은 PG 수 섹션을 참조하십시오. -
On
: 지정된 풀에 PG 수를 자동으로 조정할 수 있습니다. -
warn
: PG 수를 조정해야 할 때 상태 경고를 진단합니다.
pg_autoscale_mode
의 기본값은 warn
모드입니다.
절차
pg_autoscaling_mode
설정 :기존 풀의 경우:
ceph osd pool set pool-name pg_autoscale_mode mode
예를 들어
testpool
에서 자동 스케일링을 활성화하려면 다음을 수행합니다.$ ceph osd pool set testpool pg_autoscale_mode on
새로 생성된 풀의 경우 기본적으로 다음과 같습니다.
# ceph config set global osd_pool_default_pg_autoscale_mode <mode>
3.4.4. 배치 그룹 자동 확장 권장 사항 보기
절차
각 풀, 상대 사용률 및 다음을 사용하여 PG 수에 대한 제안된 변경 사항을 볼 수 있습니다.
ceph osd pool autoscale-status
출력은 다음과 유사합니다.
POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO EFFECTIVE RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE cephfs_data 65 3.0 449.9G 0.0000 1.0 32 warn cephfs_metadata 78724 3.0 449.9G 0.0000 1.0 8 warn .rgw.root 3062 3.0 449.9G 0.0000 1.0 32 warn default.rgw.control 0 3.0 449.9G 0.0000 1.0 32 warn default.rgw.meta 1304 3.0 449.9G 0.0000 1.0 32 warn default.rgw.log 6761 3.0 449.9G 0.0000 1.0 32 warn default.rgw.buckets.index 0 3.0 449.9G 0.0000 1.0 32 warn default.rgw.buckets.data 4910 3.0 449.9G 0.0000 1.0 32 warn ocs-ext 119.2M 3.0 449.9G 0.0008 1.0 32 warn
SIZE
는 풀에 저장된 데이터의 양입니다. TARGET SIZE
는 관리자가 지정한 데이터의 양이며, 결국 이 풀에 저장됩니다. 시스템은 계산에 두 값 중 더 큰 값을 사용합니다.
RATE
는 풀에서 사용하는 원시 스토리지 용량의 양을 결정하는 풀의 곱값입니다. 예를 들어 3
개의 복제본 풀에는 3.0
의 비율이 있으며 k=4,m=2
pastsure coded 풀에는 1.5
의 비율이 있습니다.
RAW CAPACITY
는 풀 데이터를 저장하는 OSD의 총 원시 스토리지 용량입니다. RATIO
는 풀이 소비하는 총 용량의 비율, 즉 비율 = 크기 * 비율 / 원시 용량입니다.
TARGET RATIO
는 관리자가 지정한 스토리지의 비율이므로 대상 비율이 설정된 다른 풀과 관련하여 소비할 것으로 예상됩니다. 대상 크기 바이트와 비율을 모두 지정하면 비율이 우선합니다.
EFFECTIVE RATIO
는 두 가지 방식으로 조정한 후 대상 비율입니다. 1. 대상 크기 세트가 있는 풀에서 사용할 것으로 예상되는 용량을 뺀 것입니다. 2. 대상 비율이 설정된 풀 간 대상 비율을 정규화하여 나머지 공간을 전체적으로 대상으로 지정합니다. 예를 들어 대상 비율
1.0을 사용하는 4개 풀은 0.25의 유효 비율
을 갖습니다. 이 시스템은 실제 비율보다 크고 계산을 위해 유효한 비율을 사용합니다.
BIAS
는 PG 자동 스케일러가 PG 수의 수에 따라 일부 풀을 다른 풀보다 더 빠르게 스케일링하는 데 사용하는 풀 속성입니다. 기본적으로 기본 PG 수보다 풀에 더 많은 PG를 제공하는 데 사용되는 멀티플라이어입니다. 이 속성은 크기가 작을 수 있지만 크기가 많지만 많은 오브젝트가 있으므로 성능 향상을 위해 더 빠르게 스케일링하는 것이 중요합니다. BIAS의 기본값은 1.0입니다. ceph osd pool set pool-name pg_autoscale_bias 4
명령을 실행하여 이 값을 설정할 수 있습니다. 허용되는 값은 0에서 1000 사이입니다. 그러나 CephFS 메타데이터 풀 및 Ceph Object Gateway 인덱스 풀에 대해 기본적으로 BIAS의 값을 4.0으로 설정하는 것이 좋습니다.
PG_NUM
은 풀에 대한 현재 PG 수 또는 pg_num
변경이 진행 중인 경우 풀의 현재 PG 수입니다. NEW PG_NUM
(있는 경우)은 제안된 PG(pg_num
)입니다. 항상 2의 힘이며 제안된 값은 항상 현재 값과 3배 이상 다릅니다.
NovaCronSCALE
는 pg_autoscale_mode
풀이며, ,off
또는 warn
입니다.
3.4.5. 배치 그룹 자동 확장 설정
클러스터에서 클러스터 사용량을 기반으로 PG를 자동으로 확장할 수 있도록 허용하는 것이 PG를 스케일링하는 가장 간단한 방법입니다. Red Hat Ceph Storage는 전체 시스템에 사용 가능한 총 스토리지 및 PG의 대상 수를 가져와서 각 풀에 저장된 데이터의 양을 비교하고 PG를 적절하게 조정합니다. 이 명령은 현재 PG(pg_num
)가 계산되거나 제안된 PG 번호에서 세 번 이상 꺼져 있는 풀만 변경합니다.
OSD당 PG의 대상 수는 mon_target_pg_per_osd
구성 가능한 를 기반으로 합니다. 기본값은 100
으로 설정됩니다.
절차
To adjust
mon_target_pg_per_osd
:ceph config set global mon_target_pg_per_osd number
예:
$ ceph config set global mon_target_pg_per_osd 150
3.4.6. 대상 풀 크기 지정
새로 생성된 풀은 전체 클러스터 용량의 작은 부분을 소비하며 적은 수의 PG가 필요한 시스템에 나타납니다. 그러나 대부분의 경우 클러스터 관리자는 시간이 지남에 따라 대부분의 시스템 용량을 사용할 것으로 예상되는 풀을 인식합니다. 이 정보를 Red Hat Ceph Storage에 대상 크기
라고 하는 경우 이러한 풀은 처음부터 더 적절한 PG(pg_num
)를 사용할 수 있습니다. 이 접근 방식은 pg_num
의 후속 변경 및 이러한 조정을 할 때 데이터 이동과 관련된 오버헤드를 방지합니다.
다음과 같은 방법으로 풀의 대상 크기를
지정할 수 있습니다.
3.4.6.1. 풀의 절대 크기를 사용하여 대상 크기 지정
절차
풀의 절대
크기를 바이트 단위로 사용하여 대상
크기를 설정합니다.ceph osd pool set pool-name target_size_bytes value
예를 들어
mypool
에 100T 공간을 사용할 것으로 예상되는 시스템에 지시하려면 다음을 수행합니다.$ ceph osd pool set mypool target_size_bytes 100T
선택적 --target-size-bytes <bytes
> 인수를 ceph osd pool create
명령에 추가하여 생성 시 풀의 대상 크기를 설정할 수도 있습니다.
3.4.6.2. 총 클러스터 용량을 사용하여 대상 크기 지정
절차
전체 클러스터 용량의 비율을 사용하여
대상 크기를
설정합니다.ceph osd pool set pool-name target_size_ratio ratio
예를 들면 다음과 같습니다.
$ ceph osd pool set mypool target_size_ratio 1.0
mypool
풀에target_size_ratio
가 설정된 다른 풀과 관련하여 1.0을 사용할 것으로 예상되는 시스템에 지시합니다.mypool
이 클러스터의 유일한 풀인 경우 총 용량의 100%를 사용할 것으로 예상됩니다.target_size_ratio
를 1.0으로 사용하는 두 번째 풀이 있는 경우 두 풀 모두 클러스터 용량의 50%를 사용할 것으로 예상됩니다.
선택적 --target-size-ratio <ratio
> 인수를 ceph osd pool create
명령에 추가하여 생성 시 풀의 대상 크기를 설정할 수도 있습니다.
예를 들어 총 클러스터보다 큰 용량 또는 합계가 1.0보다 큰 대상 크기 값을 지정하는 경우 클러스터는 POOL_TARGET_ RATIO_OVERCOMMITTED 또는 POOL_TARGET_SIZE_
BYTES _BYTES_BYTES_OVERCOMMITTED
상태 경고를 발생시킵니다.
풀에 target_size_ratio
및 target_size_bytes
를 모두 지정하면 클러스터에서 비율만 고려한 후 POOL_HAS_TARGET_SIZE_BYTES_AND_RATIO
상태 경고를 생성합니다.