OpenNebula: различия между версиями

Материал из ALT Linux Wiki
 
(не показана 21 промежуточная версия 3 участников)
Строка 1: Строка 1:
= Opennebula =
{{Stub}}
OpenNebula - это платформа облачных вычислений для управления разнородными инфраструктурами распределенных центров обработки данных. Платформа OpenNebula управляет виртуальной инфраструктурой центра обработки данных для создания частных, общедоступных и гибридных реализаций инфраструктуры как службы.
{{Attention|В разработке! Статья не закончена! Инструкции неполные!}}
__NOTOC__
 
== OpenNebula ==
OpenNebula это платформа облачных вычислений для управления разнородными инфраструктурами распределенных центров обработки данных. Платформа OpenNebula управляет виртуальной инфраструктурой центра обработки данных для создания частных, общедоступных и гибридных реализаций инфраструктуры как службы.
== Архитектура ==
== Архитектура ==
Облачная архитектура определяется 3-мя компонентами: хранилищем данных, сетью и системой виртуализации.
Облачная архитектура определяется 3-мя элементами: хранилищем данных, сетью и системой виртуализации.
 
OpenNebula состоит из следующих компонентов:
* Сервер управления (Front-end) — на нём выполняются сервисы OpenNebula.
* Серверы с виртуальными машинами.
* Хранилище данных — содержит образы виртуальных машин.
* Физическая сеть — обеспечивает связь между хранилищем данных, серверами с виртуальными машинами, поддерживает VLAN-ы для виртуальных машин, а также управление сервисами OpenNebula.
 
== Планирование ресурсов ==
 
===== Минимальные требования к серверу управления =====
 
{| class="wikitable"
|-
! Ресурс !! Минимальное значение
|-
| Оперативная память || 2ГБ
|-
| CPU || 1 CPU (2 ядра)
|-
| Диск || 100ГБ
|-
| Сеть || 2 интерфейса
|}
 
Максимальное количество серверов, управляемых одним front-end-ом, зависит от инфраструктуры, особенно от производительности хранилища. Обычно рекомендуется не управлять более чем 500-ми серверами из одной точки, хотя существуют примеры с более чем 1000 серверами.


OpenNebula состоит из:
===== Сервера виртуализации =====
* Front-end - на нём выполняются сервисы OpenNebula.
* 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ГБ на гипервизор).
* Хранилища данных - содержит образы виртуальных машин.
 
* Физической сети - обеспечивает связь между хранилищем данных, серверами с виртуальными машинами, поддерживает VLAN-ы для виртуальных машин, а также управление сервисами OpenNebula.
===== Хранилище данных =====
OpenNebula работает с двумя видами данных в хранилище: образцами виртуальных машин и образами (дисками) самих ВМ.
Планирование хранилища - очень важная задача, т.к. от него зависит производительность облака. Например, при использовании Ceph для среднего по размеру облака, необходимо взять как минимум 3 сервера в следующей конфигурации: 5x1ТБ дисков, 16ГБ памяти, 2 CPU с 4-мя ядрами на каждом и 2 сетевые карты (минимум). 
 
===== Сеть =====
Сетевая инфраструктура должна быть спланирована так, чтобы обеспечить высокую надёжность и пропускную способность. Рекомендуется использовать 2 сетевых интерфейса на сервере управления и по 4 на каждом сервере виртуализации (публичный, внутренний, для управления и для связи с хранилищем).


== Установка ==
== Установка ==
Установить OpenNebula можно следующей командой:
 
: <code># apt-get install opennebula</code>
==== Сервер управления ====
 
Установить '''''сервер управления''''' OpenNebula можно следующей командой:
<source lang="text" highlight="1"># apt-get install opennebula-server opennebula-common gem-opennebula-cli opennebula-flow opennebula-sunstone opennebula-gate gem-http-cookie</source>
 
После успешной установки необходимо обновить зависимости пакетов, выполнив команду:
<source lang="text" highlight="1"># apt-get update && apt-get dist-upgrade</source>
 
