Qemu-KVM
KVM (или Kernel-based Virtual Machine) — это программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).
Устанока и настройка (qemu-kvm libvirt-bin)
Установка
Проверяем, поддерживает ли CPU аппаратную виртуализацию:
# egrep '(vmx|svm)' /proc/cpuinfo
Если вывод не пустой, значит — процессор поддерживает аппаратную виртуализацию. Кому интересно, все действия выполнялись на конфигурации Intel Xeon Quad Core E3-1230 3.20 GHz / 8GB / 2x 1TB.
Устанавливаем KVM и библиотеки виртуализации:
# apt-get install kvm libvirt
Запускаем сервис KVM
# service libvirtd start
Смотрим, загружен ли модуль KVM
# lsmod | grep kvm
Должны получить вывод:
kvm_intel 52890 16 kvm 314739 1 kvm_intel
В данном случае видим, что загружен модуль kvm_intel, так как произволитель CPU — Intel.
Проверка подключения к KVM
# virsh sysinfo
Должны получить вывод:
<sysinfo type='smbios'> <bios> <entry name='vendor'>HP</entry> <entry name='version'>J01</entry> .....
Настройка
Просмотрим список физических дисков на хост-сервере:
# fdisk -l
Получился вывод:
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes ......
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes ......
На жестком диске sda установлена ОС, его не трогаем, а вот на sdb создаем раздел на все свободное место диска с файловой системой ext4: (более подробно про следующие операции можно почитать здесь)
Выбираем диск для редактирования
# fdisk /dev/sdb
Создаем новый раздел
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1
Сохраняем изменения
Command (m for help): w The partition table has been altered!
Создаем файловую систему ext4 на всем свободном месте диска /dev/sdb
# mkfs.ext4 /dev/sdb1
Создаем точку монтирования нашего жесткого диска для файлов виртуальных машин:
# mkdir /guest_images # chmod 700 /guest_images # ls -la /guest_images total 8 drwx------. 2 root root 4096 May 28 13:57 . dr-xr-xr-x. 26 root root 4096 May 28 13:57 ..
Многие советуют отключить вообще Selinux, однако мы выберем иной путь. Мы настроим его правильно.
# semanage fcontext -a -t virt_image_t /guest_images
Если выполнение этой команды не будет успешным, надо установить дополнительный пакет. Сначала узнаем, какой пакет предоставляет данную команду
# apt-get install apt-file # apt-file search /usr/sbin/semanage
Получим вывод:
Устанавливаем policycoreutils-python
# apt-get -y install policycoreutils-python
После этого снова:
# semanage fcontext -a -t virt_image_t /guest_images
Смонтируем раздел /dev/sdb1 в /guest_images
# mount -t ext4 /dev/sdb1 /guest_images
Отредактируем файл /etc/fstab для того, чтобы при перезагрузке хост-сервера раздел с ВМ монтировался автоматически
# vi /etc/fstab
Добавляем строку по примеру тех, что уже имеются в файле
/dev/sdb1 /guest_images ext4 defaults 1 1
Сохраняем файл и продолжаем создание хранилища:
# virsh pool-define-as guest_images_dir dir - - - - "/guest_images" Pool guest_images_dir defined
Проверяем, создалось ли оно:
# virsh pool-list --all Name State Autostart ----------------------------------------- default active yes guest_images_dir inactive no
Далее:
# virsh pool-build guest_images_dir Pool guest_images_dir built
Запускаем хранилище:
# virsh pool-start guest_images_dir Pool guest_images_dir started # virsh pool-list --all Name State Autostart ----------------------------------------- default active yes guest_images_dir active no
Добавляем в автозагрузку:
# virsh pool-autostart guest_images_dir Pool guest_images_dir marked as autostarted # virsh pool-list --all Name State Autostart ----------------------------------------- default active yes guest_images_dir active yes
Проверяем:
# virsh pool-info guest_images_dir
Администрирование
virsh
Подключение/Отключение внешнего диска
$ virsh attach-disk comp1 /dev/sdb vdd --type disk $ virsh deatach-disk comp1 vdv
$ virsh -c qemu:///system attach-disk comp1 /dev/mapper/vgjb-lvsun--ch sda
xml
$ virsh -c qemu:///system attach-device comp1 /root/sunch_disk.xml
Восстановление после падения
Монтирование дисков
RAW Image
# losetup /dev/loop0 foo.img# kpartx -av /dev/loop0# mount /dev/mapper/loop0p1 /mnt # unmount /mnt# kpartx -dv /dev/loop0# losetup -d /dev/loop0
QCOW2 Image
# modprobe nbd max_part=8# qemu-nbd --connect=/dev/nbd0 disk.img# mount /dev/nbd0p1 /mnt
Документация / Ссыслки
Другие системы виртуализации
2016/12/05 03:08 | vagrant, chef, shell, puppet, salt, ansible, docker, devops, virtual | |
2017/11/09 16:38 | container, virtual | |
2017/11/09 16:34 | linux, container, containers, virtual | |
2015/10/13 12:01 | virtual | |
2015/10/13 12:01 | system, kernel, virtual | |
2015/10/13 12:01 | vagrant, chef, shell, puppet, salt, ansible, docker, virtual | |
2015/10/13 12:01 | virtualbox, virtual | |
2018/03/01 01:23 | vagrant, chef, shell, puppet, salt, ansible, docker, virtual |