Algum conhecimento prévio sobre o problema
Depois de um pouco de pesquisa e tentativa, concluo que o zfs usou os pontos de montagem. Portanto, minha teoria estava certa: os pontos de montagem não são estáticos, como letras de unidade no Windows. Em vez disso, o Linux os atribui na ordem de detecção durante a inicialização. Adicionar ou remover discos pode misturar os pontos de montagem.
Exemplo simples:
sda -> Drive #1
sdb -> Drive #2
sdc -> Drive #3
Agora adicionamos uma nova unidade # 4. Poderia ser inserido assim:
sda -> Drive #1
sdb -> Drive #4
sdc -> Drive #2
sde -> Drive #3
Se dependermos do ponto de montagem, estaremos com problemas agora: Nosso sistema espera a unidade 2 em sdb
, mas obteve uma completamente diferente (unidade # 4). De acordo com o arch wiki, isso pode acontecer mesmo durante uma inicialização normal, sem alterações nas propriedades do disco rígido.
O que podemos fazer?
Bem, usar esses pontos de montagem parece uma má ideia. Devemos usar nomenclatura de dispositivo de bloco persistente , que estão disponíveis no udev. Deve estar disponível em qualquer distribuição Linux moderna. Os nomes de bloqueio persistentes não usam nomes neutros como sda
ou sdb
. Em vez disso, cria alguns tipos de nomes, que são vinculados persistentemente à unidade. Eles são comparáveis a letras de unidade no Windows (sim, lembre-se de que letras de unidade estão vinculadas a partições, onde nomes de bloco identificam uma unidade, mas ambos são persistentes!).
by-id
e by-uuid
parecem mais relevantes para resolver esse problema, mas há outros também. Você pode ler uma explicação mais detalhada na página wiki vinculada do Arch. É um artigo geral, que pode ser aplicado a outras distribuições também. Para esse problema, é importante saber que uuids
é um tipo de ID exclusivo gerado. E podemos usar ids
como uma alternativa melhor legível, porque eles estão usando informações específicas do disco rígido como fabricante, modelo e número de série.
ZFS
Como descrito aqui , era necessário exportar todos os pools e importá-los novamente, mas com o -d
interruptor. Diz ao zpool onde procurar por dispositivos:
zpool export <poolname>
zpool import -d /dev/disk/by-id <poolname>
Usando zpool status
, isso pode ser verificado: antes da exportação / importação, você deve ver pontos de montagem como /dev/sda
para os dispositivos. Isso deve mudar para IDs de disco após esses procedimentos.
Volumes regulares (opcional)
Para mim, isso não foi suficiente: eu tenho um hdd adicional chamado buffer para coisas como imagens ISO. Não há dados importantes, apenas para aliviar meu SSD. Então esse era um volume ext3 clássico. Isso desencoraja o servidor a inicializar, pois exatamente o mesmo problema acontece aqui: O ponto de montagem alterou a causa dos novos discos, o que permite a falha da montagem.
Eu resolvi isso simplesmente removendo essa unidade. De qualquer forma, essa foi a minha ideia, já que os novos hdds são grandes o suficiente e eu poderia economizar um pouco de energia tendo menos discos. Para fazer isso, temos que remover o armazenamento do proxmox usando o arquivo /etc/pve/storage.cfg
. No meu caso, a parte relevante é assim:
dir: buffer
path /buffer
content iso
Depois de removê-lo, devemos dar uma olhada em /etc/fstab
. Este arquivo monta nosso /buffer
volume, onde a causa principal ocorre:
/dev/sdf /buffer ext3 rw 0 0
Como você pode ver, o ponto de montagem /dev/sdf
está presente aqui. Se você não quiser rejeitar o disco como eu, simplesmente use um ponto de montagem exclusivo aqui! Por exemplo, / dev / disk / by-id . É um exemplo de nomes de dispositivos de blocos persistentes. Eles são gerados com base em dados dependentes de dispositivo. by-id
, por exemplo, usa o número de série do hardware. Então, somos capazes de até mesmo colocar dois discos iguais. Leia mais no primeiro parágrafo para informações básicas.
No meu caso, simplesmente remover essa linha impede que o linux monte meu disco rígido. Se você tiver mais volumes, será necessário repetir essas etapas para cada um deles, para ter certeza de não ter problemas após a reinicialização.