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 Linux
CODEСоздать файловую систему
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: done
CODEСоздать каталог, например,
/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 disconnected
CODEВыгрузить драйвер 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 part
CODEгде:
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 0
CODE- <идентификатор_цели> – в рассматриваемом примере имеет значение
- Отключить контроль доступа:
переместиться на ветку
/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.json
CODEВыйти из консоли управления:
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.261817f99b47
CODEПодключить дополнительную цель (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-free
CODEЕсли в качестве источников пакетов ранее был указан оптический установочный диск, т.е. присутствует строка вида:
deb cdrom:[<наименование_установочного_диска>]/ 1.7_x86-64 contrib main non-free
CODEто эту строку необходимо закомментировать (установить символ "#" в начале строки).
Выполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt updateУстановить обновление, выполнив команду:
sudo astra-update -A -r -T- Перезагрузить ВМ.