![Sistema de archivos de dispositivo de bloque compartido (sistema de archivos de clúster sin red)](https://rvso.com/image/567644/Sistema%20de%20archivos%20de%20dispositivo%20de%20bloque%20compartido%20(sistema%20de%20archivos%20de%20cl%C3%BAster%20sin%20red).png)
¿Existe algún sistema de archivos que pueda montarse varias veces y admita el acceso simultáneo a archivos para Linux? Básicamente quiero algo así como un sistema de archivos en clúster pero sin la necesidad de tener una red en funcionamiento para un administrador de bloqueo distribuido. Esto puede resultar muy útil en conexión con máquinas virtuales que pueden compartir datos con el host u otra máquina virtual sin la necesidad de crear un enlace de red. Esto quiero evitarlo para mantener segura la arquitectura de la red (máquina virtual en DMZ) pero compartir archivos grandes. No es necesario ampliarlo, sólo dos máquinas que montan el mismo dispositivo de bloque.
¿No debería ser posible tener información de bloqueo de archivos directamente en el disco?
Respuesta1
Supongo que puede otorgar N VM y acceder al mismo dispositivo de bloque, pero solo de lectura. Observas esa palabra adivinar.
Las cosas fallarán rápidamente si alguna de las máquinas virtuales comienza a modificar cosas, ya que cualquier disco que almacene en caché las otras máquinas virtuales ahora no será válido.
La dificultad de tener información de bloqueo de archivos en el disco es que nadie lo ha hecho todavía. Sin pensarlo profundamente, la idea de una transacción atómica de lectura/modificación/escritura en un disco es probablemente el problema base.
Supongo que podría tomar un sistema de archivos típico que ya tenga múltiples subprocesos, descubrir dónde se usan los bloqueos y cambiarlo a algún tipo de operación de lectura/modificación/escritura en el disco.
El otro problema con la lectura/modificación/escritura en el disco es que si realiza muchos bloqueos, su rendimiento será bastante malo ya que cada cambio en cualquier cosa en el disco requiere:
- bloquear el disco (buscar, leer/modificar/escribir)
- lee el sector que deseas cambiar (buscar/leer)
- haz el cambio y escribe (escribe)
- desbloquear el disco (buscar, leer/modificar/escribir)
Probablemente no ayude, pero consideraría algo como BSD Jails como un sistema VM más liviano si realmente no desea conectarse en red.
Respuesta2
Para dar una respuesta a mi propia pregunta: en la situación de (para)virtualización, están evolucionando algunos sistemas de archivos compartidos que se pueden usar para compartir archivos sin red entre instancias. Creo que XenFS es un enfoque que no se está desarrollando activamente. Pero para KVM, y con suerte para XEN pronto, existe un mecanismo para compartir carpetas basado en la biblioteca virtio llamado9p_virtio.