Создание и настройка хранилищ с использованием кластерной файловой системы 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
добавить следующие строки:CODEзапустить в работу сетевой интерфейс командой:
sudo ifup br0файл
/etc/hosts
привести к следующему виду:CODEзадать сетевое имя гостевой машине, выполнив команду:
sudo hostnamectl set-hostname node1Сообщение об ошибке вида:CODEможно игнорировать (перед тем как выполнить команду инструмент командной строки
sudo
обращается к файлу/etc/hosts
чтобы определить IP-адрес используя предыдущее имя гостевой машины).добавить в автозапуск и запустить службу
ssh
командой:sudo systemctl enable ssh --now
Далее можно подключиться к гостевой машине из хостовой ОС по SSH.Создать файл
/etc/resolv.conf
и указать IP-адрес общедоступного DNS-сервера, например, 77.88.8.8:CODEУдостовериться в том, что интернет-репозиторий Astra Linux доступен по доменному имени, выполнив команду:
ping dl.astralinux.ruпример вывода после выполнения команды:CODE- Настроить доступ к базовому репозиторию оперативного обновления 1.7.2.UU.1 (БЮЛЛЕТЕНЬ № 2022-1011SE17MD):
в файле
/etc/apt/sources.list
закомментировать (установить символ "#" в начале строки) строку, в которой в качестве источника пакетов указан оптический установочный диск:CODEв файле
/etc/apt/sources.list
добавить строку вида: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
добавить строку вида:CODEвыполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt update
Установить пакет
opennebula-node-kvm
командой:sudo apt install opennebula-node-kvmВ открывшемся окне ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ нажать кнопку [Принять].- Перезагрузить гостевую машину
node1
. На фронтальной машине в файл
/etc/hosts
добавить строку вида: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
добавить следующие строки:CODEзапустить в работу сетевой интерфейс командой:
sudo ifup eth0Далее можно подключиться к гостевой машине из хостовой ОС по SSH.файл
/etc/hosts
привести к следующему виду:CODEзадать сетевое имя гостевой машине, выполнив команду:
sudo hostnamectl set-hostname iscsi-targetСообщение об ошибке вида:CODEможно игнорировать (перед тем как выполнить команду инструмент командной строки
sudo
обращается к файлу/etc/hosts
чтобы определить IP-адрес используя предыдущее имя гостевой машины).
- Выключить гостевую машину
iscsi-target
. - В окне программы Virt-manager на панели инструментов окна гостевой машины
iscsi-target
нажать на кнопку [Показать виртуальное оборудование]. - Подключить к гостевой машине
iscsi-target
первый диск для эмуляции сетевого блочного устройства: - Аналогичным образом подключить к гостевой машине
iscsi-target
второй диск для эмуляции сетевого блочного устройства. - Подключить образ установочного носителя к гостевой машине
iscsi-target
(см. Подключение образа установочного носителя к гостевой машине). - Включить гостевую машину
iscsi-target
. В ОС гостевой машины
iscsi-target
вывести перечень блочных устройств:lsblkПример вывода после выполнения команды:CODEгде:
vda
– диск для размещения файлов ОС;vdb
иvdc
– диски для эмуляции сетевых блочных устройств.
В ОС гостевой машины
iscsi-target
установить консоль управления Linux-IO Target (пакетtargetcli-fb)
:sudo apt install targetcli-fbВойти в консоль управления Linux-IO Target командой:
sudo targetcliВ консоли управления вывести текущую конфигурацию командой:
lsПример вывода после выполнения команды:CODEСоздать (зарегистрировать) блочное устройство
/dev/vdb
в разделе/backstores/block
, присвоив устройству наименование, например,storage01
:/backstores/block create storage01 /dev/vdbПример вывода после выполнения команды:CODEПроверить результат командой
ls
. Пример вывода после выполнения команды:CODEСоздать цель (
target
) в разделе/iscsi
командой:/iscsi createПример вывода после выполнения команды:CODEПроверить результат командой
ls
. Пример вывода после выполнения команды:CODEСоздать LUN на основе блочного устройства, зарегистрированного в разделе
/backstores/block
/iscsi/<идентификатор_цели>/tpg1/luns/ create /backstores/block/<наименование_устройства>где:- <наименование_устройства> – в рассматриваемом примере имеет значение
"storage01"
(см. шаг 14); - <идентификатор_цели> – в рассматриваемом примере имеет значение
"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1"
(см. шаг 16).
Пример вывода после выполнения команды:
CODE- <наименование_устройства> – в рассматриваемом примере имеет значение
Проверить результат командой
ls
. Пример вывода после выполнения команды: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Пример вывода после выполнения команды:CODEнастроить работу цели в demo-режиме (без аутентификации, видимым и доступным для всех) командой:
set attribute demo_mode_write_protect=0Пример вывода после выполнения команды:CODE
- Повторить шаги 14 – 20 для блочного устройства
/dev/vdc
(при выполнении действий шага 14 присвоить устройству наименование, например,storage02
). Выполнить сохранение настроек:
/ saveconfigПример вывода после выполнения команды:CODEВыйти из консоли управления:
exit
В консоли управления Linux-IO Target, используемой в ПК СВ версии 3.2, введена система бэкапов конфигурации, и, в связи с этим, после перезагрузки сохраненная конфигурация не загружается автоматически.
На текущий момент после перезагрузки конфигурацию необходимо восстанавливать командой:
sudo targetcli restoreconfig
Пример вывода после выполнения команды:
Для того чтобы автоматизировать восстановление конфигурации, необходимо выполнить действия, описанные ниже.
Создать службу
target
, сформировав unit-файл, например с помощью тестового редактораnano
, для этого выполнить команду:В открывшемся текстовом редакторе добавить следующие строки:sudo nano /lib/systemd/system/target.service
CODEПосле этого сохранить unit-файл и закрыть текстовый редактор.
Перезагрузить список служб командой:
sudo systemctl daemon-reloadДобавить службу
target
в автозагрузку командой:sudo systemctl enable targetПример вывода после выполнения команды:CODEДля проверки следует перезагрузить гостевую машину
iscsi-target
и вывести информацию о состоянии службыtarget
:sudo systemctl status targetПример вывода после выполнения команды:CODE
3. Подключение сетевых блочных устройств к фронтальной машине (настройка iSCSI-initiator)
Действия, описанные в данном разделе, выполняются в ОС фронтальной машины.
Установить пакет
open-iscsi
:sudo apt install open-iscsiВ конфигурационном файле
/etc/iscsi/iscsid.conf
для параметра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
.Пример вывода после успешного выполнения команды:
CODEПодключить найденные цели (iSCSI-target):
sudo iscsiadm -m node -lПример вывода после успешного выполнения команды:CODEДля проверки выполнить команду:
lsblkПример вывода после выполнения команды: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Пример вывода после выполнения команды:CODEЗапустить мастер настройки кластера OCFS2 командой:
sudo dpkg-reconfigure ocfs2-toolsВ запустившемся мастере:- разрешить запускать кластер
OCFS2 (O2CB)
во время загрузки (нажать на кнопку [Да]); - задать имя кластера: ввести "ocfs2cluster" и нажать на кнопку [Ok];
- для остальных параметров выбрать значения, установленные по умолчанию.
- разрешить запускать кластер
Перезапустить службу
o2cb
командой:sudo systemctl restart o2cbУдостовериться в успешном запуске службы
o2cb
. Для этого просмотреть в журнале регистрации события, относящиеся к службе:sudo journalctl -u o2cbПример вывода после выполнения команды: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Пример вывода после выполнения команды:CODEЗапустить мастер настройки кластера OCFS2 командой:
sudo dpkg-reconfigure ocfs2-toolsВ запустившемся мастере:- разрешить запускать кластер
OCFS2 (O2CB)
во время загрузки (нажать на кнопку [Да] ); - задать имя кластера: ввести "ocfs2cluster" и нажать на кнопку [Ok];
- для остальных параметров выбрать значения, установленные по умолчанию.
- разрешить запускать кластер
Перезапустить службу
o2cb
командой:sudo systemctl restart o2cbУдостовериться в успешном запуске службы
o2cb
. Для этого в журнале регистрации просмотреть события, относящиеся к службе, командой:sudo journalctl -u o2cbПример вывода после выполнения команды: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Пример вывода после выполнения команды:CODEВ файл
/etc/fstab
добавить следующие строки: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Пример вывода после выполнения команды:CODEВ файл
/etc/fstab
добавить следующие строки: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. Проверка работы хранилищ
Для проверки работы созданных хранилищ можно выполнить действия по развертыванию ВМ. Для этого:
- выполнить загрузку образа установочного носителя в хранилище образов – см. Загрузка установочного носителя в хранилище;
- создать образ диска виртуальной машины в хранилище образов – см. Создание диска ВМ (пустого) в хранилище;
подготовить предварительный шаблон ВМ и выполнить установку ОС в ВМ– см. Настройка шаблона для тиражирования ВМ;
- при необходимости в ОС виртуальной машины можно подключить интернет-репозитории (см. Настройка репозиториев в ВМ), установить пакет
one-context
и настроить шаблон ВМ для тиражирования (см. Настройка шаблона для тиражирования ВМ).
- Оглавление
- Описание тестовой среды
- 1. Создание и настройка дополнительного узла виртуализации
- 2. Создание и настройка программной СХД (iSCSI-target)
- 3. Подключение сетевых блочных устройств к фронтальной машине (настройка iSCSI-initiator)
- 4. Подключение сетевых блочных устройств к узлу виртуализации (настройка iSCSI-initiator)
- 5. Создание кластера OCFS2
- 6. Создание (регистрация) хранилищ в веб-интерфейсе ПК СВ
- 7. Монтирование сетевых блочных устройств к каталогам хранилищ
- 8. Проверка работы хранилищ