No FreeBSD 10.2-RELEASE, eu tive a seguinte configuração em um ambiente de desenvolvimento (felizmente) até ontem:
NAME STATE READ WRITE CKSUM
bigpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
multipath/faba_lun0 ONLINE 0 0 0
multipath/fabb_lun0 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
multipath/faba_lun1 ONLINE 0 0 0
multipath/fabb_lun1 ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
multipath/faba_lun2 ONLINE 0 0 0
multipath/fabb_lun2 ONLINE 0 0 0
mirror-3 ONLINE 0 0 0
multipath/faba_lun3 ONLINE 0 0 0
multipath/fabb_lun3 ONLINE 0 0 0
Eu então pensei que seria uma boa idéia tentar "desativar" o quarto espelho (mirror-3) como um tipo de teste de HA rudimentar.
zpool detach bigpool multipath/faba_lun3
Depois, pensando que isso era uma má idéia, adicionei novamente o disco:
zpool add bigpool multipath/faba_lun3
Agora tenho esta configuração:
NAME STATE READ WRITE CKSUM
bigpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
multipath/faba_lun0 ONLINE 0 0 0
multipath/fabb_lun0 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
multipath/faba_lun1 ONLINE 0 0 0
multipath/fabb_lun1 ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
multipath/faba_lun2 ONLINE 0 0 0
multipath/fabb_lun2 ONLINE 0 0 0
multipath/faba_lun3 ONLINE 0 0 0
multipath/fabb_lun3 ONLINE 0 0 0
Eu não consigo anexar novamente os dois lun3's no mirror-3:
root# zpool attach bigpool multipath/faba_lun3 multipath/fabb_lun3
invalid vdev specification
use '-f' to override the following errors:
/dev/multipath/fabb_lun3 is part of active pool 'bigpool'
Parece estar em um catch-22 - Não é possível espelhar porque ambos os vdevs já fazem parte do pool (portanto, um anexo não faz sentido) e não é possível remover os vdevs porque eles não são log, spare, etc ...
Alguém sabe de uma maneira de "reativar" esse espelho, com os vdevs de pool existentes? Eu acho que isso é semelhante a um relayout online.
Obrigado
sc.