No estoy muy seguro de cómo formular esta pregunta (de ahí el título pobre), así que permítanme dar un ejemplo de lo que estoy tratando de hacer.
En mi (antiguo) host Xen, puedo presentar sistemas de archivos LVM directamente a cada invitado. Estos sistemas de archivos se crean y formatean en el host, y se pasan directamente a través de ellos. Por ejemplo, para uno de mis hosts que usa particiones tmp e swap separadas, defino el almacenamiento de esta manera:
disk = [
'phy: / dev / vg1 / guest1-swap, sda1, w',
'phy: / dev / vg1 / guest1-disk, sda2, w',
'phy: / dev / vg1 / guest1-tmp, sda3 , w ',
]
Entonces, guest1-swap está formateado como una partición de intercambio, guest1-disk y guest1-tmp están formateados con ext4, y desde la perspectiva del invitado simplemente los ve como tres particiones formateadas en / dev / sda.
(Esto puede parecer mucho trabajo, pero hay scripts de aprovisionamiento, como las increíbles herramientas xen , que automatizan casi todo).
Esto proporciona algunas capacidades realmente útiles, dos de las cuales estoy especialmente interesado en descubrir para KVM:
Monte los sistemas de archivos invitados desde el sistema operativo host . Puedo hacer un montaje de solo lectura de cualquier sistema de archivos invitado en cualquier momento, incluso mientras el invitado se está ejecutando. Esto tiene el beneficio adicional de permitirme crear instantáneas LVM de cualquier volumen existente mientras el invitado se está ejecutando. De esta manera, puedo hacer una copia de seguridad centralizada de todos mis invitados, mientras se ejecuta, desde el host.
Volumen en línea de cambio de tamaño . Debido a que los volúmenes contienen sistemas de archivos Linux estándar, puedo usar una combinación de lvextend y resize2fs para hacer crecer mis sistemas de archivos invitados, nuevamente mientras están en línea.
Actualmente estoy configurando un host KVM que reemplazará al host Xen. Similar a la configuración de Xen, estoy aprovechando LVM para proporcionar acceso directo al sistema de archivos, pero KVM / qemu se comporta de manera diferente, ya que siempre crea un archivo de imagen para los invitados, incluso en el volumen LVM. Desde la perspectiva del invitado, ve esto como un disco sin particiones, y depende del invitado aplicar una etiqueta de partición y luego crear las particiones y los sistemas de archivos.
Desde la perspectiva del huésped, está bien, pero desde la perspectiva del servidor / administración parece ser mucho menos flexible que la configuración de Xen que describí. Todavía soy nuevo en KVM, por lo que es posible que (con suerte) me falte algo.
Me encontré con este problema al intentar volver a implementar mi solución de copia de seguridad anterior en el host KVM y el comando de montaje se bloqueó cuando intenté montar uno de los sistemas de archivos del invitado. Entonces, abordar esa es mi preocupación actual, pero también me hizo preocuparme por el cambio de tamaño, porque estoy seguro de que ese problema también surgirá en algún momento.
Asi que aqui están mis preguntas:
¿Hay alguna forma de hacer que kvm / qemu use los sistemas de archivos de volumen LVM directamente como lo describí para mi configuración de Xen? Uso libvirt para la administración si eso hace la diferencia.
Si no, ¿qué puedo hacer para obtener una funcionalidad de montaje / copia de seguridad similar en KVM? He visto discusiones sobre el uso de libguestfs con FUSE para hacer esto, pero ¿es realmente la mejor opción? Prefiero seguir con un montaje de sistema de archivos nativo si es posible.
Además, si no, ¿es posible cambiar el tamaño de un sistema de archivos en línea con KVM? Encontré varias discusiones / procedimientos sobre esto, pero las respuestas parecen estar por todas partes sin soluciones claras y definitivamente claras.
Perdón por la larga publicación, solo quería asegurarme de que estaba clara. Avíseme si puedo proporcionar otra información que pueda ser útil. Esperamos con interés la discusión. :-)