Подробный гайд: настройка пулов хранилища QEMU/libvirt в Astra Linux

Настройка пулов хранилища QEMU/libvirt в Astra Linux: создание, управление томами, типы пулов, безопасность и устранение проблем

2026.04.28                  


Подробный гайд: настройка пулов хранилища QEMU/libvirt в Astra LinuxПодробный гайд: настройка пулов хранилища QEMU/libvirt в Astra Linux

Примечание:

QEMU storage pool (пулы хранилища) в связке с libvirt и Astra Linux. Ниже — полное руководство по созданию и управлению пулами.


1. Предварительные требования

Проверка поддержки виртуализации

# Для Intel:
lscpu | grep vmx --color=always

# Для AMD:
grep svm /proc/cpuinfo

# Универсальная проверка:
egrep -c '(vmx|svm)' /proc/cpuinfo  # Результат > 0 = поддержка есть

Установка необходимых пакетов

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients \
                 bridge-utils virt-manager virtinst cpu-checker \
                 dnsmasq-base ovmf swtpm

Активация служб

sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd

Проверка модулей ядра

lsmod | grep kvm
# Должны быть: kvm, kvm_intel (или kvm_amd)

2. Настройка прав доступа

Добавление пользователя в группы

sudo usermod -aG libvirt,kvm,libvirt-qemu $USER

# Для Astra Linux Special Edition (обязательно):
sudo usermod -aG libvirt-admin $USER

Изменения вступят в силу после полного выхода из сессии и повторного входа.

Для быстрого применения:

exec su - $USER

Проверка прав

virsh list --all  # Должен вернуть пустой список без ошибок

3. Создание пулов хранилища (Storage Pools)

Типы пулов в libvirt

Тип Описание Пример использования
dir Обычная директория Быстрое тестирование
fs Файловая система (ext4, xfs) Отдельный раздел
logical LVM-том Гибкое управление
iscsi iSCSI-целевой ресурс Сетевое хранилище
disk Физический диск/раздел Выделенный диск

Создание пула типа dir (базовый вариант)

# 1. Создаём директорию
sudo mkdir -p /vrt/pool1
sudo chmod 750 /vrt/pool1
sudo chown $USER:$USER /vrt/pool1

# 2. Определяем пул в libvirt
virsh -c qemu:///system pool-define-as pool1 \
    --type dir \
    --target /vrt/pool1

# 3. Инициализируем и запускаем пул
virsh -c qemu:///system pool-build pool1
virsh -c qemu:///system pool-start pool1

# 4. Включаем автозапуск при старте системы
virsh -c qemu:///system pool-autostart pool1

# 5. Проверяем список пулов
virsh -c qemu:///system pool-list --all

Пример вывода:

 Name   State   Autostart
----------------------------------
 pool1  active  yes

Особенности Astra Linux Special Edition (SE)

При работе в SE с включённым МКЦ/МРД:

  • Все пулы данных должны находиться на файловых системах, поддерживающих мандатные атрибуты: ext4, cepfs, ocfs2, hfs.

Мандатные атрибуты присваиваются автоматически.

Проверить их можно командой:

pdp-ls -Md /vrt/pool1

Пример вывода:

drwxr-xr-xm-- 2 user user Уровень_3:Высокий:Категория_1,Категория_2 /vrt/pool1

4. Управление томами внутри пула

Создание образа диска (volume)

# Создать qcow2-образ на 20 ГБ в пуле pool1
virsh -c qemu:///system vol-create-as pool1 vm1-disk.qcow2 \
    20G --format qcow2

Просмотр томов пула

virsh -c qemu:///system vol-list pool1

Удаление тома

virsh -c qemu:///system vol-delete --pool pool1 vm1-disk.qcow2

5. Дополнительные типы пулов

Пул на основе LVM

# Предварительно создайте LVM-том /dev/vg_virt/lv_pool1

virsh -c qemu:///system pool-define-as lvm_pool \
    --type logical \
    --source-name vg_virt \
    --source-dev /dev/vg_virt \
    --target /dev/vg_virt

virsh -c qemu:///system pool-build lvm_pool
virsh -c qemu:///system pool-start lvm_pool
virsh -c qemu:///system pool-autostart lvm_pool

Пул iSCSI

# Подключите iSCSI-целевой ресурс через iscsiadm, затем:
virsh -c qemu:///system pool-define-as iscsi_pool \
    --type iscsi \
    --source-host 192.168.1.100 \
    --source-dev iqn.2024-01.com.example:target1 \
    --target /dev/disk/by-path/...

virsh -c qemu:///system pool-start iscsi_pool

6. Полезные команды virsh для управления пулами

Команда Описание
virsh pool-list --all Список всех пулов
virsh pool-info pool1 Детальная информация о пуле
virsh pool-start pool1 Запустить пул
virsh pool-destroy pool1 Остановить пул (без удаления конфигурации)
virsh pool-undefine pool1 Удалить определение пула
virsh pool-autostart pool1 --disable Отключить автозапуск
virsh pool-refresh pool1 Обновить содержимое пула

7. Безопасность и рекомендации для Astra Linux

Не размещайте образы ВМ в домашних каталогах

  • В Astra Linux SE образы дисков регистрируются с высоким уровнем конфиденциальности, что может заблокировать доступ пользователя к его домашней директории.

Используйте qcow2 с шифрованием для чувствительных данных

qemu-img create -f qcow2 -o encryption=luks \
    /vrt/pool1/secure-disk.qcow2 50G

Регулярно обновляйте систему

sudo apt update && sudo apt upgrade

Для производственных сред:

  • Используйте отдельные разделы/диски под пулы
  • Настройте резервное копирование (virsh save, снапшоты)
  • Ограничьте доступ к директориям пулов: chmod 750

8. Устранение типовых проблем

Проблема Решение
Failed to connect socket to '/var/run/libvirt/libvirt-sock' Добавить пользователя в группу libvirt, перелогиниться
Storage pool not found: no storage pool with matching name Проверить virsh pool-list --all, при необходимости pool-start
Permission denied при доступе к /dev/kvm sudo usermod -aG kvm $USER + перелогин
Пул не запускается в Astra Linux SE Проверить мандатные атрибуты: pdp-ls -Md /путь/к/пулу
network 'default' not active sudo virsh net-start default && sudo virsh net-autostart default

Совет:

  • Для визуального управления пулами и ВМ используйте virt-manager — он автоматически создаёт дефолтный пул в /var/lib/libvirt/images при первом запуске.