Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

состав стенда


srv1.brest0.local - ald, opennebula
ip 192.168.44.99

node1.brest0.local
ip 192.168.44.101
ipmi ip 192.168.44.11 (admin:12345678)


node2.brest0.local
ip 192.168.44.102
ipmi ip 192.168.44.9 (admin:12345678)


stor1.brest0.local
ip 192.168.44.110


1.srv1 - настройка фронтальной машины

1.1 подготовка к развертыванию БРЕСТ
1.1.1. настройка сети

на всех узлах OpenNebula необходимо создать мост с одинаковым именем. в данном примере используется имя br0, настройка осуществляется через редактирование /etc/network/interfaces. однако, можно использовать network-manager

установить пакет bridge-utils

IP. сразу настраиваем bridge для nebula. /etc/network/interfaces:

auto br0 
iface br0 inet static
bridge_ports eth0
  address <ip>
  netmask <mask>

DNS/hosts записи:

192.168.44.99 srv1.brest0.local srv1
192.168.44.101 node1.brest0.local node1
192.168.44.102 node2.brest0.local node2
192.168.44.110 stor1.brest0.local stor1


в случае редактирования файла hosts закомментировать строку:

127.0.1.1   <hostname>
1.1.2. настройка сервера NTP

 в /etc/ntp.conf закомментировать строки:

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst

и добавить в следующие строки:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

(есть мнение наших  разрабов что лучше ставить stratum как можно меньше, например 2)

restrict 192.168.44.0 mask 255.255.255.0 nomodify notrap

включить и рестартовать сервис ntp:

sudo systemctl enable ntp
sudo systemctl restart ntp

проверить работоспособность NTP:

ntpq -p



1.1.3. ALD-сервер
sudo apt install ald-server-common

при возникновении сбоев старта служб kerberos (может проявляеться при установке на SSD) добавить в krb5-krd.service строку

Restart=on-abnormal

добавить группы:

disk, kvm, libvirt, libvirt-admin, libvirt-qemu, astra-admin, astra-console

в строке: ALLOWED_LOCAL_GROUPS файла /etc/ald/ald.conf

Далее инициализировать домен командой:

sudo ald-init init

1.1.4. Postgresql
Установить СУБД postgresql-9.6:
sudo apt install postgresql-9.6

зайти в интерфейс управления psql

sudo -u postgres psql

Создать БД "onedb" командой:

# create database onedb;

создать пользователя postgres с паролем postgres:

# alter user postgres password 'postgres';

Выйти из интерфейса управления psql:

# \q


1.1.5. повышение уровня целостности до 127

в файле /etc/default/grub отредактировать сроку:

GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"

Присвоить пользователю максимальный уровень целостности:

sudo pdpl-user -i 127 <user>

Обновить  GRUB:

sudo update-grub

перезагрузиться

1.2. развертывание БРЕСТ (opennebula)
1.2.1. установка
sudo apt install brestcloud

перезагрузиться


1.2.2. настройка opennebula

остановить службы OpenNebula:

sudo systemctl stop opennebula
sudo systemctl stop unicorn-opennebula

в конфигурационном файле /etc/one/oned.conf в секции DB закомментировать строку sqlite и раскоментировать строку pgsql, добавить указанные данные для авторизации postgresql;

DB = [ BACKEND = "sqlite" ]


# rbt: Sample configuration for Postgresql with default credentials
# DB = [ BACKEND = "pgsql",    
#        SERVER  = "localhost",
#        PORT    = 5432,      
#        USER    = "USERNAME",
#        PASSWD  = "PASSWORD",
#        DB_NAME = "DB_NAME" ]
# DB = [ BACKEND = "sqlite" ]
                             
# rbt: Sample configuration for Postgresql with default credentials
DB = [ BACKEND = "pgsql",     
        SERVER  = "localhost",
        PORT    = 5432,       
        USER    = "postgres",
        PASSWD  = "postgres",
        DB_NAME = "onedb" ]

удалить все файлы в /var/lib/one/.one кроме one_auth

