Ganeti: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 11 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Категория:Admin]]
{{stub}}
{{stub}}


Строка 13: Строка 12:


== Как установить новый кластер? ==
== Как установить новый кластер? ==
Основная документация ganeti 2.0 по установке - http://ganeti-doc.googlecode.com/svn/ganeti-2.0/install.html
Основная документация ganeti 2.1 - http://docs.ganeti.org/ganeti/2.1/html/


*В кластере хорошо бы иметь 3 физические машины
*В кластере хорошо бы иметь 3 физические машины
Строка 26: Строка 25:
**Выделяем ip для кластера testcluster - 192.168.1.5 (и прописываем его в DNS или /etc/hosts '''всех''' машин кластера)
**Выделяем ip для кластера testcluster - 192.168.1.5 (и прописываем его в DNS или /etc/hosts '''всех''' машин кластера)
*Инициализируем кластер. На мастер-ноде говорим ''gnt-cluster init -g local --master-netdev breth0 testcluster''
*Инициализируем кластер. На мастер-ноде говорим ''gnt-cluster init -g local --master-netdev breth0 testcluster''
*Задаём способ подключения VM к сети ''gnt-cluster modify -N "link=breth0"''
*Задаём используемую систему виртуализации.  
*Задаём используемую систему виртуализации.  
**Для kvm предварительно выполняем ''ganeti-initrd-generator'' на всех узлах кластера
**Для kvm ''gnt-cluster modify --enabled-hypervisors=kvm --hypervisor-parameters "kvm:kernel_path=/boot/vmlinuz"''
**Для kvm ''gnt-cluster modify --enabled-hypervisors=kvm --hypervisor-parameters "kvm:kernel_path=/boot/vmlinuz"''
**Для xen ''gnt-cluster modify --enabled-hypervisors=xen-pvm''
**Для xen ''gnt-cluster modify --enabled-hypervisors=xen-pvm''


== Как ввести физические машины в кластер? ==
== Как ввести физические машины в кластер? ==
*С мастер-ноды нужно выполнить (для узла test1) ''gnt-cluster add test1''
*С мастер-ноды нужно выполнить (для узла test1) ''gnt-node add test1''
*Т.к. в ALT ходить под рутом по паролю нельзя, нужно сгенерить ключ на мастер-ноде (ssh-keygen) и положить его публичную часть на всех нодах в /root/.ssh/authorized_keys. Можно так не делать, а воспользоваться ssh-агентом (разложив публичную часть своего собственного ключа и использую ssh -A).
*Т.к. в ALT ходить под рутом по паролю нельзя, нужно сгенерить ключ на мастер-ноде (ssh-keygen) и положить его публичную часть на всех нодах в /root/.ssh/authorized_keys. Можно так не делать, а воспользоваться ssh-агентом (разложив публичную часть своего собственного ключа и использую ssh -A).


== Как создавать виртуальные машины? ==
== Как создавать виртуальные машины? ==
=== Создание машин из пакетов ALT ===
*Для создания машин из пакетов ALT есть пакет ganeti-instance-altbootstrap. Установите его на '''всех''' машинах кластера.
*Виртуальные машины создаются с помощью [[Hasher]]
*Подключите '''локальный''' репозиторий в системных source-листах или пользователю gntinstancer (конфиг hasher).
*Создаём новую виртуальную машину ''gnt-instance add -n test1 -t plain --disk 0:size=4g -B memory=512 -o altbootstrap+kvm testvm01'' (testvm01 должен резолвится в DNS)
*В случае проблем читаем логи в /var/log/ganeti/os/ на той машине, где создавалась виртуальная
=== Создание других машин ===
*Для создания виртуальных машин не из пакетов репозитория ALT существует пакет ganeti-instance-image
*Пример использования: ''gnt-instance add --no-start -n test1 -t plain --disk 0:size=2g -B memory=512 -o image+default -H kvm:kernel_path='',initrd_path='',disk_type='ide' testvm02''


== Как управлять виртуальными машинами? ==
== Как управлять виртуальными машинами? ==
*Запускаем машину ''gnt-instance startup testvm01''
*Для xen-машин создаётся serial-console, заходим на консоль ''gnt-instance console testvm01''
*Для kvm-машин по умолчанию поднимается vnc, порт можно выяснить по ''gnt-instance info testvm01 | grep "network port"'' (на ip той машины, где выполняется виртуальная)
*...to be continued...


== TODO пакетов в Sisyphus ==
== TODO пакетов в Sisyphus ==
Строка 42: Строка 56:
Для работы drbd требуется указать параметры модуля drbd: usermode_helper=/bin/true а также загрузить модуль drbd. К примеру, достаточно следующей записи в /etc/modules:
Для работы drbd требуется указать параметры модуля drbd: usermode_helper=/bin/true а также загрузить модуль drbd. К примеру, достаточно следующей записи в /etc/modules:
  drbd usermode_helper=/bin/true
  drbd usermode_helper=/bin/true
