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
ceph osd pool set pool-name pg_autoscale_mode mode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어
testpool
에서 자동 스케일링을 활성화하려면 다음을 수행합니다.ceph osd pool set testpool pg_autoscale_mode on
$ ceph osd pool set testpool pg_autoscale_mode on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로 생성된 풀의 경우 기본적으로 다음과 같습니다.
ceph config set global osd_pool_default_pg_autoscale_mode <mode>
# ceph config set global osd_pool_default_pg_autoscale_mode <mode>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.4. 배치 그룹 자동 확장 권장 사항 보기 링크 복사링크가 클립보드에 복사되었습니다!
절차
각 풀, 상대 사용률 및 다음을 사용하여 PG 수에 대한 제안된 변경 사항을 볼 수 있습니다.
ceph osd pool autoscale-status
ceph osd pool autoscale-status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 다음과 유사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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 number
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예:
ceph config set global mon_target_pg_per_osd 150
$ ceph config set global mon_target_pg_per_osd 150
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
ceph osd pool set pool-name target_size_bytes value
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어
mypool
에 100T 공간을 사용할 것으로 예상되는 시스템에 지시하려면 다음을 수행합니다.ceph osd pool set mypool target_size_bytes 100T
$ ceph osd pool set mypool target_size_bytes 100T
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
선택적 --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 pool-name target_size_ratio ratio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
ceph osd pool set mypool target_size_ratio 1.0
$ ceph osd pool set mypool target_size_ratio 1.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
상태 경고를 생성합니다.