ZFS 끝없는 리 실버 링


29

데비안에는 두 개의 드라이브를 잃은 큰 (> 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

zpool status
— longneck

따라서 사용하면 어떤 오류가보고 -v됩니까?
— 바비

"오류 : 다음 파일에서 영구 오류가 발견되었습니다 :"그리고 오류가있는 약 12 ​​개의 파일 목록.
— jasongullickson

'see :'부분에 대한 자세한 설명은 여기를 참조하십시오 : illumos.org/msg/ZFS-8000-8A
— Raymond Tau

답변:


56

축하합니다. 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

상세하고 유익한 답변을 보내 주셔서 감사합니다. 이벤트 순서에 대해 이미 알고 있으며 이미 장치 구성에 대한 조언을 얻었습니다. (내가 구축 한 두 번째 장치는 설명과 거의 동일하게 구성되어 있으며 각 레이드가 하드웨어 전체에 확산되도록하기 위해 몇 가지 추가 고려 사항이 있습니다. 백플레인 고장 등으로 인해 전체 공격대를 잃을 가능성을 줄입니다.)
— jasongullickson

손상된 파일을 삭제하면 "zfs status"는 파일 이름 대신 16 진수 값을 반환합니다. 스크럽이 마침내 끝나면 사라질 것이라고 생각합니까?
— jasongullickson

파일 시스템의 메타 데이터가 그대로인 경우에만 @jasongullickson. ZFS는 메타 데이터 보호와 관련하여 매우 공격적이므로 아마도 좋을 것입니다. 단지 시간이 말해 줄 것이다.
— longneck

나는 개인적으로 전에 메타 데이터 손상 이벤트를 실행하지 않았으므로 오류 이벤트의 관점에서 어떤 모양인지 알 수 없습니다.
— longneck

1
@longneck Gotcha, 우리는 동의합니다-RAID-Z 그룹이 리 실버 병목 현상을 일으키고 속도를 늦출 정도로 충분히 큰 것은 좋은 생각이 아닙니다. 더 큰 그룹의 또 다른 큰 위험은 리 실버 중 두 번째 장치가 고장날 확률이 증가한다는 것입니다. RAID-Z2 또는 3을 사용하는 패리티 디스크 수가 증가하면 안정성 문제에 도움이되지만 리 실버 속도는 그렇지 않습니다. .
— Shane Madden
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.