Установка Ovirt в режиме Hosted Engine
В данной статье рассматривается развертывание среды виртуализации Ovirt 4.1 с хранилищем, реализованным на базе NFS.
Содержание
Системные требования к оборудованию
- ЦПУ, поддерживающий виртуализацию. Минимум 2 ядра.
- ОЗУ минимум 8 Гб.
- Свободное дисковое проcтранство на одном из разделов минимум 60 Гб.
Системные требования к ПО
- Чистая установка ОС AlterOS 7.5
- Подготовленные FQDN имена для хоста и виртуальной машины, выполняющей роль Engine. В нашем случае host.alter.os и engine.alter.os соответственно.
- Записи в зонах прямого и обратного просмотра для этих имен на DNS сервере.
Подготовка
Все команды, приведенные ниже необходимо выполнять от имени учетной записи root или с использованием sudo (см. Утилита SUDO).
Проверяем наличие поддержки со стороны процессора:
# cat /proc/cpuinfo | egrep "(vmx|svm)"
Если команда ничего не вернет, на ПК отсутствует поддержка виртуализации или она отключена в настройках БИОС. Сам KVM поставить на такой ПК можно, но при попытке ввести команду управления гипервизором мы получим ошибку «WARNING KVM acceleration not available, using 'qemu'». В таком случае необходимо перезагрузить ПК, войти в БИОС, найти поддержку технологии виртуализации (Intel VT или AMD-V) и включить ее.
Обновляем ОС:
# yum -y update
Устанавливаем в систему репозиторий Ovirt 4.1:
# yum install http://resources.ovirt.org/pub/yum-repo/ovirt-release41.rpm
Проверяем доступность необходимых репозиториев:
# yum repolist
Видим, что репозитории ovirt-4.1-centos-gluster38/x86_64 и ovirt-centos-ovirt41/x86_64 недоступны (у них в столбце Состояние указан 0):
.... Идентификатор репозитория репозиторий состояние base/7/x86_64 AlterOS-7 - Base 9 941 centos-opstools-release/x86_64 CentOS-7 - OpsTools - release 853 ovirt-4.1/7 Latest oVirt 4.1 Release 2 229 ovirt-4.1-centos-gluster38/x86_64 CentOS-7 - Gluster 3.8 0 ovirt-4.1-centos-qemu-ev/x86_64 CentOS-7 - QEMU EV 71 ovirt-4.1-epel/x86_64 Extra Packages for Enterprise 12 914 ovirt-4.1-patternfly1-noarch-epel/x86_64 Copr repo for patternfly1 own 2 ovirt-centos-ovirt41/x86_64 CentOS-7 - oVirt 4.1 0 rnnv/7/x86_64 AlterOS-7 - rnnv 305 sac-gdeploy/x86_64 Copr repo for gdeploy owned b 4 updates AlterOS-7 - Updates 706 virtio-win-stable virtio-win builds roughly mat 5 repolist: 27 030 #
Для продолжения установки необходимо в файле /etc/yum.repos.d/ovirt-4.1-dependencies.repo разделы для недоступных репозиториев привести к виду:
[ovirt-4.1-centos-gluster38] name=CentOS-7 - Gluster 3.8 baseurl=http://mirror.centos.org/centos/7/storage/$basearch/gluster-4.0/ gpgcheck=0 enabled=1 gpgkey=https://raw.githubusercontent.com/CentOS-Storage-SIG/centos-release-storage-common/master/RPM-GPG-KEY-CentOS-SIG-Storage
[ovirt-centos-ovirt41] name=CentOS-7 - oVirt 4.1 baseurl=http://mirror.centos.org/centos/7/virt/$basearch/ovirt-4.2/ gpgcheck=0 enabled=1
Жирным шрифтом выделены измененные символы. Еще раз проверяем доступность репозиториев. Теперь все репозитории долны быть доступны:
# yum clean all # yum repolist ..... Идентификатор репозитория репозиторий состояние base/7/x86_64 AlterOS-7 - Base 9 941 centos-opstools-release/x86_64 CentOS-7 - OpsTools - release 853 ovirt-4.1/7 Latest oVirt 4.1 Release 2 229 ovirt-4.1-centos-gluster38/x86_64 CentOS-7 - Gluster 3.8 110 ovirt-4.1-centos-qemu-ev/x86_64 CentOS-7 - QEMU EV 71 *ovirt-4.1-epel/x86_64 Extra Packages for Enterprise 12 914 ovirt-4.1-patternfly1-noarch-epel/x86_64 Copr repo for patternfly1 own 2 ovirt-centos-ovirt41/x86_64 CentOS-7 - oVirt 4.1 625 rnnv/7/x86_64 AlterOS-7 - rnnv 305 sac-gdeploy/x86_64 Copr repo for gdeploy owned b 4 updates AlterOS-7 - Updates 706 virtio-win-stable virtio-win builds roughly mat 5 repolist: 27 765 #
Устанавливаем пакет ovirt-hosted-engine-setup:
# yum -y install ovirt-hosted-engine-setup
Устанавливаем пакет ovirt-engine-appliance (может занять продолжительное время):
# yum -y install ovirt-engine-appliance
Так как создаем виртуализацию на одном сервере, то нам нужно использовать так называемую, “вложенную виртуализацию”. По умолчанию может быть так, что вложенная виртуализация выключена, проверить это можно с помощью следующей команды:
# cat /sys/module/kvm_intel/parameters/nested N #
Буква “N” или “0” означает, что вложенная виртуализация выключена. Чтобы ее включить нужно выгрузить модуль и загрузить его с параметром kvm_intel.nested=1. Выгружаем модуль и загружаем с нужным параметром:
# rmmod kvm_intel # modprobe kvm_intel nested=1
Проверяем включение вложенной виртуализации:
# cat /sys/module/kvm_intel/parameters/nested Y #
При постоянном использовании следует данные параметры ввести в автозагрузку, для этого приводим файл /etc/rc.local к виду:
touch /var/lock/subsys/local rmmod kvm_intel modprobe kvm_intel nested=1
И т.к. в AlterOS-7.5 этот файл по умолчанию не является исполняемым, то нам необходимо его сделать таковым:
# chmod +x /etc/rc.d/rc.local
Приводим файл /etc/hosts к виду:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.5.55 host.alter.os host 192.168.5.56 engine.alter.os engine
Здесь host.alter.os - имя ПК, на котором выполняются данные действия. engine.alter.os - имя будущей виртуальной машины, выполняющей роль engine. IP адреса и имена указаны в качестве примера. В вашем случае они, скорее всего, будут другими. Так же, эти данные должны четко соостветствовать записям в зонах прямого и обратного просмотра на DNS сервере.
Приводим файл /etc/sysconfig/network к виду:
HOSTNAME="host.alter.os"
Выполняем команду:
# hostname host.alter.os
Приводим файл сетевого интерфейса, к которому подключен сетевой кабель, /etc/sysconfig/network-scripts/ifcfg-enp1s0 (в вашем случае он может иметь другое имя)к виду:
BOOTPROTO="none" NM_CONTROLLED="no" IPADDR=192.168.5.55 NETMASK=255.255.255.0 GATEWAY=192.168.5.1 DNS1=192.168.5.2
В данном файле так же могут присутствовать и строки, задающие другие параметры. Для нас важно задать статическую адресацию с правильным IPv4 адресом и маской, а так же параметр NM_CONTROLLED.
Перезапускаем службу сети:
# systemctl restart network
Добавляем группу kvm и в ней пользователя vdsm:
# groupadd kvm -g 36 # useradd vdsm -u 36 -g kvm
Устанавливаем службу NFS:
# yum -y install nfs-utils
Выполняем команды:
# systemctl daemon-reload # systemctl enable rpcbind.service # systemctl enable nfs-server.service # systemctl start rpcbind.service # systemctl start nfs-server.service
Создаем каталоги для NFS хранилища. Данные каталоги должны находиться на разделе, имеющем минимум 60 Гб свободного пространства. В данном случае это раздел /home:
# mkdir -p /home/vdsm/data # mkdir -p /home/vdsm/export
Добавляем сведения об этих каталогах в файл /etc/exports. Вносим в него строки:
/home/vdsm/data *(rw) /home/vdsm/export *(rw)
Выполняем команду:
# exportfs -r
Перезагружаем службу NFS:
# systemctl reload nfs-server.service
Задаем владельца и группу для созданных каталогов:
# chown -R 36:36 /home/vdsm/data # chown -R 36:36 /home/vdsm/export
Задаем необходимые разрешения для созданных каталогов:
# chmod 0755 /home/vdsm/data # chmod 0755 /home/vdsm/export
Развертывание
Выполняем команду:
# hosted-engine --deploy
На все вопросы отвечаем значениями по умолчанию (жмем Enter), кроме следующих:
Please specify the full shared storage connection path to use (example: host:/path): host.alter.os:/home/vdsm/data
Please provide the FQDN you would like to use for the engine appliance. Note: This will be the FQDN of the engine VM you are now going to launch, it should not point to the base host or to any other existing machine. Engine VM FQDN: (leave it empty to skip): []: engine.alter.os
Enter root password that will be used for the engine appliance (leave it empty to skip):{Введите свой пароль}
Enter ssh public key for the root user that will be used for the engine appliance (leave it empty to skip): {Что вводить указано ниже}*
Please specify the memory size of the VM in MB (Defaults to maximum available): [5878]: 4096
How should the engine VM network be configured (DHCP, Static)[DHCP]?: Static
Please enter the IP address to be used for the engine VM [192.168.5.4]: 192.168.5.56
--== HOSTED ENGINE CONFIGURATION ==-- Enter engine admin password:{Введите свой пароль}
*Необходимо сгенерировать ключ доступа на VM для root: # ssh-keygen -t rsa * no passphrase * save file to default location Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. После того, как ключ создан, просто откройте файл ~/.ssh/id_rsa.pub, скопируйте его содержимое и вставьте в строку с запросом ключа ssh.
В конце процесса развертывания должны получить:
[ INFO ] Engine replied: DB Up!Welcome to Health Status! [ INFO ] Acquiring internal CA cert from the engine [ INFO ] The following CA certificate is going to be used, please immediately interrupt if not correct: [ INFO ] Issuer: C=US, O=alter.os, CN=engine.alter.os.82493, Subject: C=US, O=alter.os, CN=engine.alter.os.82493, Fingerprint (SHA-1): 6A0E0429E23938ACB78F0ADABA0DBC08004D6CD9 [ INFO ] Connecting to the Engine [ INFO ] Waiting for the host to become operational in the engine. This may take several minutes... [ INFO ] Still waiting for VDSM host to become operational... [ INFO ] The VDSM Host is now operational [ INFO ] Saving hosted-engine configuration on the shared storage domain [ INFO ] Shutting down the engine VM [ INFO ] Enabling and starting HA services [ INFO ] Stage: Clean up [ INFO ] Generating answer file '/var/lib/ovirt-hosted-engine-setup/answers/answers-20190213135619.conf' [ INFO ] Generating answer file '/etc/ovirt-hosted-engine/answers.conf' [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination [ INFO ] Hosted Engine successfully deployed
Доступ на веб-интерфейс для управления Ovirt осуществляется в данном случае по ссылке https://engine.alter.os/ovirt-engine. (Этот адрес предварительно добавляем в исключения браузера). В качества имени пользователя используем admin, в качества пароля - пароль заданный на стадии развертывания.
Если по какой-то причине процесс развертывания завершился с ошибкой, то возобновить его можно только после выполнения скрипта /usr/share/ovirt-hosted-engine-setup/scripts/ovirt-hosted-engine-cleanup и очистки каталога /home/vdsm/data.