Download PDF
Download page Создание и настройка хранилища образов RDM для тестового стенда.
Создание и настройка хранилища образов RDM для тестового стенда
Оглавление
В представленном примере описан процесс создания хранилища образов RDM, в котором будет зарегистрирован образ диска с репозиторием оперативного обновления 1.7.2.UU.1.
После успешного развертывания ВМ, к ней будет дополнительно подключен образ диска с репозиторием для установки оперативного обновления.
Исходные данные
Предварительно должен быть подготовлен тестовый стенд ПК СВ, функционирующий в сервисном режиме. К тестовому стенду должны быть подключены хранилища, размеченные с использованием кластерной файловой системы OCFS2.
Описание тестовой среды
В данном примере в качестве тестовой среды выступает система виртуализации QEMU/KVM в ОС СН Astra Linux Special Edition 1.7.2.
Описываемые действия по настройке гостевых машин выполняются в программе "Менеджер виртуальных машин" (Virtual Machine Manager) версии 2.2.1-3.
Для размещения репозитория оперативного обновления 1.7.2.UU.1 будет создан файл образа диска в формате QCow2 объемом 24 ГБ. Образ диска с репозиторием будет подключен к гостевой машине iscsi-target (программная система хранения данных).
Вычислительные ресурсы тестового стенда должны обеспечить одновременное функционирование гостевой машины виртуализации, на которой установлены программные компоненты ПК СВ (далее по тексту – фронтальной машины), гостевой машины node1 и гостевой машины iscsi-target.
Перед выполнением действий, описанных ниже, необходимо выключить все гостевые машины тестового стенда.
1. Подготовка образа диска с репозиторием
В представленном примере описаны процессы создания файла образа диска в формате QCow2 и подключения его в хостовой операционной системе.
На подключенный образ диска можно скопировать, например, файлы локального репозитория Astra Linux. Подготовленный образ диска затем можно подключить к гостевой машине для установки оперативного обновления без подключения интернет-репозитория Astra Linux.
Для того чтобы создать файл образа диска, необходимо выполнить команду:
Пример
Пример вывода после выполнения команды:
Formatting 'repo_disk.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=25769803776 lazy_refcounts=off refcount_bits=16
Чтобы подключить файл образа диска, необходимо выполнить последовательность действий, описанную ниже.
-
Загрузить драйвер Network Block Device (NBD):
sudo modprobe nbd -
Подключить образ диска в качестве блочного устройства:
sudo qemu-nbd -c /dev/nbd0 <наименование_диска>.qcow2где/dev/nbd0– свободное устройство NBD.Пример
sudo qemu-nbd -c /dev/nbd0 repo_disk.qcow2Появление сообщения об ошибке вида:
... Failed to set NBD socket ...CODEозначает, что указанное устройство NBD занято. Необходимо выполнить подключение к другому блочному устройству (
nbd1, nbd2и т.д.).Появление сообщения об ошибке вида:
Failed to open /dev/nbd0: No such file or directory...CODEозначает, что драйвер NBD не был загружен.
Для того чтобы разместить файлы локального репозитория Astra Linux на подключенном образе диска, необходимо выполнить последовательность действий, описанную ниже.
-
Просмотреть разделы на блочном устройстве:
sudo fdisk -l /dev/nbd0Пример вывода после выполнения команды:Диск /dev/nbd0: 24 GiB, 25769803776 байт, 50331648 секторов Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байтCODE - Создать раздел на диске (один, первичный, размером равный объему всего диска). Для этого:
-
запустить инструмент командной строки
fdiskв интерактивном режиме:sudo fdisk /dev/nbd0 -
при появлении приглашения для ввода вида:
Команда (m для справки):CODEввести "n" (подготовить конфигурацию нового раздела) и нажать клавишу <Enter>. Значения всех запрашиваемых параметров оставить без изменений (сразу нажимать клавишу <Enter>).
Пример вывода после завершения настройки параметров раздела:Создан новый раздел 1 с типом 'Linux' и размером 24 GiB.CODE -
при появлении приглашения для ввода вида:
Команда (m для справки):CODEввести "w" (записать на блочное устройство конфигурацию нового раздела) и нажать клавишу <Enter>.
Пример вывода после завершения настройки параметров раздела:
Таблица разделов была изменена. Вызывается ioctl() для перечитывания таблицы разделов. Синхронизируются диски.CODEПосле этого интерактивный режим работы инструмента командной строки
fdiskзавершится.
-
-
Просмотреть разделы на блочном устройстве:
sudo fdisk -l /dev/nbd0Пример вывода после выполнения команды:... Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип /dev/nbd0p1 2048 50331647 50329600 24G 83 LinuxCODE -
Создать файловую систему
ext4в разделеnbd0p1:sudo mkfs.ext4 /dev/nbd0p1Пример вывода после успешного выполнения команды:Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: doneCODE -
Создать каталог, например,
/tmp/repo, для монтирования созданного раздела:mkdir /tmp/repo -
Примонтировать раздел:
sudo mount /dev/nbd0p1 /tmp/repo -
Скопировать в каталог
/tmp/repoфайлы локального репозитория Astra Linux, например, базовый репозиторий оперативного обновления 1.7.2.UU.1 (БЮЛЛЕТЕНЬ № 2022-1011SE17MD). Для этого необходимо в каталоге с tar-архивом обновленного базового репозитория выполнить команду:sudo tar zxvf base-1.7.2.11-04.10.2022_16.55.tgz -C /tmp/repo
После завершения копирования, необходимо выполнить последовательность действий, описанную ниже.
-
Отмонтировать раздел:
sudo umount /tmp/repo -
Отключить образ диска:
sudo qemu-nbd -d /dev/nbd0Пример вывода после успешного выполнения команды:/dev/nbd0 disconnectedCODE -
Выгрузить драйвер Network Block Device:
sudo modprobe -r nbd
Далее файл образа можно подключить в качестве дополнительного диска к гостевой машине.
Файл образа диска предварительно должен быть скопирован в пул хранилища (по умолчанию /var/lib/libvirt/images).
2. Подключение образа диска с репозиторием к ПК СВ
2.1. Создание и настройка цели (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 vdd 252:48 0 24G 0 disk └─vdd1 252:49 0 24G 0 partCODEгде:
vda– диск для размещения файлов ОС;vdbиvdc– диски для эмуляции сетевых блочных устройств;vdd– блочное устройство, на котором размещены файлы репозитория.
-
Войти в консоль управления Linux-IO Target командой:
sudo targetcli -
Создать (зарегистрировать) блочное устройство
/dev/vddв разделе/backstores/block, присвоив устройству наименование, например,repo-disk:/backstores/block create repo-disk /dev/vddПример вывода после выполнения команды:Created block storage object repo-disk using /dev/vdd.CODE -
Создать цель (
target) в разделе/iscsiкомандой:/iscsi createПример вывода после выполнения команды:Created target iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260.CODE -
Создать LUN на основе блочного устройства, зарегистрированного в разделе
/backstores/block/iscsi/<идентификатор_цели>/tpg1/luns/ create /backstores/block/<наименование_устройства>где:- <идентификатор_цели> – в рассматриваемом примере имеет значение
"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47"(см. шаг 6); - <наименование_устройства> – в рассматриваемом примере имеет значение
"repo-disk"(см. шаг 5).
Пример вывода после выполнения команды:
Created LUN 0CODE - <идентификатор_цели> – в рассматриваемом примере имеет значение
- Отключить контроль доступа:
-
переместиться на ветку
/iscsi/<идентификатор_цели>/tpg1:cd /iscsi/<идентификатор_цели>/tpg1где <идентификатор_цели> – в рассматриваемом примере имеет значение"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47"(см. шаг 7) .В консоли управления нажатие клавиши <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
-
-
Выполнить сохранение настроек:
/ saveconfigПример вывода после выполнения команды:Last 10 configs saved in /etc/rtslib-fb-target/backup. Configuration saved to /etc/rtslib-fb-target/saveconfig.jsonCODE -
Выйти из консоли управления:
exit
2.2. Подключение сетевого блочного устройства к узлу виртуализации
- Включить гостевую машину node1.
-
В ОС гостевой машины
node1вывести перечень блочных устройств:lsblkПример вывода после выполнения команды:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 24G 0 disk /var/lib/one/datastores/100 sdb 8:16 0 24G 0 disk /var/lib/one/datastores/101 sr0 11:0 1 85M 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]CODEгде в качестве локальных блочных устройств
sdaиsdbвыступают сетевые блочные устройства, предоставляемые программной СХД (гостевой машинойiscsi-target). -
Вывести перечень подключенных целей (iSCSI-target):
sudo iscsiadm -m sessionПример вывода после выполнения команды:tcp: [1] 172.16.1.41:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1 (non-flash) tcp: [2] 172.16.1.41:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.85eebbd1f098 (non-flash)CODE -
Выполнить сканирование для поиска целей (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 172.16.1.41:3260,1 iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47CODE -
Подключить дополнительную цель (iSCSI-target):
sudo iscsiadm -m node -l -T <идентификатор_цели>где <идентификатор_цели> – в рассматриваемом примере имеет значение"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47"(см. шаг 4) .
Пример вывода после успешного выполнения команды:Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47, portal: 172.16.1.41,3260] (multiple) Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.261817f99b47, portal: 172.16.1.41,3260] successful.CODE -
Для проверки выполнить команду:
lsblkПример вывода после выполнения команды:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 24G 0 disk /var/lib/one/datastores/100 sdb 8:16 0 24G 0 disk /var/lib/one/datastores/101 sdc 8:32 0 24G 0 disk └─sdc1 8:33 0 24G 0 part sr0 11:0 1 85M 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]CODEгде
sdc– блочное устройство, на котором размещены файлы репозитория.
3. Создание (регистрация) хранилища образов RDM в веб-интерфейсе ПК СВ
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Создать хранилище:
- в поле Название задать наименование хранилища;
- в выпадающем списке Тип хранилища выбрать значение "Raw Device Mapping";
- установить флаг Образы;
- нажать на кнопку [Создать].

