Настройка виртуализации KVM на CentOS 7


Последнее время стало модно использовать всюду виртуализацию.
Имеем сервер с установленной CentOS 7 minimal x64 и планируем использовать KVM.

Конечно, не плохо бы было убедится что наш сервер поддержит виртуализацию (но если у вас современный нормальный сервер то думаю что 100% он это поддерживает).

egrep '(vmx|svm)' /proc/cpuinfo

Устанавливаем KVM на наш сервер:

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

yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install –y

не забываем добавить в автозагрузку:

systemctl enable libvirtd && systemctl start libvirtd

Создадим каталог для хранения образов виртуальных машин:

mkdir /var/vm

Ну тут у нас два пути или добавляем соответствующий контекст для нашей директории что бы не ругался SElinux:

semanage fcontext --add -t virt_image_t '/var/vm(/.*)?'
restorecon -R -v /var/vm
или просто его отключаем.

Ну в общем то готово. Остается только при необходимости произвести изменения настройки сети если такая необходимость есть.
Посмотреть список возможных сетей можно командой «virsh net-list»
По умолчанию имеем одну внутреннею сеть редактировать которую можно командой «virsh net-edit default» , где «default» название сети

Создадим виртуальную машину

Для примера (проверки) создадим первую виртуальную машину с простыми настройками и подключением к сети «default». Для начала скачаем образ OS которую будем ставить на сервер.

virt-install 
--network network=default
--name vm1 
--ram=2048 
--vcpus=1 
--disk path=/var/vm/vm1.img,size=20,format=qcow2 
--graphics vnc,password=123 
--cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso 
--boot cdrom,hd,menu=on 

И так пройдемся немного по параметрам которые мы указываем:

  • --network network=default Подключаем виртуальную машину к виртуальной сети с именем default
  • --name Указываем название виртуальной машины
  • --ram= Указываем размер оперативной памяти который выделяем
  • --vcpus= Указываем количество процессоров которое мы выделяем
  • --disk Указываем расположение, формат и размер виртуального диска
  • --graphics vnc,password=123 Указываем пароль и возможность подключатся к терминалу виртуальной машины через VNC
  • --cdrom Указываем расположение образа с которого будем устанавливать систему
  • --boot Что подключено при загрузке
Указанные выше команды могут быть введены одной строкой:

virt-install --network network=default --name vm1 --ram=2048 --vcpus=1 --disk path=/var/vm/vm1.img,size=20,format=qcow2 --graphics vnc,password=123 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on 

и мы увидим:

Запуск установки...
Выделение ресурсов «vm1.img»...                |  10 GB  00:00:00
Создание домена...                             |    0 B  00:00:00
Установка домена продолжается. Ожидание  до завершения установки...

Подключение к Виртуальной машине по VNC

Поскольку на нашем сервере нет оконного менеджера то что бы произвести установку и настройку нам необходимо как то подключится. В настройках при создании виртуалки «--graphics vnc,password=123» мы указали что можем подключатся к терминалу через VNC .

Нашей виртуальной машине был назначен порт VNC, узнать какой порт назначен конкретной виртуальной машине можно командой (где «vm1» название виртуальной машины ):

virsh vncdisplay vm1
127.0.0.1:0

Это означает, что порт VNC 5900+0=5900. Если бы результат был "127.0.0.1:1", порт VNC был бы 5901. И т.д. Подключатся к порту надо на хост (наш сервер который мы настраивали) виртуальных машин.

По умолчанию, хост виртуальных машин (у нас это CentOS 7 minimal) не должен позволять подключение к любому порту кроме ssh (22/tcp). Не советую вам открывать доступ к портам VNC из-вне. Это небезопасно. Для того, чтобы получить доступ к экрану виртуальной машины с рабочей станции Windows, с которой я все настраиваю, я сделал туннелирование порта в Putty: 5900 -> 127.0.0.1:5900.

Putty

 

TightVNC

 

После успешного логина по ssh, можно запустить TightVNC и указать порт 127.0.0.1::5900 (обратите внимание на двойное двоеточие).

VM

Подключившись к виртуальной машине можем произвести установку ОС и последующую настройку.

Управление Виртуальной машиной:

Включение виртуальной машины

virsh start vm1

Выключение виртуальной машины

virsh shutdown vm1

Выдергивание кабеля питания:

virsh destroy vm1

Приостановка работы:

virsh suspend vm1

Подключить к виртуальной машине iso-образ в качестве cdrom

virsh attach-disk vm1 /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso hda --type cdrom --mode readonly

Отключить iso-образ (не удалить устройство из гостя, а просто "извлечь cd-диск из привода"):

virsh attach-disk vm1 "" hda --type cdrom --mode readonly

Для того, чтобы при перезапуске хоста виртуальная машина vm1 запускалась автоматически:

virsh autostart vm1

Выключить автостарт для vm1:

virsh autostart vm1 --disable Domain vm1 unmarked as autostarted

Отключить iso-образ (не удалить устройство из гостя, а просто "извлечь cd-диск из привода"):

virsh attach-disk vm1 "" hda --type cdrom --mode readonly
#KVM #CentOS

Copyright © 2019