2.8. CRUSH Tunables


Ceph 프로젝트는 많은 변경 사항과 많은 새로운 기능으로 기하 급수적으로 증가했습니다. Ceph의 첫 번째 상용 지원 주요 릴리스인 v0.48(Argonaut)부터 Ceph는 CRUSH 알고리즘의 특정 매개 변수를 조정하는 기능을 제공합니다. 즉, 설정이 소스 코드에서 고정되지 않습니다.

고려해야 할 몇 가지 중요한 사항:

  • NetNamespace 값을 조정하면 스토리지 노드 간에 일부 PG가 변경될 수 있습니다. Ceph 클러스터에서 이미 많은 데이터를 저장하고 있는 경우 이동할 데이터의 일부 용량에 대비해야 합니다.
  • ceph-osdceph-mon 데몬은 업데이트된 맵을 수신하는 즉시 새 연결의 기능 비트를 요구하기 시작합니다. 그러나 이미 연결된 클라이언트는 효과적으로 에 배치되어 있으며 새로운 기능을 지원하지 않는 경우 잘못된 것입니다. Ceph 클라이언트도 업데이트하는 Ceph Storage 클러스터 데몬을 업그레이드할 때 확인하십시오.
  • CRUSH 튜닝 가능 항목이 non-legacy 값으로 설정되어 나중에 레거시 값으로 다시 변경되면 기능을 지원하는 데 ceph-osd 데몬이 필요하지 않습니다. 그러나 OSD 피어링 프로세스에서는 이전 맵을 검사하고 이해해야 합니다. 따라서 클러스터가 이전에 비-레거시 CRUSH 값을 사용한 경우 기존 기본값을 사용하여 최신 버전의 맵을 다시 전환한 경우에도 이전 버전의 ceph-osd 데몬을 실행하지 않아야 합니다.

2.8.1. CRUSH 튜닝

CRUSH를 튜닝하기 전에 모든 Ceph 클라이언트 및 모든 Ceph 데몬이 동일한 버전을 사용하는지 확인해야 합니다. 최근에 업그레이드한 경우 데몬을 다시 시작하고 클라이언트를 다시 연결했는지 확인하십시오.

CRUSH 튜닝 가능 항목을 조정하는 가장 간단한 방법은 알려진 프로필로 변경하는 것입니다. 이는 다음과 같습니다.

  • legacy: v0.47(pre-Argonaut) 이전의 레거시 동작입니다.
  • Argonau t: v0.48(Argonaut) 릴리스에서 지원하는 레거시 값입니다.
  • Bobtail: v0.56 (Bobtail) 릴리스에서 지원하는 값입니다.
  • Firefly: v0.80 (Firefly) 릴리스에서 지원하는 값입니다.
  • Hammer: v0.94 (Hammer) 릴리스에서 지원하는 값입니다.
  • jewel: v10.0.2 (Jewel) 릴리스에서 지원하는 값입니다.
  • optimal: 현재 최상의 값입니다.
  • default: 새 클러스터의 현재 기본값입니다.

명령을 사용하여 실행 중인 클러스터에서 프로필을 선택할 수 있습니다.

# ceph osd crush tunables <profile>
Copy to Clipboard
참고

이로 인해 일부 데이터 이동이 발생할 수 있습니다.

일반적으로 업그레이드 후 CRUSH 튜닝 가능 항목을 설정하거나 경고가 표시되면 설정해야 합니다. 버전 v0.74부터 CRUSH 튜닝 가능 항목이 최적의 값으로 설정되지 않은 경우 최적 값이 v0.73의 기본값으로 설정된 경우 Ceph에서 상태 경고를 발행합니다. 이 경고를 제거 하려면 다음 두 가지 옵션이 있습니다.

  1. 기존 클러스터에서 튜닝 가능 항목을 조정합니다. 이 경우 일부 데이터 이동(약 10 % 정도)이 발생합니다. 이는 기본 경로이지만 데이터 이동이 성능에 영향을 줄 수 있는 프로덕션 클러스터를 고려해야 합니다. 다음을 사용하여 최적의 튜닝 가능 항목을 활성화할 수 있습니다.

    # ceph osd crush tunables optimal
    Copy to Clipboard

    작업이 제대로 작동하지 않고 너무 많은 진행 상황을 발생했거나 클라이언트 호환성 문제 (이전 커널 cephfs 또는 rbd 클라이언트 또는 pre-bobtail librados 클라이언트)가 있는 경우 이전 프로필로 다시 전환할 수 있습니다.

    # ceph osd crush tunables <profile>
    Copy to Clipboard

    예를 들어, pre-v0.48 (Argonaut) 값을 복원하려면 다음을 실행합니다.

    # ceph osd crush tunables legacy
    Copy to Clipboard
  2. ceph.conf 파일의 [mon] 섹션에 다음 옵션을 추가하여 CRUSH를 변경하지 않고 경고를 제거할 수 있습니다.

    mon warn on legacy crush tunables = false
    Copy to Clipboard

    변경 사항을 적용하려면 모니터를 다시 시작하거나 다음을 사용하여 모니터를 실행하는 데 옵션을 적용합니다.

    # ceph tell mon.\* injectargs --no-mon-warn-on-legacy-crush-tunables
    Copy to Clipboard

2.8.2. CRUSH 튜닝, 어려운 방법

모든 클라이언트가 최근 코드를 실행 중인지 확인할 수 있는 경우 CRUSH 맵을 추출하고 값을 수정한 다음 클러스터에 다시 삽입하여 튜닝 가능 항목을 조정할 수 있습니다.

  • 최신 CRUSH 맵을 추출합니다.

    ceph osd getcrushmap -o /tmp/crush
    Copy to Clipboard
  • 튜닝 가능 항목을 조정합니다. 이러한 값은 테스트한 대규모 및 소규모 클러스터 모두에 대해 최상의 동작을 제공하는 것으로 나타납니다. 이 작업이 작동하려면 --enable-unsafe-tunables 인수를 crushtool 에 추가로 지정해야 합니다. 극단적인 주의로 이 옵션을 사용하십시오.

    crushtool -i /tmp/crush --set-choose-local-tries 0 --set-choose-local-fallback-tries 0 --set-choose-total-tries 50 -o /tmp/crush.new
    Copy to Clipboard
  • 수정된 맵 삽입:

    ceph osd setcrushmap -i /tmp/crush.new
    Copy to Clipboard

2.8.3. 레거시 값

참조를 위해 CRUSH 튜닝 가능 항목의 레거시 값은 다음을 사용하여 설정할 수 있습니다.

crushtool -i /tmp/crush --set-choose-local-tries 2 --set-choose-local-fallback-tries 5 --set-choose-total-tries 19 --set-chooseleaf-descend-once 0 --set-chooseleaf-vary-r 0 -o /tmp/crush.legacy
Copy to Clipboard

다시 한번 특수 --enable-unsafe-tunables 옵션이 필요합니다. 또한 기능 비트가 완벽하게 적용되지 않으므로 레거시 값으로 되돌아간 후 이전 버전의 ceph-osd 데몬을 실행해야 합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat