zpool 볼륨을 가져올 수 없습니다. I/O 오류

zpool 볼륨을 가져올 수 없습니다. I/O 오류

넥센타 오픈스토리지에 있어요. 일부 디스크로 인해 UNAVAIL 상태인 zpool이 있습니다.

# zpool import -F
  pool: delta
    id: XYAZA
 state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
config:

        delta                        UNAVAIL  insufficient replicas
          raidz2-0                   UNAVAIL  insufficient replicas
            c0t5000C500573978EBd0    ONLINE
            c0t5000C50057397933d0    ONLINE
            c0t5000C50057397C47d0    UNAVAIL  cannot open
            c0t5000C5005739997Fd0    UNAVAIL  cannot open
            c0t5000C50057399F87d0    ONLINE
            c0t5000C5005739A90Bd0    ONLINE
            c0t5000C5005739ABC7d0    UNAVAIL  cannot open
            c0t5000C5005739AC0Fd0    ONLINE
          raidz2-1                   DEGRADED
            c0t5000C50057398657d0    ONLINE
            c0t5000C50057398E03d0    ONLINE
            c0t5000C50057398EF7d0    ONLINE
            c0t5000C50057398FAFd0    ONLINE
            c0t5000C5005739A39Fd0    UNAVAIL  cannot open
            c0t5000C5005739AAFFd0    ONLINE
            spare-6                  DEGRADED
              c0t5000C5005739AC3Fd0  UNAVAIL  cannot open
              c0t5000C50057398EDBd0  ONLINE
            c0t5000C5005739AE9Bd0    ONLINE


~# zpool import -FXf delta
cannot import 'delta': I/O error
        Destroy and re-create the pool from
        a backup source.
  1. 이 zpool 가져오기가 제대로 작동하도록 하려면 어떻게 해야 합니까?
  2. 'UNAVAIL'로 표시된 디스크가 있습니까? 수리/교체하려면 어떻게 해야 합니까?

업데이트: 2018년 9월 7일

Nexenta에서 디스크-슬롯 매핑을 찾은 후 델타 볼륨에 디스크를 재장착한 후 raidz2-1 그룹에서 하나의 디스크를 온라인으로 얻을 수 있지만 raidz2-0 그룹의 3개 디스크는 여전히 UNAVAIL로 표시됩니다.

# zpool import -F
  pool: delta
    id: XYAZA
 state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
config:

        delta                        UNAVAIL  insufficient replicas
          raidz2-0                   UNAVAIL  insufficient replicas
            c0t5000C500573978EBd0    ONLINE
            c0t5000C50057397933d0    ONLINE
            c0t5000C50057397C47d0    UNAVAIL  cannot open
            c0t5000C5005739997Fd0    UNAVAIL  cannot open
            c0t5000C50057399F87d0    ONLINE
            c0t5000C5005739A90Bd0    ONLINE
            c0t5000C5005739ABC7d0    UNAVAIL  cannot open
            c0t5000C5005739AC0Fd0    ONLINE
          raidz2-1                   DEGRADED
            c0t5000C50057398657d0    ONLINE
            c0t5000C50057398E03d0    ONLINE
            c0t5000C50057398EF7d0    ONLINE
            c0t5000C50057398FAFd0    ONLINE
            c0t5000C5005739A39Fd0    ONLINE
            c0t5000C5005739AAFFd0    ONLINE
            spare-6                  DEGRADED
              c0t5000C5005739AC3Fd0  UNAVAIL  cannot open
              c0t5000C50057398EDBd0  ONLINE
            c0t5000C5005739AE9Bd0    ONLINE

online어플라이언스의 다른 풀에 대한 단일 예비 디스크를 찾았습니다 . 이제 질문은 1입니다. Spare-6의 하위 범주에 UNAVAIL 디스크가 하나만 있는 raidz2-1 그룹에 스페어를 분리/연결해야 합니까? 또는 2. 아직 3개의 디스크가 UNAVAIL인 raidz2-0 그룹에 스페어를 분리/연결해야 합니까?

이 풀은 오프라인 상태이므로(내보내기 후) 지금 가져올 수 없습니다.

이 풀이 어떻게 생성되었는지 이력을 살펴보니 과거에는 아래 명령으로 생성되었습니다.

zpool create -m /volumes/delta -o autoreplace=on delta raidz2 c0t5000C500573978EBd0 c0t5000C50057397933d0 c0t5000C50057397C47d0 c0t5000C5005739997Fd0 c0t5000C50057399F87d0 c0t5000C5005739A90Bd0 c0t5000C5005739ABC7d0 c0t5000C5005739AC0Fd0 raidz2 c0t5000C50057398657d0 c0t5000C50057398E03d0 c0t5000C50057398EF7d0 c0t5000C50057398FAFd0 c0t5000C5005739A39Fd0 c0t5000C5005739AAFFd0 c0t5000C5005739AC3Fd0 c0t5000C5005739AE9Bd0

