Как вручную кредитовать виртуальную машину, как это делает vmbuilder

Как вручную кредитовать виртуальную машину, как это делает vmbuilder

Я экспериментирую с виртуальными машинами на базе KVM на моем домашнем сервере. Хост работает под управлением Ubuntu Server 16.04.1 LTS, и гости тоже.

Мне удалось создать гостевую систему с помощью vmbuilder. Он выводит образ qcow2, который я затем преобразовал в образ raw на логическом томе LVM для повышения производительности. Общий размер этого образа составляет около 900 МБ, и он хорошо подходит для того, что мне нужно.

Однако, когда я вручную создаю VM и устанавливаю на нее Ubuntu с ISO-образа сервера Ubuntu, я могу предоставить свой логический том гостевой VM как блочное устройство RAW, а не образ файлов RAW. В моем тестировании это, похоже, в целом повышает производительность диска еще больше, на незначительные отступы, в зависимости от того, как я тестирую. Однако эта VM далеко не такая скудная (установлено 1,8 ГБ или около того), и время загрузки намного больше (VM с блочным устройством, созданная vmbuilder, загружается примерно за 5 секунд, VM на основе файлов, которую я установил вручную, примерно за 15 секунд).

Поэтому моя цель — создать виртуальную машину, похожую на ту, которую устанавливает vmbuilder, с меньшим количеством пакетов, быстрой загрузкой и т. д., но при этом использовать в качестве хранилища необработанное блочное устройство вместо необработанного образа на основе файлов.

Вопросы:

  1. Чем виртуальная машина, созданная с помощью vmbuilder, отличается от той, которую я устанавливаю вручную?

  2. Я вижу, что Ubuntu (раньше) имеет Ubuntu JeOS и вижу ссылки, что его можно установить из Server iso, но я не могу найти как. Это все еще вариант? Если да, то это то, что устанавливает vmbuilder?

  3. Как вручную создать систему, подобную vmbuilder, ИЛИ как преобразовать образ qcow2 в необработанный блок, а не в необработанный файловый образ?

решение1

Это не получило ответа, но я смог найти частичное решение. Я нашел этостатья, в котором описывается, как преобразовать образ Qcow2 в необработанное блочное устройство, а не в необработанный файловый образ.

Основные шаги:

  1. VM необходимо отключить
  2. Конвертируйте qcow2 в файл изображения raw, используя:

    qemu-img конвертировать [qcow2] [rawimg]

  3. Получить размер необработанного изображения в байтах:

    ls -l [rawimg]

    123456789

  4. Создайте LV и точно сопоставьте размер необработанного изображения:

    lvcreate -L 123456789b -n [имя_lv] [группа_v]

  5. Записать необработанное изображение на LV:

    dd if=[rawimg] of=[путь/к/lv]

Измените XML-определение виртуальной машины соответствующим образом, например, с:

<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>

к:

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

Связанный контент