2.7. CRUSH 규칙


CRUSH 규칙은 Ceph 클라이언트가 버킷과 오브젝트를 저장하기 위해 기본 OSD를 선택하는 방법과 기본 OSD가 버킷과 보조 OSD를 선택하여 복제본 또는 코딩 청크를 저장하는 방법을 정의합니다. 예를 들어 두 오브젝트 복제본에 대해 SSD가 지원하는 대상 OSD 쌍을 선택하는 규칙과 3개의 복제본에 대해 다른 데이터 센터의 SAS 드라이브가 지원하는 3개의 대상 OSD를 선택하는 규칙을 만들 수 있습니다.

규칙은 다음 형식을 취합니다.

rule <rulename> {

    ruleset <ruleset>
    type [ replicated | raid4 ]
    min_size <min-size>
    max_size <max-size>
    step take <bucket-type> [class <class-name>]
    step [choose|chooseleaf] [firstn|indep] <N> <bucket-type>
    step emit
}
규칙 세트
설명
(더 이상 사용되지 않음) 규칙 세트에 속하는 규칙을 분류하는 수단입니다. 풀에서 ruleset을 설정하여 활성화합니다. RHCS 2 및 이전 릴리스에서 지원됩니다. RHCS 3 및 이후 릴리스에서는 지원되지 않습니다.
목적
규칙 마스크의 구성 요소입니다.
유형
정수
필수 항목
있음
기본값
0
type
설명
스토리지 드라이브(복제) 또는 RAID에 대한 규칙을 설명합니다.
목적
규칙 마스크의 구성 요소입니다.
유형
문자열
필수 항목
있음
기본값
replicated
유효한 값
현재 복제만 가능
min_size
설명
풀에서 이 수보다 복제본 수를 줄이는 경우 CRUSH는 이 규칙을 선택하지 않습니다.
유형
정수
목적
규칙 마스크의 구성 요소입니다.
필수 항목
있음
기본값
1
max_size
설명
풀에서 이 수보다 많은 복제본을 생성하는 경우 CRUSH는 이 규칙을 선택하지 않습니다.
유형
정수
목적
규칙 마스크의 구성 요소입니다.
필수 항목
있음
기본값
10
Step take <bucket-name> [class <class-name>]
설명
버킷 이름을 사용하고 트리를 반복하기 시작합니다. RHCS 3 이상에서 장치 클래스 이름을 사용할 수 있습니다.
목적
규칙의 구성 요소입니다.
필수 항목
있음
예제
Step take datastep take data class ssd
Step choose firstn <num> type <bucket-type>
설명

지정된 유형의 버킷 수를 선택합니다. 숫자는 일반적으로 풀의 복제본 수입니다(즉, 풀 크기).

  • &lt ;num> == 0인 경우 pool-num-replicas 버킷(모든 사용 가능)을 선택합니다.
  • < num> > 0 && < pool-num-replicas 이면 그 많은 버킷을 선택합니다.
  • < num& gt; <0 인 경우 pool-num-replicas - {num} 을 의미합니다.
목적
규칙의 구성 요소입니다.
사전 요구 사항
다음 단계 또는 단계 선택.
예제
첫 번째 1 유형 행 선택
Step chooseleaf firstn <num> type <bucket-type>
설명

{bucket-type} 의 버킷 세트를 선택하고 버킷 세트에 있는 각 버킷의 하위 트리에서 리프 노드를 선택합니다. 세트의 버킷 수는 일반적으로 풀 크기(풀 크기)의 복제본 수입니다.

  • &lt ;num> == 0인 경우 pool-num-replicas 버킷(모든 사용 가능)을 선택합니다.
  • < num> > 0 && < pool-num-replicas 이면 그 많은 버킷을 선택합니다.
  • &lt ;num > <0 이면 pool-num-replicas - <num>.
