Серия RHCSA: Основы виртуализации и администрирования гостевых систем с KVM – Часть 15

Если вы посмотреть в словарь на слово virtualize, вы найдете, что оно означает “создавать виртуальную (а не реальную) версию чего-то”. В информатике термин виртуализация относится к возможности одновременного запуска нескольких операционных систем, которые изолированы друг от друга, на один и тот же физический ( Hardware) систему, известную в схеме виртуализации как 主机.

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

Через использование виртуального машинного монитора (также известного как гипервизор), виртуальные машины (известные как гости) получают виртуальные ресурсы (т.е. CPU, RAM, хранение, сетевые интерфейсы и многие другие) от нижнего оборудования.

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

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

Пожалуйста, учитывайте, что настоящийArticle is intended to be a starting point to learn the basics of virtualization in RHEL 7 using KVM (Kernel-based Virtual Machine) with command-line utilities, and not an in-depth discussion of the topic.

Verifying Hardware Requirements and Installing Packages

Для установки виртуализации вашу CPU должна поддерживать ее. Вы можете проверить, поддерживается ли ваша система эти требования следующим законом:

# grep -E 'svm|vmx' /proc/cpuinfo

На следующем снимке экрана видно, что текущая система (с AMD микропроцессором) поддерживает виртуализацию, как показано svm. Если бы у нас был процессор на базе Intel, в результатах вышеуказанного закона мы были бы видеть vmx вместо этого.

Check KVM Support

Кроме того, вам потребуется включить возможности для виртуализации в固件 вашего узла (BIOS или UEFI).

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

  1. qemu-kvm является открытым исходным виртуализатором, который обеспечивает эмуляцию оборудования для гипервизора KVM, в то время как qemu-img обеспечивает инструмент командной строки для манипуляции образами дисков.
  2. libvirt включает инструменты для взаимодействия с виртуализационными способностями операционной системы.
  3. libvirt-python содержит модуль, который позволяет приложениям, написанным на Python, использовать интерфейс, предоставляемый libvirt.
  4. libguestfs-tools: различные инструменты командной строки системного администратора для виртуальных машин.
  5. virt-install: другие утилиты командной строки для управления виртуальными машинами.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Когда установка закончена, убедитесь, что вы запустите и включите услугу libvirtd:

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

По умолчанию каждая виртуальная машина сможет общаться только с остальными на том же физическом сервере и с самим хостом. Чтобы позволить гостям достигать других машин внутри нашей локальной сети и Интернета, нам необходимо настроить мостовой интерфейс на хосте (назовем его br0, например) путем:

1. добавления следующей строки в конфигурацию основного сетевого интерфейса (скорее всего /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. создания файла конфигурации для br0 (/etc/sysconfig/network-scripts/ifcfg-br0) со следующим содержимым (обратите внимание, что вам может потребоваться изменить IP-адрес, адрес шлюза и информацию о DNS):

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. наконец, включение пересылки пакетов, изменив файл /etc/sysctl.conf следующим образом:

net.ipv4.ip_forward = 1

и загрузка изменений в текущую конфигурацию ядра:

# sysctl -p

Обратите внимание, что вам также может потребоваться указать firewalld, что такой трафик должен быть разрешен. Помните, что вы можете обратиться к статье по этой теме в этой же серии (Часть 11: Управление сетевым трафиком с помощью FirewallD и Iptables), если вам нужна помощь в этом.

Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/