Часть 7: QEMU KVM libvirt. Описание, установка. - github2wiki/SPBSUT_KURS GitHub Wiki
QEMU
QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ.
Помимо эмуляции, поддерживает технологии аппаратной виртуализации (Intel VT и AMD SVM) на x86-совместимых процессорах Intel и AMD. Первоначально разработка велась в рамках проекта Linux KVM (Kernel-based Virtual Machine), в котором, помимо собственно KVM (поддержки технологий аппаратной виртуализации x86-совместимых процессоров на уровне ядра Linux), разрабатывались патчи для QEMU, позволяющие QEMU использовать функциональность KVM. Впоследствии патчи были объединены с основной веткой программы.
То есть, QEMU - это гипервизор, использующий преимущественно KVM. (Про KVM уже говорили ранее)
libvirt
libvirt — свободная реализация API, демон и набор инструментов для управления виртуализацией. Позволяет управлять гипервизорами Xen, KVM, а также VirtualBox, OpenVZ, LXC, VMware ESX/GSX/Workstation/Player, QEMU и другими средствами виртуализации, предоставляет возможность контролировать виртуальные машины по сети, расположенные на других компьютерах. Эти API широко используются в слоях гипервизоров при разработке облачных решений.
libvirt — это библиотека, написанная на C, имеет множество биндингов для других языков программирования Python, Perl, OCaml, Ruby, Java, JavaScript (при помощи Node.js) и PHP. libvirt для этих языков программирования выглядит как обертка вокруг другого класса/пакета libvirtmod. Реализация libvirtmod тесно связана с частью этой библиотеки через C/C++ по синтаксису и функциональности.
Разработка libvirt спонсировалась Red Hat, со значительными взносами от других организаций и частных лиц. Libvirt доступна для большинства Linux дистрибутивов; управление удаленными серверами также доступно из Apple Mac OS X и Microsoft Windows.
Установка QEMU/KVM на CentOS 7
libvirt — это просто API, а вот как с ним взаимодействовать решать пользователю. Вариантов куча. Мы воспользуемся несколькими стандартными утилитами.
Сначала проверим, поддерживается ли аппаратная виртуализация. На самом деле, работать будет и без её поддержки, только гораздо медленнее.
egrep --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
Так как KVM то модуль ядра Linux, то нужно проверить, загружен ли он уже, и если нет, то загрузить.
lsmod | grep kvm
Если модуль не загружается, значит, нужно включить в BIOS аппаратную виртуализацию.
Теперь давайте установим сразу все необходимые пакеты:
sudo yum install -y qemu-kvm qemu-img libvirt libvirt-python libvirt-client virt-install
qemu-img - утилита для работы с дисками,
virt-install - используется для создания новых виртуальных машин под KVM.
Virsh
Для управления нашими виртуальными машинами будем использовать стандартную утилиту virsh. Её полные возможности вы можете узнать с помощью команды virsh --help
Например, для того чтобы просмотреть список доступных доменов (так в терминалогии virsh называется виртуальная машина), нужно использовать команду:
sudo virsh list
Для того, чтобы увидеть в этом списке неактивные домены, нужно просто добавить флаг --all
. О полном функционале можно команды list
можно узнать, выполнив:
virsh list --help
Эта команда справедлива и для остального, включая, например, виртуальные сетевые устройства (о них поговорим в следующей части). В любом непонятном случае добавляйте --help
:)