- Дождаться когда на странице Хранилища для созданного хранилища в поле Статус будет установлено значение ON.
В представленном примере хранилищу образовRBD-imagesприсвоен идентификатор102.
4. Регистрация блочного устройства в хранилище
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Образы.
- На открывшейся странице Образы нажать на кнопку +, затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Укажите параметры нового образа выполнить действия:
- в поле Название задать наименование образа диска;
- в выпадающем списке Тип выбрать значение Общий блок данных хранилища;
- в выпадающем списке Хранилище выбрать созданное ранее хранилище образов RDM;
- в выпадающем списке Этот образ является постоянным выбрать значение Да;
- в секции Расположение образа установить флаг Путь/URL и в поле Путь на сервере OpenNebula или URL указать блочное устройство (в представленном примере –
/dev/sdc).

- На странице Укажите параметры нового образа нажать на кнопку Создать .
- На открывшейся странице Образы необходимо удостовериться в том, что созданный образ имеет статус ГОТОВО.
Перед выполнением дальнейших действий необходимо подготовить развернуть ВМ и выполнить установку ОС в ней (см. Создание предварительного шаблона и установка ОС в ВМ). Во время действий по созданию ВМ из шаблона следует дополнительно указать необходимость развертывания ВМ на узле виртуализации node1. Для этого на странице Создать ВМ необходимо раскрыть секцию Выбрать узел для развертывания и указать узел виртуализации node1.

