Depois de obter ajuda de Dexter_Kane no Fórum técnico de nível 1 , a resposta é usar /dev/disk/by-id/...
caminhos ao criar os pools.
Por exemplo,
sudo zpool create zpool1 mirror \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H
Convertendo e consertando pools existentes
A boa notícia é que você pode "converter" uma matriz RAID ZFS existente para usar esses rótulos, o que impede que isso aconteça no futuro e até resolverá sua matriz degradada se essa situação já tiver acontecido com você.
sudo zpool export [pool name]
sudo zpool import -d /dev/disk/by-id [pool name]
Você só precisa garantir que os conjuntos de dados dos conjuntos não estejam em uso. Por exemplo, não execute os comandos enquanto estiver dentro do pool e garanta que eles não estejam sendo compartilhados via NFS, etc.
Depois de realizar a conversão, a saída de sudo zpool status
deve ser semelhante a:
pool: zpool1
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zpool1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 ONLINE 0 0 0
ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H ONLINE 0 0 0
Testes realizados
Eu fiz questão de testar isso:
- O uso de caminhos por ID impediu que o problema acontecesse.
- Depois de gravar alguns dados enquanto o pool estava em um estado degradado, ainda consegui ler todos os arquivos após a exportação / importação, e
sudo zpool status
não informou erros.