Eu não sei ao certo, mas depois do nosso pequeno debate nos comentários da questão, eu acho que o problema pode ser que o dispositivo exista , mas não é um > cache dispositivo por mais tempo, e que isso é de alguma forma confundindo o conjunto de ferramentas ZFS ao ponto de não conseguir importar o pool normalmente.
Se esta é a causa raiz de seus problemas, então você pode muito bem ser capaz de contornar o problema importando de um diretório diferente.
Para fazer isso, crie um diretório temporário e recrie os links simbólicos de dispositivo necessários. Por exemplo:
# mkdir /tmp/zfs
# cd /tmp/zfs
# ln -s $(for link in /dev/disk/by-id/ata-WL3000GSA6472_WOL240282406* /dev/disk/by-id/ata-WL3000GSA6472_WOL240282471* /dev/disk/by-id/ata-WL3000GSA6472_WOL240282504* /dev/disk/by-id/ata-WL3000GSA6472_WOL240282506* /dev/disk/by-id/ata-WL3000GSA6472_WOL240282472* ; do readlink -f "${link}" ; done) ./
# zpool import -d /tmp/zfs
(O comando ln
longo recria os links ata-WL...
e garante que eles apontem para o nó do dispositivo correto.)
Se tudo correr bem, o% final zpool import -d ...
deverá produzir algo como o seguinte:
pool: pool5
id: 14850262647910895720
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
pool5 ONLINE
raidz2-0 ONLINE
ata-WL3000GSA6472_WOL240282406 ONLINE
ata-WL3000GSA6472_WOL240282471 ONLINE
ata-WL3000GSA6472_WOL240282504 ONLINE
ata-WL3000GSA6472_WOL240282506 ONLINE
ata-WL3000GSA6472_WOL240282472 ONLINE
cache
...something... MISSING (was ata-ST31500341AS_6VS073SA)
Eu não sei o formato exato na saída zpool import
de um dispositivo de cache ausente (pode até nem ser mostrado), então pegue essa parte com um pouco de sal, e ela ainda pode reclamar sobre o pool sendo "em uso", mas esperançosamente isso dará ao ZFS a chance de procurar o pool e não ser confundido com o dispositivo de cache porque o ZFS estará procurando em um local onde o dispositivo de cache não existe mesmo.
Se isso funcionar, você poderá importar o pool usando -d /tmp/zfs -f
(você precisará usar -f
porque o pool não foi exportado anteriormente, mas eu recomendo tentar sem ele primeiro, porque usar -f
com o ZFS é muitas vezes não o que você quer fazer e você não deve adquirir o hábito de usá-lo a menos que você saiba certos que você deseja usá-lo e por que você deseja usá-lo), remova o dispositivo de cache do pool usando algo como zpool detach pool5 ...something...
, exporte o conjunto e, em seguida, -importe a piscina normalmente. Você pode adicionar novamente o dispositivo de cache se quiser (embora eu recomende strongmente contra o uso de um fuso para um dispositivo de cache).
Depois de ter conseguido reimportar o pool normalmente (sem usar -d
), você pode excluir com segurança o diretório / tmp / zfs (ou outro diretório temporário) que você criou acima.
Além disso, se isso funcionar, recomendo que você envie um relatório de bug com o rastreador de problemas do projeto . Esse tipo de solução alternativa não deve ser necessário para o que é, na verdade, armazenamentos de dados voláteis.