Виртуализация oVirt на одном сервере с CentOS7 (подготовка)

НеБезIT: Виртуализация oVirt на одном сервере с CentOS7

У нас залежался двухпроцессорный сервер Supermicro и было принято решение установить на него свободную систему управления виртуализацией «oVirt». oVirt базируется на технологии KVM. Большим плюсом является то, что панель управления виртуализацией работает через веб-интерфейс, а также имеет Android-приложение для телефона, это очень удобно!

Итак, приступим без лишней воды! Инструкция будет поделена на несколько частей, т.к. материал большой.

Установку CentOS 7 мы рассматривать не будем, т.к. там все довольно тривиально. Всё будет делаться не от пользователя root, поэтому перед каждой командой прописано sudo. После установки CentOS обязательно добавляем epel-репозиторий:
sudo rpm -i http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

На момент написания был релиз 7.2, когда вы будете настраивать систему возможно будет уже другой релиз, если репозиторий не установится пройдите по адресу http://dl.fedoraproject.org/pub/epel/7/x86_64/e/ и найдите файл, который должен будет иметь примерно такое имя «epel-release-X-X.noarch.rpm» (X-X - версия релиза). Скопируйте ссылку в нашу команду и у вас все должно получиться.

После установки репозитория установим нужные нам пакеты:

  • htop - удобный диспетчер процессов;
  • python-kitchen и screen - без них установка oVirt может завершиться неудачно;
  • vim - мощный текстовый редактор;
  • nfs-utils, nfs-utils-lib - NFS-сервер.

sudo yum install -y htop python-kitchen screen vim nfs-utils nfs-utils-lib

Добавляем репозиторий oVirt (опять же проверяйте версии, возможно есть более свежая):
sudo yum install http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm

Так как создаем виртуализацию на одном сервере, то на нужно использовать так называемую, “вложенную виртуализацию” (источник: http://www.thislinux.org/2013/11/kvm-nested-virtualization.html). По умолчанию может быть так, что вложенная виртуализация выключена, проверить это можно с помощью следующей команды:
cat /sys/module/kvm_intel/parameters/nested
N

Буква “N” или “0” означает, что вложенная виртуализация выключена. Чтобы ее включить нужно выгрузить модуль и загрузить его с параметром kvm_intel.nested=1. Выгружаем модуль и загружаем с нужным параметром:
sudo rmmod kvm_intel
sudo 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

И т.к. в CentOS 7 этот файл по умолчанию более не является исполняемым, то нам необходимо его сделать таковым:
sudo chmod +x /etc/rc.d/rc.local

Прописываем имя хоста:
sudo nmtui

Откроется псевдографика, где нужно будет выбрать “Set system hostname” (Изменить соединение):

CentOS 7 - TUI NetworkManage

Вводим имя хоста и жмем <OK>:

CentOS 7 - Измените имя узла

Также пропишем доменное имя в файл /etc/hosts (192.168.1.88 - это ip-адрес нашего сервера, у вас он будет другим):
127.0.0.1   ovirt-engine.ovirtlocal localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         ovirt-engine.ovirtlocal localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.88 ovirt-engine.ovirtlocal

Также, нам придется прибегнуть к хитрости, чтобы мы смогли установить Ovirt на один хост, в файл /etc/hosts временно пропишем доменное будущей виртуальной машины, на которой будет установлена управляющая оболочка Ovirt. Для этого добавим последнюю строчку так:
192.168.1.88 ovadmin.ovirt-engine.ovirtlocal

Редактируем файл /etc/sysconfig/network:

CentOS 7 - Прописываем hostname

И напоследок выполняем команду:
sudo hostname ovirt-engine.ovirtlocal

Настройка сети

В CentOS 7 сетевые интерфейсы немного переименовались. Отредактируем сетевой интерфейс, к которому подключен сетевой кабель:
sudo vim /etc/sysconfig/network-scripts/ifcfg-enp1s0

и приведем его настройки к следующему виду:

CentOS 7 - Настройки сети

Перезапускаем службу сети:
sudo systemctl restart network

Добавим группу kvm и в ней пользователя vdsm:
sudo groupadd kvm -g 36
sudo useradd vdsm -u 36 -g kvm

Создадим папки для Ovirt в NFS-сервере, передадим права на них группе kvm и пользователю vdsm:
sudo mkdir /home/vdsm/
sudo mkdir /home/vdsm/storage
sudo mkdir /home/vdsm/data
sudo mkdir /home/vdsm/export
sudo chmod 0755 /home/vdsm
sudo chown 36:36 /home/vdsm/
sudo chmod 0755 /home/vdsm/storage/
sudo chown 36:36 /home/vdsm/storage/
sudo chmod 0755 /home/vdsm/data/
sudo chown 36:36 /home/vdsm/data/
sudo chmod 0755 /home/vdsm/export/
sudo chown 36:36 /home/vdsm/export/

Теперь добавим эти папки в NFS-сервер, чтобы они были расшарены. Для этого открываем файл /etc/exports:

CentOS 7 - NFS экспорт ресурсов

В конфигурационном файле /etc/sysconfig/nfs нужно прописать порты:

CentOS 7 - Порты для монтирования директорий в oVirt

Включим NFS-сервер и настроим его автозапуск:
sudo systemctl restart rpcbind
sudo systemctl start nfs-server.service
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server.service

Пропишем правила в firewalld (файл /etc/sysconfig/iptables) указывая все порты, которые мы указали в конфигурационном файле nfs-сервера, а также порты 111 и 2049 использующиеся portmapper’ом и nfs-сервером соответственно:
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

Перезапускаем службу firewalld:
sudo systemctl restart firewalld

Обновляем систему перед началом работ по виртуализации:
sudo yum update -y

И на всякий случай перезагрузим:
sudo shutdown -r now

Создадим папку, в которой будем хранить образ для Ovirt’а:
sudo mkdir /home/tmp && cd /home/tmp
sudo curl -O http://mirrors.kernel.org/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso
sudo chown -R 36:36 /home/tmp

На этом подготовка сервера для установки oVirt завершена. В следующих частях рассмотрим непосредственно установку самого oVirt.

Похожие материалы