이는 raidz2-0과 raidz2-1이 두 개의 RAIDZ 미러 풀이라는 것을 의미합니까?

그렇다면 raidz2-0(3개의 디스크 오류가 있음)보다 온라인 상태가 되도록 raidz2-1 디스크 그룹을 수정하는 데 우선순위를 두어야 합니까?

답변1

  1. Spare-6 하위 범주 아래 UNAVAIL 디스크가 하나만 있는 raidz2-1 그룹에 스페어를 분리/연결해야 합니까?

예비 디스크는 이미 자동으로 연결되어 raidz2-1리실버링되었습니다. 일반적 c0t5000C5005739AC3Fd0으로 한 번 실패했기 때문에 시스템에서 분리하여 제거합니다(또는 여유 리소스가 없는 경우 다른 시스템에서 용도를 변경하고 최선을 다할 수 있기를 바랍니다).

그러나 그것은 여전히 ​​​​다운되어 있으므로 도움이되지 않습니다 raidz2-0. 만약에어느zpool의 vdev가 실패하면 전체 풀과 그 안의 모든 데이터가 손실됩니다. 구성된 패리티를 유지할 수 없으면 내부에 충분한 디스크가 실패했기 때문에 각 vdev가 실패합니다. 귀하의 경우 각 Z2 vdev는 2개의 디스크 손실을 견딜 수 있지만 그 중 하나는 3개를 손실했습니다.

  1. 아직 3개의 디스크가 UNAVAIL인 raidz2-0 그룹에 스페어를 분리/연결해야 합니까?

첫째, 이제 실제 여유가 없습니다. 그리고 에서 작동 중인 디스크를 제거하더라도 raidz2-1(권장하지 않음!) 에서 실패한 디스크를 수정할 때까지는 아무 것도 얻을 수 없습니다 raidz2-0. 패리티 데이터는 어딘가에서 가져와야 하며, 이 경우에는 실패한 디스크에서 가져와야 합니다. 그 중 적어도 하나가 작동하지 않으면 백업에서 복원하는 것이 가장 좋습니다.

이 풀이 어떻게 생성되었는지에 대한 기록을 살펴보았는데, 과거에 아래 명령을 사용하여 생성되었습니다. zpool create -m /volumes/delta [...] 이는 raidz2-0과 raidz2-1이 두 개의 RAIDZ 미러 풀임을 의미합니까?

아니요, 이는 풀이 두 개의 스트라이프 vdev로 구성되어 있으며 각각 raidz2 중복성과 8개의 디스크로 구성되어 있음을 의미합니다. 각 vdev에서 최대 2개의 디스크를 잃을 수 있습니다. 그 중 3개를 잃으면 게임이 종료됩니다.

ZFS에서는 모든 중복성이 vdev 수준에서 처리됩니다. 풀은 항상 기존의 모든 vdev에 스트라이프됩니다. vdev가 실패하면 풀도 실패합니다. 미러링은 vdev에 대한 중복성 유형이며 raidz1/z2/z3과 호환되지 않습니다(다른 중복성 유형의 vdev를 혼합하여 일치시킬 수 있지만 가장 약한 것이 풀의 강도를 정의하고 성능이 저하되므로 이는 권장하지 않음).

그렇다면 raidz2-0(3개의 디스크 오류가 있음)보다 온라인 상태가 되도록 raidz2-1 디스크 그룹을 수정하는 데 우선순위를 두어야 합니까?

아니요. 먼저 을 수정해야 합니다 raidz2-0.


모두 Seagate에 속하며 크기 1.82TB의 SEAGATE, Rev. A001 및 SEAGATE, Rev. 0002가 혼합되어 있습니다.

이는 지금은 도움이 되지 않지만 미래에는 도움이 되지 않습니다. 제조업체와 모델, 심지어 제조 날짜까지 혼합하여 연결하여 "불량 드라이브 배치"의 경우를 균등화하는 것이 좋습니다. 예를 들어, 4개의 주요 제조업체(Seagate, Western Digital, Hitachi, Toshiba) 각각의 디스크 4개를 구입하여 vdev에 2-2개로 분할한 경우, 한 제조업체의 모든 디스크가 정확히 동시에 실패하더라도 여전히 작업 풀이 있을 것입니다.

관련 정보