3.4. 자동 확장 배치 그룹

풀의 배치 그룹(PG) 수는 클러스터 피어가 데이터를 분산하고, 균형을 조정하는 방법에 중요한 역할을 합니다.

PG 수를 자동 확장하여 클러스터를 더 쉽게 관리할 수 있습니다. pg-autoscaling 명령은 PG 확장에 대한 권장 사항을 제공하거나 클러스터 사용 방법에 따라 PG를 자동으로 스케일링합니다.

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 옵션을 사용하여 조정할 수 있습니다.

149 Ceph 자동 호출 0321 분할

병합

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

149 Ceph 자동 호출 0321 병합

3.4.3. 배치 그룹 자동 확장 모드 설정

Red Hat Ceph Storage 클러스터의 각 풀에는 PGs의 pg_autoscale_mode 속성이 있으며, 이는 ,on 또는 warn 입니다.

  • off: 풀에 대한 자동 확장을 비활성화합니다. 관리자는 각 풀에 적절한 PG 번호를 선택할 수 있습니다. 자세한 내용은 PG 수 섹션을 참조하십시오.
  • On: 지정된 풀에 PG 수를 자동으로 조정할 수 있습니다.
  • warn: PG 수를 조정해야 할 때 상태 경고를 진단합니다.

pg_autoscale_mode 의 기본값은 warn 모드입니다.

절차

  1. pg_autoscaling_mode 설정 :

    1. 기존 풀의 경우:

      ceph osd pool set pool-name pg_autoscale_mode mode

      예를 들어 testpool 에서 자동 스케일링을 활성화하려면 다음을 수행합니다.

      $ ceph osd pool set testpool pg_autoscale_mode on
    2. 새로 생성된 풀의 경우 기본적으로 다음과 같습니다.

      # ceph config set global osd_pool_default_pg_autoscale_mode <mode>

3.4.4. 배치 그룹 자동 확장 권장 사항 보기

절차

  1. 각 풀, 상대 사용률 및 다음을 사용하여 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배 이상 다릅니다.

NovaCronSCALEpg_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 으로 설정됩니다.

절차

  1. 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. 풀의 절대 크기를 사용하여 대상 크기 지정

절차

  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. 총 클러스터 용량을 사용하여 대상 크기 지정

절차

  1. 전체 클러스터 용량의 비율을 사용하여 대상 크기를 설정합니다.

    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_ratiotarget_size_bytes 를 모두 지정하면 클러스터에서 비율만 고려한 후 POOL_HAS_TARGET_SIZE_BYTES_AND_RATIO 상태 경고를 생성합니다.