Создание VDS для KVM из пустого шаблона (VDSmanager)
Материал из ISPWiki
Создание VDS для KVM из пустого шаблона
Создание "пустой" виртуальной машины
- Загрузите шаблон "empty"
- Создайте VDS из шаблона "empty-img" с необходимыми параметрами. hostname машины, например, "test.ru"и ip-адрес 10.1.1.2
- Конфигурация дисковой подсистемы:
Если вам необходимы дополнительные жесткие диски для VDS или необходимо подключить iso-образ в качестве CD-ROM привода, отредактируйте файл "filesystem", который лежит в папке /kvm/machines/test.ru
Путь /kvm/machines - это путь к образам виртуальных машин, устанавливаемый по умолчанию
Файл "filesystem" имеет следующий вид:
hd[a|b|c|d]=<img|lvm|tar|new>:[size]:<n|c|r> [cdrom=/path/to/cdrom.iso] [boot=<c|d>] [root=hda|hdb|hdc|hdd]
Например, после создания VDS из шаблона empty-img файл filesystem имеет следующий вид:
hda=img:/kvm/machines/test.ru/10.1.1.2:2000:r boot=c root=hda
Это означает, что к VDS подключен один жесткий диск, образ которого находится в файле /kvm/machines/test.ru/10.1.1.2 и ресайз диска будет производиться изменением размера файла (пользователь сам должен изменить размер разделов). Загрузочный диск - жесткий. Основной диск - hda.
Стандартным способом можно определить до четырех жестких дисков. Например, чтобы подключить еще один жесткий диск, необходимо прописать следующую строку:
hdb=new:name:size:n
В этом случае создастся новый жесткий диск либо как lvm, либо как image-файл (в зависимости от того, есть ли свободное место в разделе lvm) размер = size, имя диска: /kvm/machines/test.ru/10.1.1.2_name - для image-файла и /dev/kvm00/10.1.1.2_name -для lvm
Кроме того можно создать раздел вручную
kvm-img create <filename> <size>M
Последняя буква - тип ресайза.
- n - ресайз не делается,
- r - ресайз как изменение размера файла или lvm-раздела,
- c - ресайз "копированием" - создание нового образа, монтирование старого образа и копирование всех файлов на новый образ,
- extend - "растягивание" образа и отправка сообщения гостевой системе,
- inner-copy - копирование данных "изнутри" гостевой ОС (для FreeBSD).
При изменении размера образа образ меняется тому образу, который указан в строке root=...
Если вы включите строку cdrom=..., то подключится iso-образ в качестве cd/dvd-rom. Нужно отметить, что cdrom цепляется как secondary master (т.е. hdc-диск). Таким образом, не получится использовать hdc-диск одновременно с образом cdrom.
Чтобы загрузиться с iso-образа, нужно изменить строку "boot=c" на "boot=d"
Отредактированный файл filesystem будет выглядеть следующим образом:
hdb=img:/kvm/machines/test.ru/10.1.1.2:2000:r hda=new:boot:200:n # если вы создали образ вручную командой kvm-img # то вместо hda=new:boot:200:n нужно написать #hda=img:filename::n cdrom=/path/to/cdrom.iso boot=d root=hdb
Диск hda размером 200 Мб создастся заново.
Мы сделали раздел boot как загрузочный primary master.
Основной root-диск подключаем как hdb, соответственно, поправили строку root=hdb, чтобы система знала, где находятся файлы конфигурации в виртуальной машине.
Запускаем vds, заходим на vnc (я использую vinagre), указываю host - ip-адрес VDSmanager + " :id" , где id - идентификатор виртуальной машины (первая колонка в VDSmanager). Устанавливаем операционную систему, настраиваем сеть.
Наша виртуальная машина работает.
Создание шаблонов диска для KVM (VDSmanager)
Чтобы виртуальную машину на базе KVM превратить в шаблон, необходимо знать следующие вещи:
- Шаблон устанавливается в несколько этапов
- Копирование содержимого шаблона в папку с виртуальной машиной (обычно - /kvm/machines/NAME/ )
- Выполнение скрипта /kvm/machines/NAME/install (параметр - путь к папке с машиной)
- Обработка файла filesystem
- Отправка сообщений гостевой системе (на гостевой системе должен быть установлен VDSTools)
Чтобы система загружалась нормально, на систему устанавливают на два жестких диска: первый - загрузочный с точкой монтирования /boot, второй - основной - с точкой монтирования /.
Например, мы создали VDS с двумя жесткими дисками: hda - /kvm/machines/test.ru/10.1.1.2_boot.img размером 200Мб и hdb - /kvm/machines/test.ru/10.1.1.2 размером 4Gb. Имя - test.ru, ip - 10.1.1.2. Операционная система - Fedora-12-i386. Информацию о том, как создавать и подключать дополнительные жесткие диски вы можете прочитать в статье Содержимое файла filesystem (VDSmanager).
После установки системы необходимо ее сконфигурировать, чтобы она работала в качестве шаблона:
- Поправить /boot/grub/grub.conf, /etc/fstab
- Отключить selinux
- Скачать, распаковать и установить VDSTools c [1] файлом install.sh
Следует помнить, что раздел жесткого диска, созданный при установке, в нашем случае будет иметь имя /dev/sdb1 Если мы хотим пересоздавать разделы из vds-manager и менять их размер, внутри гостевой машины /dev/sdb1 в конфигурациях нужно заменить на /dev/sdb
Далее, подмотнируем образ рутового диска в папку /tmp/mnt
mount -o loop,offset=32256 /kvm/machines/test.ru/10.1.1.2 /tmp/mnt
Параметр offset означает адрес начала раздела (обычно это 63 сектор, размер сектора - 512 байт). Информацию о разделах можно узнать командой
fdisk -lu /kvm/machines/test.ru/10.1.1.2
Если раздел создан VDSmanager, то параметр offset указывать не нужно.
Заархивируем содержимое диска
tar -czpf /kvm/machines/test.ru/root.tgz -C /tmp/mnt .
umount /tmp/mnt
Создадим папку для шаблона
mkdir /kvm/template/TEMPLATE-NAME
Скопируем туда машину
cp /kvm/machines/test.ru/* /kvm/template/TEMPLATE-NAME
Удалим старый диск
rm /kvm/template/TEMPLATE-NAME/10.1.1.2
Переименуем
mv /kvm/template/TEMPLATE-NAME/10.1.1.2_boot /kvm/machines/test.ru/boot.img
если же раздел boot для нашей машины создан как lvm, то нужно сделать команду
dd if=/dev/kvm00/10.1.1.2_boot of=/kvm/template/TEMPLATE-NAME/boot.img
Из vds-manager удаляем старую машину.
Правим файл filesystem:
hda=img:boot.img:200:n hdb=tar:root.tgz:2000:c boot=c root=hdb
Правим /usr/local/ispmgr/etc/vdsmgr.conf Добавим строки
disktemplate "TEMPLATE-NAME" {
Path /kvm/template/TEMPLATE-NAME
Status ok
}
Шаблон готов к использованию.
