5.11. 배치 그룹 자동 스케일러

PG(배치 그룹) 튜닝은 PG 계산기를 사용하여 pg_num 의 숫자 연결 수를 수동으로 연결하는 데 사용합니다. Red Hat Ceph Storage 4.1부터는 pg_autoscaler Ceph 관리자 모듈을 활성화하면 PG 튜닝을 자동으로 수행할 수 있습니다. PG 자동 스케일러는 풀 단위로 구성되며 pg_num 은 2의 힘으로 확장됩니다. PG 자동 스케일러는 제안된 값이 실제 값의 3배 이상인 경우에만 pg_num 에 대한 변경을 제안합니다.

PG 자동 스케일러에는 세 가지 모드가 있습니다.

warn
새 풀과 기존 풀의 기본 모드입니다. 제안된 pg_num 값이 현재 pg_num 값과 너무 많이 다른 경우 상태 경고가 생성됩니다.
on
풀의 pg_num 이 자동으로 조정됩니다.
off
모든 풀에 대해 자동 스케일러를 해제할 수 있지만 스토리지 관리자는 풀의 pg_num 값을 수동으로 설정해야 합니다.

풀에 있는 PG 자동 스케일러를 활성화하면 ceph osd 풀 autoscale-status 명령을 실행하여 값 조정을 볼 수 있습니다. autoscale-status 명령은 풀의 현재 상태를 표시합니다. autoscale-status 열 설명은 다음과 같습니다.

SIZE
풀에 저장된 총 데이터 양(바이트)을 보고합니다. 이 크기에는 오브젝트 데이터 및 OMAP 데이터가 포함됩니다.
TARGET SIZE
스토리지 관리자가 제공하는 대로 예상 풀 크기를 보고합니다. 이 값은 풀의 이상적인 PG 수를 계산하는 데 사용됩니다.
RATE
복제 버킷에 대한 복제 요소 또는 삭제 코드된 풀의 비율입니다.
RAW CAPACITY
pool이 mapped하는 스토리지 장치의 원시 스토리지 용량은 ArgoCD에 따라 다릅니다.
RATIO
풀에서 소비되는 총 스토리지의 비율입니다.
대상 비율
스토리지 관리자가 제공하는 대로 풀에서 사용하는 총 스토리지 클러스터 공간의 일부를 지정하는 비율입니다.
PG_NUM
풀의 현재 배치 그룹 수입니다.
NEW PG_NUM
제안된 값입니다. 이 값은 설정되지 않을 수 있습니다.
AUTOSCALE
풀에 설정된 PG 자동 스케일러 모드입니다.

추가 리소스

5.11.1. 배치 그룹 자동 스케일러 구성

Red Hat Ceph Storage 클러스터에서 새 풀에 대한 PG 자동 스케일러를 활성화하고 구성하도록 Ceph Ansible을 구성할 수 있습니다. 기본적으로 배치 그룹(PG) 자동 스케일러는 해제되어 있습니다.

중요

현재는 기존 Red Hat Ceph Storage 설치가 아닌 새로운 Red Hat Ceph Storage 배포에서 배치 그룹 자동 스케일러를 설정할 수 있습니다.

사전 요구 사항

  • Ansible 관리 노드에 액세스
  • Ceph 모니터 노드에 액세스합니다.

절차

  1. Ansible 관리 노드에서 편집할 group_vars/all.yml 파일을 엽니다.
  2. pg_autoscale_mode 옵션을 True 로 설정하고 새 또는 기존 풀의 target_size_ratio 값을 설정합니다.

    예제

    openstack_pools:
        - {"name": backups, "target_size_ratio": 0.1, "pg_autoscale_mode": True, "application": rbd}
        - {"name": volumes, "target_size_ratio": 0.5, "pg_autoscale_mode": True, "application": rbd}
        - {"name": vms,     "target_size_ratio": 0.2, "pg_autoscale_mode": True, "application": rbd}
        - {"name": images,  "target_size_ratio": 0.2, "pg_autoscale_mode": True, "application": rbd}

    참고

    target_size_ratio 값은 스토리지 클러스터의 다른 풀과 관련된 weight 백분율입니다.

  3. group_vars/all.yml 파일에 변경 사항을 저장합니다.
  4. 적절한 Ansible 플레이북을 실행합니다.

    베어 메탈 배포

    [ansible@admin ceph-ansible]$ ansible-playbook site.yml -i hosts

    컨테이너 배포

    [ansible@admin ceph-ansible]$ ansible-playbook site-container.yml -i hosts

  5. Ansible 플레이북이 완료되면 Ceph Monitor 노드에서 자동 스케일러 상태를 확인합니다.

    [user@mon ~]$ ceph osd pool autoscale-status