Substituindo um disco rígido recuperado em um pool do ZFS

4

Eu tenho um pool que está no status UNAVAL ("Um ou mais dispositivos não puderam ser abertos. Há réplicas insuficientes para o pool continuar funcionando.") devido a uma falha recente no disco.

Estou planejando reparar o disco com falha (ou seja, serviço de recuperação de dados) para recuperar o pool on-line por tempo suficiente para migrá-lo. No entanto, há um problema que não sei como contornar.

Os nomes dos dispositivos no meu pool estão usando o número de série dos meus discos (/ dev / disk / by-id / style). Eu fiz isso porque eu tenho muitos discos, e os nomes de / dev / sd * se moviam em cada inicialização, o que naturalmente causava estragos na piscina. No entanto, neste caso, desde que eu vou estar trazendo o disco "mesmo" (em termos de dados, mas não de hardware) de volta on-line, mas com um nome de dispositivo diferente, eu não acho que ele vai reconhecê-lo corretamente automaticamente e não sei exatamente como o comando "replace" irá tratar o novo disco. Talvez funcione, mas com base na documentação, ele pode tratar o novo disco como "em branco" em vez de usá-lo para reparar o pool (ou talvez o ZFS examine o conteúdo do disco e aja de acordo, não tenho certeza ).

Em suma, eu quero levar um disco off-line registrado no pool pelo nome do dispositivo de hardware, copiá-lo para outro disco físico e, em seguida, colocar o novo disco on-line no lugar do original.

Estou fazendo alguns experimentos com dispositivos que não são de produção para confirmar isso, mas todos os pensamentos daqueles que sabem mais sobre o que o ZFS faz "sob o capô" ou têm experiência com esse tipo de recuperação são muito apreciados! Além disso, se houver papéis, documentos, etc. que entrem nesse nível de ajustes, ficarei feliz em estudá-los também.

Para ficar claro, isso não deve ser uma configuração de longo prazo, apenas o suficiente para evacuar o conteúdo do array, por isso não me oponho a soluções que não são adequadas para ambientes de produção / longo prazo. .

    
por jasongullickson 04.10.2013 / 15:54

1 resposta

4

Parece que um link simbólico simples é a resposta:

  1. Parar o ZFS
  2. ln -s / dev / disk / by-id / new-disk-id / dev / disk / por-id / old-disk-id
  3. Iniciar o ZFS
  4. O pool deve estar de volta a ONLINE

Obrigado Unix!

    
por 04.10.2013 / 17:31

Tags