Duas unidades do pool do ZFS, a segunda unidade sobrescrita com dados. Como faço para restaurar / copiar dados de volta para a segunda unidade?

2

Os dados estão intactos na primeira unidade, a segunda unidade é "UNAVAIL". Razão para sobrescrever é a minha falta de concentração ao aplicar o comando dd ...

Comando

sudo zpool replace -f hgst 4596995095197485503 /dev/sdd

invalid vdev specification the following errors must be manually repaired: /dev/sdd1 is part of active pool 'hgst'

Eu coloquei o disco offline e removi partições com o Gparted. Após a reinicialização, eles reapareceram e zpool replace -command não funcionou.

Comando

dd if=/dev/zero of=/dev/sdd bs=1M count=2 seek=2048

e

dd if=/dev/zero of=/dev/sdd bs=512 seek=$(( $(blockdev --getsz /dev/sdd) - 1 )) count=1

também não ajudou.

Comando sudo zpool labelclear /dev/sdd e, em seguida, zpool replace -command deu

cannot replace 4596995095197485503 with /dev/sdd: /dev/sdd is busy

Ocupado também com o comando

sudo zpool replace -f hgst 4596995095197485503 /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

    
por Ohto Nordberg 19.05.2017 / 23:39

3 respostas

2

Eu tirei o disco offline

zpool offline hgst /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

Separou a unidade

zpool detach hgst 4596995095197485503

Etiqueta cancelada

zpool labelclear -f /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

Anexado o disco de volta

zpool attach hgst ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ /dev/disk/by-id/ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ

E agora é o resilvering.

NAME                                         STATE     READ WRITE CKSUM
hgst                                         ONLINE       0     0     0
  mirror-0                                   ONLINE       0     0     0
    ata-HGST_HDN724030ALE640_PK2238P3G3E3UJ  ONLINE       0     0     0
    ata-HGST_HDN724030ALE640_PK2238P3G3E0MJ  ONLINE       0     0     0  (resilvering)
    
por 26.05.2017 / 20:17
5

Bem, era um espelho, então parece que você só precisaria recriar a tabela de partições e dimensionar corretamente partições no disco limpo, e adicioná-lo, depois remover a entrada que sobrou.

Este comando adicionaria um novo dispositivo ao espelho

zpool add hgst mirror good_device_name new_device

E remova o dispositivo antigo

zpool remove hgst old_device_id

Ou em uma única etapa

zpool replace hgst old_device_id new_device

Links

P.S. Certifique-se de ter um bom backup externo verificado , porque você não quer piorar as coisas.

    
por 20.05.2017 / 00:11
2

Eu usaria estes comandos:

zpool detach hgst <corrupted_device>
zpool attach -f hgst <online_device> <new_device>

(verifique man pool para ter certeza)

Use o pool add com cuidado, porque você acaba facilmente com o pool striped em vez de um mirror!

    
por 21.05.2017 / 16:23