И так. Все мы знаем что есть такая вещь как виртуализация и все мы знаем, что в реалиях современной жизни эта самая виртуализация скорее необходимость, нежели безделушка. Я хотел бы рассказать Вам о таком чуде инженерной мысли как oVirt. oVirt — свободная система управления виртуализацией в основе которой положена технология KVM (Kernel-based Virtual Machine). На данный момент о поддержке проекта объявили компании Canonical, Cisco, IBM, Intel, NetApp и SUSE. Из особенностей: поддержка сетевых хранилищ доступны через интерфейсы NFS или iSCSI, управление через web-интерфейс и на данный момент не очень доработанный проброс видеокарт. В качестве основной платформы oVirt использует Fedora, но есть репозиторий для Centos. Так что перед Вами выбор – Fedora со свежем oVirt или стабильный Centos с отставанием от релиза где то в 2 месяца. Так как для меня этот выбор уже сделан, то преступим к установки и настройки нашей виртуалки
Я, как и всегда, пользуюсь nano.
1 | yum install -y wget nano mc make |
Ставим то, что нам нужно всегда)))
1 2 3 4 | cd /etc/yum.repos.d wget http://www.dreyou.org/ovirt/ovirt-dre.repo yum install -y ovirt-engine yum install -y apr-devel apr-util-devel |
Качаем repo файлик в папочку для repo файликов. Ставим oVirt engine и необходимые в дальнейшем библиотечки Apache Portable Runtime Library.
1 2 3 4 5 6 | nano /etc/sysconfig/modules/softdog.modules #!/bin/sh modprobe softdog exit 0 chmod 777 /etc/sysconfig/modules/softdog.modules /etc/sysconfig/modules/softdog.modules |
Иногда, по непонятным мне причинам, автоматически не стартует модуль Softdog. Поэтому пишем небольшой скрипт, для стопроцентного решения этой проблемы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | engine-setup Welcome to oVirt Engine setup utility HTTP Port [80] : 80 HTTPS Port [443] : 443 Host fully qualified domain name, note that this name should be fully resolvable [ovirt.test] : ovirt.test The IP 10.101.14.1 does not hold a PTR record for the FQDN: ovirt.test User input failed validation, do you still wish to use it? (yes|no): yes Password for Administrator (admin@internal) : *Ваш пароль на web* Confirm password : *Ваш пароль на web* Organization Name for the Certificate: ovirt The default storage type you will be using ['NFS'| 'FC'| 'ISCSI'] [NFS] : NFS //вот тут можно ук //азать тип хранилища, в данном случае все крутиться локально, так что выбор очевиден Enter DB type for installation ['remote'| 'local'] [local] : local //расположение базы (локально, удаленно) Local database password : *Ваш пароль на BD* Confirm password : *Ваш пароль на BD* Should the installer configure NFS share on this server to be used as an ISO Domain? ['yes'| 'no'] [yes] : yes //будет ли этот сервер доменом ISO Local ISO domain path: /ovirt/iso //путь к ISO Display name for the ISO Domain: iso //имя ISO домена Firewall ports need to be opened. You can let the installer configure iptables automatically overriding the current configuration. The old configuration will be backed up. Alternately you can configure the firewall later using an example iptables file found under /usr/share/ovirt-engine/conf/iptables.example Configure iptables ? ['yes'| 'no']: no //внести ли изменения в firewall, //я ставлю нет, потому что просто его отключу. //Резюме oVirt Engine will be installed using the following configuration: ================================================================= http-port: 80 https-port: 443 host-fqdn: ovirt.test auth-pass: *Ваш пароль на web* (в виде звездочек) org-name: Apress default-dc-type: NFS db-remote-install: local db-local-pass: *Ваш пароль на BD* (в виде звездочек) nfs-mp: /ovirt/iso iso-domain-name: iso config-nfs: yes override-iptables: yes Proceed with the configuration listed above? (yes|no): yes //он спрашивает, все ли верно. |
Тут все понятно, конфигурирование не сложное )))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Installing: Configuring oVirt-engine... [ DONE ] Creating CA... [ DONE ] Editing JBoss Configuration... [ DONE ] Setting Database Configuration... [ DONE ] Setting Database Security... [ DONE ] Creating Database... [ DONE ] Updating the Default Data Center Storage Type... [ DONE ] Editing oVirt Engine Configuration... [ DONE ] Editing Postgresql Configuration... [ DONE ] Configuring the Default ISO Domain... [ DONE ] Configuring Firewall (iptables)... [ DONE ] Starting JBoss Service... [ DONE ] Handling HTTPD... [ DONE ] **** Installation completed successfully ****** (Please allow oVirt Engine a few moments to start up.....) Additional information: * There is less than 4 GB of available free memory on this machine. It is recommended to have at least 4 GB of available memory to run the oVirt Engine. * SSL Certificate fingerprint: 1C:19:23:8D:5E:8C:85:D4:1A:F2:60:70:71:9C:1A:89:0C:11:3D:27 * SSH Public key fingerprint: 02:12:22:f1:ec:10:f5:07:9f:12:9e:0b:b3:2d:67:12 * A default ISO share has been created on this host. If IP based access restrictions are required, please edit /ovirt/iso entry in /etc/exports * The installation log file is available at: /var/log/ovirt-engine/engine-setup_2013_03_14_12_32_15.log * Please use the user "admin" and password specified in order to login into oVirt Engine * To configure additional users, first configure authentication domains using the 'engine-manage-domains' utility * To access oVirt Engine please go to the following URL: http://ovirt.test:80 |
Выхлоп приблизительно такой.
1 | service iptables stop |
Ну тут понятно, чтобы с правилами не возиться… Ну и пробуем зайти на web-морду. Для этого в строке адреса Вашего браузер вводим ip сервера или, если есть DNS, то можно использовать и имя. Картинки любезно предоставлены нам компанией google.com
Здесь выбираем Administrator Portal.
Вводим логин и порол… И приступаем к теории: принцип прост Data Center <- Cluster <- Hosts <- Наши виртуалки. Еще есть Storage для хранения ISO образов и блочных устройств виртуальных машин. Storage подключаются к Hosts и соотносятся с Data Center. Так же у нас есть виртуальные сетевые устройства, которые по факту являются bridge для реальных устройств сервера. Как вы понимаете, ничего сложного в архитектуре нет. Так что пойдем дальше:
Настраиваем наш Host
Name: ovirt.test
Address: 10.11.1.20 (это ip моего сервера, у вас может быть другой)
Root Password: *Ваш пароль для этого Host*
Automatically configure host firewall: галочку я убрал (iptables у меня отключен)
Power Management я не включал, будет ошибочка выскакивать – не критично.
Ожидаем завершения установки Host. За процессом можно следить в нижней части формы. После окончания установки сервер уйдет в ребут, после чего продолжаем.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | nano /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="none" HWADDR="11:22:33:44:55:66" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" UUID="3ca879cb-37e6-4c8b-a0b4-5e29b22aa09f" BRIDGE="dhcp" nano /etc/sysconfig/network-scripts/ifcfg-dhcp DEVICE=dhcp TYPE=Bridge ONBOOT=yes DELAY=0 NM_CONTROLLED="no" BOOTPROTO="dhcp" service network restart service wdmd start service sanlock start chkconfig wdmd on chkconfig sanlock on service ovirt-engine start |
Таим образом создаем себе сетевой интерфейс. Есть еще вариант через web.
Создаем интерфейс для oVirt.
Вот таким незамысловатым макаром это делается через web. Но на мой взгляд, консоль удобнее.
1 2 3 4 5 6 7 | mkdir /ovirt/{data,export} chown vdsm:kvm /ovirt/{data,export} nano /etc/exports /ovirt/iso 0.0.0.0/0.0.0.0(rw) /ovirt/data 0.0.0.0/0.0.0.0(rw) /ovirt/export 0.0.0.0/0.0.0.0(rw) service nfs restart |
Создаем необходимые каталоги и прописываем им права. Ну и рестартем NFS.
1 2 | psql -U postgres engine -c "update vdc_options set option_value='pc' whereoption_name LIKE 'EmulatedMachine';" UPDATE 3 |
Не очень понятно, но факт.
Заходим в Hosts, выбираем наш host нажимаем кнопочку Activate и надеемся что статус смениться на Up. Ну а коль нет, то смотрите логи
Добавляем наши хранилища для доменов, первым должен быть data, так как это master, потом в произвольном порядке, но при каждом добавлении нужно выставлять соответствующий тип в “Domain Function / Storage Type” для data – Data master, для export – Export и для iso – ISO. Тут нечего сложного, главное не ошибиться и выставить первым data! В процессе добавления происходит добавление наших каталогов и к Data center, но если этого не произошло по какой то причине, то попробуйте сделать это вручную:
Для каждого типа data – Attach Data, для export – Attach Export и для iso – Attach ISO, но data, как всегда, первая
1 | engine-iso-uploader upload -i iso /root/CentOS-6.4-x86_64-minimal.iso |
Таким образом мы добавляем iso в каталог ISO, который потом монтируем с нашими виртуальными машинами.
Для добавления нового сервера в вкладке Virtual Machines нажимаем New Server. Для клиента New Desktop. Собственно дальше все интуитивно понятно, заполняем имя для виртуалки, объем ОЗУ, количество серверов и ядер. Вкладка Console выбираем тип консоли (если вы администрируете с windows, то выбирайте VNC), вкладка Boot Options выбираем образ установочного диска и нажимаем кнопочку Ok.
Добавляем сетевой интерфейс и указываем объем нашего виртуального hard диска для данной машины.
После окончания всех операций по созданию, которые можно отслеживать внизу экрана нажав на вкладку Tasks. Выбираем нашу машину и нажимаем кнопу Run (правой кнопкой на виртуалке -> Run, либо зеленая стрелочка play).
Собственно все, мы справились! Всем удачи
Маленький анекдот:
Почувствуй себя Сергеем Безруковым, укуси березку ))))
А где что-нибудь веселое ? Например инфа о производительности, или о переезде виртуалок между узлами, без выключения ? Тк если уж один хост, то почему не юзать ту же ESXi + сферу, там хоть поддерживается эмуляция аппаратной вируализации процессора, и в ней уже можно эти KVMки закрутить, и баловаться, или хотя бы Hyper-V взять.
А вообще на Ubuntu 12.04 разачаровала меня KVM виртуализация, 16 гигов оперативы съедало за пару часов , вируальной машинов с Win7, только когда ядро 3.8 вышло проблему решили , но осадок остался хотя думаю в CentOS стабильнее, ток в нем все такое старое
О производительности KVM вы можете почитать тут, тут и вот тут немного.
На счет горячего переноса
источник тут. По поводу переноса самих виртуалок
(источник тут), грубо говоря вам нужен СХД и далее уже неважно, где ваш сервер и куда вы хотите его перенести. В данном примере рассматривается процесс установки, в реалии же хостов, как и датацентров много больше. По поводу эмуляции аппаратной вируализации
(источник тут), но эта проблема активно решается (к примеру тут пишут, что это уже есть, но гарантировать немогу). По повожу древности начинки Centos могу сказать, что стабильность для серверной системы есть основополагающий фактор, но если вы хотите, то можете собрать из исходников все что вашей душе угодно :). К тому же Ubuntu в качестве сервера, это нонсенс, я знаю что есть ubuntu server, но степень его стабильности и работоспособности оставляет желать много лучшего. По поводу Hyper-V я уже писал ранее, к другому вашему комментарию.