CoreSystem/Virtualization

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Пример шаблона для qemu)
(Sisyphus Core — виртуализация)
Строка 1: Строка 1:
== Sisyphus Core — виртуализация ==
== Sisyphus Core — виртуализация ==
 +
__TOC__
__TOC__
-
=== Список имеющихся пакетов ===
+
=== Пакет mkve ===
 +
Создание, удаление и управление виртуальными машинами.
 +
В данный момент {{pkg|mkve}} поддерживает работу с OpenVZ и QEMU.
-
==== mkve ====
+
==== Утилита {{prg|mkve}} ====
-
Создание, удаление и управление виртуальными машинами
+
Для создания/удаления, запуска/останова и изменения базовых свойств виртуальных машин используется утилита {{prg|mkve}}.
 +
Эта утилита написана с использованием библиотеки [http://www.libvirt.org/ libvirt]. Виртуальные машины создаются на основе
 +
так называемых bundles, tarball'ов специального вида (см. описание {{prg|mkve-bundle}}).
-
Пакет содержит профили серверов и утилиту {{prg|mkve}}, предназначенную для создания
+
/* Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID.
-
виртуальных машин на их основе. В данный момент каждый профиль (набор
+
Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100.
-
пакетов и хуков для каждого гипервизора) сильно зависит от пакета с аналогичным
+
К бриджу {{term|mkvebr0}} добавляется виртуальная сеть {{term|mkve-network}} ({{term|192.0.2.1/24}}).
-
{{term|ve-}} именем. К примеру, {{pkg|ftp-server}} зависит от пакета {{pkg|ve-ftp-server}}.
+
Виртуальная машина с ID={{term|X}} имеет в этой сети адрес {{term|192.0.2.X}}. */
-
Образ виртуальной машины собирается на основе репозиториев, настроенных на
+
-
сборочной машине.
+
-
Машины создаются при помощи [http://www.libvirt.org/ libvirt], так что, теоретически, доступны все
+
==== Утилита {{prg|mkve-bundle}} ====
-
средства управления, предоставляемые libvirt’ом. (Практически же, их нужно реализовывать в {{prg|mkve}} на Python,
+
-
пользуюясь libvirt'овским API.)
+
-
Для создания tarball'ов с заданным набором пакетов используется утилита {{prg|mkve}}-{{prg|cache}}(1).
+
/* Для создания tarball'ов с заданным набором пакетов используется утилита {{prg|mkve-cache}}(1). Она создает {{prg|hasher}}'овский chroot, устанавливает в него необходимые пакеты, копирует в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может затарить указанный chroot (это может быть произвольный {{prg|hasher}}'овский chroot). Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в {{prg|hasher}}(7). */
-
Она создает {{prg|hasher}}'овский chroot, устанавливает в него необходимые пакеты, копирует
+
-
в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может
+
-
затарить указанный chroot (это может быть произвольный {{prg|hasher}}'овский chroot).
+
-
Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в {{prg|hasher}}(7).
+
-
 
+
-
В данный момент {{prg|mkve}} поддерживает работу с OpenVZ и QEMU. Пользователю позволяется создавать,
+
-
запускать, останавливать и удалять виртуальные машины.
+
-
 
+
-
Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID.
+
-
Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100.
+
-
К бриджу {{term|mkvebr0}} добавляется виртуальная сеть {{term|mkve-network}} ({{term|192.0.2.1/24}}).
+
-
Виртуальная машина с ID={{term|X}} имеет в этой сети адрес {{term|192.0.2.X}}.
+
==== Формат шаблона ====
==== Формат шаблона ====
Строка 67: Строка 56:
=== Планы ===
=== Планы ===
-
* предварительное тестирование
+
* шаблон test
-
* подготовка готовых профилей
+
* {{prg|mkve-cache}} будет переименован и уедет в пакет {{pkg|hasher}}
* {{prg|mkve-cache}} будет переименован и уедет в пакет {{pkg|hasher}}
-
* поддержка {{term|kvm}}
 
-
* поддержка {{term|xen}} (но, пожалуй, не раньше, чем у нас появится xen)
 
* Локализация и документация {{prg|alterator-mkve}} (help’ы к альтератору)
* Локализация и документация {{prg|alterator-mkve}} (help’ы к альтератору)
Строка 78: Строка 64:
=== Bugs ===
=== Bugs ===
'''mkve'''
'''mkve'''
-
* заведомо падает сборка:
 
-
** {{pkg|qemu::asterisk}}
 
-
** {{pkg|qemu::caching-nameserv}}
 
-
** {{pkg|qemu::kerberos-serverer}}
 
-
** {{pkg|qemu::list-server}}
 
-
** {{pkg|qemu::ntp-server}}
 
-
** {{pkg|qemu::proxy-server}}
 
-
** {{pkg|qemu::ftp-server}}
 
-
** {{pkg|qemu::imap-server}}
 
-
** {{pkg|qemu::smtp-server}}
 
-
 
* Неправильно убивается {{path|/var/lock/mkve/}}
* Неправильно убивается {{path|/var/lock/mkve/}}
* Проверять наличие {{prg|vzctl}}, и если нет, то не запускать её при проверке существования ovz-шных машин
* Проверять наличие {{prg|vzctl}}, и если нет, то не запускать её при проверке существования ovz-шных машин

Версия 14:27, 9 февраля 2009

Sisyphus Core — виртуализация

Содержание


Пакет mkve

Создание, удаление и управление виртуальными машинами. В данный момент mkve поддерживает работу с OpenVZ и QEMU.

Утилита mkve

Для создания/удаления, запуска/останова и изменения базовых свойств виртуальных машин используется утилита mkve. Эта утилита написана с использованием библиотеки libvirt. Виртуальные машины создаются на основе так называемых bundles, tarball'ов специального вида (см. описание mkve-bundle).

/* Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID. Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100. К бриджу mkvebr0 добавляется виртуальная сеть mkve-network (192.0.2.1/24). Виртуальная машина с ID=X имеет в этой сети адрес 192.0.2.X. */

Утилита mkve-bundle

/* Для создания tarball'ов с заданным набором пакетов используется утилита mkve-cache(1). Она создает hasher'овский chroot, устанавливает в него необходимые пакеты, копирует в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может затарить указанный chroot (это может быть произвольный hasher'овский chroot). Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в hasher(7). */

Формат шаблона

Вот полный список файлов для гипервизора hypervisor:

./version                    # версия шаблона
./packages/$hypervisor       # файл со списком пакетов, устанавливающихся в bundle
                             # при использовании гипервизора $hypervisor
./hooks-lists/$hypervisor    # [необ.] файл со списком хуков для гипервизора $hypervisor
./conf/$hypervisor/          # [необ.] директория, содержащая дополнительные файлы для упаковки
                             # в bundle для гипервизора $hypervisor

Таким образом, все, кроме версии зависит от типа виртуализации и единственным обязательным списком является список пакетов.

Пример. Шаблон test, поставляемый с пакетом mkve.

$ cd /usr/share/mkve/templates/test && find
./version
./packages/openvz
./packages/qemu
./hooks-lists/openvz
./hooks-lists/qemu
./conf/openvz/config



alterator-mkve

Управление виртуальными машинами средствами alterator и mkve

Кроме web-морды для mkve этот модуль предоставляет дополнительные возможности для управления машинами.

Специальная часть для OpenVZ является "полупрямым" потомком alterator-ovz. Однако, сейчас это работает не корректно: из-за смешения netif_add и ipadd.


Планы

  • шаблон test
  • mkve-cache будет переименован и уедет в пакет hasher
  • Локализация и документация alterator-mkve (help’ы к альтератору)


Bugs

mkve

  • Неправильно убивается /var/lock/mkve/
  • Проверять наличие vzctl, и если нет, то не запускать её при проверке существования ovz-шных машин
  • В bugzilla предостаточно багов, относящихся к старому alterator-ovz. С большой долей вероятности, они еще актуальны.


 
Личные инструменты