kvm

Qemu-KVM

KVM (или Kernel-based Virtual Machine) — это программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine).

Проверяем, поддерживает ли 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 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
$ virsh -c qemu:///system attach-device comp1 /root/sunch_disk.xml
# losetup /dev/loop0 foo.img
# kpartx -av /dev/loop0
# mount /dev/mapper/loop0p1 /mnt
 
# unmount /mnt
# kpartx -dv /dev/loop0
# losetup -d /dev/loop0
# modprobe nbd max_part=8
# qemu-nbd --connect=/dev/nbd0 disk.img
# mount /dev/nbd0p1 /mnt

Другие системы виртуализации

  • kvm.txt
  • Последнее изменение: 2018/06/22 02:53
  • mirocow