zfsonlinux, raidz1: duas corrupções de disco: Como eu posso usar dd / dd_rescue e enganar zpool?

1

Eu tenho zfsonlinux (Centos 7) e raidz1. E eu tenho problemas: dois discos estão morrendo.

O primeiro disco tem a falha Raw_Read_Error_Rate no erro SMART e Reallocated_Sector_Ct (o disco ficou sem setores livres para realocar dados)

O segundo disco tem erros Reallocated_Sector_Ct, mas ainda tem setores de backup.

Eu mudei o primeiro disco para o novo, e o zfs iniciou o resilvering. No início, a velocidade era de ~ 2MB / s, mas depois de algum tempo ela caiu para 20KB / se ainda menos e ficou muito pequena por vários dias!

E há mais erros:

Jul  9 06:14:09 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul  9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul  9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors
Jul  9 06:44:08 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul  9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul  9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors

reinicialize e importe pool não ajuda.

Posso usar o dd_rescue para copiar o segundo disco com falha para o novo e enganar o zpool? Como posso enganá-lo e importar o pool com o novo disco? Eu uso / dev / disk / by-id / para identificar discos no meu zpool.

  pool: tank                                                                                                                                                                                                         
 state: DEGRADED                                                                                                                                                                                                     
status: One or more devices is currently being resilvered.  The pool will                                                                                                                                            
        continue to function, possibly in a degraded state.                                                                                                                                                          
action: Wait for the resilver to complete.                                                                                                                                                                           
  scan: resilver in progress since Sun Jul  5 15:16:17 2015                                                                                                                                                          
    59.2G scanned out of 1.70T at 81.3K/s, (scan is slow, no estimated time)                                                                                                                                         
    14.8G resilvered, 3.40% done                                                                                                                                                                                     
config:                                                                                                                                                                                                              

        NAME                                                  STATE     READ WRITE CKSUM                                                                                                                             
        tank                                                  DEGRADED     0     0     0                                                                                                                             
          raidz1-0                                            DEGRADED     0     0     0                                                                                                                             
            ata-Hitachi_HDS721010CLA332_JP2940HQ2VTTDH-part1  ONLINE       0     0     0                                                                                                                             
            replacing-1                                       DEGRADED     0     0     1                                                                                                                             
              4455585976361728304                             UNAVAIL      0     0     0  was /dev/disk/by-id/ata-Hitachi_HDS721010CLA332_JP2940HQ2VTZUH-part1                                                       
              ata-ST1000DM003-1ER162_W4Y1HJTP-part1           ONLINE       0     0     0  (resilvering)                                                                                                              
            ata-WDC_WD10EALS-00Z8A0_WD-WCATR1714802-part1     ONLINE       0     0     0                                                                                                                             
            ata-WDC_WD10EALS-00Z8A0_WD-WCATR1737637-part1     ONLINE       0     0     0      


zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  3.56T  1.70T  1.86T         -      -    47%  1.54x  DEGRADED  -

Eu uso estas versões de software: zfs-release-1-2.el7.centos.noarch libzfs2-0.6.4.1-1.el7.centos.x86_64 zfs-0.6.4.1-1.el7.centos.x86_64 zfs-dkms-0.6.4.1-1.el7.centos.noarch

    
por Xeniya Lisovskaya 09.07.2015 / 07:58

1 resposta

1

EDIT: primeiro pensei que era pool de espelhos, não raidz.

Primeiramente, o zpool replace deve funcionar bem. Se for lento porque esse disco está agindo com lentidão, você poderá desconectá-lo / desconectá-lo primeiro para que os dados sejam recriados de outros discos e as leituras não sejam tentadas a partir do disco danificado. Vários discos com falha não são uma boa coisa.

Exportar pool, usando ddrescue e, em seguida, importar também deve funcionar, contanto que o antigo disco morto seja removido da máquina nesse ponto. A importação geralmente consulta todos os discos para ver quais pools existem para serem encontrados e importados.

E, se você tiver várias unidades com falha, não há nada de errado em substituí-las ao mesmo tempo. Geralmente, é mais rápido, pois é necessário apenas uma passagem de resilver para fazer todos os discos dessa maneira. Quando você substitui um disco on-line, ele ainda está sendo usado como um destino de leitura / gravação até que a substituição seja concluída.

    
por 31.10.2015 / 19:16