8.2. 대부분의 일반적인 Ceph 배치 그룹 오류


다음 표에는 ceph 상태 세부 명령에서 반환되는 일반적인 오류 메시지가 나열되어 있습니다. 표는 오류를 설명하고 문제를 해결하기 위한 특정 절차를 가리키는 해당 섹션에 대한 링크를 제공합니다.

또한 최적의 상태가 아닌 배치 그룹을 나열할 수 있습니다. 자세한 내용은 8.3절. “오래된,비활성 또는 불명확 상태에 있는 배치 그룹 나열 를 참조하십시오.

8.2.1. 사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 실행 중인 Ceph 오브젝트 게이트웨이.

8.2.2. 배치 그룹 오류 메시지

일반적인 배치 그룹 오류 메시지 테이블 및 잠재적인 수정 사항.

오류 메시지참조

HEALTH_ERR

PGS 아래로

배치 그룹이 다운

PGS 일관되지 않음

일관성 없는 배치 그룹

crub 오류

일관성 없는 배치 그룹

HEALTH_WARN

PGS stale

오래된 배치 그룹

unfound

unfound 오브젝트

8.2.3. 오래된 배치 그룹

ceph health 명령은 일부 PG(배치 그룹)를 오래된 것으로 나열합니다.

HEALTH_WARN 24 pgs stale; 3/300 in osds are down

<그 Means>

모니터는 배치 그룹 작동 세트의 기본 OSD에서 또는 기본 OSD가 기본 OSD가 다운 되었다고 보고되는 경우 배치 그룹을 오래된 것으로 표시합니다.

일반적으로 PG는 스토리지 클러스터를 시작한 후 피어링 프로세스가 완료될 때까지 이전 상태로 들어갑니다. 그러나 PG가 예상보다 오래 동안 오래 상태로 유지되는 경우 해당 PG의 기본 OSD가 다운 되었거나 PG 통계를 모니터에 보고하지 않음을 나타낼 수 있습니다. 오래된 PG를 저장하는 기본 OSD가 백업 되면 Ceph가 PG를 복구하기 시작합니다.

mon_osd_report_timeout 설정은 OSD에서 PGs 통계를 모니터에 보고하는 빈도를 결정합니다. 기본적으로 이 매개 변수는 0.5 로 설정되어 OSD가 초당 절반씩 통계를 보고합니다.

이 문제를 해결하기 위해

  1. 오래된 PG와 OSD 저장된 배치를 식별합니다. 오류 메시지에는 다음 예와 유사한 정보가 포함됩니다.

    예제

    [ceph: root@host01 /]# ceph health detail
    HEALTH_WARN 24 pgs stale; 3/300 in osds are down
    ...
    pg 2.5 is stuck stale+active+remapped, last acting [2,0]
    ...
    osd.10 is down since epoch 23, last address 192.168.106.220:6800/11080
    osd.11 is down since epoch 13, last address 192.168.106.220:6803/11539
    osd.12 is down since epoch 24, last address 192.168.106.220:6806/11861

  2. down 으로 표시된 OSD를 사용하여 문제를 해결합니다. 자세한 내용은 OSD 다운 을 참조하십시오.

추가 리소스

8.2.4. 일관성 없는 배치 그룹

일부 배치 그룹은 활성 + 정리 + 일관되지 않음으로 표시되고 ceph 상태 세부 정보는 다음과 유사한 오류 메시지를 반환합니다.

HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
pg 0.6 is active+clean+inconsistent, acting [0,1,2]
2 scrub errors

<그 Means>

Ceph가 배치 그룹에서 하나 이상의 개체 복제본에서 불일치를 감지하면 배치 그룹이 일관되지 않은 것으로 표시됩니다. 가장 일반적인 불일치는 다음과 같습니다.

  • 오브젝트의 크기가 잘못된 것입니다.
  • 복구가 완료된 후 하나의 복제본에서 개체가 누락됩니다.

대부분의 경우 배치 그룹 내에서 불일치를 제거하는 동안 오류가 발생합니다.

