Download PDF
Download page Создание и настройка хранилищ с использованием кластерной файловой системы OCFS2.
Создание и настройка хранилищ с использованием кластерной файловой системы OCFS2
Оглавление
В данном примере тестовый стенда ПК СВ, функционирующий в сервисном режиме, будет расширен за счет дополнительного узла виртуализации.
Для расширенного тестового стенда будут созданы хранилище образов и системное хранилище на базе файловой технология хранения. Созданные хранилища будут размещены на сетевых блочных устройствах, подключаемых по протоколу iSCSI (программная СХД). При этом сетевые блочные устройства будут размечены с использованием кластерной файловой системы OCFS2.
Описание тестовой среды
В данном примере в качестве тестовой среды выступает система виртуализации QEMU/KVM в ОС СН Astra Linux Special Edition 1.7.2.
При этом описываемые действия по созданию и настройке гостевых машин выполняются в программе Virt-manager версии 2.2.1-3.
Для эмуляции дополнительного узла виртуализации будет развернута гостевая машина (с наименованием node1)
со следующими параметрами:
- количество процессоров: 4;
- размер памяти (ОЗУ): 4 ГБ;
- диск для размещения файлов ОС Astra Linux объемом 12 ГБ.
Для организации программной системы хранения данных будет развернута гостевая машина (с наименованием iscsi-target
) со следующими параметрами:
- количество процессоров: 1;
- размер памяти (ОЗУ): 2 ГБ;
- один диск для размещения файлов ОС Astra Linux объемом 12 ГБ;
- два дополнительных диска для эмуляции сетевых блочных устройств объемом 24 ГБ.
При этом вычислительные ресурсы тестового стенда должны обеспечить одновременное функционирование гостевой машины виртуализации, на которой установлены программные компоненты ПК СВ (далее по тексту – фронтальной машины), гостевой машины node1
и гостевой машины iscsi-target
.
В ОС гостевых машин будут подключены интернет-репозитории Astra Linux. Поэтому необходимо, чтобы в хостовой ОС был доступ к сети Интернет.
В этом примере в качестве установочного носителя используется файл образа технологического установочного диска 1.7.2-11.08.2022_15.28.iso
(установочный диск Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с интегрированным обновлением БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2)).
Кроме того, потребуется файл образа установочного диска ПК СВ «Брест».
1. Создание и настройка дополнительного узла виртуализации
Гостевой машине, на которой будет установлена и настроена служба узла виртуализации, будет присвоен IP-адрес: 172.16.1.51 и сетевое имя node1
.
Значение IP-адреса гостевой машины node1
выбрано исходя из диапазона, установленного при создании виртуальной сети в Virt-Manager (172.16.1.0 /24) – см. ПК СВ «Брест» в пределах одного сервера (сервисный режим).
Для установки оперативного обновления 1.7.2.UU.1 (БЮЛЛЕТЕНЬ № 2022-1011SE17MD) будет использован интернет-репозиторий Astra Linux. Поэтому необходимо, чтобы в хостовой ОС был доступ к сети Интернет.
- Создать гостевую машину
node1
. Действия по созданию гостевой машины аналогичны действиям, описанным в статье Создание гостевой машины (за исключением пункта установки дополнительного оборудования — канал SPICE добавлять не нужно). При этом необходимо установить следующие параметры гостевой машины:- количество процессоров: 4;
- размер памяти (ОЗУ): 4 ГБ;
объем диска для размещения ОС: 12 ГБ.
В гостевой машине
node1
установить операционную систему специального назначения "Astra Linux Special Edition" РУСБ.10015-01. При этом следует учитывать следующие особенности установки:- на странице Установка базовой системы выбрать для установки ядро
linux-5.15-generic
; - на странице Выбор программного обеспечения выбрать пункт Средства удаленного подключения SSH;
- на странице Дополнительные настройки ОС выбрать Базовый уровень защищенности "Орел";
- на странице Дополнительные настройки ОС выбрать пункт Запрет автонастройки сети.
- на странице Установка базовой системы выбрать для установки ядро
- Подключить образ установочного носителя к гостевой машине
node1
(см. Подключение образа установочного носителя к гостевой машине). Настроить сетевое соединение:
установить пакет
bridge-utils
командой:sudo apt install bridge-utilsв файл
/etc/network/interfaces
добавить следующие строки:auto eth0 iface eth0 inet manual auto br0 iface br0 inet static bridge_ports eth0 address 172.16.1.51 netmask 255.255.255.0 gateway 172.16.1.1
CODEзапустить в работу сетевой интерфейс командой:
sudo ifup br0файл
/etc/hosts
привести к следующему виду:127.0.0.1 localhost 172.16.1.51 node1
CODEзадать сетевое имя гостевой машине, выполнив команду:
sudo hostnamectl set-hostname node1Сообщение об ошибке вида:sudo: unable to resolve host <предыдущее_имя_гостевой_машины>: В соединении отказано
CODEможно игнорировать (перед тем как выполнить команду инструмент командной строки
sudo
обращается к файлу/etc/hosts
чтобы определить IP-адрес используя предыдущее имя гостевой машины).добавить в автозапуск и запустить службу
ssh
командой:sudo systemctl enable ssh --now
Далее можно подключиться к гостевой машине из хостовой ОС по SSH.Создать файл
/etc/resolv.conf
и указать IP-адрес общедоступного DNS-сервера, например, 77.88.8.8:search auto nameserver 77.88.8.8
CODEУдостовериться в том, что интернет-репозиторий Astra Linux доступен по доменному имени, выполнив команду:
ping dl.astralinux.ruпример вывода после выполнения команды:PING dl.astralinux.ru (51.250.6.116) 56(84) bytes of data. 64 bytes from 51.250.6.116 (51.250.6.116): icmp_seq=1 ttl=57 time=6.91 ms
CODE- Настроить доступ к базовому репозиторию оперативного обновления 1.7.2.UU.1 (БЮЛЛЕТЕНЬ № 2022-1011SE17MD):
в файле
/etc/apt/sources.list
закомментировать (установить символ "#" в начале строки) строку, в которой в качестве источника пакетов указан оптический установочный диск:deb cdrom:[<наименование_установочного_диска>]/ 1.7_x86-64 contrib main non-free
CODEв файле
/etc/apt/sources.list
добавить строку вида:deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.2/uu/1/repository-base/ 1.7_x86-64 main contrib non-free
CODEвыполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt update
Установить пакет
astra-update
:sudo apt install astra-updateПрименить оперативное обновление командой:
sudo astra-update -A -r -TСоздать локальный репозиторий, используя установочный диск ПК СВ «Брест»:
- подключить к гостевой машине файл образа установочного диска ПК СВ «Брест» (см. Подключение образа установочного носителя к гостевой машине);
создать каталог для размещения репозитория командой:
sudo mkdir -p /srv/repo/brestпримонтировать установочный диск ПК СВ «Брест» командой:
sudo mount /dev/sr0 /media/cdromскопировать файлы из установочного диска ПК СВ «Брест» в каталог репозитория командой:
sudo cp -a /media/cdrom/* /srv/repo/brestотмонтировать установочный диск ПК СВ «Брест» командой:
sudo umount /media/cdromподключить в качестве локального репозитория каталог
/srv/repo/brest/
, для этого в файле/etc/apt/sources.list
добавить строку вида:deb file:/srv/repo/brest/ brest main non-free
CODEвыполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt update
Установить пакет
opennebula-node-kvm
командой:sudo apt install opennebula-node-kvmВ открывшемся окне ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ нажать кнопку [Принять].- Перезагрузить гостевую машину
node1
. На фронтальной машине в файл
/etc/hosts
добавить строку вида:172.16.1.51 node1
CODE- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Инфраструктура — Узлы и на открывшейся странице Узлы нажать на кнопку +.
- На открывшейся странице Создать узел:
- в поле Имя хоста указать сетевое имя гостевой машины (
node1
); - в полях Логин администратора и Пароль администратора указать аутентификационные параметры локального администратора гостевой машины
node1
(которые были заданы во время выполнения действий по установке ОС).
- в поле Имя хоста указать сетевое имя гостевой машины (
- На странице Создать узел нажать на кнопку Создать.
- На открывшейся странице Узлы появится запись о зарегистрированном узле. Необходимо дождаться пока в столбце Статус для созданного на предыдущем шаге Узла значение Инициализация не изменится на ВКЛ . Для обновления информации, отображаемой на странице, можно воспользоваться кнопкой Обновить.
2. Создание и настройка программной СХД (iSCSI-target)
Гостевой машине, предоставляющей блочные данные по протоколу iSCSI, будет присвоен IP-адрес: 172.16.1.41 и сетевое имя iscsi-target
.
Значение IP-адреса гостевой машины iscsi-target
выбрано исходя из диапазона, установленного при создании виртуальной сети в Virt-Manager (172.16.1.0 /24) – см. ПК СВ «Брест» в пределах одного сервера (сервисный режим) .
- Создать гостевую машину
iscsi-target
. Действия по созданию гостевой машины аналогичны действиям, описанным в статье Создание гостевой машины (за исключением пункта установки дополнительного оборудования — канал SPICE добавлять не нужно). При этом необходимо установить следующие параметры гостевой машины:- количество процессоров: 1;
- размер памяти (ОЗУ): 2 ГБ;
объем диска для размещения ОС: 12 ГБ.
Диски для эмуляции сетевых блочных устройств будет добавлены позже.
Для организации системы хранения в ПК СВ «Брест» требуется выделение как минимум двух сетевых блочных устройств.
В гостевой машине
iscsi-target
установить операционную систему специального назначения "Astra Linux Special Edition" РУСБ.10015-01. При этом следует учитывать следующие особенности установки:- на странице Установка базовой системы выбрать для установки ядро
linux-5.15-generic
; - на странице Выбор программного обеспечения выбрать пункт Средства удаленного подключения SSH;
- на странице Дополнительные настройки ОС выбрать Базовый уровень защищенности "Орел";
- на странице Дополнительные настройки ОС выбрать пункт Запрет автонастройки сети.
- на странице Установка базовой системы выбрать для установки ядро
- Настроить сетевое соединение:
в файл
/etc/network/interfaces
добавить следующие строки:auto eth0 iface eth0 inet static address 172.16.1.41 netmask 255.255.255.0 gateway 172.16.1.1
CODEзапустить в работу сетевой интерфейс командой:
sudo ifup eth0Далее можно подключиться к гостевой машине из хостовой ОС по SSH.файл
/etc/hosts
привести к следующему виду:127.0.0.1 localhost 172.16.1.41 iscsi-target
CODEзадать сетевое имя гостевой машине, выполнив команду:
sudo hostnamectl set-hostname iscsi-targetСообщение об ошибке вида:sudo: unable to resolve host <предыдущее_имя_гостевой_машины>: В соединении отказано
CODEможно игнорировать (перед тем как выполнить команду инструмент командной строки
sudo
обращается к файлу/etc/hosts
чтобы определить IP-адрес используя предыдущее имя гостевой машины).
- Выключить гостевую машину
iscsi-target
. - В окне программы Virt-manager на панели инструментов окна гостевой машины
iscsi-target
нажать на кнопку [Показать виртуальное оборудование]. - Подключить к гостевой машине
iscsi-target
первый диск для эмуляции сетевого блочного устройства:- в окне параметров гостевой машины нажать на кнопку [Добавить оборудование] в левом нижнем углу;
- в открывшемся окне Добавление виртуального оборудования:
в левом поле выбрать пункт Хранилище;
в правом поле установить флаг Создать образ диска для виртуальной машины;
- задать размер диска равным 24 ГБ;
нажать на кнопку [Готово].
- в окне параметров гостевой машины нажать на кнопку [Добавить оборудование] в левом нижнем углу;
- Аналогичным образом подключить к гостевой машине
iscsi-target
второй диск для эмуляции сетевого блочного устройства. - Подключить образ установочного носителя к гостевой машине
iscsi-target
(см. Подключение образа установочного носителя к гостевой машине). - Включить гостевую машину
iscsi-target
. В ОС гостевой машины
iscsi-target
вывести перечень блочных устройств:lsblkПример вывода после выполнения команды:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3,9G 0 rom vda 252:0 0 12G 0 disk ├─vda1 252:1 0 11G 0 part / ├─vda2 252:2 0 1K 0 part └─vda5 252:5 0 975M 0 part [SWAP] vdb 252:16 0 24G 0 disk vdc 252:32 0 24G 0 disk
CODEгде:
vda
– диск для размещения файлов ОС;vdb
иvdc
– диски для эмуляции сетевых блочных устройств.
В ОС гостевой машины
iscsi-target
установить консоль управления Linux-IO Target (пакетtargetcli-fb)
:sudo apt install targetcli-fbВойти в консоль управления Linux-IO Target командой:
sudo targetcliВ консоли управления вывести текущую конфигурацию командой:
lsПример вывода после выполнения команды:o- / ............................................ [...] o- backstores ................................. [...] | o- block ..................... [Storage Objects: 0] | o- fileio .................... [Storage Objects: 0] | o- pscsi ..................... [Storage Objects: 0] | o- ramdisk ................... [Storage Objects: 0] o- iscsi ............................... [Targets: 0] o- loopback ............................ [Targets: 0] o- vhost ............................... [Targets: 0] o- xen-pvscsi .......................... [Targets: 0]
CODEСоздать (зарегистрировать) блочное устройство
/dev/vdb
в разделе/backstores/block
, присвоив устройству наименование, например,storage01
:/backstores/block create storage01 /dev/vdbПример вывода после выполнения команды:Created block storage object storage01 using /dev/vdb.
CODEПроверить результат командой
ls
. Пример вывода после выполнения команды:/> ls o- / ............................................................... [...] o- backstores .................................................... [...] | o- block ........................................ [Storage Objects: 1] | | o- storage01 ........... [/dev/vdb (24.0GiB) write-thru deactivated] | | o- alua ......................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ............. [ALUA state: Active/optimized] | o- fileio ....................................... [Storage Objects: 0] | o- pscsi ........................................ [Storage Objects: 0] | o- ramdisk ...................................... [Storage Objects: 0] o- iscsi .................................................. [Targets: 0] o- loopback ............................................... [Targets: 0] o- vhost .................................................. [Targets: 0] o- xen-pvscsi ............................................. [Targets: 0]
CODEСоздать цель (
target
) в разделе/iscsi
командой:/iscsi createПример вывода после выполнения команды:Created target iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260.
CODEПроверить результат командой
ls
. Пример вывода после выполнения команды:/> ls o- / ........................................................................... [...] o- backstores ................................................................ [...] | o- block .................................................... [Storage Objects: 1] | | o- storage01 ........................[/dev/vdb (24.0GiB) write-thru deactivated] | | o- alua ..................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ......................... [ALUA state: Active/optimized] | o- fileio ................................................... [Storage Objects: 0] | o- pscsi .................................................... [Storage Objects: 0] | o- ramdisk .................................................. [Storage Objects: 0] o- iscsi .............................................................. [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1 ...... [TPGs: 1] | o- tpg1 ................................................. [no-gen-acls, no-auth] | o- acls ............................................................ [ACLs: 0] | o- luns ............................................................ [LUNs: 0] | o- portals ...................................................... [Portals: 1] | o- 0.0.0.0:3260 ....................................................... [OK] o- loopback ........................................................... [Targets: 0] o- vhost .............................................................. [Targets: 0] o- xen-pvscsi ......................................................... [Targets: 0]
CODEСоздать LUN на основе блочного устройства, зарегистрированного в разделе
/backstores/block
/iscsi/<идентификатор_цели>/tpg1/luns/ create /backstores/block/<наименование_устройства>где:- <наименование_устройства> – в рассматриваемом примере имеет значение
"storage01"
(см. шаг 14); - <идентификатор_цели> – в рассматриваемом примере имеет значение
"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1"
(см. шаг 16).
Пример вывода после выполнения команды:
Created LUN 0
CODE- <наименование_устройства> – в рассматриваемом примере имеет значение
Проверить результат командой
ls
. Пример вывода после выполнения команды:/> ls o- / ........................................................................... [...] o- backstores ................................................................ [...] | o- block .................................................... [Storage Objects: 1] | | o- storage01 ........................[/dev/vdb (24.0GiB) write-thru deactivated] | | o- alua ..................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ......................... [ALUA state: Active/optimized] | o- fileio ................................................... [Storage Objects: 0] | o- pscsi .................................................... [Storage Objects: 0] | o- ramdisk .................................................. [Storage Objects: 0] o- iscsi .............................................................. [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1 ...... [TPGs: 1] | o- tpg1 ................................................. [no-gen-acls, no-auth] | o- acls ............................................................ [ACLs: 0] | o- luns ............................................................ [LUNs: 0] | | o- lun0 .................... [block/storage01 (/dev/vdb) (default_tg_pt_gp)] | o- portals ...................................................... [Portals: 1] | o- 0.0.0.0:3260 ....................................................... [OK] o- loopback ........................................................... [Targets: 0] o- vhost .............................................................. [Targets: 0] o- xen-pvscsi ......................................................... [Targets: 0]
CODE- В рассматриваемом примере контроль доступа не требуется, поэтому его можно отключить:
переместиться на ветку
/iscsi/<идентификатор_цели>/tpg1
:cd /iscsi/<идентификатор_цели>/tpg1где <идентификатор_цели> – в рассматриваемом примере имеет значение"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1"
(см. шаг 16).В консоли управления нажатие клавиши <Tab> автоматически дополняет текущую команду или путь к ветке дерева конфигурации, если возможен только один вариант.
отключить использования списков управления доступом (ACL) командой:
set attribute generate_node_acls=1Пример вывода после выполнения команды:Parameter generate_node_acls is now '1'.
CODEнастроить работу цели в demo-режиме (без аутентификации, видимым и доступным для всех) командой:
set attribute demo_mode_write_protect=0Пример вывода после выполнения команды:Parameter demo_mode_write_protect is now '0'.
CODE
- Повторить шаги 14 – 20 для блочного устройства
/dev/vdc
(при выполнении действий шага 14 присвоить устройству наименование, например,storage02
). Выполнить сохранение настроек:
/ saveconfigПример вывода после выполнения команды:Last 10 configs saved in /etc/rtslib-fb-target/backup. Configuration saved to /etc/rtslib-fb-target/saveconfig.json
CODEВыйти из консоли управления:
exit
В консоли управления Linux-IO Target, используемой в ПК СВ версии 3.2, введена система бэкапов конфигурации, и, в связи с этим, после перезагрузки сохраненная конфигурация не загружается автоматически.
На текущий момент после перезагрузки конфигурацию необходимо восстанавливать командой:
sudo targetcli restoreconfig
Пример вывода после выполнения команды:
Configuration restored from /etc/rtslib-fb-target/saveconfig.json
Для того чтобы автоматизировать восстановление конфигурации, необходимо выполнить действия, описанные ниже.
Создать службу
target
, сформировав unit-файл, например с помощью тестового редактораnano
, для этого выполнить команду:В открывшемся текстовом редакторе добавить следующие строки:sudo nano /lib/systemd/system/target.service
[Unit] Description=Restore LIO kernel target configuration Requires=sys-kernel-config.mount After=sys-kernel-config.mount network.target local-fs.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/targetctl restore ExecStop=/usr/bin/targetctl clear SyslogIdentifier=target [Install] WantedBy=multi-user.target
CODEПосле этого сохранить unit-файл и закрыть текстовый редактор.
Перезагрузить список служб командой:
sudo systemctl daemon-reloadДобавить службу
target
в автозагрузку командой:sudo systemctl enable targetПример вывода после выполнения команды:Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /lib/systemd/system/target.service.
CODEДля проверки следует перезагрузить гостевую машину
iscsi-target
и вывести информацию о состоянии службыtarget
:sudo systemctl status targetПример вывода после выполнения команды:● target.service - Restore LIO kernel target configuration Loaded: loaded (/lib/systemd/system/target.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2023-03-20 16:28:26 MSK; 9min ago Process: 577 ExecStart=/usr/bin/targetctl restore (code=exited, status=0/SUCCESS) Main PID: 577 (code=exited, status=0/SUCCESS)
CODE
3. Подключение сетевых блочных устройств к фронтальной машине (настройка iSCSI-initiator)
Действия, описанные в данном разделе, выполняются в ОС фронтальной машины.
Установить пакет
open-iscsi
:sudo apt install open-iscsiВ конфигурационном файле
/etc/iscsi/iscsid.conf
для параметраnode.startup
установить значениеautomatic:
node.startup = automatic
CODEЗапустить службу клиента (iSCSI-initiator):
sudo systemctl start iscsiВыполнить сканирование для поиска целей (iSCSI-target):
sudo iscsiadm -m discovery -t st -p 172.16.1.41где172.16.1.41
– IP-адрес гостевой машиныiscsi-target
.Пример вывода после успешного выполнения команды:
172.16.1.41:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1 172.16.1.41:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.85eebbd1f098
CODEПодключить найденные цели (iSCSI-target):
sudo iscsiadm -m node -lПример вывода после успешного выполнения команды:Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1, portal: 172.16.1.41,3260] (multiple) Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.85eebbd1f098, portal: 172.16.1.41,3260] (multiple) Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1, portal: 172.16.1.41,3260] successful. Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.85eebbd1f098, portal: 172.16.1.41,3260] successful.
CODEДля проверки выполнить команду:
lsblkПример вывода после выполнения команды:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 24G 0 disk sdb 8:16 0 24G 0 disk sr0 11:0 1 1024M 0 rom vda 252:0 0 64G 0 disk ├─vda1 252:1 0 63G 0 part / ├─vda2 252:2 0 1K 0 part └─vda5 252:5 0 975M 0 part [SWAP]
CODEгде в качестве локальных блочных устройств
sda
иsdb
выступают сетевые блочные устройства, предоставляемые программной СХД (гостевой машинойiscsi-target
).
4. Подключение сетевых блочных устройств к узлу виртуализации (настройка iSCSI-initiator)
В ОС гостевой машины node1
выполнить действия, описанные в разделе Подключение сетевых блочных устройств к фронтальной машине (настройка iSCSI-initiator).
5. Создание кластера OCFS2
Для того, чтобы обеспечить доступ фронтальной машины и узла виртуализации к одним и тем же сетевым блочным устройствам, будет использоваться кластерная файловая система OCFS2.
5.1. Настройки фронтальной машины
Установить пакеты кластерной файловой системы OCFS2:
sudo apt install ocfs2-toolsСоздать кластер с наименованием
ocfs2cluster
командой:sudo o2cb add-cluster ocfs2clusterВ результате выполнения команды будет создан файл конфигурации/etc/ocfs2/cluster.conf
.В файл конфигурации добавить описание сетевых параметров фронтальной машины и узла виртуализации (гостевой машины
node1
) командами:sudo o2cb add-node ocfs2cluster <сетевое_имя_фронтальной_машины> --ip 172.16.1.20
sudo o2cb add-node ocfs2cluster node1 --ip 172.16.1.51
Сетевые имена должны быть точно такими, какими они указаны в файлах
/etc/hostname
гостевых машин.Просмотреть итоговый файл конфигурации, например, с помощью команды:
cat /etc/ocfs2/cluster.confПример вывода после выполнения команды:cluster: heartbeat_mode = local node_count = 2 name = ocfs2cluster node: number = 0 cluster = ocfs2cluster ip_port = 7777 ip_address = 172.16.1.20 name = oneserver node: number = 1 cluster = ocfs2cluster ip_port = 7777 ip_address = 172.16.1.51 name = node1
CODEЗапустить мастер настройки кластера OCFS2 командой:
sudo dpkg-reconfigure ocfs2-toolsВ запустившемся мастере:- разрешить запускать кластер
OCFS2 (O2CB)
во время загрузки (нажать на кнопку [Да]); - задать имя кластера: ввести "ocfs2cluster" и нажать на кнопку [Ok];
- для остальных параметров выбрать значения, установленные по умолчанию.
- разрешить запускать кластер
Перезапустить службу
o2cb
командой:sudo systemctl restart o2cbУдостовериться в успешном запуске службы
o2cb
. Для этого просмотреть в журнале регистрации события, относящиеся к службе:sudo journalctl -u o2cbПример вывода после выполнения команды:мар 23 09:40:58 oneserver.brest.local systemd[1]: Starting Load o2cb Modules... мар 23 09:40:58 oneserver.brest.local o2cb[20018]: checking debugfs... мар 23 09:40:58 oneserver.brest.local o2cb[20018]: Loading stack plugin "o2cb": OK мар 23 09:40:58 oneserver.brest.local o2cb[20018]: Loading filesystem "ocfs2_dlmfs": OK мар 23 09:40:59 oneserver.brest.local o2cb[20018]: Creating directory '/dlm': OK мар 23 09:40:59 oneserver.brest.local o2cb[20018]: Mounting ocfs2_dlmfs filesystem at /dlm: OK мар 23 09:40:59 oneserver.brest.local o2cb[20018]: Setting cluster stack "o2cb": OK мар 23 09:40:59 oneserver.brest.local o2cb[20018]: Registering O2CB cluster "ocfs2cluster": OK мар 23 09:40:59 oneserver.brest.local o2cb[20018]: Setting O2CB cluster timeouts : OK мар 23 09:40:59 oneserver.brest.local o2hbmonitor[20070]: Starting мар 23 09:40:59 oneserver.brest.local systemd[1]: Started Load o2cb Modules.
CODE
5.2. Настройки узла виртуализации
Действия, описываемые в данном подразделе выполняются в ОС гостевой машины node1
.
Установить пакеты кластерной файловой системы OCFS2:
sudo apt install ocfs2-toolsСоздать кластер с наименованием
ocfs2cluster
командой:sudo o2cb add-cluster ocfs2clusterСкопировать файл конфигурации
/etc/ocfs2/cluster.conf
с фронтальной машины в локальный каталог/etc/ocfs2/
:sudo scp <локальный_администратор>@172.16.1.20:/etc/ocfs2/cluster.conf /etc/ocfs2/где <локальный_администратор> – имя локального администратора фронтальной машины.
В ходе выполнения команды необходимо ответить "yes" ("Да") и указать пароль локального администратора фронтальной машины.Просмотреть полученный файл конфигурации, например, с помощью команды:
cat /etc/ocfs2/cluster.confПример вывода после выполнения команды:cluster: heartbeat_mode = local node_count = 2 name = ocfs2cluster node: number = 0 cluster = ocfs2cluster ip_port = 7777 ip_address = 172.16.1.20 name = oneserver node: number = 1 cluster = ocfs2cluster ip_port = 7777 ip_address = 172.16.1.51 name = node1
CODEЗапустить мастер настройки кластера OCFS2 командой:
sudo dpkg-reconfigure ocfs2-toolsВ запустившемся мастере:- разрешить запускать кластер
OCFS2 (O2CB)
во время загрузки (нажать на кнопку [Да] ); - задать имя кластера: ввести "ocfs2cluster" и нажать на кнопку [Ok];
- для остальных параметров выбрать значения, установленные по умолчанию.
- разрешить запускать кластер
Перезапустить службу
o2cb
командой:sudo systemctl restart o2cbУдостовериться в успешном запуске службы
o2cb
. Для этого в журнале регистрации просмотреть события, относящиеся к службе, командой:sudo journalctl -u o2cbПример вывода после выполнения команды:мар 23 09:45:48 astra systemd[1]: Starting Load o2cb Modules... мар 23 09:45:48 astra o2cb[15281]: checking debugfs... мар 23 09:45:48 astra o2cb[15281]: Loading stack plugin "o2cb": OK мар 23 09:45:48 astra o2cb[15281]: Loading filesystem "ocfs2_dlmfs": OK мар 23 09:45:48 astra o2cb[15281]: Creating directory '/dlm': OK мар 23 09:45:48 astra o2cb[15281]: Mounting ocfs2_dlmfs filesystem at /dlm: OK мар 23 09:45:48 astra o2cb[15281]: Setting cluster stack "o2cb": OK мар 23 09:45:48 astra o2cb[15281]: Registering O2CB cluster "ocfs2cluster": OK мар 23 09:45:48 astra o2cb[15281]: Setting O2CB cluster timeouts : OK мар 23 09:45:48 astra o2hbmonitor[15329]: Starting мар 23 09:45:48 astra systemd[1]: Started Load o2cb Modules
CODE
6. Создание (регистрация) хранилищ в веб-интерфейсе ПК СВ
6.1. Создание системного хранилища
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Создать хранилище:
- в поле Название задать наименование хранилища;
- в выпадающем списке Тип хранилища выбрать значение Filesystem - qcow2 mode;
- установить флаг Система;
- нажать на кнопку [Создать].
- Дождаться когда на странице Хранилища для созданного хранилища в поле Статус будет установлено значение ON.
В представленном примере системному хранилищуfile-ds_system
присвоен идентификатор100
.
6.2. Создание хранилища образов
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Создать хранилище:
- в поле Название задать наименование хранилища;
- в выпадающем списке Тип хранилища выбрать значение Filesystem - qcow2 mode;
- установить флаг Образы;
- нажать на кнопку [Создать].
- Дождаться когда на странице Хранилища для созданного хранилища в поле Статус будет установлено значение ON.
В представленном примере хранилищу образовfile-ds_images
присвоен идентификатор101
.
7. Монтирование сетевых блочных устройств к каталогам хранилищ
Предварительно подключенные сетевые блочные устройства должны быть размечены с использованием кластерной файловой системы OCFS2.
Для этого в ОС фронтальной машины необходимо выполнить команды:
sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2cluster /dev/sda
sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2cluster /dev/sdb
7.1. Настройки фронтальной машины
Определить идентификаторы (UUID) сетевых блочных устройств командой:
sudo blkidПример вывода после выполнения команды:/dev/vda1: UUID="b5fd411a-4c96-491b-bfc0-b4e9e2670e9c" TYPE="ext4" PARTUUID="50741579-01" /dev/vda5: UUID="31daa40d-8e07-44cc-b851-d985f2121bb7" TYPE="swap" PARTUUID="50741579-05" /dev/sdb: UUID="3bd71b84-6463-42ec-8aff-106cafdae2e2" TYPE="ocfs2" /dev/sda: UUID="41ff6399-368e-4b81-bae4-bdfa4aedd45a" TYPE="ocfs2"
CODEВ файл
/etc/fstab
добавить следующие строки:UUID=41ff6399-368e-4b81-bae4-bdfa4aedd45a /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0 UUID=3bd71b84-6463-42ec-8aff-106cafdae2e2 /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
CODEтаким образом в разделе
sda
будет размещено системное хранилище, а в разделеsdb
– хранилище образов.Выполнить монтирование командой:
sudo mount -aРезультатом выполнения команды должен быть пустой вывод без ошибок.- Выполнить перезагрузку.
Назначить на каталог созданных хранилищ владельца
oneadmin
. Для этого последовательно выполнить команды:sudo chown oneadmin:oneadmin /var/lib/one/datastores/100
sudo chown oneadmin:oneadmin /var/lib/one/datastores/101
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища убедиться в том, что созданные хранилища имеют актуальный размер.
7.2. Настройки узла виртуализации
На узле виртуализации создать каталоги для созданных ранее хранилищ на базе файловой технология хранения. Для этого последовательно выполнить команды:
sudo mkdir /var/lib/one/datastores/100
sudo mkdir /var/lib/one/datastores/101
Определить идентификаторы (UUID) сетевых блочных устройств командой:
sudo blkidПример вывода после выполнения команды:/dev/vda1: UUID="43f857b0-8c35-403a-813e-a888c1ebe88a" TYPE="ext4" PARTUUID="30cbce44-01" /dev/vda5: UUID="097bdac9-ba26-42bb-8d89-3df9149957f7" TYPE="swap" PARTUUID="30cbce44-05" /dev/sdb: UUID="3bd71b84-6463-42ec-8aff-106cafdae2e2" TYPE="ocfs2" /dev/sda: UUID="41ff6399-368e-4b81-bae4-bdfa4aedd45a" TYPE="ocfs2"
CODEВ файл
/etc/fstab
добавить следующие строки:UUID=41ff6399-368e-4b81-bae4-bdfa4aedd45a /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0 UUID=3bd71b84-6463-42ec-8aff-106cafdae2e2 /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
CODEтаким образом в разделе
sda
будет размещено системное хранилище, а в разделеsdb
– хранилище образов.Выполнить монтирование командой:
sudo mount -aРезультатом выполнения команды должен быть пустой вывод без ошибок.- Выполнить перезагрузку.
Назначить на каталог созданных хранилищ владельца
oneadmin
. Для этого последовательно выполнить команды:sudo chown oneadmin:oneadmin /var/lib/one/datastores/100
sudo chown oneadmin:oneadmin /var/lib/one/datastores/101
8. Проверка работы хранилищ
Для проверки работы созданных хранилищ можно выполнить действия по развертыванию ВМ. Для этого:
- выполнить загрузку образа установочного носителя в хранилище образов – см. Загрузка установочного носителя в хранилище;
- создать образ диска виртуальной машины в хранилище образов – см. Создание диска ВМ (пустого) в хранилище;
подготовить предварительный шаблон ВМ и выполнить установку ОС в ВМ– см. Настройка шаблона для тиражирования ВМ;
Во время действий по созданию ВМ из шаблона можно дополнительно указать необходимость развертывания ВМ на узле виртуализации node1.
Для этого на странице Создать ВМ необходимо раскрыть секцию Выбрать узел для развертывания и указать узел виртуализации node1.
- при необходимости в ОС виртуальной машины можно подключить интернет-репозитории (см. Настройка репозиториев в ВМ), установить пакет
one-context
и настроить шаблон ВМ для тиражирования (см. Настройка шаблона для тиражирования ВМ).