
Eu configurei o KVM no host Debian 10.
Existem 2 máquinas virtuais em execução.
A máquina virtual nº 1 possui OMV dentro dela.
A máquina virtual nº 2 possui debian simples.
Cada máquina virtual é instalada em seu próprio arquivo de imagem qcow2.
Essas duas máquinas compartilham um armazenamento adicional, que é um arquivo de armazenamento RAW. Ambas as máquinas possuem esse armazenamento marcado como “Compartilhável”.
O problema atual que notei é que a tabela de arquivos não está sendo atualizada rapidamente. Quero dizer, se você fizer algo com esse armazenamento em uma VM, as alterações não serão vistas na outra ATÉ que a outra VM seja reinicializada (provavelmente a remontagem faz o mesmo).
Se alterações forem feitas por ambas as VMs, o OMV posteriormente começará a apresentar alguns erros relacionados ao SMB.
A reinicialização do OMV não atualizou a tabela de arquivos, no entanto, a reinicialização da máquina Debian resultou na perda de todos os dados.
OMV hospeda o compartilhamento do Samba.
Alguém já teve alguma experiência com armazenamento compartilhado e sabe como atualizar pelo menos manualmente a tabela de arquivos sem remontar o armazenamento?
Responder1
dr:Tenha sua VM Debian simples (máquina virtual nº 2)monte o compartilhamento do Sambahospedado em sua VM OpenMediaVault (máquina virtual nº 1). Conecte apenas o arquivo de armazenamento bruto à máquina virtual nº 1.
Explicação
O que você configurou é semelhante a ter uma unidade flash conectada a dois computadores ao mesmo tempo. Já escrevi sobre isso antes:
Quando você monta o sistema de arquivos no disco rígido em algum lugar dos dois computadores, cada computador não tem ideia de que o outro também está usando o sistema de arquivos. Isto pode levar acorrupção grave de dadosporque cada computador está passando por cima do outro.
De:Como posso fazer com que o iniciador iSCSI propague alterações?
Para corrigir isso, você precisa de uma camada entre o disco de armazenamento (no servidor) e as múltiplas máquinas (clientes) que o acessam, ciente de que vários clientes podem acessar o mesmo armazenamento.
Duas maneiras comuns de configurar isso sãoNFSeCIFS(Samba), que sãosistemas de arquivos de rede.
Vejo que você já tem um servidor Samba configurado. Tudo o que você precisa fazer de diferente para compartilhar o armazenamento é conectar suas VMs a esse servidor Samba. Você só deve conectar o disco virtual ao servidor Samba.
Você poderia dar um passo adiante e configurar umsistema de arquivos distribuído, que é uma forma de agrupar o armazenamento de vários servidores e acessá-los em um único sistema de arquivos de rede.
Alternativamente, também é possível compartilhar o disco virtual como você estava tentando fazer originalmente, mas você ainda precisa de um sistema de arquivos que esteja ciente de que vários computadores podem modificar dados ao mesmo tempo. Esta outra respostasugeresistemas de arquivos de disco compartilhado, que abstraem o armazenamento compartilhado em um nível inferior aos sistemas de arquivos de rede.
Recursos
Documentação Oficial
- Configuração do servidor NFSna Wiki do Debian
- Configuração simples do servidor de compartilhamento de arquivos Sambana Wiki do Debian
- Serviço OpenMediaVault Samba
Tutoriais
- Configurando um servidor e cliente NFS no Debian 9 (Stretch)no HowtoForge
(o tutorial ainda deve ser válido para o Debian 10) - Instale e configure o compartilhamento do servidor Samba no Debian 10/Ubuntu 18.04sobre computação para geeks
Acima e além: sistemas de arquivos distribuídos
Responder2
Montar um sistema de arquivos ext4 r/w em dois nós ao mesmo tempo não disponibilizará o conteúdo para ambos - em vez disso, corromperá o sistema de arquivos.
Marcar o disco compartilhável no virt-manager apenas impede o hipervisor de avisá-lo - isso acontece no nível do hardware virtual, não no nível do sistema de arquivos.
Se você deseja discos compartilhados (e há boas razões para isso), use GFS ou OCF2 (a escolha mais fácil para iniciantes).