Cómo acreditar manualmente una VM como lo hace vmbuilder

Cómo acreditar manualmente una VM como lo hace vmbuilder

Estoy experimentando con máquinas virtuales basadas en KVM en mi servidor doméstico. El anfitrión ejecuta Ubuntu Server 16.04.1 LTS, al igual que los invitados.

Pude crear un invitado usando vmbuilder. Genera una imagen qcow2, que luego convertí en una imagen sin formato en un volumen lógico LVM para mejorar el rendimiento. El tamaño total de esta imagen es de aproximadamente 900 MB y funciona bien para lo que necesito.

Sin embargo, cuando creo manualmente una máquina virtual e instalo Ubuntu desde la ISO del servidor Ubuntu, puedo exponer mi volumen lógico a la máquina virtual invitada como un dispositivo sin procesar en bloque en lugar de una imagen sin formato de archivo. En mis pruebas, esto parece mejorar aún más el rendimiento del disco, en márgenes no insignificantes, dependiendo de cómo lo pruebo. Sin embargo, esta máquina virtual no es tan sencilla (se instalan 1,8 GB aproximadamente) y el tiempo de arranque es mucho más lento (la máquina virtual del dispositivo de bloque creada por vmbuilder arranca en aproximadamente 5 segundos, la máquina virtual basada en archivos que instalé manualmente en aproximadamente 15 segundos). .

Entonces, mi objetivo es tener una máquina virtual que sea como la que instala vmbuilder, menos paquetes, arranque rápido, etc., pero que use un dispositivo de bloque sin formato como almacenamiento en lugar de la imagen sin formato basada en archivos.

Preguntas:

  1. ¿En qué se diferencia la máquina virtual creada por vmbuilder de cuando la instalo manualmente?

  2. Veo que Ubuntu (solía) tener Ubuntu JeOS y veo referencias de que se puede instalar desde la iso del servidor, pero no encuentro cómo. ¿Sigue siendo esta una opción? Si es así, ¿es eso lo que instala vmbuilder?

  3. ¿Cómo puedo crear manualmente un sistema similar a vmbuilder O cómo puedo convertir la imagen qcow2 en un bloque sin formato en lugar de una imagen de archivo sin formato?

Respuesta1

Esto no obtuvo respuesta, pero pude encontrar una solución parcial. Lo que encontré es esto.artículo, que describe cómo convertir la imagen Qcow2 en un dispositivo de bloque sin formato, en lugar de una imagen de archivo sin formato.

Pasos básicos:

  1. La máquina virtual debe estar apagada
  2. Convierta qcow2 a un archivo de imagen sin formato usando:

    qemu-img convertir [qcow2] [rawimg]

  3. Obtener el tamaño de la imagen sin formato en bytes:

    ls -l [rawimg]

    123456789

  4. Cree LV y haga coincidir exactamente el tamaño de la imagen sin procesar:

    lvcreate -L 123456789b -n [nombrelv] [vgroup]

  5. Escribir imagen sin formato en LV:

    dd if=[rawimg] of=[ruta/hacia/lv]

Cambie la definición XML de la VM en consecuencia, por ejemplo de:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2' cache='none'/>
  <source file='/srv/virtual/vm_web/tmp5GWO4q.qcow2'/>
  <target dev='hda' bus='virtio'/>
</disk>

a:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/vgroup/lv_disk'/>
  <target dev='vda' bus='virtio'/>
</disk>

información relacionada