cephmdsdmaged는cephfs붕괴의 재난성 회복을 초래한다

4215 단어 ceph
** 질문: ** 알 수 없는 이유로 서버가 캐비닛에서 분리되었을 수 있습니다.osdcrash가 잘못되었을 수도 있습니다. 데이터가 분실되었고cephfs가 서비스를 제공할 수 없습니다. 조사한 결과 active mds가 없습니다. 모든 mds는standby 상태이고 두 가지는 dmaged 상태입니다.
[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

해결 방법:
  • 방법1:
      #ceph mds repaired AI_Spacefs:0
      #ceph mds repaired AI_Spacefs:1
    
    이 방법은 일반적인 상황에서 사용하기 좋으며 osdstuck 상태가 있을 때도 효력을 잃는다.이 때 osd를 다시 시작해야 합니다. stuck을 발견하지 못하면 데이터 이동을 수동으로 터치해서 stuck의 osd를 노출해야 합니다.그리고 위의 조작을 실행합니다.테스트를 통해 두 번 모두 상술한 방법을 통해 문제를 해결했습니다..
  • 방법2: 이번 문제는 심각하다. 모든 mds가 active 상태가 없어서 메타데이터를 복구할 수 없고 방법이 효력을 잃기 때문에 이때 원래의cephfs를 포기하고 원래의 데이터 탱크를 바탕으로 새로운cephfs를 생성하는 재건 구축이 필요하다

  • 메타데이터 장애 복구
    다중 파일 시스템 허용 설정
    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

    좋은 웹페이지 즐겨찾기