[[Категория:Admin]]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}

Текущая версия от 20:02, 1 июля 2015

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Что это и для чего оно нужно?

Ganeti - система управления виртуальными машинами на кластере физических. Upstream - Google (http://code.google.com/p/ganeti/).

Какие возможности управления есть в настоящий момент?

  • Гипервизоры - Xen и KVM
  • Дисковые разделы - файлы, LVM или DRBD-устройства
  • Централизованное (из единой точки для всего кластера) создание/удаление/миграция виртуальных машин.
  • Создание "пустых" виртуальных машин из пакетов репозитория (ganeti-instance-altbootstrap)

Как установить новый кластер?

Основная документация ganeti 2.1 - http://docs.ganeti.org/ganeti/2.1/html/

  • В кластере хорошо бы иметь 3 физические машины
  • На всех машинах кластера должно быть
    1. Bridge на интерфейс с одинаковым для всех именем (пример - breth0)
    2. LVM с одинаковым для всех именем (пример - local)
    3. Настроенная система виртуализации. Для kvm это ядро+модули+qemu-kvm, для xen - гипервизор+ядро+юзерспейс(xen,xen-runtime,xen-hypervisor)
  • На все машины кластера нужно установить пакеты ganeti и ganeti-initrd-generator (В настоящий момент есть только в Sisyphus)
  • Обеспечьте разрешение имён (всех машин со всех). Если возводить DNS-сервер не хочется - создайте записи во всех /etc/hosts
  • Для кластеры выделите отдельный IP-address (который должен резолвится в имя кластера, к примеру:
    • Машины кластера test1 - 192.168.1.2, test2 - 192.168.1.3, test3 - 192.168.1.4
    • Выделяем ip для кластера testcluster - 192.168.1.5 (и прописываем его в DNS или /etc/hosts всех машин кластера)
  • Инициализируем кластер. На мастер-ноде говорим gnt-cluster init -g local --master-netdev breth0 testcluster
  • Задаём способ подключения VM к сети gnt-cluster modify -N "link=breth0"
  • Задаём используемую систему виртуализации.
    • Для kvm предварительно выполняем ganeti-initrd-generator на всех узлах кластера
    • Для kvm gnt-cluster modify --enabled-hypervisors=kvm --hypervisor-parameters "kvm:kernel_path=/boot/vmlinuz"
    • Для xen gnt-cluster modify --enabled-hypervisors=xen-pvm

Как ввести физические машины в кластер?

  • С мастер-ноды нужно выполнить (для узла test1) gnt-node add test1
  • Т.к. в ALT ходить под рутом по паролю нельзя, нужно сгенерить ключ на мастер-ноде (ssh-keygen) и положить его публичную часть на всех нодах в /root/.ssh/authorized_keys. Можно так не делать, а воспользоваться ssh-агентом (разложив публичную часть своего собственного ключа и использую ssh -A).

Как создавать виртуальные машины?

Создание машин из пакетов ALT

  • Для создания машин из пакетов ALT есть пакет ganeti-instance-altbootstrap. Установите его на всех машинах кластера.
  • Виртуальные машины создаются с помощью Hasher
  • Подключите локальный репозиторий в системных source-листах или пользователю gntinstancer (конфиг hasher).
  • Создаём новую виртуальную машину gnt-instance add -n test1 -t plain --disk 0:size=4g -B memory=512 -o altbootstrap+kvm testvm01 (testvm01 должен резолвится в DNS)
  • В случае проблем читаем логи в /var/log/ganeti/os/ на той машине, где создавалась виртуальная

Создание других машин

  • Для создания виртуальных машин не из пакетов репозитория ALT существует пакет ganeti-instance-image
  • Пример использования: gnt-instance add --no-start -n test1 -t plain --disk 0:size=2g -B memory=512 -o image+default -H kvm:kernel_path=,initrd_path=,disk_type='ide' testvm02

Как управлять виртуальными машинами?

  • Запускаем машину gnt-instance startup testvm01
  • Для xen-машин создаётся serial-console, заходим на консоль gnt-instance console testvm01
  • Для kvm-машин по умолчанию поднимается vnc, порт можно выяснить по gnt-instance info testvm01 | grep "network port" (на ip той машины, где выполняется виртуальная)
  • ...to be continued...

TODO пакетов в Sisyphus

Для работы drbd требуется указать параметры модуля drbd: usermode_helper=/bin/true а также загрузить модуль drbd. К примеру, достаточно следующей записи в /etc/modules:

drbd usermode_helper=/bin/true