Подробный гайд: настройка пулов хранилища 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 при первом запуске.