이 문제를 해결하기 위해

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell

  2. 일관되지 않은 상태에 있는 배치 그룹을 확인합니다.

    [ceph: root@host01 /]# ceph health detail
    HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
    pg 0.6 is active+clean+inconsistent, acting [0,1,2]
    2 scrub errors
  3. 배치 그룹이 일관되지 않은 이유를 확인합니다.

    1. 배치 그룹에서 딥 스크럽 프로세스를 시작합니다.

      구문

      ceph pg deep-scrub ID

      일관성 없는 배치 그룹의 ID 로 ID를 바꿉니다. 예를 들면 다음과 같습니다.

      [ceph: root@host01 /]# ceph pg deep-scrub 0.6
      instructing pg 0.6 on osd.0 to deep-scrub
    2. ceph -w 의 출력을 검색하여 해당 배치 그룹과 관련된 모든 메시지를 검색합니다.

      구문

      ceph -w | grep ID

      일관성 없는 배치 그룹의 ID 로 ID를 바꿉니다. 예를 들면 다음과 같습니다.

      [ceph: root@host01 /]# ceph -w | grep 0.6
      2022-05-26 01:35:36.778215 osd.106 [ERR] 0.6 deep-scrub stat mismatch, got 636/635 objects, 0/0 clones, 0/0 dirty, 0/0 omap, 0/0 hit_set_archive, 0/0 whiteouts, 1855455/1854371 bytes.
      2022-05-26 01:35:36.788334 osd.106 [ERR] 0.6 deep-scrub 1 errors
  4. 출력에 다음 항목과 유사한 오류 메시지가 포함된 경우 일관성 없는 배치 그룹을 복구할 수 있습니다. 자세한 내용은 일관성 없는 배치 그룹 복구를 참조하십시오.

    구문

    PG.ID shard OSD: soid OBJECT missing attr , missing attr _ATTRIBUTE_TYPE
    PG.ID shard OSD: soid OBJECT digest 0 != known digest DIGEST, size 0 != known size SIZE
    PG.ID shard OSD: soid OBJECT size 0 != known size SIZE
    PG.ID deep-scrub stat mismatch, got MISMATCH
    PG.ID shard OSD: soid OBJECT candidate had a read error, digest 0 != known digest DIGEST

  5. 출력에 다음 항목과 유사한 오류 메시지가 포함된 경우 데이터를 유실할 수 있으므로 일관성 없는 배치 그룹을 복구하는 것은 안전하지 않습니다. 이 상황에서 지원 티켓을 엽니 다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.

    PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST
    PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGEST

추가 리소스

8.2.5. 불명확한 배치 그룹

ceph health 명령은 다음과 유사한 오류 메시지를 반환합니다.

HEALTH_WARN 197 pgs stuck unclean

<그 Means>

Ceph 구성 파일의 mon_pg_stuck_threshold 매개변수에 지정된 초 동안 active+clean 상태를 달성하지 않은 경우 Ceph는 배치 그룹을 unclean 으로 표시합니다. mon_pg_stuck_threshold 의 기본값은 300 초입니다.

배치 그룹이 불명확한 경우 osd_pool_default_size 매개변수에 지정된 횟수를 복제하지 않는 오브젝트를 포함합니다. osd_pool_default_size 의 기본값은 3 이며, 이는 Ceph가 세 개의 복제본을 생성함을 의미합니다.

일반적으로 불명확 배치 그룹은 일부 OSD가 다운 될 수 있음을 나타냅니다.

이 문제를 해결하기 위해

  1. 다운 된 OSD를 확인합니다.

    [ceph: root@host01 /]# ceph osd tree
  2. OSD를 사용하여 문제를 해결합니다. 자세한 내용은 OSD 다운 을 참조하십시오.

8.2.6. 비활성 배치 그룹

ceph health 명령은 다음과 유사한 오류 메시지를 반환합니다.

HEALTH_WARN 197 pgs stuck inactive

<그 Means>

Ceph 구성 파일의 mon_pg_stuck_threshold 매개변수에 지정된 초 동안 활성 상태가 아닌 경우 Ceph는 배치 그룹을 비활성 으로 표시합니다. mon_pg_stuck_threshold 의 기본값은 300 초입니다.

일반적으로 비활성 배치 그룹은 일부 OSD가 다운 될 수 있음을 나타냅니다.

이 문제를 해결하기 위해

  1. 다운 된 OSD를 확인합니다.

    # ceph osd tree
  2. OSD를 사용하여 문제를 해결합니다.

추가 리소스

8.2.7. 배치 그룹이 다운됨

ceph 상태 세부 정보는 일부 배치 그룹이 다운 되었음을 보고합니다.

HEALTH_ERR 7 pgs degraded; 12 pgs down; 12 pgs peering; 1 pgs recovering; 6 pgs stuck unclean; 114/3300 degraded (3.455%); 1/3 in osds are down
...
pg 0.5 is down+peering
pg 1.4 is down+peering
...
osd.1 is down since epoch 69, last address 192.168.106.220:6801/8651

<그 Means>

경우에 따라 피어링 프로세스를 차단할 수 있으므로 배치 그룹이 활성 상태이고 사용 불가능합니다. 일반적으로 OSD 실패로 인해 피어링 오류가 발생합니다.

이 문제를 해결하기 위해

피어링 프로세스를 차단하는 작업을 확인합니다.

구문

ceph pg ID query

ID다운 된 배치 그룹의 ID로 바꿉니다.

예제

[ceph: root@host01 /]#  ceph pg 0.5 query

{ "state": "down+peering",
  ...
  "recovery_state": [
       { "name": "Started\/Primary\/Peering\/GetInfo",
         "enter_time": "2021-08-06 14:40:16.169679",
         "requested_info_from": []},
       { "name": "Started\/Primary\/Peering",
         "enter_time": "2021-08-06 14:40:16.169659",
         "probing_osds": [
               0,
               1],
         "blocked": "peering is blocked due to down osds",
         "down_osds_we_would_probe": [
               1],
         "peering_blocked_by": [
               { "osd": 1,
                 "current_lost_at": 0,
                 "comment": "starting or marking this osd lost may let us proceed"}]},
       { "name": "Started",
         "enter_time": "2021-08-06 14:40:16.169513"}
   ]
}

