Создание и настройка хранилища образов iSCSI-Libvirt для тестового стенда
В представленном примере описан процесс создания хранилища образов iSCSI-Libvirt, в котором будет зарегистрирован образ диска с репозиторием оперативного обновления 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.
Для того чтобы создать файл образа диска, необходимо выполнить команду:
Пример
Пример вывода после выполнения команды:
Чтобы подключить файл образа диска, необходимо выполнить последовательность действий, описанную ниже.
Загрузить драйвер 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Появление сообщения об ошибке вида:
CODEозначает, что указанное устройство NBD занято. Необходимо выполнить подключение к другому блочному устройству (
nbd1, nbd2
и т.д.).Появление сообщения об ошибке вида:
CODEозначает, что драйвер NBD не был загружен.
Для того чтобы разместить файлы локального репозитория Astra Linux на подключенном образе диска, необходимо выполнить последовательность действий, описанную ниже.
Просмотреть разделы на блочном устройстве:
sudo fdisk -l /dev/nbd0Пример вывода после выполнения команды:CODE- Создать раздел на диске (один, первичный, размером равный объему всего диска). Для этого:
запустить инструмент командной строки
fdisk
в интерактивном режиме:sudo fdisk /dev/nbd0при появлении приглашения для ввода вида:
CODEввести "n" (подготовить конфигурацию нового раздела) и нажать клавишу <Enter>. Значения всех запрашиваемых параметров оставить без изменений (сразу нажимать клавишу <Enter>).
Пример вывода после завершения настройки параметров раздела:CODEпри появлении приглашения для ввода вида:
CODEввести "w" (записать на блочное устройство конфигурацию нового раздела) и нажать клавишу <Enter>.
Пример вывода после завершения настройки параметров раздела:
CODEПосле этого интерактивный режим работы инструмента командной строки
fdisk
завершится.
Просмотреть разделы на блочном устройстве:
sudo fdisk -l /dev/nbd0Пример вывода после выполнения команды:CODEСоздать файловую систему
ext4
в разделеnbd0p1
:sudo mkfs.ext4 /dev/nbd0p1Пример вывода после успешного выполнения команды: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Пример вывода после успешного выполнения команды:CODEВыгрузить драйвер Network Block Device:
sudo modprobe -r nbd
Далее файл образа можно подключить в качестве дополнительного диска к гостевой машине.
Файл образа диска предварительно должен быть скопирован в пул хранилища (по умолчанию /var/lib/libvirt/images
).
2. Создание и настройка цели (iSCSI-target)
- Подключить подготовленный образ диска к гостевой машине
iscsi-target
. - Включить гостевую машину
iscsi-target
. В ОС гостевой машины
iscsi-target
вывести перечень блочных устройств:lsblkПример вывода после выполнения команды:CODEгде:
vda
– диск для размещения файлов ОС;vdb
иvdc
– диски для эмуляции сетевых блочных устройств;vdd
– блочное устройство, на котором размещены файлы репозитория.
Войти в консоль управления Linux-IO Target командой:
sudo targetcliСоздать (зарегистрировать) блочное устройство
/dev/vdd
в разделе/backstores/block
, присвоив устройству наименование, например,repo-disk
:/backstores/block create repo-disk /dev/vddПример вывода после выполнения команды:CODEСоздать цель (
target
) в разделе/iscsi
командой:/iscsi createПример вывода после выполнения команды:CODEСоздать LUN на основе блочного устройства, зарегистрированного в разделе
/backstores/block
/iscsi/<идентификатор_цели>/tpg1/luns/ create /backstores/block/<наименование_устройства>где:- <идентификатор_цели> – в рассматриваемом примере имеет значение
"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.c43be0f8555b"
(см. шаг 6); - <наименование_устройства> – в рассматриваемом примере имеет значение
"repo-disk"
(см. шаг 5).
Пример вывода после выполнения команды:
CODE- <идентификатор_цели> – в рассматриваемом примере имеет значение
- Отключить контроль доступа:
переместиться на ветку
/iscsi/<идентификатор_цели>/tpg1
:cd /iscsi/<идентификатор_цели>/tpg1где <идентификатор_цели> – в рассматриваемом примере имеет значение"
iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.c43be0f8555b
"
(см. шаг 6) .В консоли управления нажатие клавиши <Tab> автоматически дополняет текущую команду или путь к ветке дерева конфигурации, если возможен только один вариант.
отключить использования списков управления доступом (ACL) командой:
set attribute generate_node_acls=1Пример вывода после выполнения команды:CODEнастроить работу цели в demo-режиме (без аутентификации, видимым и доступным для всех) командой:
set attribute demo_mode_write_protect=0Пример вывода после выполнения команды:CODE
Выполнить сохранение настроек:
/ saveconfigПример вывода после выполнения команды:CODEВыйти из консоли управления:
exit
4. Создание (регистрация) хранилища образов iSCSI-Libvirt в веб-интерфейсе ПК СВ
- Включить фронтальную машину;
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Хранилища и на открывшейся странице Хранилища нажать на кнопку [+], а затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Создать хранилище:
- в поле Название задать наименование хранилища;
- в выпадающем списке Тип хранилища выбрать значение "iSCSI Libvirt initiator";
- установить флаг Образы;
- в поле iSCSI узел указать IP-адрес гостевой машины
iscsi-target
; - нажать на кнопку [Создать].
- Дождаться когда на странице Хранилища для созданного хранилища в поле Статус будет установлено значение ON.
В представленном примере хранилищу образовiscsi_libvirt-images
присвоен идентификатор102
.
5. Регистрация блочного устройства в хранилище
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Хранилище — Образы.
- На открывшейся странице Образы нажать на кнопку [+], затем в открывшемся меню выбрать пункт Создать.
- На открывшейся странице Укажите параметры нового образа выполнить действия:
- в поле Название задать наименование образа диска;
- в выпадающем списке Тип выбрать значение Общий блок данных хранилища;
- в выпадающем списке Хранилище выбрать созданное ранее хранилище образов iSCSI-Libvirt;
- в выпадающем списке Этот образ является постоянным выбрать значение Да;
- в секции Расположение образа установить флаг Путь/URL и в поле Путь на сервере OpenNebula или URL указать идентификатор блочного устройства (см. шаг 6 раздела Создание и настройка цели (iSCSI-target)).
- На странице Укажите параметры нового образа нажать на кнопку Создать.
- На открывшейся странице Образы необходимо удостовериться в том, что созданный образ имеет статус ГОТОВО.
Перед выполнением дальнейших действий необходимо развернуть ВМ и выполнить установку ОС в ней (см. Создание предварительного шаблона и установка ОС в ВМ). Во время действий по созданию ВМ из шаблона следует дополнительно указать необходимость развертывания ВМ на узле виртуализации node1
. Для этого на странице Создать ВМ необходимо раскрыть секцию Выбрать узел для развертывания и указать узел виртуализации node1
.