{{todo|Установка кластера высокой доступности для снижения простоев основных сервисов OpenNebula}}
 
Установка MySQL (MariaDB) для хранения конфигурации (на '''''сервере управления'''''):
<source lang="text" highlight="1-4"># apt-get install mariadb
# systemctl enable --now mariadb.service
# mysql_secure_installation
# mysql -u root </source>
<syntaxhighlight lang="MySQL">
mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '<thepassword>';
mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
</syntaxhighlight>
 
Перед запуском сервера OpenNebula в первый раз необходимо настроить параметры доступа к базе данных в конфигурационном файле {{path|/etc/one/oned.conf}}:
 
<syntaxhighlight lang="text">
DB = [ backend = "mysql",
      server  = "localhost",
      port    = 0,
      user    = "oneadmin",
      passwd  = "<thepassword>",
      db_name = "opennebula" ]
</syntaxhighlight>
 
{{todo|Периодические задания для чистки БД.}}
 
==== Проверка работы сервера управления ====
 
Для проверки работоспособности сервера управления необходимо выполнить следующую команду (от имени пользователя oneadmin):
 
<source lang="text" highlight="1">
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
</source>
 
==== Проксирование запросов к серверу Sunstone ====
 
Для соединения с веб-интерфейсом сервера управления желательно использовать протокол SSL, для чего необходимо установить дополнительный прокси, а сервер управления настроить на прослушивание только локального адреса 127.0.0.1:9869. Пример настройки HTTP сервера Nginx:
 
<source lang="text" highlight="1"># apt-get install nginx</source>
 
В файле конфигурации виртуального сервера {{path|/etc/nginx/sites-enabled/sampleserver.org}}:
 
<syntaxhighlight lang="text">
#### 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;
        }
}
</syntaxhighlight>
 
Изменения в файле конфигурации {{path|/etc/one/sunstone-server.conf}}:
<syntaxhighlight lang="text">
:host: 127.0.0.1
:port: 9869
</syntaxhighlight>
 
==== Сервер виртуализации ====
 
Установка '''''серверов виртуализации''''' (для системы виртуализации KVM):
<source lang="text" highlight="1-2"># apt-get install opennebula-node-kvm
# systemctl enable --now libvirtd</source>
 
Ключи для доступа по SSH
 
==== Сеть ====
 
==== Хранилище данных ====
 
==== Добавления хоста ====
 
== Добавление сетевых файловых систем ==
* Ceph
* GlusterFS
* ...


[[Category:Виртуализация]]
[[Category:Виртуализация]]
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Виртуализация|category=Виртуализация|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=OpenNebula|category=OpenNebula|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=OpenNebula|category=OpenNebula|sortkey={{SUBPAGENAME}}}}

Текущая версия от 13:02, 28 июня 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Внимание! В разработке! Статья не закончена! Инструкции неполные!


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-common gem-opennebula-cli opennebula-flow opennebula-sunstone opennebula-gate gem-http-cookie

После успешной установки необходимо обновить зависимости пакетов, выполнив команду:

# apt-get update && apt-get dist-upgrade
TODO:
Установка кластера высокой доступности для снижения простоев основных сервисов OpenNebula


Установка MySQL (MariaDB) для хранения конфигурации (на сервере управления):

# apt-get install mariadb
# systemctl enable --now 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/one/oned.conf:

DB = [ backend = "mysql",
       server  = "localhost",
       port    = 0,
       user    = "oneadmin",
       passwd  = "<thepassword>",
       db_name = "opennebula" ]
TODO:
Периодические задания для чистки БД.


Проверка работы сервера управления

Для проверки работоспособности сервера управления необходимо выполнить следующую команду (от имени пользователя 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 --now libvirtd

Ключи для доступа по SSH

Сеть

Хранилище данных

Добавления хоста

Добавление сетевых файловых систем

  • Ceph
  • GlusterFS
  • ...