배치 그룹 늘리기

배치 그룹을 늘리는 방법을 학습합니다.

시작하기 전에

시작하기 전에 다음과 같은 전제 조건이 충족되었는지 확인하세요:
  • IBM Storage Ceph 클러스터가 정상적으로 실행되고 있습니다.
  • 노드에 대한 루트 레벨 액세스.

이 태스크에 대한 정보

충분하지 않은 배치 그룹 (PG) 수는 Ceph 클러스터 및 데이터 분배의 성능에 영향을 줍니다. 이는 다음과 같은 주요 원인 중 하나입니다.nearfull osds오류 메시지입니다.

권장 비율은 OSD당 100-300개의 PGs입니다. 클러스터에 더 많은 OSD를 추가하면 이 비율이 감소할 수 있습니다.

pg_numpgp_num 매개변수는 PG수를 판별합니다. 이러한 매개변수는 각 풀마다 구성되므로 개별입 있에에서는 PG수가 낮은 각 풀을 조정해야 합니다.
중요: PG수를 늘리는 것은 Ceph 클러스터에서 실행할 수 있는 가장 집중적인 프로세스입니다. 이 프로세스는 느리고 체계적인 방법으로 수행되지 않는 경우 심각한 성능 영향을 미칠 수 있습니다. pgp_num를 늘린 후에는 프로세스를 중지하거나 되돌릴 수 없으므로 이를 완료해야 합니다. 중요 비즈니스 처리 시간 할당 외부에서 PG수를 늘리는 것을 고려하고 잠재적인 성능 영향에 대해 모든 클라이언트에게 경고하십시오. 클러스터가 다음에 있는 경우 PG수를 변경하지 마십시오.HEALTH_ERR때문입니다.

자세한 내용은 니어풀 OSD모니터링 배치 그룹 세트를 참조하세요.

프로시저

  1. 개별 OSD및 OSD 호스트에서 데이터 재분배 및 복구의 영향을 줄이십시오.
    1. osd max backfills, osd_recovery_max_activeosd_recovery_op_priority 매개변수의 값을 낮추십시오.
      [ceph: root@host01 /]# ceph tell osd.* 인젝타르 '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
    2. 샐로우 (shallow) 및 딥 (deep) 스크러빙을 사용 안함으로 설정하십시오.
      ceph osd set noscrub
      ceph osd set nodeep-scrub
      예를 들면 다음과 같습니다.
      [ceph: root@host01 /]# ceph osd set noscrub
      [ceph: root@host01 /]# ceph osd set nodeep-scrub
  2. pg_numpgp_num 매개변수의 최적 값을 계산하십시오.
    풀당 Ceph 배치 그룹(PG) 계산기를 사용하여 최적의 값을 계산할 수 있습니다.
  3. 원하는 값에 도달할 때까지 pg_num 값을 작은 증분으로 늘리십시오.
    1. 시작 증분 값을 판별하십시오.
      2의 거듭제곱인 매우 낮은 값을 사용하고 클러스터에 대한 영향을 판별할 때 이 값을 늘리십시오. 최적의 값은 풀 크기, OSD수 및 클라이언트 I/O 로드에 따라 다릅니다.
    2. pg_num 값을 늘리십시오.
      풀 이름 및 새 값을 지정하십시오.
      ceph osd pool set POOL pg_num VALUE
      예를 들면 다음과 같습니다.
      [ceph: root@host01 /]# ceph osd 풀 세트 데이터 pg_num 4
    3. ceph -s 명령을 사용하여 클러스터의 상태를 모니터하십시오.
      PGs 상태가 creating 에서 active+clean으로 변경됩니다. 모든 PG가 active+clean 상태가 될 때까지 기다리십시오.
  4. 원하는 값에 도달할 때까지 pgp_num 값을 작은 증분으로 늘리십시오.
    1. 시작 증분 값을 판별하십시오.
      2의 거듭제곱인 매우 낮은 값을 사용하고 클러스터에 대한 영향을 판별할 때 이 값을 늘리십시오. 최적의 값은 풀 크기, OSD수 및 클라이언트 I/O 로드에 따라 다릅니다.
    2. pgp_num 값을 늘리십시오.
      풀 이름 및 새 값을 지정하십시오.
      ceph osd pool set POOL pgp_num VALUE
      예를 들면 다음과 같습니다.
      [ceph: root@host01 /]# ceph osd 풀 세트 데이터 pgp_num 4
    3. ceph -s 명령을 사용하여 클러스터의 상태를 모니터하십시오.
      PGs 상태는 피어링, wait_backfill, 백필링, 복구등을 통해 변경됩니다. 모든 PG가 active+clean 상태가 될 때까지 기다리십시오.
  5. PG수가 충분하지 않은 모든 풀에 대해 1 - 4 단계를 반복하십시오.
  6. osd max backfills, osd_recovery_max_activeosd_recovery_op_priority 를 기본값으로 설정하십시오.
    예를 들면 다음과 같습니다.
    [ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
  7. 샐로우 (shallow) 및 딥 (deep) 스크러빙을 사용으로 설정하십시오.
    ceph osd unset noscrub
    ceph osd unset nodeep-scrub
    예를 들면 다음과 같습니다.
    [ceph: root@host01 /]# ceph osd 언셋 노스크럽
    [ceph: root@host01 /]# ceph osd unset nodeep-scrub