7장. Ceph 배치 그룹 문제 해결
이 섹션에서는 Ceph 배치 그룹(PG)과 관련된 가장 일반적인 오류를 수정하는 방법을 설명합니다.
사전 요구 사항
- 네트워크 연결을 확인합니다.
- 모니터가 쿼럼을 구성할 수 있는지 확인합니다.
-
정상 OSD가 모두
up
및in
상태인지 확인하고 백필 및 복구 프로세스가 완료되었는지 확인합니다.
7.1. 가장 일반적인 Ceph 배치 그룹 오류 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에는 ceph health detail
명령에서 반환된 가장 일반적인 오류 메시지가 나열되어 있습니다. 이 표는 오류를 설명하고 문제를 해결하기 위해 특정 절차를 가리키는 해당 섹션에 대한 링크를 제공합니다.
또한 최적 상태가 아닌 배치 그룹을 나열할 수 있습니다. 자세한 내용은 7.2절. “오래된
,비활성
또는 정리되지 않은 배치 그룹 나열 ” 을 참조하십시오.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 실행 중인 Ceph Object Gateway입니다.
7.1.1. 배치 그룹 오류 메시지 링크 복사링크가 클립보드에 복사되었습니다!
일반적인 배치 그룹 오류 메시지 표와 잠재적인 수정 사항.
오류 메시지 | 참조 |
---|---|
| |
| |
| |
| |
| |
| |
|
7.1.2. 오래된 배치 그룹 링크 복사링크가 클립보드에 복사되었습니다!
ceph 상태
명령은 일부 PG(배치 그룹)를 stale
:로 나열합니다.
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
이 값은 다음과 같습니다.
모니터는 배치 그룹의 기본 OSD에서 또는 다른 OSD가 기본 OSD가 다운
되었다고 보고하는 경우 배치 그룹이 오래된
것으로 표시됩니다.
일반적으로 PG는 스토리지 클러스터를 시작한 후 피어링 프로세스가 완료될 때까지 오래된
상태를 입력합니다. 그러나 PG가 예상보다 오래
지속되는 경우 해당 PG의 기본 OSD가 다운
되었거나 PG 통계를 모니터에 보고하지 않을 수 있습니다. 오래된
PG를 저장하는 기본 OSD가 백업
되면 Ceph가 PG를 복구하기 시작합니다.
mon_osd_report_timeout
설정은 OSD가 PGs 통계를 모니터에 보고하는 빈도를 결정합니다. 기본적으로 이 매개변수는 0.5
로 설정되므로 OSD가 1초마다 통계를 보고합니다.
이 문제를 해결하기 위해
어떤 PG가
오래된
지, 어떤 OSD에 저장되어 있는지 확인합니다. 오류 메시지에는 다음 예와 유사한 정보가 포함됩니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
down
으로 표시된 OSD의 모든 문제를 해결합니다. 자세한 내용은 Down OSD 를 참조하십시오.
7.1.3. 일관성 없는 배치 그룹 링크 복사링크가 클립보드에 복사되었습니다!
일부 배치 그룹은 active + clean + inconsistent
로 표시되고 ceph 상태 세부 정보는
다음과 유사한 오류 메시지를 반환합니다.
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
pg 0.6 is active+clean+inconsistent, acting [0,1,2]
2 scrub errors
이 값은 다음과 같습니다.
Ceph가 배치 그룹에 있는 하나 이상의 오브젝트 복제본에서 불일치를 감지하면 배치 그룹이 일관되지 않음
으로 표시됩니다. 가장 일반적인 불일치는 다음과 같습니다.
- 오브젝트의 크기가 올바르지 않습니다.
- 복구가 완료된 후 하나의 복제본에서 오브젝트가 누락됩니다.
대부분의 경우 스크럽 중 오류는 배치 그룹 내에서 불일치를 초래합니다.
이 문제를 해결하기 위해
Cephadm 쉘에 로그인합니다.
예
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 일관성 없는
상태에 있는 배치 그룹을 확인합니다.[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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배치 그룹이
일관성이 없는
이유를 확인합니다.배치 그룹에서 딥 스크럽 프로세스를 시작합니다.
구문
ceph pg deep-scrub ID
ceph pg deep-scrub ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ID
를일관되지 않은
배치 그룹의 ID로 교체합니다. 예를 들면 다음과 같습니다.[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrub
[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 해당 배치 그룹과 관련된 모든 메시지가
ceph -w
의 출력을 검색합니다.구문
ceph -w | grep ID
ceph -w | grep ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
[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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
출력에 다음과 유사한 오류 메시지가 포함된 경우
일관성 없는
배치 그룹을 복구할 수 있습니다. 자세한 내용은 일관되지 않은 배치 그룹 복구를 참조하십시오.구문
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에 다음과 유사한 오류 메시지가 포함된 경우 데이터가 손실될 수 있으므로
일관성 없는
배치 그룹을 복구하는 것은 안전하지 않습니다. 이 경우 지원 티켓을 엽니 다. 자세한 내용은 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
PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGEST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.4. 정리되지 않은 배치 그룹 링크 복사링크가 클립보드에 복사되었습니다!
ceph health
명령은 다음과 유사한 오류 메시지를 반환합니다.
HEALTH_WARN 197 pgs stuck unclean
HEALTH_WARN 197 pgs stuck unclean
이 값은 다음과 같습니다.
Ceph는 Ceph 구성 파일의 mon_pg_stuck_threshold
매개변수에 지정된 시간(초)에 대해 active+clean
상태를 달성하지 못한 경우 배치 그룹을 무정으로 표시합니다.
mon_pg_stuck_threshold
의 기본값은 300
초입니다.
배치 그룹이 정리되지 않은 경우 osd_pool_default_size
매개변수에 지정된 횟수를 복제하지 않는 오브젝트가 포함됩니다.
osd_pool_default_size
의 기본값은 3
입니다. 즉, Ceph가 세 개의 복제본을 생성합니다.
일반적으로 불명확 한
배치 그룹은 일부 OSD가 다운
될 수 있음을 나타냅니다.
이 문제를 해결하기 위해
어떤 OSD가
다운
되었는지 확인합니다.[ceph: root@host01 /]# ceph osd tree
[ceph: root@host01 /]# ceph osd tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD의 모든 문제를 해결하고 수정합니다. 자세한 내용은 Down OSDs 를 참조하십시오.
7.1.5. 비활성 배치 그룹 링크 복사링크가 클립보드에 복사되었습니다!
ceph health
명령은 다음과 유사한 오류 메시지를 반환합니다.
HEALTH_WARN 197 pgs stuck inactive
HEALTH_WARN 197 pgs stuck inactive
이 값은 다음과 같습니다.
Ceph는 Ceph 구성 파일의 mon_pg_stuck_threshold
매개변수에 지정된 시간(초) 동안 활성화되지 않은 경우 배치 그룹을 비활성
으로 표시합니다. mon_pg_stuck_threshold
의 기본값은 300
초입니다.
일반적으로 비활성
배치 그룹은 일부 OSD가 다운
될 수 있음을 나타냅니다.
이 문제를 해결하기 위해
어떤 OSD가
다운
되었는지 확인합니다.ceph osd tree
# ceph osd tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD의 모든 문제를 해결하고 수정합니다.
추가 리소스
- 오래된 비활성 또는 비정형 상태에 있는 배치 그룹 나열
- 자세한 내용은 Down OSDs 를 참조하십시오.
7.1.6. 배치 그룹이 다운됨 링크 복사링크가 클립보드에 복사되었습니다!
ceph health detail
명령은 일부 배치 그룹이 다운
되었다고 보고합니다.
이 값은 다음과 같습니다.
경우에 따라 피어링 프로세스를 차단하여 배치 그룹이 활성화되고 사용 가능하지 않게 할 수 있습니다. 일반적으로 OSD가 실패하면 피어링에 실패합니다.
이 문제를 해결하기 위해
피어링 프로세스를 차단하는 항목을 확인합니다.
구문
ceph pg ID query
ceph pg ID query
ID
를 다운
된 배치 그룹의 ID로 바꿉니다.
예
recovery_state
섹션에는 피어링 프로세스가 차단된 이유에 대한 정보가 포함되어 있습니다.
-
다운 osds 오류 메시지로 인해 출력에 피어링이 차단되는
경우 Down OSD 를 참조하십시오. - 다른 오류 메시지가 표시되면 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 서비스 연락처를 참조하십시오.
7.1.7. unfound 오브젝트 링크 복사링크가 클립보드에 복사되었습니다!
ceph health
명령은 unfound
키워드를 포함하는 다음과 유사한 오류 메시지를 반환합니다.
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
이 값은 다음과 같습니다.
Ceph는 이러한 오브젝트 또는 최신 복사본을 알고 있지만 찾을 수 없는 경우 오브젝트를 unfound
로 표시합니다. 결과적으로 Ceph는 이러한 오브젝트를 복구할 수 없으며 복구 프로세스를 진행합니다.
예를 들어 Situation
배치 그룹은 osd.1
및 osd.2
에 데이터를 저장합니다.
-
OSD.1
이다운되었습니다
. -
OSD.2
는 일부 쓰기 작업을 처리합니다. -
OSD.1
이나타납니다
. -
osd.1
과osd.2
간의 피어링 프로세스가 시작되고osd.1
에서 누락된 개체는 복구를 위해 대기열에 있습니다. -
Ceph가 새 오브젝트를 복사하기 전에
osd.2
가다운
됩니다.
결과적으로 osd.1
은 이러한 오브젝트가 존재하지만 오브젝트 복사본이 없는 OSD가 없음을 알고 있습니다.
이 시나리오에서 Ceph는 실패한 노드에 다시 액세스할 때까지 대기 중이며, unfound
오브젝트는 복구 프로세스를 차단합니다.
이 문제를 해결하기 위해
Cephadm 쉘에 로그인합니다.
예
cephadm shell
[root@host01 ~]# cephadm shell
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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%)**
[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%)**
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배치 그룹에 대한 자세한 정보를 나열합니다.
구문
ceph pg ID query
ceph pg ID query
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ID
를unfound
오브젝트가 포함된 배치 그룹의 ID로 바꿉니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow might_have_unfound
섹션에는 Ceph가unfound
오브젝트를 찾기 위해 시도한 OSD가 포함되어 있습니다.-
이미 프로브된
상태는 Ceph가 해당 OSD에서unfound
오브젝트를 찾을 수 없음을 나타냅니다. -
osd가 down
상태는 Ceph가 해당 OSD에 연결할 수 없음을 나타냅니다.
-
-
down
으로 표시된 OSD의 문제를 해결합니다. 자세한 내용은 Down OSDs 를 참조하십시오. -
OSD가
다운
된 문제를 해결할 수 없는 경우 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.