Kvm создание пула хранения

Обновлено: 03.07.2024

Для автоматизированной установки системы виртуалтзации QEMU/KVM в дистрибутив Astra Linux Common Edition включен пакет astra-kvm. Пакет может быть установлен с помощью графического менеджера пакетов или из командной строки командой:

При установке этого пакета будет автоматически установлен сам Virt-manager и выполнены все действия, необходимые для установки и запуска системы виртуализации. Дополнительно для работы в сети будет установлен пакет ebtables.

При установке пакетов текущий пользователь будет автоматически добавлен в группы:

Других пользователей, которые должны работать с виртуализацией, следует добавить в указанные группы вручную:

sudo usermod -a -G kvm,libvirt,libvirt-qemu <имя_пользователя>

Для того, чтобы добавление в группы вступило в силу, нужно перезапустить пользоваетельскую сессию.

Для хранения образов виртуальных машин при установке пакетов автоматически создается пул данных. По умолчанию этот пул данных располагается в каталоге /var/lib/libvirt/images. Дополнительные пулы данных могут быть созданы по мере необходимости.


Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6), РУСБ.10015-16 исп. 1

При использовании виртуализации QEMU/KVM в Astra Linux Special Edition для обеспечения работы с виртуальными машинами, поддерживающими ненулевые мандатные метки, все пулы данных должен находиться на файловых системах, поддерживающих работу с мандатными атрибутами (Ext4, cepfs, ocfs2).

Установка пакетов

Для работы с системой виртуализации QEMU/KVM в Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6), РУСБ.10015-16 исп. 1 необходимо установить следующие пакеты:

  • libvirt-daemon-system;
  • libvirt0;
  • qemu-kvm.

Команда для установки:

sudo apt install libvirt-daemon-system libvirt0 qemu-kvm

При установке пакетов в Astra Linux Special Edition будет создан каталог /var/lib/libvirt/images (принятый по умолчанию каталог пула данных) которому будкт назначены мандатные атрибуты, достаточные для размещения в нём данных с ненулевыми мандатными метками:

drwx--x--xm-- 2 root root Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr /var/lib/libvirt/images

  • kvm;
  • libvirt;
  • libvirt-admin (Внимание! этой группы нет в Astra Linux Common Edition);
  • libvirt-qemu.

Команда для добавления пользователя в группы:

sudo usermod -a -G kvm,libvirt,libvirt-admin,libvirt-qemu <имя_пользователя>

Для того, чтобы добавление в группы вступило в силу, нужно перезапустить пользоваетельскую сессию.

Работа с QEMU/KVM

При работе рекомендуется контролировать содержимое /var/lib/libvirt/images и своевременно удалять неиспользуемые диски.

Создание виртуальных машин

Создание собственных пулов для пользователей

При работе с Astra Linux Specail Edition образы дисков виртуальных машин (в том числе загрузочные образы для установки ОС на виртуальных машинах) регистрируются в системе виртуализации как файловые объекты с высоким уровнем конфиденциальности.
При этом все вышележащие каталоги в файловой системе также автоматически получают высокий уровень конфиденциальности. В связи с этим не рекомендуется размещать образы дисков в домашних каталогах пользователей, так как присвоение высокого уровня конфиденциальности домашнему каталогу существенно затруднит работу пользователя - владельца этого каталога.

Для создания собственного пула пользователя следует создать каталог, доступный этому пользователю, например:

sudo mkdir -p /vrt/pool1
sudo chmod 750 /vrt/pool1
sudo chown <имя_пользователя> /vrt/pool1

Для запрета добавления новых образов ВМ в пул пользователю необходимо ограничить доступ к директории правами на чтение (r-x).

Дальнейшие действия выполнять от имени пользователя - владельца пула.
Создать пул в ранее созданных каталогах можно следующими командами:

virsh -c qemu:///system pool-define-as pool1 --type dir --target /vrt/pool1
virsh -c qemu:///system pool-build pool1
virsh -c qemu:///system pool-start pool1
virsh -c qemu:///system pool-autostart pool1
virsh -c qemu:///system pool-list --all

Образец диалога с выводом команд:

$ virsh -c qemu:///system pool-define-as pool1 --type dir --target /vrt/pool1
Pool pool1 defined
$ virsh -c qemu:///system pool-build pool1
Pool pool1 built
$ virsh -c qemu:///system pool-start pool1
Pool pool1 started
$ virsh -c qemu:///system pool-autostart pool1
Pool pool1 marked as autostarted
$ virsh -c qemu:///system pool-list --all
Name State Autostart
-------------------------------------------
pool1 active yes

При работе в Astra Linux Special Edition при создании пула необходимые мандатные атрибуты будут присвоены ему автоматически (при условии, что на ОС установлено обновление безопасности БЮЛЛЕТЕНЬ № 20190222SE16). Проверить мандатные атрибуты пула можно командой:

$ pdp-ls -Md /vrt/pool1
drwxr-xr-xm-- 2 vrtadmin vrtadmin Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:CCNRA /vrt/pool1

Создать и запустить виртуальную машину с образом диска, расположенным в ранее созданном пуле командой:

virsh -c qemu:///system define vm1.xml
virsh -c qemu:///system start vm1

$ virsh -c qemu:///system define vm1.xml
Domain vm1 defined from vm1.xml

$ virsh -c qemu:///system start vm1
Domain vm1 started

Проверить статус ВМ:

$ virsh -c qemu:///system list --all
Id Name State
----------------------------------------------------
3 vm1 running

Проверить параметры подключения к ВМ

Подключиться к виртуальному монитору ВМ

Сброс пользовательских настроек

Для сброса старых пользовательсктх настроек virt-manager удалить файл .config/dconf/user

Устранение ошибок

При появлении ошибки custom процессора нужно поставить в настройках пункт "использовать архитектуру процессора хоста".

При ошибке network 'default' not active выполнить следующие команды:

sudo virsh net-start default
sudo virsh net-autostart default

После выполнения этих команд после перезагрузки сеть network 'default' будет запускаться автоматически.

Настройка фиксированных IP-адресов

Для привязки фиксированных IP-адресов к виртуальным машинам выполнить команду:

вставить строки с мак-адресами виртуальных адаптеров, например, как указано ниже:

В этой части 3 нашего руководства мы обсуждаем, как создавать тома и пулы KVM Storage и управлять ими с помощью виртуальный менеджер Инструмент с графическим интерфейсом.

Как правило, мы ежедневно используем устройства хранения с разными файловыми системами. У нас также есть некоторые технологии / методы хранения, такие как ISCSI, SAN, NAS и так далее.

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

В среде KVM вы можете использовать блочные устройства или файлы в качестве локальных запоминающих устройств в гостевых операционных системах.

Мы используем физические устройства хранения для создания томов виртуальных машин. Мы могли бы описать тома как виртуальный диск виртуальной машины. Облако томов - это блочные устройства или файлы, как мы упоминали ранее.

Создание томов и пулов KVM Stroage

Создание томов и пулов хранения KVM

Что касается производительности, блочные устройства имеют более высокую позицию. Кроме того, блочные файлы по-прежнему имеют преимущество в области управления системой и использования емкости хранилища. В любом случае для сценариев, когда производительность диска из гостевой операционной системы не критична, предпочтительнее использовать файлы образов дисков.

Тома хранения также являются частью пула хранения, на самом деле вы не можете создавать тома хранения, не имея хотя бы одного пула хранения.

Нет никаких новых предпосылок, точно таких же, как мы обсуждали в предыдущих частях. Если что-то новенькое, то отмечу. Итак, приступим.

Этап первый: создание пулов хранения в KVM

1. Во-первых, давайте отобразим доступные пулы в нашей среде так, как мы это делали раньше из Подробности раздел после щелчка правой кнопкой мыши на (localhost) в главном окне. Это окно появится

Проверить доступные пулы KVM

Проверить доступные пулы KVM

По умолчанию есть один пул хранения, который называется «Дефолт»Использует rootfs раздел для хранения томов виртуальной машины под /var/lib/libvirt/images дорожка.

Во многих случаях не рекомендуется использовать этот пул, просто чтобы освободить место для вашей системы. В любом случае давайте создадим наш первый пул хранения, нажав на "+‘Кнопка из того же окна.

