cephmdsdmaged는cephfs붕괴의 재난성 회복을 초래한다
4215 단어 ceph
[root@node83 .ceph-cluster]# ceph health detail
HEALTH_ERR 2 filesystems are degraded; 1 filesystem has a failed mds daemon; 2 filesystems are offline; 1 mds daemon damaged; insufficient standby MDS daemoavailable; application not enabled on 1 pool(s); 6 daemons have recently crashed; mons node82,node83,node84 are low on available space
FS_DEGRADED 2 filesystems are degraded
fs AI_Spacefs is degraded
fs recovery-fs is degraded
fs AI_Spacefs is offline because no MDS is active for it..
MDS_DAMAGE 1 mds daemon damaged
fs AI_Spacefs mds.0 is damaged
해결 방법:
#ceph mds repaired AI_Spacefs:0
#ceph mds repaired AI_Spacefs:1
이 방법은 일반적인 상황에서 사용하기 좋으며 osdstuck 상태가 있을 때도 효력을 잃는다.이 때 osd를 다시 시작해야 합니다. stuck을 발견하지 못하면 데이터 이동을 수동으로 터치해서 stuck의 osd를 노출해야 합니다.그리고 위의 조작을 실행합니다.테스트를 통해 두 번 모두 상술한 방법을 통해 문제를 해결했습니다..메타데이터 장애 복구
다중 파일 시스템 허용 설정
ceph fs flag set enable_multiple true --yes-i-really-mean-it
새로운 메타데이터 탱크를 만듭니다. 메타데이터의 데이터를 건드리지 않기 위해서입니다.
ceph osd pool create recovery 8
오래된 저장소 데이터와 새로운 메타데이터 탱크 복구를 연결하고 새 복구-fs를 만듭니다
ceph fs new recovery-fs recovery AI_Spacefs_data --allow-dangerous-metadata-overlay
새로운 파일 시스템 초기화 작업
#cephfs-data-scan init --force-init --filesystem recovery-fs --alternate-pool recovery
2020-03-18T16:22:50.508+0800 7f4a11a1d700 -1 NetHandler create_socket couldn't create socket (97) Address family not supported by protocol
상술한 오류가 발생하면 다음 단계를 소홀히 할 수 있습니다.
reset 새 fs
#ceph fs reset recovery-fs --yes-i-really-mean-it
, mds fail stop , 。
#cephfs-table-tool recovery-fs:all reset session
#cephfs-table-tool recovery-fs:all reset snap
#cephfs-table-tool recovery-fs:all reset inode
Address family not supported by protocol
관련 복구를 하다
recovery-fs active mds, stop , mds crashed。
#cephfs-data-scan scan_extents --force-pool --alternate-pool recovery --filesystem AI_Spacefs AI_Spacefs_data
#cephfs-data-scan scan_inodes --alternate-pool recovery --filesystem AI_Spacefs -force-corrupt --force-init AI_Spacefs_data
#cephfs-data-scan scan_inodes --alternate-pool recovery --filesystem AI_Spacefs --force-corrupt --force-init AI_Spacefs_data
#cephfs-data-scan scan_links --filesystem recovery-fs
Address family not supported by protocol
# systemctl start ceph-mds@node82
mds active
# ceph daemon mds.node82 scrub_path / recursive repair
。
기본 fs로 설정
# ceph fs set-default recovery-fs
검사 데이터 마운트
[root@node82 lyf3]# ls
DATASET lost+found SYSTEM USER
[root@node82 lyf3]# ll lost+found/
total 1
-r-x------ 1 root root 237 Mar 11 13:21 1000172efb8
lost+found에 데이터가 있는 것을 볼 수 있습니다. 이 생성된 파일 이름은 실제 파일에 저장된 데이터의prifix입니다. 즉, 원시 inode를 통해 연산된 것입니다.
원본 메타데이터 정보를 미리 백업한 경우
# ceph daemon mds.node82 dump cache > /tmp/mdscache
그러면 잃어버린 파일을 비교적 쉽게 찾을 수 있다
원작자 총결산
파일의 inode를 통해 파일과 백그라운드의 대상을 결합시킬 수 있다. 이전에 나의 회복 사고방식은 백그라운드의 대상을 모두 잡아낸 다음에 자신이 수동으로 대상을 연결한다. 실제적으로 데이터가 존재하는 상황에서 파일을 다시 하나의 경로로 링크하는 것이다. 이것은 정부에서 제공한 복구 방법이다. mds의 가장 큰 걱정은 mds 자체의 메타데이터의 손상이 전체 파일 시스템의 붕괴를 초래할 수 있다는 것이다.현재 기본적으로 데이터의 데이터가 남아 있다면 데이터가 잃어버릴까 봐 걱정할 필요가 없다. 파일 경로 정보가 없어도 파일은 남아 있다
백업 mdscache를 통해 파일 이름, 경로, 크기와 inode를 연결할 수 있습니다. 복구된 데이터는 대상 접두사입니다. 즉, mdscache를 백업하면 전체 파일 정보를 연결할 수 있습니다.
cephfs의 고장은 자주 발생하는 것은 아니지만, 만일
후속 준비는cephfs가 마운트 지점에서 데이터를 잘못 삭제한 후의 데이터 복구에 관한 방안을 가져왔습니다. 이것은 현재 소량의 파일 복구 시험을 진행했습니다. 다음에 대량의 파일 삭제 복구를 한 후에 공유합니다
참조 문서:
https://ceph.com/planet/cephfs%E5%85%83%E6%95%B0%E6%8D%AE%E6%B1%A0%E6%95%85%E9%9A%9C%E7%9A%84%E6%81%A2%E5%A4%8D/https://docs.ceph.com/docs/luminous/cephfs/disaster-recovery/https://blog.csdn.net/mailjoin/article/details/79694965
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cephmdsdmaged는cephfs붕괴의 재난성 회복을 초래한다데이터가 분실되었고cephfs가 서비스를 제공할 수 없습니다. 방법1: 이 방법은 일반적인 상황에서 사용하기 좋으며 osdstuck 상태가 있을 때도 효력을 잃는다.이 때 osd를 다시 시작해야 합니다. stuck을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.