6. Подключение блочного устройства к ВМ
- Выключить ВМ.
- В веб-интерфейсе ПК СВ в меню слева выбрать пункт меню Экземпляры ВМ — ВМ выбрать ВМ, к которой необходимо подключить блочное устройство.
- На открывшейся странице ВМ открыть вкладку Хранилище и нажать кнопку Добавить диск.
- В открывшемся окне Присоединить диск выбрать зарегистрированный образ диска с репозиторием и нажать кнопку Присоединить.
- Дождаться момента, когда в столбце Действия появятся кнопки действий.
для обновления страницы можно воспользоваться кнопкой Обновить.
7. Установка оперативного обновления в ВМ с использованием блочного устройства
- Запустить виртуальную машину.
В ОС виртуальной машины вывести перечень блочных устройств:
lsblkЧтобы запустить терминал в ВМ, можно воспользоваться графическим интерфейсом: Меню Пуск – Системные — Терминал Fly.
Пример вывода после выполнения команды:
CODEгде
sda
– блочное устройство, на котором размещены файлы репозитория.Создать каталог для размещения репозитория, например,
/srv/base-repository/
:sudo mkdir /srv/base-repositoryПримонтировать раздел блочного устройства, на котором размещены файлы репозитория:
sudo mount /dev/sda1 /srv/base-repositoryПодключить в качестве локального репозитория каталог
/srv/base-repository/
, для этого в файле/etc/apt/sources.list
добавить строку вида:CODEЕсли в качестве источников пакетов ранее был указан оптический установочный диск, т.е. присутствует строка вида:
CODEто эту строку необходимо закомментировать (установить символ "#" в начале строки).
Выполнить повторную синхронизацию файлов описаний пакетов с их источником командой:
sudo apt updateУстановить обновление, выполнив команду:
sudo astra-update -A -r -T- Перезагрузить ВМ.
После установки оперативного обновления образ диска с репозиторием можно отключить от ВМ.
- Оглавление
- Описание тестовой среды
- 1. Подготовка образа диска с репозиторием
- 2. Создание и настройка цели (iSCSI-target)
- 3. Настройка ПК СВ для использования хранилища
- 4. Создание (регистрация) хранилища образов iSCSI-Libvirt в веб-интерфейсе ПК СВ
- 5. Регистрация блочного устройства в хранилище
- 6. Подключение блочного устройства к ВМ
- 7. Установка оперативного обновления в ВМ с использованием блочного устройства