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.