5. Подключение блочного устройства к ВМ
- Выключить ВМ.
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Экземпляры ВМ — ВМ выбрать ВМ, к которой необходимо подключить блочное устройство.
- На открывшейся странице ВМ открыть вкладку Хранилище и нажать кнопку Добавить диск.

- В открывшемся окне Присоединить диск выбрать зарегистрированный образ диска с репозиторием и нажать кнопку Присоединить.

- Дождаться момента, когда в столбце Действия появятся кнопки действий.
для обновления страницы можно воспользоваться кнопкой Обновить.
6. Установка оперативного обновления в ВМ с использованием блочного устройства
-
В ОС виртуальной машины вывести перечень блочных устройств:
lsblkЧтобы запустить терминал в ВМ, можно воспользоваться графическим интерфейсом: Меню Пуск – Системные — Терминал Fly.
Пример вывода после выполнения команды:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 24G 0 disk └─sda1 8:1 0 24G 0 part 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]CODEгде
sda– блочное устройство, на котором размещены файлы репозитория. -
Создать каталог для размещения репозитория, например,
/srv/base-repository/:sudo mkdir /srv/base-repository -
Примонтировать раздел блочного устройства, на котором размещены файлы репозитория:
sudo mount /dev/sda1 /srv/base-repository -
Подключить в качестве локального репозитория каталог
/srv/base-repository/, для этого в файле/etc/apt/sources.listдобавить строку вида:deb file:/srv/base-repository/ 1.7_x86-64 main contrib non-freeCODEЕсли в качестве источников пакетов ранее был указан оптический установочный диск, т.е. присутствует строка вида:
deb cdrom:[<наименование_установочного_диска>]/ 1.7_x86-64 contrib main non-freeCODEто эту строку необходимо закомментировать (установить символ "#" в начале строки).
-
Выполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt update -
Установить обновление, выполнив команду:
sudo astra-update -A -r -T - Перезагрузить ВМ.