2.5. CRUSH 가중치


CRUSH 알고리즘은 새 데이터 오브젝트를 PG 및 PG에 OSD에 할당하는 쓰기 요청에 대한 균일한 확률 분배를 사용하여 OSD 장치당 테라바이트 단위로 가중치 값을 할당합니다. 이러한 이유로 모범 사례로 동일한 유형 및 크기의 장치를 사용하여 CRUSH 계층 구조를 생성하고 동일한 가중치를 할당하는 것이 좋습니다. 성능 특성이 데이터 배포에 영향을 미치지 않더라도 CRUSH 계층 구조에 균일한 성능 특성을 가질 수 있도록 동일한 I/O 및 처리량 특성이 있는 장치를 사용하는 것이 좋습니다.

균일한 하드웨어를 사용하는 것이 항상 실용적인 것은 아니므로 다른 크기의 OSD 장치를 통합하고 더 많은 데이터를 더 큰 장치에 배포하고 더 적은 데이터를 더 작은 장치에 배포하도록 상대 가중치를 사용할 수 있습니다.

2.5.1. OSD의 CRUSH 가중치 설정

CRUSH 맵 내에서 OSD CRUSH 가중치를 Terabytes로 설정하려면 다음 명령을 실행합니다.

ceph osd crush reweight _NAME_ _WEIGHT_

다음과 같습니다.

name
설명
OSD의 전체 이름입니다.
유형
문자열
필수 항목
제공됨
osd.0
weight
설명
OSD의 CRUSH 가중치입니다. Terabytes의 OSD 크기여야 합니다. 여기서 1.0 은 1Terabyte입니다.
유형
double
필수 항목
제공됨
2.0

이 설정은 OSD를 생성하거나 OSD를 추가한 직후 CRUSH 가중치를 조정할 때 사용됩니다. 일반적으로 OSD 수명 동안 변경되지 않습니다.

2.5.2. Bucket의 OSD Weights 설정

ceph osd crush reweight 을 사용하는 것은 시간이 많이 소요될 수 있습니다. ceph osd crush reweight-subtree 명령을 실행하여 버킷(row, rack, node 등) 아래의 모든 Ceph OSD 가중치를 설정(또는 재설정)할 수 있습니다.

구문

ceph osd crush reweight-subtree NAME

여기서 NAME 은 CRUSH 버킷의 이름입니다.

2.5.3. OSD 의 Weight 설정

ceph osd inceph osd out 의 목적을 위해 OSD는 클러스터에 있거나 클러스터 외부에 있습니다. 이렇게 하면 모니터가 OSD 상태를 기록합니다. 그러나 OSD가 클러스터에 있지만 수정하기 전까지 (예: 스토리지 드라이브 교체, 컨트롤러 변경 등)에 의존하지 않도록 오작동이 발생할 수 있습니다.

다음을 실행하여 특정 OSD의 가중치를 늘리거나 줄일 수 있습니다(즉, Terabytes의 가중치를 변경하지 않고).

구문

ceph osd reweight ID WEIGHT

다음과 같습니다.

  • ID 는 OSD 번호입니다.
  • weight 는 0.0-1.0의 범위입니다. 여기서 0 은 클러스터에 존재하지 않으며(즉, PG가 할당되어 있지 않음) 1.0은 클러스터에 있습니다(즉, OSD는 다른 OSD와 동일한 수의 PG를 수신함).

2.5.4. 사용률에 따라 OSD의 가중치 설정

CRUSH는 새 데이터 오브젝트 PG 및 PG를 OSD에 할당하는 쓰기 요청에 대한 균일한 확률 분배를 위해 설계되었습니다. 그러나 클러스터가 어쨌든 불균형이 될 수 있습니다. 이는 여러 가지 이유로 발생할 수 있습니다. 예를 들면 다음과 같습니다.

  • 다중 풀: CRUSH 계층 구조에 여러 개의 풀을 할당할 수 있지만 풀은 배치 그룹 수, 크기(저장할 복제본 수) 및 오브젝트 크기 특성을 가질 수 있습니다.
  • 사용자 지정 클라이언트: 블록 장치, 오브젝트 게이트웨이 및 파일 시스템과 같은 Ceph 클라이언트는 클라이언트의 데이터를 공유하고 클러스터의 오브젝트로 데이터를 균일하게 크기 조정한 RADOS 오브젝트로 스트라이핑합니다. 따라서 앞서 언급한 시나리오를 제외하고 CRUSH는 일반적으로 목표를 달성합니다. 그러나 클러스터가 불균형이 될 수 있는 다른 경우가 있습니다. 즉 librados 를 사용하여 오브젝트 크기를 정규화하지 않고 데이터를 저장합니다. 이 시나리오는 불균형한 클러스터로 이어질 수 있습니다(예: 1001MB 개체와 10 4MB 개체를 저장하면 일부 OSD에 다른 OSD보다 많은 데이터가 있습니다).
  • 확률: 균일한 배포로 인해 더 많은 PG가 있고 일부는 적은 일부 OSD가 생성됩니다. OSD가 많은 클러스터의 경우 통계적 이상값이 추가로 제공됩니다.

