
Configuré KVM en el host Debian 10.
Hay 2 máquinas virtuales en ejecución.
La máquina virtual n.° 1 tiene OMV en su interior.
La máquina virtual n.° 2 tiene Debian simple.
Cada máquina virtual se instala en su propio archivo de imagen qcow2.
Estas dos máquinas comparten un almacenamiento adicional, que es un archivo de almacenamiento RAW. Ambas máquinas tienen este almacenamiento marcado como "Compartible".
El problema actual que he notado es que la tabla de archivos no se actualiza sobre la marcha. Quiero decir, si hace algo con este almacenamiento en una máquina virtual, los cambios no se verán en la otra HASTA que se reinicie la otra máquina virtual (lo más probable es que el montaje haga lo mismo).
Si ambas máquinas virtuales realizan cambios, OMV luego comienza a generar algunos errores relacionados con SMB.
Al reiniciar OMV no se actualizó la tabla de archivos; sin embargo, al reiniciar la máquina Debian se perdieron todos los datos.
OMV aloja el recurso compartido de Samba.
¿Alguien ha tenido alguna experiencia con el almacenamiento compartido y sabe cómo actualizar al menos manualmente la tabla de archivos sin volver a montar el almacenamiento?
Respuesta1
tl;dr:Tenga su máquina virtual Debian simple (máquina virtual n.° 2)montar el recurso compartido Sambaalojado en su máquina virtual OpenMediaVault (máquina virtual n.° 1). Conecte únicamente el archivo de almacenamiento sin formato a la máquina virtual n.° 1.
Explicación
Lo que ha configurado es similar a tener una unidad flash conectada a dos computadoras al mismo tiempo. He escrito sobre esto antes:
Cuando monta el sistema de archivos en el disco duro en algún lugar de ambas computadoras, cada computadora no tiene idea de que la otra también está usando el sistema de archivos. Esto puede llevar acorrupción grave de datosporque cada computadora está pasando por encima de la otra.
De:¿Cómo puedo hacer que el iniciador iSCSI propague los cambios?
Para rectificar esto, necesita una capa entre el disco de almacenamiento (en el servidor) y las múltiples máquinas (clientes) que acceden a él y que sea consciente de que múltiples clientes pueden acceder al mismo almacenamiento.
Dos formas comunes de configurar esto sonNFSyCIFS(Samba), que sonsistemas de archivos de red.
Veo que ya tienes un servidor Samba configurado. Todo lo que necesita hacer de manera diferente para compartir el almacenamiento es hacer que sus máquinas virtuales se conecten a ese servidor Samba. Sólo debes conectar el disco virtual al servidor Samba.
Podrías ir un paso más allá y configurar unsistema de archivos distribuido, que es una forma de agrupar el almacenamiento de varios servidores y acceder a ellos en un único sistema de archivos de red.
Alternativamente, también es posible compartir el disco virtual como intentaba hacerlo originalmente, pero aún necesita un sistema de archivos que sea consciente de que varias computadoras podrían estar modificando datos al mismo tiempo. esta otra respuestasugieresistemas de archivos de disco compartido, que abstraen el almacenamiento compartido a un nivel inferior que los sistemas de archivos de red.
Recursos
Documentación oficial
- Configuración del servidor NFSen la Wiki de Debian
- Configuración sencilla del servidor para compartir archivos Sambaen la Wiki de Debian
- Servicio OpenMediaVault Samba
Tutoriales
- Configuración de un servidor y cliente NFS en Debian 9 (Stretch)en HowtoForge
(el tutorial aún debería ser válido para Debian 10) - Instalar y configurar Samba Server Share en Debian 10/Ubuntu 18.04sobre informática para geeks
Más allá y más allá: sistemas de archivos distribuidos
Respuesta2
Montar un sistema de archivos ext4 r/w en dos nodos al mismo tiempo no hará que el contenido esté disponible para ambos; en cambio, dañará el sistema de archivos.
Marcar el disco como compartible en virt-manager simplemente evita que el hipervisor le advierta; sucede en el nivel de hardware virtual, no en el nivel del sistema de archivos.
Si desea discos compartidos (y hay buenas razones para ello), utilice GFS u OCF2 (la opción más sencilla para principiantes).