![Как вручную кредитовать виртуальную машину, как это делает vmbuilder](https://rvso.com/image/97227/%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E%20%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%83%D1%8E%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%83%2C%20%D0%BA%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D1%82%20vmbuilder.png)
Я экспериментирую с виртуальными машинами на базе 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, с меньшим количеством пакетов, быстрой загрузкой и т. д., но при этом использовать в качестве хранилища необработанное блочное устройство вместо необработанного образа на основе файлов.
Вопросы:
Чем виртуальная машина, созданная с помощью vmbuilder, отличается от той, которую я устанавливаю вручную?
Я вижу, что Ubuntu (раньше) имеет Ubuntu JeOS и вижу ссылки, что его можно установить из Server iso, но я не могу найти как. Это все еще вариант? Если да, то это то, что устанавливает vmbuilder?
Как вручную создать систему, подобную vmbuilder, ИЛИ как преобразовать образ qcow2 в необработанный блок, а не в необработанный файловый образ?
решение1
Это не получило ответа, но я смог найти частичное решение. Я нашел этостатья, в котором описывается, как преобразовать образ Qcow2 в необработанное блочное устройство, а не в необработанный файловый образ.
Основные шаги:
- VM необходимо отключить
Конвертируйте qcow2 в файл изображения raw, используя:
qemu-img конвертировать [qcow2] [rawimg]
Получить размер необработанного изображения в байтах:
ls -l [rawimg]
123456789
Создайте LV и точно сопоставьте размер необработанного изображения:
lvcreate -L 123456789b -n [имя_lv] [группа_v]
Записать необработанное изображение на 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>