Итак. Исходные данные. У нас имеется компания с ограниченным бюджетом. Т.е. нет в сети никаких сетевых дисковых хранилищ. Нет SUN, нет FC и т.д. и т.п. для реализации отказоустойчевого решения. Но завалялись три отдельных сервера, которые можно использовать для реализации наших задумок.
Характеристики имеющихся серверов:
Сервер 1:
- RAM - 20Gb
- CPU - 1 dual core
- HDD 1 - 70 GB
- HDD 2 - 200 GB
- Ethernet - 1Gb
Сервер 2:
- RAM - 20Gb
- CPU - 1 dual core
- HDD 1 - 70 GB
- HDD 2 - 200 GB
- Ethernet - 1Gb
Сервер 3:
- RAM - 1Gb
- CPU - 1 dual core
- HDD 1 - 20 GB
- HDD 2 - 20 GB
- Ethernet - 1Gb
Сервер 1 и 2 будут исспользоваться под сами хосты виртуализации. Т.к. у нас нет дискового хранилища, но имеются дополнительные диски 500GB в серверах, то будем использовать их для создания общего хранилища. Для этого будем использовать технологию GlusterFS. Третий сервер будет испоьзоваться в качестве арбитра для этого хранилища, т.к. у нас будет всего две ноды.Этот сервер не обязательно должен быть аналогичной конфигурации, как и основные сервера. В дальнейшем его можно будет сделать виртуальным и отказаться от физического ПК.
Распределим IP и имена по серверам
Сервер 1:
- hostname: ovirt-01.lab.int
- IP address: 192.168.0.41
- Gateway: 192.168.0.1
- DNS: 192.168.0.10
Сервер 2:
- hostname: ovirt-02.lab.int
- IP address: 192.168.0.42
- Gateway: 192.168.0.1
- DNS: 192.168.0.10
Сервер 3:
- hostname: arbtr.lab.int
- IP address: 192.168.0.44
- Gateway: 192.168.0.1
- DNS: 192.168.0.10
Т.к. мы будем использовать полнофункциональный кластер с воможностью миграции ВМ между хостами и прочими плюшками, то этим всем должен кто-то управлять. Т.е. сервер управления кластером. Он будет виртуальным. Зарезервируем для него данные:
Сервер 4:
- hostname: ovirt-srv.lab.int
- IP address: 192.168.0.43
- Gateway: 192.168.0.1
- DNS: 192.168.0.10
Все имена и адреса должны быть корректно настроены в ДНС, в том числе и обратная зона. Если ДНС сервера пока нет, то придется использовать файл hosts на каждом сервере.
Устанавливаем хосты oVirt и сервер арбитра.
Утстанавливать хосты oVirt можно несколькими способами:
- Полностью ручная установка.
- Установка через соответствующий раздел среды администрирования сервера cockpit
- Используя установочный образ oVirt.
Здесь рассмотрим третий вариант, как наименее трудозатратный. Данный образ чем то похож на установочные образы Vmware ESXi. В нем присутствует Centos 8 со всем необходимым ПО и подключенными репозитариями.
- Скачиваем установочный образ разработчика: oVirt iso
- Загружаемся и устанавливаем ОС. Процесс установки показывать не буду. Все достаточно простоываем имя хоста, сетевые настройки и пароль root.
- После того, как установка прошла успешно открываем в браузере панель администрирования сервера (в нашем случае
https://ovirt-01.lab.int:9090
)и авторизуемся под пользователем root - Точно так же устанавливаем второй хост и сервер арбитра.
Настраиваем безпарольный доступ между серверами.
Все работы проводятся под пользователем root
.
- На каждом сервере создаем открытые и закрытые SSH-ключи:
#ssh-keygen
Данная команда интерактивная. Будет выведен запрос на место хранения файла и кодовую фразу. Имя файла и место хранения не изменяем. Кодовую фразу оставляем пустой. В результате в каталоге /root/.ssh будут созданы два файла ключей:# ll ~/.ssh/ total 8 -rw-------. 1 root root 2610 Dec 15 12:37 id_rsa -rw-r--r--. 1 root root 575 Dec 15 12:37 id_rsa.pub
- Копируем открытые ключи на другие сервера (так же на каждом сервере):
# ssh-copy-id root@имя_целевого_сервера
В обязательном порядке необходимо скопировать ключ "сам на себя" на каждом сервере. Например хост ovirt-01.lab.int:# ssh-copy-id Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
- Проверяем доступ по SSH между серверами:
# ssh имя_целевого_сервера
В обязательном порядке нужно зайти на каждом сервере по SSH сам на себя. Например на сервере ovirt-01.lab.int:# ssh ovirt-01.lab.int
Таким образом мы настроили безпарольный доступ пользователю root между нашими тремя серверами и сгенерировали файлknown_host
s, который будет проверяться при создании GlusterFS
Создание общего диска GlusterFS
- В окне администрирования переходим на вкладку "Virtualization - Hosted Engine"
- Первый вариант предназначен для создание управляющей виртуальной машины на существующем дисковом хранилище. У на его нет. Выбираем второй вариант: создание общего хранилища и установка управляющей ВМ на него.
Т.к. мы планируем использовать два хоста виртуализации, то выбираем вариант "Run Gluster Wizard" - Следующим шагом мы указываем имена хостов и имя ПК "арбитра":
- На следующем шаге оставляем поля пустыми:
- Далее настраиваем разделы. Т.к. у нас есть сервер "арбитр" с небольшим диском, то в каждом пункте устанавливаем признак "Arbiter"
- Настраиваем тип RAID, кто будет являться мастером и размеры разделов:
- Смотрим сводку и нажим для начала установки кнопку Deploy:
- После того, как установка GlusterFS завершена, выводится сообщение:
После этого можно либо прекратить установку, либо продолжить установку самого кластера oVirt. Об этом в одной из следующих статей.