Построение IaaS с использованием популярной и бесплатной облачной платформы OpenNebula.
В примере будет использоваться менеджмент сервер выступающий в тот же момент в качестве хранилища для запущенных ВМ и хранения образов, а также две ноды с ядром QEMU KVM.
- Frontend server (Management + Storage)
- Qemu KVM node 1
- Qemu KVM node 2
Прежде чем начать, рекомендую отключить политику безопасности SElinux на всех серверах.
# vi /etc/sysconfig/selinux |
Установка на Frontend сервер
Все дальнейшие команды будут выполняться от двух пользователей.
Команды с префиксом #
выполняются от root
пользователя, а команды с префиксом $
выполняются от пользователя oneadmin
Установка рпозитория
Включаем EPEL репозиторий
Добавляем OpenNebula репозиторий
cat << EOT > /etc/yum.repos.d/opennebula.repo |
Устанавливаем необходимые пакеты
Для полноценной установки OpenNebula необходимо установить пакеты opennebula-server
и opennebula-sunstone
yum install opennebula-server opennebula-sunstone |
Теперь запустим install_gems
для установки зависимостей, выберите CentOS, когда об этом спросит установщик
# /usr/share/one/install_gems |
Конфигурация и старт сервисов
Всего два основных процесса должны быть запущены - основной OpenNebula демон oned
и графический интерфейс sunstone
Sunstone слушает только loopback-интерфейс в целях безопасности. Для изменения необходимо отредактировать конфигурационный файл /etc/one/sunstone-server.conf
и изменить :host: 127.0.0.1
на :host: 0.0.0.0
Запускаем сервисы
# service opennebula start |
Конфигурация NFS
Экспортируем папку /var/lib/one/
с frontend сервера на рабочие ноды.
Для этого добавим в файл /etc/exports
строку:
/var/lib/one/ *(rw,sync,no_subtree_check,root_squash) |
Перезапускаем NFS экспорт
service rpcbind restart |
Настройка публичных SSH-ключей
OpenNebula необходима связь с любым узлом без пароля.
Добавим следующие строки в файл ~/.ssh/config
под пользователем oneadmin
, на случай если не будет предложено добавить их автоматически в known_hosts
.
su - oneadmin |
cat << EOT > ~/.ssh/config |
Установка на рабочие сервера (node)
Установка репозитория
Добавляем OpenNebula репозиторий
# cat << EOT > /etc/yum.repos.d/opennebula.repo |
Устанавливаем необходимые пакеты
yum install opennebula-node-kvm |
Запускаем необходимые сервисы
service messagebus start |
Настраиваем сеть
Необходимо настроить мост для наших интерфейсов.
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 |
Добавляем новый файл /etc/sysconfig/network-scripts/ifcfg-br0
Для DHCP
DEVICE=br0 |
Для статичного адреса
DEVICE=br0 |
Перезагружаем сервис
service network restart |
Настраиваем NFS
Монтируем папку с Frontend сервера. Добавим следующую строку в /etc/fstab
192.168.1.1:/var/lib/one/ /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192,noauto |
Заменим IP-адрес 192.168.1.1
адресом Frontend-сервера.
Монтируем NFS папку
mount /var/lib/one/ |
Могут возникнуть проблемы с манутом из-за iptables
, для нормальной работы необходимо внести небольшие правки в работу служб NFS.
Редактируем файл /etc/sysconfig/nfs
, а точнее раскомментируем необходимые строчки:
LOCKD_TCPPORT=32803 |
И перезапускаем службу NFS
service nfs restart |
Вносим правила в Iptables
-A INPUT -s 10.0.10.0/24 -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT |
Подключение
Для входа в графический интерфейс переходим по адресу http://frontend:9869
Пользователь по умолчанию oneadmin
, пароль можно найти в файле ~/.one/one_auth
из-под пользователя oneadmin
, пароль генерируется автоматически при каждой установке.