다음을 실행하여 사용률을 통해 OSD를 다시 지정할 수 있습니다.

구문

ceph osd reweight-by-utilization [THRESHOLD_] [WEIGHT_CHANGE_AMOUNT] [NUMBER_OF_OSDS] [--no-increasing]

[ceph: root@host01 /]# ceph osd test-reweight-by-utilization 110 .5 4 --no-increasing

다음과 같습니다.

  • 임계값 은 데이터 스토리지 부하가 높은 OSD가 더 낮은 가중치와 그에 따라 할당된 PG를 수신할 수 있도록 사용률의 백분율입니다. 기본값은 120%를 반영하여 120 입니다. 100개 이상의 모든 값은 유효한 임계값입니다. 선택 사항입니다.
  • weight_change_amount 는 가중치를 변경할 양입니다. 유효한 값은 0.0 - 1.0 보다 큽니다. 기본값은 0.05 입니다. 선택 사항입니다.
  • number_of_OSDs 는 가중치를 조정할 OSD의 최대 수입니다. 대규모 클러스터의 경우 reweight으로 OSD 수를 제한하면 상당한 재조정을 방지할 수 있습니다. 선택 사항입니다.
  • 증가는 기본적으로 꺼져 있습니다. reweight-by-utilization 또는 test- reweight-by-utilization 명령을 사용할 때 osd weight 를 늘릴 수 있습니다. 이 옵션을 이러한 명령과 함께 사용하면 OSD가 활용도가 낮은 경우에도 OSD 가중치가 늘어나지 않습니다. 선택 사항입니다.
중요

대규모 클러스터에는 reweight-by-utilization 을 실행하는 것이 좋습니다. 사용률 비율은 시간이 지남에 따라 변경될 수 있으며 클러스터 크기 또는 하드웨어가 변경되면 변경되는 사용률을 반영하려면 가중치를 업데이트해야 할 수 있습니다. 사용률에 따라 가중치를 변경하도록 선택하는 경우 이 명령을 사용률, 하드웨어 또는 클러스터 크기 변경으로 다시 실행해야 할 수 있습니다.

가중치를 할당하는 이 또는 기타 가중치 명령을 실행하면 이 명령에 의해 할당된 가중치(예: osd reweight-by-utilization,osd crush weight,osd weight,in 또는 out)가 재정의됩니다.

2.5.5. PG 배포를 통해 OSD의 Weight 설정

OSD 수가 적은 CRUSH 계층 구조에서는 일부 OSD에서 다른 OSD보다 더 많은 PG를 얻을 수 있으므로 로드가 증가할 수 있습니다. 다음을 실행하여 PG 배포를 통해 OSD를 재중량하여 이러한 상황을 해결할 수 있습니다.

구문

osd reweight-by-pg POOL_NAME

다음과 같습니다.

  • Poolname 은 풀의 이름입니다. Ceph는 풀이 OSD에 PG를 할당하는 방법을 검사하고 이 풀의 PG 배포에 따라 OSD를 다시 가중치로 지정합니다. 동일한 CRUSH 계층 구조에 여러 개의 풀을 할당할 수 있습니다. 한 풀의 배포에 따라 OSD를 Reweighting OSD는 크기가 동일한 (복제본 수) 및 PG가 없는 경우 동일한 CRUSH 계층 구조에 할당된 다른 풀에 대해 의도하지 않은 영향을 미칠 수 있습니다.

2.5.6. CRUSH 트리의 가중치 다시 계산

CRUSH 트리 버킷은 리프 가중치의 합계여야 합니다. CRUSH 맵 가중치를 수동으로 편집하는 경우 다음을 실행하여 CRUSH 버킷 트리가 버킷 아래의 리프 OSD의 합계를 정확하게 반영하도록 해야 합니다.

구문

osd crush reweight-all

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동