Parece que um link simbólico simples é a resposta:
- Parar o ZFS
- ln -s / dev / disk / by-id / new-disk-id / dev / disk / por-id / old-disk-id
- Iniciar o ZFS
- O pool deve estar de volta a ONLINE
Obrigado Unix!
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. .