запустить службы OpenNebula:

sudo systemctl start opennebula
sudo systemctl start unicorn-opennebula

сконфигугировать облако и создать пользователя:

sudo brestcloud-configure
sudo ald-libvirt-qemu-configure
При выполнении следующей команды На вопрос "Пользователь будет администратором (по умолчанию Нет)?" ответить "Да"
sudo brestuser create brestadmin


Перезагрузиться


1.2.3. войти в графику пользователем brestadmin. в firefox about:config для параметров

network.negotiate-auth.delegation-uris
network.negotiate-auth.trusted-uris

выставить значение "http://,https://"

перейти в интерфейс OpenNebula: http://srv1

В разделе "Storage" подраздела "Datastores" создать 2 датастора - 2х разных типов - system и images. 

в /var/lib/one/datastores появятся две директории с номерами >= 100

1.3 монтирование хранилища (делать после создания и форматирования iscsi-таргетов)
1.3.1 инициатор
Установить open-iscsi командой:
sudo apt install open-iscsi
cat /etc/iscsi/initiatorname.iscsi

прописать в /etc/iscsi/iscsid.conf :

node.startup = automatic

ID хоста потребуется при настройке доступа на таргете - для продолжения необходимо добавить ID в ACL таргета

sudo iscsiadm -m discovery -t st -p <stor1>
sudo iscsiadm -m node -l

проверить в /etc/iscsi/nodes/<id>/<ip>/default наличие строки

node.startup = automatic
1.3.3 настройка кластерной ФС ocfs2

установить пакет ФС:

sudo apt install ocfs2-tools

перезагрузиться

создать файл /etc/ocfs2/cluster.conf (в качестве образца необходимо взять фрагмент из /usr/share/doc/ocfs2/README.Debian и отредактировать, не делайте copy-paste из приведенного ниже фрагмента):

cluster:
        node_count = 3
        name = ocfs2

node:
        number = 1
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.101
        name = node1

node:
        number = 2
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.102
        name = node2

node:
        number = 3
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.99
        name = srv1

выполнить:

sudo dpkg-reconfigure ocfs2-tools

в запустившемся мастере установить автоматическую загрузку сервиса ocfs2, остальное оставить по-умолчанию. выполнить:

sudo systemctl restart o2cb

создать файловую систему на iscsi-томах <sdX1> и <sdX2>:

sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2 /dev/<sdX1>
sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2 /dev/<sdX2>
1.3.2 монтирование

определить ID подключенных iscsi-дисков:

lsblk
blkid

прописать монтирование в /etc/fstab

UUID=<id1> /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
UUID=<id2> /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
1.4 настройка беспарольного доступа SSH (делать после поднятия нод)
KEY=$(sudo cat /root/.ssh/id_rsa.pub)
ssh u@<node1> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""
ssh u@<node2> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""

2. stor1 - настройка хранилища (наполняется)

2.1. подготовка
2.1.1 настройка сети - IP адрес
2.1.2 разметка дисков

для работы opennebula нужны 2 раздела, которые будут экспортироваться с хранилища по iscsi.
выделить 2 неформатированных раздела, определить их имена в /dev/ (далее они - <sd1>, <sd2>)

2.2 iscsi
2.2.1 установить таргет и инициатор
sudo apt install targetcli-fb open-iscsi
2.2.2 перезагрузиться
2.2.3 настройка таргета в командном интерфейсе утилиты target-cli
sudo targetcli
ls
cd /backstores/block
create name=disk1 dev=/dev/<sd1>
create name=disk2 dev=/dev/<sd2>
ls /
cd /iscsi
create
ls /
/ saveconfig

на инициаторах (клиентах iscsi) необходимо посмотреть их идентификаторы (далее - <iscsi-id>). для этого на node1, node2, srv1 после установки патека open-iscsi (см. пункт 3.3.1) выполнить:

cat /etc/iscsi/initiatorname.iscsi

далее эти индификаторы прописать на таргете. на stor1 выполнить:

