OpenNebula
OpenNebula
OpenNebula - это платформа облачных вычислений для управления разнородными инфраструктурами распределенных центров обработки данных. Платформа OpenNebula управляет виртуальной инфраструктурой центра обработки данных для создания частных, общедоступных и гибридных реализаций инфраструктуры как службы.
Архитектура
Облачная архитектура определяется 3-мя элементами: хранилищем данных, сетью и системой виртуализации.
OpenNebula состоит из следующих компонентов:
- Сервер управления (Front-end) - на нём выполняются сервисы OpenNebula.
- Серверы с виртуальными машинами.
- Хранилище данных - содержит образы виртуальных машин.
- Физическая сеть - обеспечивает связь между хранилищем данных, серверами с виртуальными машинами, поддерживает VLAN-ы для виртуальных машин, а также управление сервисами OpenNebula.
Планирование ресурсов
Минимальные требования к серверу управления
Ресурс | Минимальное значение |
---|---|
Оперативная память | 2ГБ |
CPU | 1 CPU (2 ядра) |
Диск | 100ГБ |
Сеть | 2 интерфейса |
Максимальное количество серверов, управляемых одним front-end-ом, зависит от инфраструктуры, особенно от производительности хранилища. Обычно рекомендуется не управлять более чем 500-ми серверами из одной точки, хотя существуют примеры с более чем 1000 серверами.
Сервера виртуализации
- CPU: в обычных условиях каждое ядро, предоставляемое виртуальной машине (ВМ), должно быть реальным ядром физического процессора, например, для обслуживания 40 ВМ с 2-мя процессорами в каждой, облако должно иметь 80 физических ядер. Они могут быть распределены по разным серверам: 10 серверов с 8-ю ядрами или 5 серверов с 16-ю ядрами на каждом. В случае перераспределения недостаточных ресурсов используются атрибуты CPU и VCPU: CPU означает физические ядра, выделенные для ВМ, а VCPU - виртуальные ядра для гостевой ОС.
- Память: по умолчанию, OpenNebula не предоставляет памяти для гостевых систем больше, чем есть на самом деле. Желательно рассчитывать объём памяти с запасом в 10% на гипервизор. Например, для 45 ВМ с 2ГБ памяти на каждой, необходимо 90ГБ физической памяти. Важно количество физических серверов: каждый сервер должен иметь 10% запас для работы гипервизора, так, 10 серверов с 10ГБ памяти на каждом могут предоставить по 9ГБ для виртуальных машин и смогут обслужить 45 машин из этого примера (10% от 10ГБ = 1ГБ на гипервизор).
Хранилище данных
OpenNebula работает с двумя видами данных в хранилище: образцами виртуальных машин и образами (дисками) самих ВМ. Планирование хранилища - очень важная задача, т.к. от него зависит производительность облака. Например, при использовании Ceph для среднего по размеру облака, необходимо взять как минимум 3 сервера в следующей конфигурации: 5x1ТБ дисков, 16ГБ памяти, 2 CPU с 4-мя ядрами на каждом и 2 сетевые карты (минимум).
Сеть
Сетевая инфраструктура должна быть спланирована так, чтобы обеспечить высокую надёжность и пропускную способность. Рекомендуется использовать 2 сетевых интерфейса на сервере управления и по 4 на каждом сервере виртуализации (публичный, внутренний, для управления и для связи с хранилищем).
Установка
Установить сервер управления OpenNebula можно следующей командой:
# apt-get install opennebula-server opennebula-flow opennebula-sunstone
Установка MySQL (MariaDB) для хранения конфигурации (на сервере управления):
# apt-get install mariadb
# systemctl enable mariadb.service; systemctl start mariadb.service
# mysql_secure_installation
# mysql -u root
mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '<thepassword>';
mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
Перед запуском сервера OpenNebula в первый раз необходимо настроить параметры доступа к базе данных в конфигурационном файле /etc/oned.conf:
DB = [ backend = "mysql", server = "localhost", port = 0, user = "oneadmin", passwd = "<thepassword>", db_name = "opennebula" ]
Установка серверов виртуализации (для системы виртуализации KVM):
# apt-get install opennebula-node-kvm
# systemctl enable libvirtd; systemctl start libvirtd
Добавление сетевых файловых систем
- Ceph
- GlusterFS
- ...