Создать пул хранения KVM

Создать пул хранения KVM

Затем вы можете указать имя вашего нового пула хранения и выбрать тип хранилища, которое будет использоваться для развертывания пулов хранения. KVM поддерживает девять типов:

    1. -dir - Использует каталог файловой системы для хранения томов хранения.
    2. -диск - Использует физические жесткие диски для хранения томов хранения.
    3. -fs - Использует предварительно отформатированные разделы для хранения томов хранения.
    4. -netfs - Использует общее сетевое хранилище, такое как NFS, для хранения томов хранилища.
    5. -блеск - Зависит от хранилища файловых систем Gluster.
    6. -iscsi - Использует сетевое хранилище ISCSI для хранения томов хранилища.
    7. -scsi - Использует локальное хранилище SCSI для хранения томов хранилища.
    8. -lvm - Зависит от групп томов LVM для хранения томов хранения.
    9. -сочувствие –

    В настоящее время создание томов с несколькими путями не поддерживается.

    Возможно, вы знакомы со многими из них, но мы обсудим один или два из них в этом уроке. Начнем с популярного типа (dir).

    (Dir) очень популярен, поскольку не требует значительных изменений в имеющейся у вас схеме хранилища.

    Имя KVM Storage Pool

    Пул хранения имен

    3. Нет никаких ограничений на то, где будет создаваться пул хранения, но очень рекомендуется создать "SPool1‘Каталог на отдельном разделе. Еще одна важная вещь - предоставить правильные разрешения и право собственности на этот каталог.

    я буду использовать /dev/sda3 в качестве моего раздела у вас может быть другой. Убедитесь, что вы правильно его установили.

    4. После установки перегородки под ‘/mnt/personal-data/‘Каталог, затем укажите путь точки монтирования к этому каталогу хранилища (т. Е. /mnt/personal-data/SPool1).

    Расположение пула хранения KVM

    Расположение пула хранения

    5. После завершения вы найдете новый пул хранения «SPool1»Появился в списке.

    Добавить пул хранения KVM

    Новый пул хранения

    Тип (FS) зависит от предварительно отформатированных разделов, и это полезно для тех, кто хочет указать полный раздел для дисков / хранилища виртуальных машин.

    6. Мы создадим еще один пул хранения, используя отформатированный раздел, который является ((фс) Предварительно отформатированное блочное устройство). Вам необходимо подготовить еще один новый раздел с желаемой файловой системой.

    Вы можете использовать "fdisk" или "расстались», Чтобы создать новый раздел и использовать«mkfs»Для форматирования с новой файловой системой. В этом разделе (sda6) будет нашим новым разделом.

    Также создайте новый каталог (т.е. SPool2), он действует как точка монтирования для выбранного раздела.

    7. После выбора типа (fs) в раскрывающемся меню укажите имя нового пула, как показано.

    Добавить второй пул хранения в KVM

    Добавить второй пул хранения в KVM

    8. В следующем окне вам нужно указать путь к вашему разделу ‘/dev/sda6«В нашем случае - в«Исходный путь»И путь к каталогу, который действует как точка монтирования. /mnt/personal-data/SPool2 в "Целевой путь" поле.

    Добавить второй путь к хранилищу

    Добавить второй путь к хранилищу

    9. Наконец, в список основного хранилища добавлен третий пул хранения.

    Детали второго хранилища

    Детали второго хранилища

    Итак, в следующей части мы обсудим развертывание других типов хранилищ с помощью инструментов командной строки, а пока перейдем к созданию томов.

    Этап второй: создание объемов хранения

    Как мы обсуждали ранее, вы можете рассматривать тома хранилища как виртуальные диски для виртуальных машин. У нас также есть еще много форматов для этих томов.

    Как правило, эти форматы позволяют использовать ваши тома с QEMU, VMware, Oracle VirtualBox и Hyper-V.

    11. Затем укажите имя нового тома и выберите его формат. Не забудьте также установить правильный размер.

    Создание новых томов в KVM

    Создание новых томов в KVM

    12. Теперь ваш том готов к подключению с виртуальными машинами.

    Добавить том в виртуальную машину KVM

    Добавить том в виртуальную машину KVM

    Вывод

    Теперь вы узнали разницу между Пулы хранения и Объемы и как создавать и управлять ими в среде KVM, используя виртуальный менеджер Инструмент с графическим интерфейсом. Также мы обсудили типы пулов и важность форматов томов. Теперь ваша очередь делать руки еще грязнее.

    Данная статья — это обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Я хочу поделиться теми знаниями опытом, которыми обладаю на данный момент. Надеюсь, что моя статья пойдет на пользу тем, кто только собирается использовать гипервизор Qemu-KVM или уже использует. И еще: статья не для новичков linux (элементарные вещи здесь рассматриваться не будут).

    Про данную систему виртуализации в сети написано много. Но когда действительно начинаешь с ней работать — сталкиваешься с нехваткой информации и практических примеров применения. Итак приступим.

    • процессор Atlon X2 245
    • оперативная память 4 гигабайта
    • жесткий диск 500 гигабайт
    • материнская плата ASUS M4N68T-M LE.
    1. Microsoft hyper-v не подходит — платная. Компания, в которой я работаю использует только лицензионное программное обеспечение. Следовательно никто не выделит для моих целей лицензию на сервер.
    2. VMWARE ESXi не знает контролера SATA, расположенного на материнской плате (поскольку разрабатывалась для серверных систем).
    3. Qemu-kvm — свободно разрабатываемый гипервизор, поддерживает аппаратную виртуализацию. Его можно установить в любой современный дистрибутив Linux. Это по мне, его и берем.

    Переходим к делу. Установку операционной среды описывать я не буду. Оговорюсь лишь, что во время установки операционной среды жесткий диск большего размера не трогал. Его время еще придет. Как установить гипервизор на Debian очень хорошо описано здесь. Лично я ставлю qemu-kvm libvirt-bin.

    Гипервизор поставили, теперь немного о внутренней структуре. Есть два каталога, в которые стоит заглянуть:
    /etc/libvirt/ — здесь в основном хранятся конфигурационные файлы
    /var/lib/libvirt/ — здесь будут хранится образы жестких дисков, мгновенные снимки системы и многое другое.
    Наш гипервизор установлен.

    Далее сохраняем файл и перезагружаем компьютер.
    О, чудо! Гипервизор установлен!
    Дальше возникает вопрос: как управлять сервером? Управлять Qemu-kvm можно двумя программами: virt-manager и virtinst.

    Virt-manager.
    Эта программа рассчитана на графический интерфейс. Она поддерживает как удаленное управление виртуальными машинами, так и локальное. Но у нее есть огромный минус — аналогов для windows попросту нет.
    Как лично я вышел из положения. Установил графическую оболочку LXDE и сервер xrdp, благодаря такому нехитрому набору программ мне не пришлось физически ходить к компьютеру (больно много ему чести). Я просто подключался через стандартный RDP клиент который, есть в windows. Но это дополнительная трата ресурсов компьютера.
    Если вы установили virt-manager, он автоматически создает:
    хранилище для образов виртуальных машин по пути /var/lib/libvirt/images
    виртуальный сетевой интерфейс default.
    Следовательно подмонтировать жесткий диск с большим объемом нужно в директорию /var/lib/libvirt/images.

    1. можно подмонтировать жесткий диск в директорию и указать его в качестве хранилища
    2. можно просто устройство выбрать хранилищем.

    Если не создавать хранилище для образов дисков виртуальных машин, то для того, чтобы диски лежали в одном месте, нужно будет указывать полный путь к образу при его создании(много писать), а так образ создастся в указанном пуле или если он у вас единственный, то его имя указывать не обязательно. Конфигурационный файл пула будет лежать в директории /etc/libvirt/storage/ это .xml файлик. Выходим из virsh введя команду exit.

    В принципе наш гипервизор установился и его можно использовать. Но есть еще маленькая мелочь, о которой хотелось бы упомянуть. А именно о том, как работает Qemu-kvm.

    Запущенная на нем виртуальная машина шлет команды физическому процессору напрямую через загружаемый модуль (kvm-amd или kvm-intel). Это должен быть один из модулей, который соответствует производителю процессора (Intel или AMD).

    • отключаю поддержку звука (это сервер, а не рабочая станция);
    • не использую протокол IPv6 (в моей сети он не используется);
    • отключаю поддержку сетевых карт wifi, wmax и все что сними связанно.

    В сборке собственного ядра мне помогли вот эти статьи первая и вторая.

    Забегу немного вперед. Многие люди в интернете жаловались на то, что модель сетевой карты virtio некорректно работает. Этому есть объяснение, и достаточно простое. Драйвера для этого устройства находятся в стадии экспериментальных. Зато virtio storage работают отлично.

    Теперь начинаем работать с виртуальными машинами. Создаем нашу первую виртуальную машину:
    virt-install --connect qemu:///system \
    --name comp1 \
    --ram 512 \
    --vcpus=1 \
    --disk pool=storage,cache=none,size=20, format= qcow2\
    --disk /home/firsachi/Winxp.iso,device=cdrom \
    --bridge=br0,model=e1000 \
    --os-type=windows
    --os-variant=winxp \
    --graphics vnc,port=5901,listen=0.0.0.0

    Некоторые детали хочу пояснить:
    pool=storage указываем пул, в котором нужно создать диск;
    cache=none это означает, что отключено кэширование записи на диск. В моем случае это образ img. При включенном кэшировании записи вдвое увеличивается время обращения к диску виртуальной машины;
    size=20 размер диска в гигабайтах;
    format= qcow2 это формат образа диска. Как я понял, только он поддерживает снимки системы;
    model=e1000 модель сетевой гигабитной карты Intel (по умолчанию идет стомегабитный rtl8139);
    port=5901 порт, на который можно обратиться с помощью Ultra VNC Viewer;
    listen=0.0.0.0 разрешение подключиться со всех IP (по умолчанию слушает только localhost).
    Установку можно произвести непосредственно и на устройство. Выглядеть будет так:
    virt-install --connect qemu:///system \
    --name comp1 \
    --ram 512 \
    --vcpus=1 \
    --disk /dev/sdb, format= qcow2\
    --disk /home/firsachi/Winxp.iso,device=cdrom \
    --bridge=br0,model=e1000 \
    --os-type=windows
    --os-variant=winxp \
    --graphics vnc,port=5901,listen=0.0.0.0

    Где sdb должен быть заменен на ваше устройство.

    Если все прошло успешно, то для подключения к консоли нашей виртуальной машины нужно установить Ultra VNC Viewer к себе на компьютер. В подключении нужно указать IP адрес сервера и порт, или доменное имя сервера и порт.
    Как происходит установка Windows, надеюсь, знают все.

    Теперь о драйверах виртуальных машин. Для установки драйверов нужны следующие образы дисков: virtio-win-0.1-30.iso и viostor-0.1-30-floppy.img
    Последний диск не обязателен, он нужен только в том случае, если вы собираетесь установить windows xp или windows 2003 server на virtio storage (кстати, если так сделать, то операционная система работает быстрее).

    • comp1 – имя виртуального компьютера, к которому подключаем диск.
    • /dev/sdc – путь к устройству на физическом компьютере.
    • Vdv — куда подключаем на виртуальной машине.
    • --type – тип диска.

    Во многом поможет и вот эта статья. Рекомендую также заглядывать вот сюда.

    • компьютер, на котором работала виртуальная машина, сгорел (процессор Atlon X2 245).
    • раз в неделю виртуальная машина выключается и делается резервная копия файла конфигурации и образа диска.

    Установил на нем Qemu-KVM, переместил на него файл конфигурации виртуальной машины и образ диска. В файле конфигурации отредактировал путь к диску виртуальной машины, перезагрузил ноутбук. И, о чудо! Гипервизор не только увидел мою виртуальную машину, но и запустил ее.

    Вот так теперь и живем: гипервизор Qemu-KVM, виртуальный контролер домена, и довольный проделанной работой я.
    Спасибо всем, кто дочитал до конца. Надеюсь, мои мысли оказались полезными.

    Недавно мы с вами рассмотрели вводные данные по технологии Kernel-based Virtual Machine (KVM), представляющей собой систему виртуализации с открытым исходным кодом, которая может использоваться для замены продуктов от VirtualBox и VMware, или вместе с ними.
    Сегодня я хотел бы более подробно рассмотреть управление носителями в KVM, которое включает в себя добавление и изменение размеров виртуальных дисков. Мы научимся создавать пулы носителей и дисков, рассмотрим использование NFS и и внешних USB-дисков с файловой системой NTFS.

    Управление носителями в KVM

    Управление носителями

    Откройте Virtual Machine Manager (VMM). Перейдите на вкладку Edit > Host Details > Storage.

    Вкладка управления носителями в KVM

    В левом столбце вы видите список всех пулов носителей. По умолчанию он только один и расположен в /var. На приведенном ниже скриншоте используется 18% доступного пространства и нет ни одного доступного образа диска. Неплохо, но это не то, что нам необходимо.

    Пулы носителей в KVM

    В правой части выводится информация по выделенному пулу. Во-первых, его тип. Позже мы поговорим об этом подробнее. Во-вторых, местоположение. Пункт state отображает статус пула - активен ли он, или приостановлен. Autostart сообщает о том, доступен ли этот пул для ваших виртуальных машин при запуске KVM. В подразделе Volumes представлен список всех виртуальных дисков, имеющихся в пуле, показаны их названия, размеры и формат. KVM поддерживает множество типов образов, далее мы поговорим о них.

    Добавление пула

    Итак, мы хотим добавить новый пул. Посмотрите на нижнюю часть левого столбца. Здесь есть несколько кнопок. Плюс отвечает за добавление пула. Кнопки play и stop отвечают за активацию и деактивацию пулов соответственно, без их удаления. А для удаления пулов предназначена последняя кнопка. Сейчас мы добавим немного дискового пространства.

    Запомните: пул - это логическая группа носителей, которая может включать один или несколько дисков, каждый из которых представляет собой виртуальный диск какого-либо типа. Добавление пула производится в два этапа.
    Во-первых, выберите имя и тип. Вы можете использовать директории (точки монтирования), включая устройства NFS, SCSI и iSCSI, разделы LVM и физические диски. Я пробовал использовать внешний жесткий диск, подключаемый к компьютеру по USB и отформатированный в файловую систему NTFS. Все просто работает, проблем не было.

    опции пула

    Второй этап будет зависеть от того, что вы выбрали на первом. Для директории в файловой системе большинство пунктов будет неактивно. Просто задайте путь и на этом все.

    добавление пула, шаг 2

    Но если вы выбрали, например, NFS, необходимо будет ввести дополнительную информацию, такую как имя хоста, директорию для экспорта, точку монтирования и тип файловой системы.

    типы пулов

    опции пулов

    Создание нового диска

    Теперь нам нужны новые диски. Файлы образов дисков обычно имеют расширение .img, но могут обозначаться и любым другим способом. Например, можно использовать raw или vmdk. Формат имеет значение, если вы собираетесь использовать виртуальные машины с другими программами.

    создание нового диска

    создание нового диска, этап 2

    Носители могут иметь формат raw, bochs, loopback, dmg, iso, qemu, vmdk и vpc. Теоретически это позволяет вам использовать свои виртуальные диски в Bochs, Parallels, QEMU, VMware и Hyper-V. Также вы можете создавать loopback-устройства и ISO-образы.

    типы носителей

    Max. capacity - это максимальный размер диска. Значение Accocation определяет, сколько дискового простанства вы хотите выделить виртуальному диску непосредственно при его создании. Вы можете задать любое значение от 0 до max. capacity. Теперь в левой нижней части окна должен отобразиться созданный вами диск.

    диск создан

    На этом мы успешно завершаем этап создания виртуального диска.

    Заключение

    В этом руководстве я попытался по возможности кратко описать типичные вопросы, которые могут возникнуть у начинающего пользователя KVM касательно управления носителями. Поэтому мы ограничились работой с графическим интерфейсом, изучив основы работы с пулами и образами дисков, и не залезая в дебри командной строки.

    Читайте также: