CoreSystem/Virtualization: различия между версиями
(→Планы) |
|||
Строка 31: | Строка 31: | ||
К бриджу {{term|mkvebr0}} добавляется виртуальная сеть {{term|mkve-network}} ({{term|192.0.2.1/24}}). | К бриджу {{term|mkvebr0}} добавляется виртуальная сеть {{term|mkve-network}} ({{term|192.0.2.1/24}}). | ||
Виртуальная машина с ID={{term|X}} имеет в этой сети адрес {{term|192.0.2.X}}. | Виртуальная машина с ID={{term|X}} имеет в этой сети адрес {{term|192.0.2.X}}. | ||
==== Формат шаблона ==== | |||
$ cd <template> && find . | |||
./version # версия шаблона | |||
./packages/$hypervisor1 # файл со списком пакетов, устанавливающихся в bundle | |||
# при использовании гипервизора $hypervisor1 | |||
./packages/$hypervisor2 # аналогично, для гипервизора $hypervisor2 | |||
... | |||
./hooks-lists/$hypervisor1 # файл со списком хуков для гипервизора $hypervisor1 | |||
./hooks-lists/$hypervisor2 # аналогично, для гипервизора $hypervisor2 | |||
... | |||
./conf/$hypervisor1/ # директория, содержащая дополнительные файлы для упаковки | |||
# в bundle для гипервизора $hypervisor1 | |||
./conf/$hypervisor2/ # аналогично, для гипервизора $hypervisor2 | |||
==== Пример шаблона для openvz ==== | |||
==== Пример шаблона для qemu ==== | |||
==== alterator-mkve ==== | ==== alterator-mkve ==== |
Версия от 16:35, 9 февраля 2009
Sisyphus Core — виртуализация
Список имеющихся пакетов
mkve
Создание, удаление и управление виртуальными машинами
Пакет содержит профили серверов и утилиту mkve, предназначенную для создания виртуальных машин на их основе. В данный момент каждый профиль (набор пакетов и хуков для каждого гипервизора) сильно зависит от пакета с аналогичным ve- именем. К примеру, ftp-server зависит от пакета ve-ftp-server. Образ виртуальной машины собирается на основе репозиториев, настроенных на сборочной машине.
Машины создаются при помощи libvirt, так что, теоретически, доступны все средства управления, предоставляемые libvirt’ом. (Практически же, их нужно реализовывать в mkve на Python, пользуюясь libvirt'овским API.)
Для создания tarball'ов с заданным набором пакетов используется утилита mkve-cache(1). Она создает hasher'овский chroot, устанавливает в него необходимые пакеты, копирует в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может затарить указанный chroot (это может быть произвольный hasher'овский chroot). Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в hasher(7).
В данный момент mkve поддерживает работу с OpenVZ и QEMU. Пользователю позволяется создавать, запускать, останавливать и удалять виртуальные машины.
Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID. Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100. К бриджу mkvebr0 добавляется виртуальная сеть mkve-network (192.0.2.1/24). Виртуальная машина с ID=X имеет в этой сети адрес 192.0.2.X.
Формат шаблона
$ cd <template> && find . ./version # версия шаблона ./packages/$hypervisor1 # файл со списком пакетов, устанавливающихся в bundle # при использовании гипервизора $hypervisor1 ./packages/$hypervisor2 # аналогично, для гипервизора $hypervisor2 ... ./hooks-lists/$hypervisor1 # файл со списком хуков для гипервизора $hypervisor1 ./hooks-lists/$hypervisor2 # аналогично, для гипервизора $hypervisor2 ... ./conf/$hypervisor1/ # директория, содержащая дополнительные файлы для упаковки # в bundle для гипервизора $hypervisor1 ./conf/$hypervisor2/ # аналогично, для гипервизора $hypervisor2
Пример шаблона для openvz
Пример шаблона для qemu
alterator-mkve
Управление виртуальными машинами средствами alterator и mkve
Кроме web-морды для mkve этот модуль предоставляет дополнительные возможности для управления машинами.
Специальная часть для OpenVZ является "полупрямым" потомком alterator-ovz. Однако, сейчас это работает не корректно: из-за смешения netif_add и ipadd.
Планы
- предварительное тестирование
- подготовка готовых профилей
- mkve-cache будет переименован и уедет в пакет hasher
- поддержка kvm
- поддержка xen (но, пожалуй, не раньше, чем у нас появится xen)
- Локализация и документация alterator-mkve (help’ы к альтератору)
Bugs
mkve
- заведомо падает сборка:
- qemu::asterisk
- qemu::caching-nameserv
- qemu::kerberos-serverer
- qemu::list-server
- qemu::ntp-server
- qemu::proxy-server
- qemu::ftp-server
- qemu::imap-server
- qemu::smtp-server
- Неправильно убивается /var/lock/mkve/
- Проверять наличие vzctl, и если нет, то не запускать её при проверке существования ovz-шных машин
- В bugzilla предостаточно багов, относящихся к старому alterator-ovz. С большой долей вероятности, они еще актуальны.