não é possível importar um volume zpool: erro de E/S

não é possível importar um volume zpool: erro de E/S

isso está no armazenamento aberto nexenta. Eu tenho um zpool que está no estado UNAVAIL por causa de alguns discos.

# 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. Como posso fazer com que essa importação do zpool funcione bem?
  2. Os discos apontados como 'UNAVAIL', como posso repará-los/substituí-los?

Atualização: 7 de setembro de 2018

Depois de encontrar os discos para mapeamento de slot no Nexenta, recolocando os discos no volume delta, consegui colocar um disco ONLINE no grupo raidz2-1, mas os 3 discos no grupo raidz2-0 ainda continuam aparecendo como 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

Encontrei um único disco sobressalente para outro onlinepool no dispositivo. Agora a questão é 1. Devo desanexar/anexar o sobressalente ao grupo raidz2-1 que possui apenas um disco UNAVAIL na subcategoria de sobressalente-6? ou 2. Devo desconectar/anexar o sobressalente ao grupo raidz2-0 que ainda possui 3 discos UNAVAIL?

Dado que este pool está offline (após a exportação) e não pode ser importado agora.

Eu olhei um pouco do histórico de como esse pool foi criado, ele foi criado com o comando abaixo no passado

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

Isso indica que raidz2-0 e raidz2-1 são dois pools de espelhos RAIDZ?

Se sim, devo priorizar a correção do grupo de discos raidz2-1 para ficar online em vez do raidz2-0 (que tem 3 falhas de disco)?

Responder1

  1. Devo desanexar/anexar o grupo sobressalente ao grupo raidz2-1 que possui apenas um disco UNAVAIL na subcategoria de sobressalente-6?

Seu disco sobressalente já foi anexado automaticamente raidz2-1e resilverado. Normalmente, você agora o desconectaria c0t5000C5005739AC3Fd0e removeria do sistema porque ele falhou uma vez (ou o redirecionaria para outro sistema e esperaria pelo melhor, se você não tivesse recursos sobrando).

Mas isso não iria ajudá-lo, pois raidz2-0ainda está em baixo. Sequalquervdev em um zpool falha, todo o seu pool e todos os dados nele contidos são perdidos. Cada vdev falhará se a paridade configurada não puder ser mantida, porque discos suficientes falharam dentro dele. No seu caso, cada vdev Z2 pode suportar a perda de dois discos, mas um deles perdeu três.

  1. Devo desconectar/anexar o sobressalente ao grupo raidz2-0 que ainda possui 3 discos UNAVAIL?

Primeiro, você não tem sobras reais agora. E mesmo se você removesse um disco funcional raidz2-1(não recomendado!), você ainda não ganharia nada até consertar seus discos com falha no raidz2-0. Os dados de paridade devem vir de algum lugar e, neste caso, devem vir dos discos com falha. Se você não conseguir que pelo menos um deles funcione, sua melhor aposta seria restaurar a partir do backup.

Eu olhei um pouco do histórico de como esse pool foi criado, ele foi criado com o comando abaixo no passado. zpool create -m /volumes/delta [...] Isso indica que raidz2-0 e raidz2-1 são dois pools de espelhos RAIDZ?

Não, isso significa que seu pool consiste em dois vdevs distribuídos, cada um configurado com redundância raidz2 e 8 discos. Você pode perder no máximo 2 discos em cada vdev. Se você perder 3 em qualquer um deles, o jogo termina.

No ZFS, toda redundância é tratada no nível vdev. O pool é sempre distribuído por todos os vdevs existentes. Se algum vdev falhar, o pool falhará. Espelhamento é um tipo de redundância para um vdev e é incompatível com raidz1/z2/z3 (você pode misturar e combinar vdevs com diferentes tipos de redundância, mas o mais fraco definirá a força do seu pool e o desempenho será prejudicado, então este é não recomendado).

Se sim, devo priorizar a correção do grupo de discos raidz2-1 para ficar online em vez do raidz2-0 (que tem 3 falhas de disco)?

Não, você deve primeiro consertar o raidz2-0.


Todos eles pertencem à Seagate, há uma mistura de SEAGATE, Rev. A001 e SEAGATE, Rev. 0002, tamanho 1,82 TB

Isso não ajuda agora, mas talvez no futuro: é aconselhável misturar e combinar fabricantes e modelos e até mesmo datas de fabricação, para equilibrar os casos de "lote de unidades defeituoso". Por exemplo, se você comprou 4 discos de cada um dos 4 principais fabricantes (Seagate, Western Digital, Hitachi, Toshiba) e os dividiu em 2-2 em seus vdevs, mesmo que todos os discos de um fabricante tenham falhado exatamente ao mesmo tempo, você ainda teria um pool de trabalho.

informação relacionada