OpenNebula — различия между версиями
(→Установка) |
(→Проксирование запросов к серверу Sunstone) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 45: | Строка 45: | ||
== Установка == | == Установка == | ||
− | Установить ''сервер управления'' OpenNebula можно следующей командой: | + | |
− | : <code># apt-get install opennebula-server opennebula-flow opennebula-sunstone</code> | + | ==== Сервер управления ==== |
+ | |||
+ | Установить '''''сервер управления''''' OpenNebula можно следующей командой: | ||
+ | : <code># apt-get install opennebula-server opennebula-flow opennebula-sunstone opennebula-gate</code> | ||
{{todo|Установка кластера высокой доступности для снижения простоев основных сервисов OpenNebula}} | {{todo|Установка кластера высокой доступности для снижения простоев основных сервисов OpenNebula}} | ||
− | Установка MySQL (MariaDB) для хранения конфигурации (на ''сервере управления''): | + | Установка MySQL (MariaDB) для хранения конфигурации (на '''''сервере управления'''''): |
: <code># apt-get install mariadb</code> | : <code># apt-get install mariadb</code> | ||
: <code># systemctl enable mariadb.service; systemctl start mariadb.service</code> | : <code># systemctl enable mariadb.service; systemctl start mariadb.service</code> | ||
: <code># mysql_secure_installation</code> | : <code># mysql_secure_installation</code> | ||
+ | : <code># mysql -u root </code> | ||
+ | : <syntaxhighlight lang="MySQL"> | ||
+ | mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '<thepassword>'; | ||
+ | mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Перед запуском сервера OpenNebula в первый раз необходимо настроить параметры доступа к базе данных в конфигурационном файле /etc/oned.conf: | ||
+ | |||
+ | : <syntaxhighlight> | ||
+ | DB = [ backend = "mysql", | ||
+ | server = "localhost", | ||
+ | port = 0, | ||
+ | user = "oneadmin", | ||
+ | passwd = "<thepassword>", | ||
+ | db_name = "opennebula" ] | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {{todo|Периодические задания для чистки БД.}} | ||
+ | |||
+ | ==== Проверка работы сервера управления ==== | ||
+ | |||
+ | Для проверки работоспособности сервера управления необходимо выполнить следующую команду (от имени пользователя oneadmin): | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | oneadmin$ oneuser show | ||
+ | USER 0 INFORMATION | ||
+ | ID : 0 | ||
+ | NAME : oneadmin | ||
+ | GROUP : oneadmin | ||
+ | PASSWORD : 67aedfae4124dd409035f32ea2f25fgeae6 | ||
+ | AUTH_DRIVER : core | ||
+ | ENABLED : Yes | ||
+ | |||
+ | USER TEMPLATE | ||
+ | TOKEN_PASSWORD="ec21d27e247fedhasabcb08b8e0a4ca3c" | ||
+ | |||
+ | RESOURCE USAGE & QUOTAS | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Проксирование запросов к серверу Sunstone ==== | ||
+ | |||
+ | Для соединения с веб-интерфейсом сервера управления желательно использовать протокол SSL, для чего необходимо установить дополнительный прокси, а сервер управления настроить на прослушивание только локального адреса 127.0.0.1:9869. Пример настройки HTTP сервера Nginx: | ||
+ | |||
+ | : <code># apt-get install nginx</code> | ||
+ | |||
+ | В файле конфигурации виртуального сервера /etc/nginx/sites-enabled/sampleserver.org: | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | #### OpenNebula Sunstone upstream | ||
+ | upstream sunstone { | ||
+ | server 127.0.0.1:9869; | ||
+ | } | ||
+ | |||
+ | #### sampleserver.org HTTP virtual host | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name sampleserver.org; | ||
− | Установка ''серверов виртуализации'' (для системы виртуализации KVM): | + | ### Permanent redirect to HTTPS (optional) |
+ | return 301 https://$server_name:8443; | ||
+ | } | ||
+ | |||
+ | #### sampleserver.org HTTPS virtual host | ||
+ | server { | ||
+ | listen 8443; | ||
+ | server_name sampleserver.org; | ||
+ | |||
+ | ### SSL Parameters | ||
+ | ssl on; | ||
+ | ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; | ||
+ | ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; | ||
+ | |||
+ | ### Proxy requests to upstream | ||
+ | location / { | ||
+ | proxy_pass http://sunstone; | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Изменения в файле конфигурации /etc/one/sunstone-server.conf: | ||
+ | <syntaxhighlight> | ||
+ | :host: 127.0.0.1 | ||
+ | :port: 9869 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== Сервер виртуализации ==== | ||
+ | |||
+ | Установка '''''серверов виртуализации''''' (для системы виртуализации KVM): | ||
: <code># apt-get install opennebula-node-kvm</code> | : <code># apt-get install opennebula-node-kvm</code> | ||
: <code># systemctl enable libvirtd; systemctl start libvirtd</code> | : <code># systemctl enable libvirtd; systemctl start libvirtd</code> | ||
+ | |||
+ | Ключи для доступа по SSH | ||
+ | |||
+ | ==== Сеть ==== | ||
+ | |||
+ | ==== Хранилище данных ==== | ||
+ | |||
+ | ==== Добавления хоста ==== | ||
== Добавление сетевых файловых систем == | == Добавление сетевых файловых систем == |
Текущая версия на 15:37, 20 августа 2019
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 opennebula-gate
Установка 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" ]
Проверка работы сервера управления[править]
Для проверки работоспособности сервера управления необходимо выполнить следующую команду (от имени пользователя oneadmin):
oneadmin$ oneuser show
USER 0 INFORMATION
ID : 0
NAME : oneadmin
GROUP : oneadmin
PASSWORD : 67aedfae4124dd409035f32ea2f25fgeae6
AUTH_DRIVER : core
ENABLED : Yes
USER TEMPLATE
TOKEN_PASSWORD="ec21d27e247fedhasabcb08b8e0a4ca3c"
RESOURCE USAGE & QUOTAS
Проксирование запросов к серверу Sunstone[править]
Для соединения с веб-интерфейсом сервера управления желательно использовать протокол SSL, для чего необходимо установить дополнительный прокси, а сервер управления настроить на прослушивание только локального адреса 127.0.0.1:9869. Пример настройки HTTP сервера Nginx:
# apt-get install nginx
В файле конфигурации виртуального сервера /etc/nginx/sites-enabled/sampleserver.org:
#### OpenNebula Sunstone upstream
upstream sunstone {
server 127.0.0.1:9869;
}
#### sampleserver.org HTTP virtual host
server {
listen 80;
server_name sampleserver.org;
### Permanent redirect to HTTPS (optional)
return 301 https://$server_name:8443;
}
#### sampleserver.org HTTPS virtual host
server {
listen 8443;
server_name sampleserver.org;
### SSL Parameters
ssl on;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
### Proxy requests to upstream
location / {
proxy_pass http://sunstone;
}
}
Изменения в файле конфигурации /etc/one/sunstone-server.conf:
:host: 127.0.0.1
:port: 9869
Сервер виртуализации[править]
Установка серверов виртуализации (для системы виртуализации KVM):
# apt-get install opennebula-node-kvm
# systemctl enable libvirtd; systemctl start libvirtd
Ключи для доступа по SSH
Сеть[править]
Хранилище данных[править]
Добавления хоста[править]
Добавление сетевых файловых систем[править]
- Ceph
- GlusterFS
- ...