воскресенье, 5 мая 2013 г.

Как работал ovirt в 2008 пока его не переписали на мерзкой яве.

Начало использования
Устанавливаем конфиг репозитория ovirt
rpm -ih http://ovirt.org/repos/ovirt/ovirt-release-LATEST.noarch.rpm
Обновляемся используя новый репозиторий
yum update --enablerepo=ovirt -y
либо можно подредактировать конфиг /etc/yum.repos.d/ovirt.repo
и заменить enabled=0 на enabled=1 (теперь всегда по умолчанию он у нас включен)
yum update -y

И ставим необходимые нам пакеты (может занять до 500мб)
yum install --enablerepo=ovirt ovirt-appliance ovirt-docs ovirt-node virt-viewer-plugin qemu-img

и перезапускаем libvirtd
service libvirtd restart
При условии что обородувание поддерживает виртуализацию и подгружен модуль kvm начинаем ставить виртуальный сервер, можно сказать управляющий - все управление происходить будет с него.
Интерфейс которым подключены к локальной сети eth0 - его и укажем
create-ovirt-appliance -e eth0
После этого сделайте
ifdown eth0
ifconfig eth0 /<маска сети> up

Теперь запустим виртуальную машину
virsh start ovirt-appliance

Так же можно понаблюдать за процессом загрузки (при желании даже вмешаться) запустив

virt-viewer ovirt-appliance

Пароль root по умолчанию ovirt.

Адрес панели управления, по умолчанию 192.168.50.2/ovirt
Доступ в панель ovirtadmin/ovirt

Не советую переименовывать hardware pool с именем default. Оказывается что в коде жестко прописано DEFAULT_POOL_NAME = "default". Можете догадаться как я это узнал... конечно переименовал и потом искал в чем ошибка:)

Если хочется покопаться в коде то желательно получить документацию
У меня встретился досадный баг "uninitialized constant RubyToken::AlreadyDefinedToken"
По первому же запросу гугл подсказал что необходимо в файле Rakefile переместить "require 'gettext/utils'" в задачи только нуждающиеся в нем (make_mo и update_po).

Генерируем документы по коду
rake doc:app.

При неудачном завершении работы виртуальной машины на которой крутился ovirt лучше всего - перед загрузкой успеть в меню загрузчика grub
нажать 'e'
выбрать вторую строку и опять 'e'
написать через пробел цифру 1
потом enter и 'b'
таким образом мы загрузимся в singlemode режиме
и запустим проверку диска fsck /dev/sda2
потом просто перезагружаемся /sbin/init 6
должно нормально загрузится

#################редактировать###################
Общение между физическими серверами происходит (как я понял ) по протоколу amqp используя демон qpid.
На добавляемой физической ноде необходимо запустить
ovirt-install-node stateful
также сделал

create-ovirt-appliance -e eth1
затем понял что в сети должны видеть друг друга не только физические ноды но и виртуальная управляющая
потому подключаем ovirtbr0 к локальной сети
сначала brctl addif ovirtbr0 eth0 добавляем интерфейс к мосту
затем ifconfig eth0 down ; ifconfig eth0 0.0.0.0/0 up; что б могли с любых подсетей получать пакеты
так же и на второй ноде
проверив все пингом пытаемся найти в списке необходимые нам физические сервера
################################################

При запуске libvirtd он рассылает multicast dns (224.0.0.251) сообщение о том что запущен libvirt. Ответственный за это демон avahi.

На управляющем сервере в директории рельсов лежит host-browser.rb он слушает на 12120 порту тср запросы с управляемых физических узлов.

На физ узлах есть скрипт /etc/init.d/ovirt ставим аргумент старт и он посылает сообщения на узел с которого грузился

/usr/sbin/ovirt-identify-node отправляет на указаный сервер информацию о узле
после того как он отработает - создается запись
теперь найти как она должна создаваться автоматом

На управляемой ноде в файле /etc/init.d/ovirt-functions определяются основные конфигурационные параметры - в частности порт и сервер управления



Отправить комментарий