Instalación en discos LVM virtuales sin particiones

Instalación en discos LVM virtuales sin particiones

Estoy instalando un servidor Ubuntu en una máquina virtual KVM/libvirt con el instalador de texto/consola.

Tengo la intención de entregar dos volúmenes LVM como raíz y cambiarlos a la VM como discos virtuales.
Se detectan correctamente como vday vdb, sin embargo, el instalador parece obligarme a particionarlos como discos, lo que anularía la flexibilidad de LVM.

¿Cómo puedo instalar Ubuntu formateando los discos virtuales directamente en lugar de usar particiones, o es una mala idea?

Motivación:

El objetivo es reducir la complejidad eliminando un nivel innecesario de abstracción de la jerarquía de almacenamiento.

  1. unidades físicas:host:/dev/sd{a,b}
  2. particionamiento:host:/dev/sd{a,b}1
  3. incursión SW:host:/dev/md1
  4. lvm:host:/dev/vg0/mylv_root
  5. Disco VirtIOguest:/dev/vda
  6. fraccionamiento:guest:/dev/vda1
  7. sistema de archivos:guest:/

En este diseño, al asignar espacio adicional a una única máquina virtual, debo seguir estos pasos:

  1. lvresize
  2. parted, que es especialmente feo
  3. resize2fs

Para reducir el espacio asignado al revés (que es aún más feo).

Para las copias de seguridad (por ejemplo, con lvcreate --snapshot), hay un paso adicional kpartexcomo lo explica psusi.

Quiero eliminar 6. de la ecuación porque no veo qué valor proporciona esta abstracción. Pero tiene un costo por la complejidad adicional, el posible impacto en el rendimiento y el pequeño desperdicio de espacio.

Solución hacky:

Al usarlo, kpartxpude mover el sistema de archivos raíz desde una "partición de arranque" (dentro de otro volumen lógico temporal) al volumen lógico de destino y luego iniciar mediante el inicio directo del kernel.

kpartx -a /dev/vg0/mylv_bootstrapper
dd if=/dev/mapper/vg0-mylv_bootstrapper1 of=/dev/vg0/mylv_root bs=4M
e2fsck -f /dev/vg0/mylv_root
# Edit fstab inside /dev/vg0/mylv_root accordingly
resize2fs /dev/vg0/mylv_root
kpartx -d /dev/vg0/mylv_bootstrapper

Sin embargo:

  1. Esto parece extrañamente complicado.
  2. Realmente no me gusta la idea del arranque directo del kernel, ya que tendría que actualizar manualmente la versión del kernel del invitado en el host cada vez que se actualiza el kernel.

Respuesta1

Bueno, tienes que particionar/formatear el espacio independientemente de si es LVM o no.

Sí, KVM verá los dispositivos como "vda" y "vdb".

En general, aunque KVM usa particiones sin formato/LVM, en mi opinión, es mucho más confiable usar simplemente un disco virtual. Ocupa el mismo espacio y siempre puedes usar LVM en el disco virtual y/o cambiar el tamaño del disco virtual.

Respuesta2

En realidad, descubrí que hay una respuesta trivial: si los volúmenes lógicos están formateados (por ejemplo host# mkfs.ext4 /dev/vg0/mylv_root), el instalador los detectará y permitirá usarlos como "partición 1 del disco virtual". Luego puede incluso reformatear las particiones.

Sin embargo, Grub no podrá instalarse; en su lugar, se puede utilizar el arranque directo del kernel.

información relacionada