sudo targetcli
cd /iscsi/<scsi-id>/tpgt1/luns
create /backstores/block/disk1
create /backstores/block/disk2
cd /iscsi/<scsi-id>/tpgt1/acls
create <node-id1>
create <node-id2>
create <node-id3>
/ saveconfig

3. nodes - настройка узлов

3.1 подготовка
3.1.1. настройка сети

установить пакет bridge-utils

IP. сразу настраиваем bridge для nebula. /etc/network/interfaces:

auto br0 
iface br0 inet static
bridge_ports eth0
address <ip>
netmask <mask>

DNS-записи:

192.168.44.99 srv1.brest0.local srv1
192.168.44.101 node1.brest0.local node1
192.168.44.102 node2.brest0.local node2
192.168.44.110 stor2.brest0.local stor1

в случае редактирования файла hosts закомментировать строку:

127.0.1.1   <hostname>
3.1.2. настройка NTP

 в /etc/ntp.conf закомментировать строки:

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
......

и добавить:

server srv1

включить и рестартовать сервис ntp:

sudo systemctl enable ntp
sudo systemctl restart ntp

проверить NTP:

ntpq -p
3.1.3. ALD ввод в домен
sudo apt install ald-client-common
sudo ald-client join
3.1.4 повышение уровня целостности до 127

в файле /etc/default/grub отредактировать сроку:

GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"
sudo pdpl-user -i 127 <user>
sudo update-grub

перезагрузиться

3.2 развертывание ноды
3.2.1 установка
sudo apt install ald-libvirt-qemu opennebula-node ipmitool

перезагрузиться

sudo ald-libvirt-qemu-configure
3.3 монтирование хранилища (делать после создания и форматирования iscsi-таргетов)
3.3.1 инициатор
sudo apt install open-iscsi

перезагрузиться

прописать в /etc/iscsi/iscsid.conf :

node.startup = automatic

ID хоста потребуется при настройке доступа на таргете - для продолжения необходимо добавить ID в ACL таргета

sudo iscsiadm -m discovery -t st -p <stor1>
sudo iscsiadm -m node -l

проверить в /etc/iscsi/nodes/<id>/<ip>/default наличие строки

node.startup = automatic
3.3.2 конфигурирование кластерной ФС ocfs2

установить пакет ФС:

sudo apt install ocfs2-tools

перезагрузиться

создать файл /etc/ocfs2/cluster.conf (скопировать с другого хоста, где он уже создан):

    cluster:
        node_count = 3
        name = ocfs2
node:
        number = 1
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.101
        name = node1
node:
        number = 2
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.102
        name = node2
node:
        number = 3
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.99
        name = srv1

выполнить:

sudo dpkg-reconfigure ocfs2-tool

в запустившемся мастере установить автоматическую загрузку сервиса ocfs2, остальное оставить по-умолчанию. далее перезапустить сервис

sudo systemctl restart o2cb
3.3.3 монтирование

определить ID подключенных iscsi-дисков:

lsblk
blkid

создать пути /var/lib/one/datastores/100, /var/lib/one/datastores/101 для монтируемых iscsi-дисков

прописать монтирование в /etc/fstab

UUID=<id1> /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
UUID=<id2> /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
3.4 настройка беспарольного доступа SSH (делать после поднятия нод)
KEY=$(sudo cat /root/.ssh/id_rsa.pub)
ssh u@<srv1> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""
ssh u@<node2> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""

4. создание и управление виртуальными машинами (раздел в начальной стадии наполнения)

залогиниться как brestadmin в графику, открыть http://srv1 в браузере, залогиниться в интерфейс opennebula

4.1 хранилища - datastores
4.1.1 создать image - образ жесткого диска ВМ
4.1.2 создать image - загрузить ISO-образ для установки
4.2 виртуальная сеть
4.2.1 простое мостовое соединение виртуальной машины к сетевому адаптеру хоста

создать виртуальную сеть, режим bridge

добавить пул MAC-адресов (просто указать количество)

4.3 создание шаблона ВМ
4.4 создание ВМ на основе шаблона


  • Нет меток