recovery_state 섹션에는 피어 프로세스가 차단되는 이유에 대한 정보가 포함되어 있습니다.

  • osds 오류 메시지로 인해 출력에 피어링이 차단된 경우 OSD 다운 을 참조하십시오.
  • 다른 오류 메시지가 표시되면 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 서비스 문의를 참조하십시오.

추가 리소스

8.2.8. unfound 오브젝트

ceph health 명령은 unfound 키워드를 포함하는 다음 오류 메시지를 반환합니다.

HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)

<그 Means>

이러한 오브젝트 또는 최신 복사본이 존재하지만 해당 복사본을 찾을 수 없는 경우 Ceph는 개체를 unfound 로 표시합니다. 결과적으로 Ceph는 이러한 오브젝트를 복구하고 복구 프로세스를 진행할 수 없습니다.

예제 종료

배치 그룹은 osd.1osd.2 에 데이터를 저장합니다.

  1. OSD.1다운 됩니다.
  2. OSD.2 에서는 일부 쓰기 작업을 처리합니다.
  3. OSD.1가동 됩니다.
  4. osd.1osd.2 간의 피어링 프로세스가 시작되고 osd.1 에서 누락된 개체가 복구를 위해 대기 중입니다.
  5. Ceph가 새 오브젝트를 복사하기 전에 osd.2다운 됩니다.

그 결과 osd.1 은 이러한 오브젝트가 존재하지만 오브젝트 복사본이 있는 OSD가 없습니다.

이 시나리오에서는 Ceph가 오류가 발생한 노드에 다시 액세스할 수 있을 때까지 대기 중이며 unfound 개체는 복구 프로세스를 차단합니다.

이 문제를 해결하기 위해

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell

  2. 어떤 배치 그룹에 unfound 오브젝트가 포함되어 있는지 확인합니다.

    [ceph: root@host01 /]# ceph health detail
    HEALTH_WARN 1 pgs recovering; 1 pgs stuck unclean; recovery 5/937611 objects degraded (0.001%); 1/312537 unfound (0.000%)
    pg 3.8a5 is stuck unclean for 803946.712780, current state active+recovering, last acting [320,248,0]
    pg 3.8a5 is active+recovering, acting [320,248,0], 1 unfound
    recovery 5/937611 objects degraded (0.001%); **1/312537 unfound (0.000%)**
  3. 배치 그룹에 대한 추가 정보를 나열합니다.

    구문

    ceph pg ID query

    IDunfound 오브젝트가 포함된 배치 그룹의 ID로 바꿉니다.

    예제

    [ceph: root@host01 /]# ceph pg 3.8a5 query
    { "state": "active+recovering",
      "epoch": 10741,
      "up": [
            320,
            248,
            0],
      "acting": [
            320,
            248,
            0],
    <snip>
      "recovery_state": [
            { "name": "Started\/Primary\/Active",
              "enter_time": "2021-08-28 19:30:12.058136",
              "might_have_unfound": [
                    { "osd": "0",
                      "status": "already probed"},
                    { "osd": "248",
                      "status": "already probed"},
                    { "osd": "301",
                      "status": "already probed"},
                    { "osd": "362",
                      "status": "already probed"},
                    { "osd": "395",
                      "status": "already probed"},
                    { "osd": "429",
                      "status": "osd is down"}],
              "recovery_progress": { "backfill_targets": [],
                  "waiting_on_backfill": [],
                  "last_backfill_started": "0\/\/0\/\/-1",
                  "backfill_info": { "begin": "0\/\/0\/\/-1",
                      "end": "0\/\/0\/\/-1",
                      "objects": []},
                  "peer_backfill_info": [],
                  "backfills_in_flight": [],
                  "recovering": [],
                  "pg_backend": { "pull_from_peer": [],
                      "pushing": []}},
              "scrub": { "scrubber.epoch_start": "0",
                  "scrubber.active": 0,
                  "scrubber.block_writes": 0,
                  "scrubber.finalizing": 0,
                  "scrubber.waiting_on": 0,
                  "scrubber.waiting_on_whom": []}},
            { "name": "Started",
              "enter_time": "2021-08-28 19:30:11.044020"}],

    might_have_unfound 섹션에는 Ceph가 unfound 오브젝트를 검색하려고 하는 OSD가 포함되어 있습니다.

    • 이미 프로브된 상태는 Ceph가 해당 OSD에서 unfound 오브젝트를 찾을 수 없음을 나타냅니다.
    • osd가 down 상태이면 Ceph가 해당 OSD에 연결할 수 없음을 나타냅니다.
  4. down 으로 표시된 OSD의 문제를 해결합니다. 자세한 내용은 OSD 다운 을 참조하십시오.
  5. OSD가 다운 되는 문제를 해결할 수 없는 경우 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.