2.5. CRUSH 가중치


CRUSH 알고리즘은 새 데이터 오브젝트를 PG에 할당하고 PGs에 PGs 및 PGs를 OSD에 할당하는 쓰기 요청의 일관된 확률 배포를 목표로 OSD 장치당 테라바이트 단위로 가중치 값을 할당합니다. 이러한 이유로 동일한 유형과 크기의 장치를 사용하여 CRUSH 계층 구조를 만들고 동일한 가중치를 할당하는 것이 좋습니다. 성능 특성이 데이터 배포에 영향을 미치지 않는 경우에도 CRUSH 계층 구조의 일관된 성능 특성을 갖도록 동일한 I/O 및 처리량의 특성을 가진 장치를 사용하는 것이 좋습니다.

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

2.5.1. Terabytes에서 OSD의 Weight 설정

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

Copy to Clipboard Toggle word wrap
ceph osd crush reweight {name} {weight}

다음과 같습니다.

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

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

2.5.2. Bucket의 OSD 가중치 설정

ceph osd crush reweight 을 사용하면 시간이 오래 걸릴 수 있습니다. 다음을 실행하여 버킷(row, rack, node 등)에서 모든 Ceph OSD 가중치를 설정(또는 재설정)할 수 있습니다.

Copy to Clipboard Toggle word wrap
osd crush reweight-subtree <name>

다음과 같습니다.

name 은 CRUSH 버킷의 이름입니다.

2.5.3. 가중치 에서 OSD 설정

에서 ceph osd 의 용도 및 ceph osd out 의 목적을 위해 OSD는 클러스터 내에 있거나 클러스터 외부에 있습니다. 이렇게 하면 모니터에서 OSD 상태를 기록합니다. 그러나 OSD가 클러스터에 있지만 문제를 해결할 때까지 사용하지 않으려는 상황이 발생할 수 있습니다(예: 스토리지 드라이브를 교체, 컨트롤러 변경 등).

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

Copy to Clipboard Toggle word wrap
ceph osd reweight {id} {weight}

다음과 같습니다.

  • id 는 OSD 번호입니다.
  • 가중치 는 0.0-1.0의 범위입니다. 여기서 0 은 클러스터에 있지 않으며 (즉, PG가 할당되지 않음) 1.0은 클러스터에 있습니다(즉, OSD는 다른 OSD와 동일한 개수의 PG를 받습니다).

2.5.4. 사용률을 통해 OSD의 가중치 설정

CRUSH는 새 데이터 오브젝트 PG와 PG를 OSD에 할당하는 쓰기 요청의 균일한 확률 배포를 대략적으로 처리하도록 설계되었습니다. 그러나 어떤 경우에도 클러스터의 불균형이 발생할 수 있습니다. 이는 여러 가지 이유로 발생할 수 있습니다. 예를 들어 다음과 같습니다.

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

다음을 실행하여 OSD를 다시 스케일링할 수 있습니다.

Copy to Clipboard Toggle word wrap
ceph osd reweight-by-utilization [threshold]  [weight_change_amount] [number_of_OSDs] [--no-increasing]

예를 들어 다음과 같습니다.

Copy to Clipboard Toggle word wrap
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 수입니다. 대규모 클러스터의 경우 OSD 수를 다시 스케일링하도록 제한하면 상당한 재조정이 방지됩니다. 선택 사항:
  • 기본적으로 no-increasing해제 되어 있습니다. reweight-by-utilization 또는 test- reweight-by-utilization 명령을 사용하면 osd 가중치 를 늘릴 수 있습니다. 이 옵션을 이러한 명령과 함께 사용하면 OSD의 사용량이 낮은 경우에도 OSD 가중치가 늘어나지 않습니다. 선택 사항:
중요

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

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

2.5.5. PG Distribution에서 OSD의 가중치 설정

CRUSH 계층 구조에서 OSD 수가 적은 경우 일부 OSD에서 다른 OSD보다 더 많은 PG를 얻을 수 있으므로 부하가 높아집니다. PG 배포로 OSD를 다시 스케일링하여 다음을 실행하여 이 상황을 해결할 수 있습니다.

Copy to Clipboard Toggle word wrap
osd reweight-by-pg <poolname>

다음과 같습니다.

  • Poolname 은 풀의 이름입니다. Ceph는 풀에서 OSD에 PG를 할당하고 이 풀의 PG 배포에 따라 OSD를 재사용하는 방법을 검토합니다. 동일한 CRUSH 계층 구조에 여러 개의 풀을 할당할 수 있습니다. 하나의 풀의 배포에 따라 OSD를 다시 스케일링하면 동일한 size(복제본 수) 및 PGs가 없는 경우 다른 풀에 대해 동일한 CRUSH 계층에 할당되는 의도하지 않은 효과가 있을 수 있습니다.

2.5.6. CRUSH 트리의 가중치 재계산

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

Copy to Clipboard Toggle word wrap
osd crush reweight-all
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.