[server] ZFS 끝없는 리 실버 링

데비안에는 두 개의 드라이브를 잃은 큰 (> 100TB) ZFS (FUSE) 풀이 있습니다. 드라이브가 고장 나서 정전을 예약하고 불량 디스크를 물리적으로 교체 할 수있을 때까지 예비 드라이브로 교체했습니다.

시스템을 중단하고 드라이브를 교체하면 풀이 예상대로 리 실버 링을 시작했지만 약 80 % 완료 (일반적으로 약 100 시간 소요)되면 다시 시작됩니다.

한 번에 두 개의 드라이브를 교체하여 경쟁 조건을 만들 었는지 또는 풀의 크기로 인해 다른 시스템 프로세스가 중단하고 다시 시작하는 데 리 실버가 너무 오래 걸리는 경우 확실하지 않지만 ‘zpool status’의 결과 또는 문제를 가리키는 시스템 로그

그 후 리 실버 링 성능을 향상시키기 위해 이러한 풀을 배치하는 방법을 수정했지만이 시스템을 다시 프로덕션 환경으로 전환하는 데 대한 모든 리드 나 조언에 감사드립니다.

zpool 상태 출력 (마지막으로 확인한 이후 오류가 새로 발생 함) :

  pool: pod
 state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver in progress for 85h47m, 62.41% done, 51h40m to go
config:

    NAME                                                 STATE     READ WRITE CKSUM
    pod                                                  ONLINE       0     0 2.79K
      raidz1-0                                           ONLINE       0     0 5.59K
        disk/by-id/wwn-0x5000c5003f216f9a                ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWPK    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQAM    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPVD    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ2Y    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CVA3    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQHC    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPWW    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09X3Z    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ87    ONLINE       0     0     0
        spare-10                                         ONLINE       0     0     0
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F20T1K  ONLINE       0     0     0  1.45T resilvered
          disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BJN  ONLINE       0     0     0  1.45T resilvered
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQG7    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQKM    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQEH    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C7Y    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWRF    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ7Y    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C7LN    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQAD    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CBRC    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZM    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPT9    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ0M    ONLINE       0     0     0
        spare-23                                         ONLINE       0     0     0
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F226B4  ONLINE       0     0     0  1.45T resilvered
          disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CCMV  ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6NL    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWA1    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CVL6    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6TT    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPVX    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BGJ    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C9YA    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B50    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0AZ20    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BKJW    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F095Y2    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F08YLD    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQGQ    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0B2YJ    ONLINE       0     0    39  512 resilvered
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQBY    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C9WZ    ONLINE       0     0     0  67.3M resilvered
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQGE    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ5C    ONLINE       0     0     0
        disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWWH    ONLINE       0     0     0
    spares
      disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CCMV      INUSE     currently in use
      disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BJN      INUSE     currently in use

errors: 572 data errors, use '-v' for a list



답변

축하합니다. ZFS에 대한 더 좋은 점 중 하나를 발견했지만 구성 죄를 범했습니다.

먼저, raidz1을 사용하고 있으므로 디스크 가치가 하나의 패리티 데이터 만 있습니다. 그러나 두 개의 드라이브가 동시에 실패했습니다. 여기서 유일하게 가능한 결과는 데이터 손실 입니다. 리 실버 링 양이이를 해결하지는 않습니다.

스페어는 여기에서 약간의 도움을 주었으며 완전히 치명적인 실패로부터 당신을 구했습니다. 여기서 사지로 나가서 실패한 두 개의 드라이브가 동시에 실패하지 않았으며 두 번째 드라이브가 실패하기 전에 첫 번째 예비 장치가 부분적으로 다시 은색 화되었다고 말합니다.

따라하기 어려운 것 같습니다. 사진은 다음과 같습니다.

사건의 연속

기존 RAID 어레이 인 경우, 두 번째 드라이브가 고장 나자마자 전체 어레이가 단순히 오프라인 상태가되어 전체 복구 할 가능성이 없기 때문에 이것은 실제로 좋은 방법 입니다. 그러나 이것은 ZFS이기 때문에 여전히 가지고있는 조각을 사용하여 실행할 수 있으며 그렇지 않은 조각에 대한 블록 또는 파일 수준 오류를 반환합니다.

해결 방법은 다음과 같습니다. 단기적으로 손상된 파일 목록을 가져 와서 zpool status -v해당 파일을 백업에서 원래 위치로 복사합니다. 또는 파일을 삭제하십시오. 이렇게하면 리 실버가 재개되고 완료 될 수 있습니다.

구성 죄는 다음과 같습니다 . raidz 그룹에 너무 많은 드라이브가 있습니다.

장기 : 드라이브를 재구성해야합니다. 보다 적절한 구성은 raidz1에서 드라이브를 5 개의 작은 그룹으로 구성하는 것입니다. ZFS는 이러한 소규모 그룹에서 자동으로 스트라이프됩니다. 이렇게하면 드라이브 대신 5 개의 드라이브 만 참여하면되므로 드라이브 고장시 리 실버 시간이 크게 줄어 듭니다. 이를 수행하는 명령은 다음과 같습니다.

zpool create tank raidz da0 da1 da2 da3 da4 \
                  raidz da5 da6 da7 da8 da9 \
                  raidz da10 da11 da12 da13 da14 \
                  spare da15 spare da16


답변