5.2. 대부분의 Ceph OSD 오류
다음 표에는 ceph health detail
명령에서 반환되거나 Ceph 로그에 포함된 가장 일반적인 오류 메시지가 나열되어 있습니다. 표에서는 오류를 설명하고 문제를 해결하기 위한 특정 절차를 가리키는 해당 섹션에 대한 링크를 제공합니다.
5.2.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
5.2.2. Ceph OSD 오류 메시지 링크 복사링크가 클립보드에 복사되었습니다!
일반적인 Ceph OSD 오류 메시지 테이블 및 잠재적인 수정 사항.
오류 메시지 | 참조 |
---|---|
| |
| |
| |
| |
| |
| |
| |
|
5.2.3. Ceph 로그의 일반적인 Ceph OSD 오류 메시지 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 로그에 있는 일반적인 Ceph OSD 오류 메시지와 잠재적인 수정 사항에 대한 링크입니다.
오류 메시지 | 로그 파일 | 참조 |
---|---|---|
| 기본 클러스터 로그 | |
| 기본 클러스터 로그 | |
| 기본 클러스터 로그 | |
| OSD 로그 |
5.2.4. 전체 OSD 링크 복사링크가 클립보드에 복사되었습니다!
ceph health detail
명령은 다음과 유사한 오류 메시지를 반환합니다.
HEALTH_ERR 1 full osds osd.3 is full at 95%
HEALTH_ERR 1 full osds
osd.3 is full at 95%
<그 Means>
Ceph에서는 클라이언트가 전체 OSD 노드에서 I/O 작업을 수행하여 데이터 손실을 방지합니다. 클러스터가 mon
메시지를 반환합니다. 기본적으로 이 매개변수는 _osd_full_ratio
매개 변수에서 설정한 용량에 도달하면 HEALTH_ERR 전체 osds0.95
로 설정되어 클러스터 용량의 95%를 의미합니다.
이 문제를 해결하기 위해
원시 스토리지의 백분율(%RAW USED
)이 사용되었는지 확인합니다.
ceph df
ceph df
%RAW USED
가 70-75%를 초과하는 경우 다음을 수행할 수 있습니다.
- 불필요한 데이터를 삭제합니다. 이는 프로덕션 다운 타임을 방지하기 위한 단기 솔루션입니다.
- 새 OSD 노드를 추가하여 클러스터를 확장합니다. 이는 Red Hat에서 권장하는 장기적인 솔루션입니다.
5.2.5. Backfillfull OSD 링크 복사링크가 클립보드에 복사되었습니다!
ceph health detail
명령은 다음과 유사한 오류 메시지를 반환합니다.
health: HEALTH_WARN 3 backfillfull osd(s) Low space hindering backfill (add storage if this doesn't resolve itself): 32 pgs backfill_toofull
health: HEALTH_WARN
3 backfillfull osd(s)
Low space hindering backfill (add storage if this doesn't resolve itself): 32 pgs backfill_toofull
이것이 무엇을 의미합니까?
하나 이상의 OSD가 백필 전체 임계값을 초과한 경우 Ceph는 데이터가 이 장치로 재조정되지 않도록 합니다. 이는 재조정이 완료되지 않고 클러스터가 완전히 접근하고 있다는 초기 경고입니다. 백전체 임계값의 기본값은 90%입니다.
이 문제를 해결하려면
풀별 사용률 확인:
ceph df
ceph df
%RAW USED
가 70-75%를 초과하는 경우 다음 작업 중 하나를 수행할 수 있습니다.
- 불필요한 데이터를 삭제합니다. 이는 프로덕션 다운 타임을 방지하기 위한 단기 솔루션입니다.
- 새 OSD 노드를 추가하여 클러스터를 확장합니다. 이는 Red Hat에서 권장하는 장기적인 솔루션입니다.
복구 프로세스를 계속할 수 있도록
backfull_toofull
에 멈춘 PG가 포함된 OSD의 백필구문
ceph osd set-backfillfull-ratio VALUE
ceph osd set-backfillfull-ratio VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VALUE 의 범위는 0.0 ~ 1.0입니다.
예제
[ceph: root@host01/]# ceph osd set-backfillfull-ratio 0.92
[ceph: root@host01/]# ceph osd set-backfillfull-ratio 0.92
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.6. 전체 OSD 가까운 링크 복사링크가 클립보드에 복사되었습니다!
ceph health detail
명령은 다음과 유사한 오류 메시지를 반환합니다.
HEALTH_WARN 1 nearfull osds osd.2 is near full at 85%
HEALTH_WARN 1 nearfull osds
osd.2 is near full at 85%
<그 Means>
클러스터가 mon osd nearfull 비율 defaults 매개변수가 설정한 용량에 도달하면 Ceph가
메시지를 반환합니다. 기본적으로 이 매개변수는 nearfull osds
0.85
로 설정되어 클러스터 용량의 85%를 의미합니다.
Ceph는 CRUSH 계층 구조에 따라 데이터를 최상의 방식으로 배포하지만 동일한 배포를 보장할 수 없습니다. 11개의 데이터 배포 및 가까운full osds
메시지의 주요 원인은 다음과 같습니다.
- OSD는 클러스터의 OSD 노드 간에 균형을 맞추지 않습니다. 즉, 일부 OSD 노드는 다른 OSD보다 훨씬 더 많은 OSD를 호스팅하거나 CRUSH 맵의 일부 OSD 가중치가 용량에 적합하지 않습니다.
- OSD 수, 사용 사례, OSD당 대상 PG(배치 그룹) 수에 따라 배치 그룹(PG) 수가 적절하지 않습니다.
- 클러스터는 CRUSH 튜닝 가능 항목을 부적절하게 사용합니다.
- OSD의 백엔드 스토리지는 거의 가득 차 있습니다.
이 문제를 해결하기 위해:
- PG 개수가 충분한지 확인하고 필요한 경우 늘립니다.
- CRUSH 튜닝 가능 항목을 클러스터 버전에 최적으로 사용하는지 확인하고, 그러지 않으면 조정합니다.
- 사용률로 OSD의 가중치를 변경합니다.
OSD에서 사용하는 디스크에 남아 있는 공간 크기를 결정합니다.
특정 노드에서 OSD가 사용하는 공간 크기를 보려면 다음 명령을 사용합니다.
[ceph: root@host01 /]# ceph osd df tree
[ceph: root@host01 /]# ceph osd df tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 어떤 OSD가 어떤 호스트(full/nearfull)에서 가장 많이 사용되는지 확인한 후 OSD의 기본 디스크로 사용 중인 디스크를 확인합니다. 거의 전체 OSD가 포함된 노드에 로그인하고 다음 명령을 실행합니다.
[ceph: root@host01 /]# cephadm shell [ceph: root@host01 /]# ceph-volume lvm list
[ceph: root@host01 /]# cephadm shell [ceph: root@host01 /]# ceph-volume lvm list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터에 있는 풀 목록을 보려면 다음을 수행합니다.
[ceph: root@host01 /]# ceph df
[ceph: root@host01 /]# ceph df
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 필요한 경우 새 OSD 노드를 추가합니다.
5.2.7. OSD 다운 링크 복사링크가 클립보드에 복사되었습니다!
ceph health detail
명령은 다음과 유사한 오류를 반환합니다.
HEALTH_WARN 1/3 in osds are down
HEALTH_WARN 1/3 in osds are down
<그 Means>
서비스 장애 또는 다른 OSD와의 통신 문제로 인해 ceph-osd
프로세스 중 하나를 사용할 수 없습니다. 그 결과 남아 있는 ceph-osd
데몬에서 모니터에 오류가 발생했습니다.
ceph-osd
데몬이 실행되지 않으면 기본 OSD 드라이브 또는 파일 시스템이 손상되었거나 누락된 인증 키와 같은 기타 오류가 데몬이 시작되지 않습니다.
대부분의 경우 네트워킹 문제로 인해 ceph-osd
데몬이 실행 중이지만 여전히 down
으로 표시되는 상황이 발생합니다.
이 문제를 해결하기 위해
다운
된 OSD를 확인합니다.[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1/3 in osds are down osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-osd
데몬을 다시 시작합니다. OSD_ID 를 다운된 OSD의 ID로 바꿉니다.구문
systemctl restart ceph-FSID@osd.OSD_ID
systemctl restart ceph-FSID@osd.OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
[root@host01 ~]# systemctl restart ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ceph-osd
를 시작할 수 없는 경우ceph-osd
데몬의 단계를 따르십시오. -
ceph-osd
데몬을 시작할 수 있지만down
으로 표시된 경우 Theceph-osd
데몬의 단계를 따르십시오. 그러나 여전히 'down'으로 표시됩니다.
-
ceph-osd
데몬을 시작할 수 없음
- 다수의 OSD(일반적으로 12개)가 포함된 노드가 있는 경우 기본 최대 스레드 수(PID 수)가 충분한지 확인합니다. 자세한 내용은 PID 수 증가를 참조하십시오.
-
OSD 데이터 및 저널 파티션이 제대로 마운트되었는지 확인합니다.
ceph-volume lvm list
명령을 사용하여 Ceph Storage 클러스터와 연결된 모든 장치 및 볼륨을 나열한 다음 제대로 마운트되었는지 수동으로 검사할 수 있습니다. 자세한 내용은mount(8)
매뉴얼 페이지를 참조하십시오. -
ERROR: missing keyring이 있는 경우 인증 오류 메시지에 requirement를 사용할 수 없습니다
. OSD는 누락된 인증 키입니다. ERROR: unable to open OSD superblock on /var/lib/ceph/osd/ceph-1
오류 메시지가 표시되면ceph-osd
데몬에서 기본 파일 시스템을 읽을 수 없습니다. 이 오류 문제를 해결하고 수정하는 방법에 대한 지침은 다음 단계를 참조하십시오.-
해당 로그 파일을 확인하여 오류 원인을 확인합니다. 기본적으로 Ceph는 파일에 로깅된 후
/var/log/ceph/CLUSTER_FSID/
디렉터리에 로그 파일을 저장합니다. -
EIO
오류 메시지는 기본 디스크의 실패를 나타냅니다. 이 문제를 해결하려면 기본 OSD 디스크를 교체하십시오. 자세한 내용은 OSD 드라이브 교체를 참조하십시오. 로그에 다음과 같은 기타
FAILED assert
오류가 포함된 경우 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.FAILED assert(0 == "hit suicide timeout")
FAILED assert(0 == "hit suicide timeout")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
해당 로그 파일을 확인하여 오류 원인을 확인합니다. 기본적으로 Ceph는 파일에 로깅된 후
기본 파일 시스템 또는 디스크에 오류가 있는지
dmesg
출력에서 확인합니다.dmesg
dmesg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
dmesg
출력에SCSI 오류
메시지가 포함된 경우 Red Hat Customer Portal의 SCSI 오류 코드 Solution find 솔루션을 참조하여 문제를 해결하는 가장 좋은 방법을 결정합니다. - 또는 기본 파일 시스템을 수정할 수 없는 경우 OSD 드라이브를 교체합니다. 자세한 내용은 OSD 드라이브 교체를 참조하십시오.
-
OSD가 다음과 같은 세그멘테이션 오류로 인해 실패한 경우 필요한 정보를 수집하고 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.
Caught signal (Segmentation fault)
Caught signal (Segmentation fault)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ceph-osd
가 실행 중이지만 여전히 down
으로 표시됩니다.
해당 로그 파일을 확인하여 오류 원인을 확인합니다. 기본적으로 Ceph는 파일에 로깅된 후
/var/log/ceph/CLUSTER_FSID/
디렉터리에 로그 파일을 저장합니다.로그에 다음 항목과 유사한 오류 메시지가 포함된 경우 Flapping OSD 를 참조하십시오.
wrongly marked me down heartbeat_check: no reply from osd.2 since back
wrongly marked me down heartbeat_check: no reply from osd.2 since back
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 다른 오류가 표시되면 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.
5.2.8. OSD 분리 링크 복사링크가 클립보드에 복사되었습니다!
ceph -w | grep osds
명령은 OSD를 down
으로 반복적으로 표시한 다음 짧은 시간 내에 다시 가동
합니다.
또한 Ceph 로그에는 다음과 유사한 오류 메시지가 포함되어 있습니다.
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : cluster [WRN] map e600547 wrongly marked me down
2022-05-25 03:44:06.510583 osd.50 127.0.0.1:6801/149046 18992 : cluster [WRN] map e600547 wrongly marked me down
2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: no reply from osd.2 since back 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862)
2022-05-25 19:00:08.906864 7fa2a0033700 -1 osd.254 609110 heartbeat_check: no reply from osd.2 since back 2021-07-25 19:00:07.444113 front 2021-07-25 18:59:48.311935 (cutoff 2021-07-25 18:59:48.906862)
<그 Means>
OSD를 플래핑하는 주요 원인은 다음과 같습니다.
- 스크럽 또는 복구와 같은 특정 스토리지 클러스터 작업에는 대규모 인덱스 또는 대규모 배치 그룹이 있는 오브젝트에 대해 이러한 작업을 수행하는 경우 비정상 시간이 걸립니다. 일반적으로 이러한 작업이 완료되면 푸핑 OSD 문제가 해결됩니다.
-
기본 물리적 하드웨어에 문제가 있습니다. 이 경우
ceph health detail
명령에서도느린 요청
오류 메시지를 반환합니다. - 네트워크에 문제가 있습니다.
Ceph OSD는 스토리지 클러스터의 개인 네트워크가 실패하는 상황을 관리할 수 없으며, 공용 클라이언트 쪽 네트워크에 있는 대기 시간이 상당히 중요합니다.
Ceph OSD는 개인 네트워크를 사용하여 하트비트 패킷을 서로 보내어 실행 중이며 임을 나타냅니다.
개인 스토리지 클러스터 네트워크가 제대로 작동하지 않으면 OSD가 하트비트 패킷을 보내고 수신할 수 없습니다. 결과적으로 이들은 Ceph 모니터의
다운
된 상태로 서로 보고하고, 이를 up
으로 표시합니다.
Ceph 구성 파일의 다음 매개 변수는 이 동작에 영향을 미칩니다.
매개변수 | 설명 | 기본값 |
---|---|---|
|
OSD를 Ceph 모니터로 보고하기 전에 반환할 하트비트 패킷을 대기하는 OSD 시간입니다. | 20초 |
|
Ceph 모니터가 OSD를 | 2 |
이 표는 기본 구성에서 하나의 OSD만 종료
중인 첫 번째 OSD에 대해 3개의 개별 보고를 수행한 경우 OSD를 아래로
표시합니다. 경우에 따라 하나의 호스트가 네트워크 문제가 발생하는 경우 전체 클러스터에 OSD가 소모되는 경우가 있습니다. 호스트에 있는 OSD가 클러스터의 다른 OSD를 down
으로 보고하기 때문입니다.
회전 OSD 시나리오에는 OSD 프로세스가 시작된 후 즉시 종료되는 상황이 발생하지 않습니다.
이 문제를 해결하기 위해
ceph health detail
명령의 출력을 다시 확인합니다.느린 요청
오류 메시지가 포함된 경우 이 문제 해결 방법에 대한 세부 정보를 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다운
된 노드와 노드가 있는 OSD를 확인합니다.ceph osd tree | grep down
ceph osd tree | grep down
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD가 포함된 노드에서 네트워크 문제를 해결합니다. 자세한 내용은 네트워킹 문제 해결을 참조하십시오.
또는
no
및up
nodown
플래그를 설정하여 OSD를down
으로 표시하도록 임시로 강제 실행할 수 있습니다.ceph osd set noup ceph osd set nodown
ceph osd set noup ceph osd set nodown
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요noup
및nodown
플래그를 사용하면 문제의 근본 원인을 해결할 수 없지만 OSD만 회전하지 않습니다. 지원 티켓을 열려면 자세한 내용은 서비스 관련 Red Hat 지원 연락처 섹션을 참조하십시오.
OSD를 분리하면 네트워크 스위치 수준에서 Ceph OSD 노드의 MTU 잘못 구성 또는 둘 다로 인해 발생할 수 있습니다. 이 문제를 해결하려면 코어를 포함하여 모든 스토리지 클러스터 노드에서 MTU를 일정한 크기로 설정하고 예정된 다운타임을 사용하여 네트워크 스위치에 액세스합니다. 이 설정을 변경하면 네트워크 내에서 문제가 숨겨지며 실제 네트워크 불일치를 해결하지 않으므로 osd heartbeat min 크기를
조정하지 마십시오.
5.2.9. 느린 요청 또는 요청이 차단됨 링크 복사링크가 클립보드에 복사되었습니다!
ceph-osd
데몬은 요청에 응답하는 속도가 느리고 ceph 상태 세부 정보
명령에서 다음과 유사한 오류 메시지를 반환합니다.
또한 Ceph 로그에 다음과 유사한 오류 메시지가 포함됩니다.
2022-05-24 13:18:10.024659 osd.1 127.0.0.1:6812/3032 9 : cluster [WRN] 6 slow requests, 6 included below; oldest blocked for > 61.758455 secs
2022-05-24 13:18:10.024659 osd.1 127.0.0.1:6812/3032 9 : cluster [WRN] 6 slow requests, 6 included below; oldest blocked for > 61.758455 secs
2022-05-25 03:44:06.510583 osd.50 [WRN] slow request 30.005692 seconds old, received at {date-time}: osd_op(client.4240.0:8 benchmark_data_ceph-1_39426_object7 [write 0~4194304] 0.69848840) v4 currently waiting for subops from [610]
2022-05-25 03:44:06.510583 osd.50 [WRN] slow request 30.005692 seconds old, received at {date-time}: osd_op(client.4240.0:8 benchmark_data_ceph-1_39426_object7 [write 0~4194304] 0.69848840) v4 currently waiting for subops from [610]
<그 Means>
느린 요청이 있는 OSD는 모든 OSD에서 osd_op_complaint_time
매개변수로 정의된 시간 내에 큐에서 초당 I/O 작업(IOPS)을 제공할 수 없습니다. 기본적으로 이 매개변수는 30초로 설정됩니다.
OSD에서 요청 속도가 느린 주요 원인은 다음과 같습니다.
- 디스크 드라이브, 호스트, 랙 또는 네트워크 스위치와 같은 기본 하드웨어 문제
- 네트워크에 문제가 있습니다. 이러한 문제는 일반적으로 OSD 플래핑과 연결되어 있습니다. 자세한 내용은 Flapping OSD 를 참조하십시오.
- 시스템 로드
다음 표에서는 느린 요청 유형을 보여줍니다. dump_historic_ops
관리 소켓 명령을 사용하여 느린 요청 유형을 확인합니다. 관리 소켓에 대한 자세한 내용은 Red Hat Ceph Storage 5 관리 가이드의 Ceph 관리 소켓 사용 섹션을 참조하십시오.
느린 요청 유형 | 설명 |
---|---|
| OSD가 작업에 대한 배치 그룹에 대한 잠금을 획득하기를 기다리고 있습니다. |
| OSD에서 복제 OSD가 작업을 저널에 적용할 때까지 대기 중입니다. |
| OSD는 주요 작업 이정표에 도달하지 않았습니다. |
| OSD가 지정된 수의 오브젝트를 아직 복제하지 않았습니다. |
이 문제를 해결하기 위해
- 느린 또는 차단 요청이 있는 OSD가 디스크 드라이브, 호스트, 랙 또는 네트워크 스위치와 같은 일반적인 하드웨어를 공유하는지 확인합니다.
OSD가 디스크를 공유하는 경우:
smartmontools
유틸리티를 사용하여 디스크 또는 로그의 상태를 확인하여 디스크의 오류를 확인합니다.참고smartmontools
유틸리티는smartmontools
패키지에 포함되어 있습니다.OSD 디스크에서 I/O 대기 보고서(
%iowai
)를 얻으려면iostat
유틸리티를 사용하여 디스크가 과도한 부하인지 확인합니다.참고iostat
유틸리티는 tested 패키지에 포함되어있습니다
.
OSD가 노드를 다른 서비스와 공유하는 경우:
- RAM 및 CPU 사용률 확인
-
netstat
유틸리티를 사용하여 NIC(네트워크 인터페이스 컨트롤러)의 네트워크 통계를 확인하고 모든 네트워킹 문제를 해결합니다. 자세한 내용은 네트워크 문제 해결을 참조하십시오.
- OSD가 랙을 공유하는 경우 랙의 네트워크 스위치를 확인합니다. 예를 들어 점보 프레임을 사용하는 경우 경로의 NIC에 점보 프레임이 설정되어 있는지 확인합니다.
- 느린 요청이 있는 OSD에서 공유하는 공통 하드웨어를 확인하거나 하드웨어 및 네트워킹 문제를 해결 및 수정할 수 없는 경우 지원 티켓을 엽니다. 자세한 내용은 Red Hat 지원 문의를 참조하십시오.