CoreSystem/Virtualization: различия между версиями

Материал из ALT Linux Wiki
(→‎Bugs: {{altbug|31200}})
 
(не показано 16 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Stub}}{{Historical}}
== Sisyphus Core — виртуализация ==
== Sisyphus Core — виртуализация ==
__TOC__
__TOC__


=== Список имеющихся пакетов ===
=== Пакет {{pkg|mkve}} ===
 
{{Attention|Похоже что {{prg|mkve}} устарела, и для создания контейнеров сейчас правильнее использовать {{prg|mkimage-profiles}} (см. [[Mkimage/Profiles/m-p/examples|примеры использования]] для [[Mkimage/Profiles/m-p/examples#OpenVZ_VE|OpenVZ VE]] и [[Mkimage/Profiles/m-p/examples#Qemu_VM|Qemu VM]])}}
==== mkve ====
Создание, удаление и управление виртуальными машинами.
Создание, удаление и управление виртуальными машинами
В данный момент {{pkg|mkve}} поддерживает работу с OpenVZ и QEMU.
 
Пакет содержит профили серверов и утилиту {{prg|mkve}}, предназначенную для создания
виртуальных машин на их основе. В данный момент каждый профиль (набор
пакетов и хуков для каждого гипервизора) сильно зависит от пакета с аналогичным
{{term|ve-}} именем. К примеру, {{pkg|ftp-server}} зависит от пакета {{pkg|ve-ftp-server}}.
Образ виртуальной машины собирается на основе репозиториев, настроенных на
сборочной машине.


Машины создаются при помощи [http://www.libvirt.org/ libvirt], так что, теоретически, доступны все
==== Создание и удаление виртуальной машины ====
средства управления, предоставляемые libvirt’ом. (Практически же, их нужно реализовывать в {{prg|mkve}} на Python,
Для создания и удаления виртуальных машин используется утилита {{prg|mkve}}.
пользуюясь libvirt'овским API.)
Эта утилита написана с использованием библиотеки [http://www.libvirt.org/ libvirt].


Для создания tarball'ов с заданным набором пакетов используется утилита {{prg|mkve}}-{{prg|cache}}(1).
Виртуальные машины создаются на основе так называемых bundles, tarball'ов специального вида
Она создает {{prg|hasher}}'овский chroot, устанавливает в него необходимые пакеты, копирует
(см. описание {{prg|mkve-bundle}}) следующим образом:
в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может
# mkve create <machine> --bundle <bundle> [дополнительные опции]
затарить указанный chroot (это может быть произвольный {{prg|hasher}}'овский chroot).
Здесь {{term|<machine>}} - это имя машины, а {{term|<bundle>}} - это bundle, созданный
Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в {{prg|hasher}}(7).
с помощью {{prg|mkve-bundle}}.
 
В данный момент {{prg|mkve}} поддерживает работу с OpenVZ и QEMU. Пользователю позволяется создавать,
запускать, останавливать и удалять виртуальные машины.


Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID.
Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID.
Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100.
Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100.
К бриджу {{term|mkvebr0}} добавляется виртуальная сеть {{term|mkve-network}} ({{term|192.0.2.1/24}}).
Виртуальная машина с ID={{term|X}} имеет в этой сети адрес {{term|192.0.2.X}}.
==== Формат шаблона ====
Вот полный список файлов для гипервизора 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


Для того чтобы удалить виртуальную машину достаточно сказать
# mkve destroy <machine>


Полное описание возможностей программы {{prg|mkve}} см. в mkve(1).


==== Пример шаблона для qemu ====
=== Пакет alterator-mkve ===
 
Управление виртуальными машинами средствами {{prg|alterator}} и {{prg|mkve}}.
==== alterator-mkve ====
Управление виртуальными машинами средствами {{prg|alterator}} и {{prg|mkve}}


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


Специальная часть для OpenVZ является "полупрямым" потомком alterator-ovz.
Для того чтобы модуль увидел созданые bundle (см. [[CoreSystem/Virtualization/Создание bundle#Создание bundle с помощью mkve-bundle|Создание bundle с помощью {{prg|mkve-bundle}}]]), они должны располагаться в каталоге {{path|/srv/share/bundles}}.
Однако, сейчас это работает не корректно: из-за смешения netif_add и ipadd.
 
==== OpenVZ ====
Специальная часть для OpenVZ является "полупрямым" потомком {{pkg|alterator-ovz}}.


<onlyinclude>
<onlyinclude>


=== Планы ===
=== Планы ===
* предварительное тестирование
* шаблон test
* подготовка готовых профилей
* {{prg|mkve-cache}} будет переименован и уедет в пакет {{pkg|hasher}}
* {{prg|mkve-cache}} будет переименован и уедет в пакет {{pkg|hasher}}
* поддержка {{term|kvm}}
* поддержка {{term|xen}} (но, пожалуй, не раньше, чем у нас появится xen)
* Локализация и документация {{prg|alterator-mkve}} (help’ы к альтератору)
* Локализация и документация {{prg|alterator-mkve}} (help’ы к альтератору)


Строка 77: Строка 49:


=== Bugs ===
=== Bugs ===
'''mkve'''
==== {{pkg|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/}}
* Проверять наличие {{prg|vzctl}}, и если нет, то не запускать её при проверке существования ovz-шных машин
* Проверять наличие {{prg|vzctl}}, и если нет, то не запускать её при проверке существования ovz-шных машин
* В bugzilla предостаточно багов, относящихся к старому {{prg|alterator-ovz}}. С большой долей вероятности, они еще актуальны.
* В bugzilla предостаточно багов, относящихся к старому {{pkg|alterator-ovz}}. С большой долей вероятности, они еще актуальны.
 
==== {{pkg|alterator-mkve}} ====
 
* {{altbug|31200}} -- не исключено, что {{pkg|alterator-mkve}} устарел и не может нормально взаимодействовать с текущими версиями OpenVZ и {{pkg|libvirt}}.
{{CoreSystem-nav}}
{{CoreSystem-nav}}

Текущая версия от 15:19, 7 августа 2015

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Small-pyramides.png
Архивная информация.
Описываемые в этой статье вещи больше не используются и оставлены только для обратной совместимости.


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

Пакет mkve

Внимание! Похоже что mkve устарела, и для создания контейнеров сейчас правильнее использовать mkimage-profiles (см. примеры использования для OpenVZ VE и Qemu VM)

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

Создание и удаление виртуальной машины

Для создания и удаления виртуальных машин используется утилита mkve. Эта утилита написана с использованием библиотеки libvirt.

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

# mkve create <machine> --bundle <bundle> [дополнительные опции]

Здесь <machine> - это имя машины, а <bundle> - это bundle, созданный с помощью mkve-bundle.

Каждой виртуальной машине присваивается уникальный (в пределах hardware node) ID. Для того чтобы удовлетворить соглашениям, принятым в OpenVZ, ID выдаются начиная со 100.

Для того чтобы удалить виртуальную машину достаточно сказать

# mkve destroy <machine>

Полное описание возможностей программы mkve см. в mkve(1).

Пакет alterator-mkve

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

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

Для того чтобы модуль увидел созданые bundle (см. Создание bundle с помощью mkve-bundle), они должны располагаться в каталоге /srv/share/bundles.

OpenVZ

Специальная часть для OpenVZ является "полупрямым" потомком alterator-ovz.


Планы

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


Bugs

mkve

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

alterator-mkve

  • altbug #31200 -- не исключено, что alterator-mkve устарел и не может нормально взаимодействовать с текущими версиями OpenVZ и libvirt.