목적
규칙의 구성 요소입니다. 사용법은 두 단계를 사용하여 장치를 선택할 필요가 없습니다.
사전 요구 사항
다음 단계 또는 단계 선택.
예제
Step chooseleaf firstn 0 type row
Step emit
설명
현재 값을 출력하고 스택을 선점합니다. 일반적으로 규칙 끝에 사용되지만 동일한 규칙에서 다른 트리에서 선택하는 데 사용할 수도 있습니다.
목적
규칙의 구성 요소입니다.
사전 요구 사항
다음 단계를 선택합니다.
예제
Step emit
FirstN 대 Indep
설명
CRUSH 맵에 OSD가 표시되면 CRUSH에서 사용하는 대체 전략을 제어합니다. 이 규칙을 복제된 풀과 함께 사용해야 하는 경우 firstn 이어야 하며 삭제로 코딩된 풀의 경우 indep 이어야 합니다.
예제
OSD 1, 2, 3, 4, 5에 PG를 저장한 후 3이 다운됩니다. 첫 번째 시나리오에서 CRUSH는 번째 모드에서 계산을 조정하여 1과 2를 선택한 다음 3을 선택한 다음 3을 선택하므로 4 및 5를 다시 시도하여 새 OSD 6을 선택합니다. 최종 CRUSH 매핑 변경은 1, 2, 3, 4, 5 에서 1, 2, 4, 5, 6 입니다. 두 번째 시나리오에서는 삭제 코딩 된 풀에서 indep 모드가 있고, CRUSH는 실패한 OSD 3을 선택하고, 다시 시도하여 1, 2, 3, 4, 5, 4, 5 으로부터 최종 변환에 대해 6 을 선택하려고 합니다.
중요

지정된 CRUSH 규칙을 여러 풀에 할당할 수 있지만 단일 풀에 여러 CRUSH 규칙이 있을 수 없습니다.

2.7.1. 규칙 나열

명령줄에서 CRUSH 규칙을 나열하려면 다음을 실행합니다.

ceph osd crush rule list
ceph osd crush rule ls

2.7.2. 규칙 덤프

특정 CRUSH 규칙의 내용을 덤프하려면 다음을 실행합니다.

ceph osd crush rule dump {name}

2.7.3. 간단한 규칙 추가

CRUSH 규칙을 추가하려면 사용할 계층 구조의 루트 노드, 복제하려는 버킷 유형(예: 'rack', 'row' 등)을 지정해야 합니다.

ceph osd crush rule create-simple {rulename} {root} {bucket-type} {firstn|indep}

Ceph는 지정한 유형의 리프와 버킷 1개를 선택하여 규칙을 생성합니다.

예:

ceph osd crush rule create-simple deleteme default host firstn

다음 규칙을 생성합니다.

{ "rule_id": 1,
  "rule_name": "deleteme",
  "ruleset": 1,
  "type": 1,
  "min_size": 1,
  "max_size": 10,
  "steps": [
        { "op": "take",
          "item": -1,
          "item_name": "default"},
        { "op": "chooseleaf_firstn",
          "num": 0,
          "type": "host"},
        { "op": "emit"}]}
참고

ruleset 은 RHCS 3 이상 릴리스에서 지원되지 않습니다. Ceph의 RHCS 2 및 이전 릴리스의 이전 버전과의 호환성을 위해서만 제공됩니다.

2.7.4. 복제된 규칙 추가

복제된 풀에 대한 CRUSH 규칙을 생성하려면 다음을 실행합니다.

# ceph osd crush rule create-replicated <name> <root> <failure-domain> <class>

다음과 같습니다.

  • &lt ;name >: 규칙의 이름입니다.
  • < root >: CRUSH 계층의 루트입니다.
  • &lt ;failure-domain >: 실패 도메인. 예: host 또는 rack.
  • < class >: 스토리지 장치 클래스입니다. 예: hdd 또는 ssd. RHCS 3 이상에서만 발생합니다.

예:

# ceph osd crush rule create-replicated fast default host ssd

2.7.5. 제거 코드 규칙 추가

삭제 코딩된 풀과 함께 사용할 CRUSH 규칙을 추가하려면 규칙 이름과 삭제 코드 프로필을 지정할 수 있습니다.

ceph osd crush rule create-erasure {rulename} {profilename}

2.7.6. 규칙 제거

규칙을 제거하려면 다음을 실행하고 CRUSH 규칙 이름을 지정합니다.

ceph osd crush rule rm {name}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.