Solaris 10 x86 - tentando substituir o disco no zpool

1

Estou tendo problemas para substituir um disco em um zpool existente em um sistema que executa o Solaris 10 em um processador x86. O zpool foi originalmente criado com duas fatias espelhadas. Um dos drives falhou, então eu troquei fisicamente por um novo drive. Eu corri prvtoc e fmthard para copiar o rótulo do disco da unidade de trabalho para a nova unidade:

prtvtoc /dev/rdsk/c1t0d0s2 >/tmp/c1t0d0s2.out
fmthard -s /tmp/c1t0d0s2.out >/dev/rdsk/c1t1d0s2

Depois, tentei colocar o novo disco on-line e recebi um aviso sobre o dispositivo ainda em falha:

$ zpool online pool c1t1d0s6 
warning: device 'c1t1d0s6' onlined, but remains in faulted state

A saída do zpool status -v é:

NAME          STATE     READ WRITE CKSUM
pool          DEGRADED     0     0     0
mirror-0    DEGRADED     0     0     0
c1t0d0s6  ONLINE       0     0     0
c1t1d0s6  UNAVAIL      0     0     0  corrupted data

(c1t1d0 é a unidade substituída).

Então eu coloquei c1t1d0 offline novamente e tentei executar o comando zpool replace, mas isso não funcionou:

$ zpool replace pool c1t1d0s6
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t1d0s6 overlaps with /dev/dsk/c1t1d0s2

Alguém sabe o que está acontecendo? É seguro usar o sinalizador '-f'?

Editar: Depois de executar zpool replace -f, recebo:

pool: pool
state: DEGRADED
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: none requested
config:

    NAME                STATE     READ WRITE CKSUM
    pool                DEGRADED     0     0     0
      mirror-0          DEGRADED     0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     UNAVAIL      0     0     0  insufficient replicas
          c1t1d0s6/old  OFFLINE      0     0     0
          c1t1d0s6      UNAVAIL      0   342     0  experienced I/O failures

Eu vejo erros na nova unidade na saída iostat -e. Eu acho que a nova unidade pode ser ruim também?

Editar 2 : Eu não sei o que está acontecendo. Eu tentei uma unidade diferente com o mesmo procedimento. Depois de executar o zpool replace -f, o conjunto zfs executou uma limpeza, mas a saída de status é:

  pool: pool
 state: ONLINE
 status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
 action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
 scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool              ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

Após criar off-line para c1t1d0s6, a saída do zpool status é:

  pool: pool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool                ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

Eu não entendi. O sistema não deve ser capaz de substituir c1t1d0s6 usando o espelho em c1t0d0s6?

    
por slec 29.08.2012 / 01:47

2 respostas

1

Você limpou os alertas em fmadm ? E o zpool clear ... É seguro executar o zpool replace com a opção -f , mas acho que sua declaração está errada, a menos que você já tenha removido o disco defeituoso.

link

    
por 29.08.2012 / 01:57
1

Verifique os cabos ou o trenó e o slot da unidade. Uma conexão SATA barulhenta produzirá erros e a fmadm usará essa informação para determinar quando um dispositivo está com falha. Eu tive drives que achei ruins, mas foi apenas o ZFS notando que não estava obtendo dados válidos de forma confiável. Eu notei um cabo SATA pinçado, substituí-lo e correu zpool clear e zpool scrub , sem mais erros.

    
por 14.09.2012 / 04:45