Меню Рубрики

Установка виртуальных машин kvm на centos

Установка и настройка KVM на CentOS 7

Подготовка сервера

Проверяем наличие поддержки со стороны процессора:

cat /proc/cpuinfo | egrep «(vmx|svm)»

Если команда ничего не вернет, на сервере отсутствует поддержка виртуализации или она отключена в настройках БИОС. Сам KVM поставить на такой сервер можно, но при попытке ввести команду управления гипервизором мы получим ошибку «WARNING KVM acceleration not available, using ‘qemu’». В таком случае необходимо перезагрузить сервер, войти в БИОС, найти поддержку технологии виртуализации (Intel VT или AMD-V) и включить ее.

Создадим каталоги, в которых будем хранить все, что касается виртуализации (предлагаемые по умолчанию не удобные):

* каталог /kvm/images для виртуальных дисков; /kvm/iso — для iso-образов.

Установка и запуск

Установка выполняется из репозитория следующей командой:

yum install qemu-kvm libvirt virt-install

* где qemu-kvm — сам гипервизор; libvirt — библиотека управления виртуализацией; virt-install — утилита для управления виртуальными машинами.

systemctl enable libvirtd

Настройка сети

В данной инструкции рассмотрим использование сетевого моста.

Настраивая сетевой мост через удаленное подключение, внимательно проверяйте вводимые данные. В случае ошибки соединение будет прервано.

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

Смотрим список сетевых интерфейсов и их настроек:

В моем примере были следующие данные:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0f0:
mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global enp4s0f0
valid_lft forever preferred_lft forever
inet6 fe80::216:76ff:fe04:26c6/64 scope link
valid_lft forever preferred_lft forever
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic:
mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff

* из этого для нас важны enp4s0f0 — реальный сетевой интерфейс с настроенным IP-адресом 192.168.1.24, через который идет подключение сервера к локальной сети (из него мы будем делать мост); 00:16:76:04:26:c6 — mac-адрес реального ethernet адаптера; virbr0 — виртуальный сетевой адаптер.

Редактируем настройки реального адаптера:

ONBOOT=yes
BR > TYPE=Ethernet
DEVICE=enp4s0f0
BOOTPROTO=none

Создаем интерфейс для сетевого моста:

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.24
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=77.88.8.8

Перезапускаем сетевую службу:

systemctl restart network

Сетевые настройки должны измениться — в моем случае:

2: enp4s0f0:
mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic:
mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
6: br0:
mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::216:76ff:fe04:26c6/64 scope link
valid_lft forever preferred_lft forever

Настаиваем перенаправления сетевого трафика:

sysctl -p /etc/sysctl.d/99-sysctl.conf

systemctl restart libvirtd

Создание виртуальной машины

Смотрим доступные варианты гостевых операционных систем:

Для создания первой виртуальной машины вводим следующую команду:

virt-install -n FirstTest \
—autostart \
—noautoconsole \
—network=bridge:br0 \
—ram 1024 —arch=x86_64 \
—vcpus=1 —cpu host —check-cpu \
—disk path=/kvm/images/FirstTest-disk1.img,size=16 \
—cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1611.iso \
—graphics vnc,listen=0.0.0.0,password=my_password \
—os-type linux —os-variant=rhel7 —boot cdrom,hd,menu=on

  • FirstTest — имя создаваемой машины;
  • autostart — виртуальная машина будет автоматически запускаться вместе с сервером KVM;
  • noautoconsole — после создания не подключается автоматически к консоли виртуальной машины;
  • network — тип сети (в нашем примере сетевой мост);
  • ram — объем оперативной памяти, который будет выделен;
  • vcpus — количество виртуальных процессоров;
  • disk — виртуальный диск: path — путь до диска; size — его объем;
  • cdrom — виртуальный привод с образом системы;
  • graphics — параметры подключения к виртуальной машины с помощью графической консоли (в данном примере используем vnc); listen — на какой адресе принимает запросы vnc (в нашем примере на всех); password — пароль для подключения при помощи vnc;
  • os-variant — гостевая операционная система (весь список мы получали командой osinfo-query os, в данном примере устанавливаем Reв Hat 7 / CentOS 7).

Дожидаемся создание виртуальной машины. И переходим к подключению по VNC.

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

Для установки операционной системы скачиваем VNC-клиент на компьютер администратора, например, TightVNC и устанавливаем его.

На сервере смотрим, на каком порту слушает VNC созданной машины:

virsh vncdisplay FirstTest

Это значит, что нужно к 5900 прибавить 0. Если результат команды будет :1 — 5900 + 1 = 5901 и так далее.

Открываем порт на брандмауэре:

firewall-cmd —permanent —add-port=5900-5905/tcp

* в данном примере добавлено сразу 6 tcp-портов от 5900 до 5905.

Запускаем установленный TightVNC Viewer, в открывшемся окне вводим IP-адрес сервера KVM и порт, на котором слушает наша ВМ (в данном примере, 5900):

Нажимаем Connect. Программа запросит пароль — вводим тот, что указали при создании ВМ, (в данном примере, my_password). Мы подключимся к виртуальной машине, как будто, к ней подключен монитор или удаленная консоль KVM.

Базовые команды управления ВМ

1. Получить список созданных машин:

2. Включить / перезагрузить / выключить.

а) включить виртуальную машину можно командой:

Читайте также:  Установка ветрового стекла скутер

* где FirstTest — имя созданной машины.

* посылает команду операционной системе на корректную перезагрузку.

* посылает команду операционной системе на корректное выключение.

г) выключить принудительно:

* грубо выключает ВМ. Может привести к потере данных. Способ стоит применять при полном зависании виртуалки.

д) отправить команду всем гостевым операционным системам:

for i in $(virsh list —name —state-shutoff); do virsh start $i; done

for i in $(virsh list —name —state-running); do virsh shutdown $i; done

* первыя команда запустит все ВМ, вторая — отправит команду на выключение.

3. Разрешаем автостарт для созданной ВМ:

virsh autostart FirstTest

4. Удаление виртуальной машины:

Удаляем виртуальную машину:

Удаляем виртуальный жесткий диск:

* где /kvm/images — папка, где хранится диск; FirstTest-disk1.img — имя виртуальног диска для удаленной машины.

5. Редактирование конфигурации виртуальной машины:

6. Увеличение диска

Получаем список дисков для виртуальной машины:

virsh domblklist FirstTest

Останавливаем виртуальную машину:

qemu-img resize /kvm/images/FirstTest-disk1.img +100G

* данной командой мы расширим дисковое пространство виртуального диска /kvm/images/FirstTest-disk1.img на 100 Гигабайт.

Запускаем виртуальную машину:

Меняем размер блочного устройства:

virsh blockresize FirstTest /kvm/images/FirstTest-disk1.img 200G

Получаем информацию о виртуальном диске:

qemu-img info /kvm/images/FirstTest-disk1.img

7. Работа со снапшотами

Создать снимок виртуальной машины можно командой:

virsh snapshot-create-as —domain FirstTest —name FirstTest_snapshot_2020-03-21

* где FirstTest — название виртуальной машины; FirstTest_snapshot_2020-03-21 — название для снапшота.

Список снапшотов можно посмотреть командой:

virsh snapshot-list —domain FirstTest

* данной командой мы просмотрим список всех снапшотов для виртуальной машины FirstTest.

Удалить снапшот можно так:

virsh snapshot-delete —domain FirstTest —snapshotname FirstTest_snapshot_2020-03-21

Управление через веб-интерфейс

Существуют различные веб-интерфейсы для управления гипервизором KVM. В данной инструкции мы рассмотрим oVirt.

Для его установки вводим команды:

yum install http://resources.ovirt.org/pub/yum-repo/ovirt-release41.rpm

После разворачиваем и настраиваем портал:

* после запуска команды система задаст ряд вопросов, на все, кроме ввода пароля, можно ответить по умолчанию (просто нажать Enter).

источник

Установка и настройка гипервизора KVM на CentOS

В данной статье мы рассмотрим установку и базовую настройку гипервизора KVM на сервере под управлением Linux CentOS. Покажем, как создать виртуальную машину в KVM, изменить ее настройки, установить гостевую операционную систему и основные команды управления ВМ.

KVM (Kernel-based Virtual Machine) средство виртуализации в среде Linux, которое использует аппаратную виртуализацию на базе Intel VT или AMD SVM. С помощью KVM вы можете создавать изолированные виртуальные машины с собственным виртуальным аппаратным обеспечением: сетевыми картами, дисками, видеокартами и другими устройствами. На виртуальные машины можно уставить любую ОС (не только Linux).

Установка KVM в CentOS

При настройке KVM на сервере, нужно начать с проверки вашего процессора. Нужно узнать, поддерживает ли аппаратную виртуализацию CPU, установленный на вашем сервере. Из консоли сервера, выполните команду:

# cat /proc/cpuinfo | egrep «(vmx|svm)»

Если ваш процессор поддерживает технологию VT-x, у вас должен быть примерно такой вывод:

Если же команда ничего не выдала, но ваш процессор точно поддерживает виртуализацию, проверьте, вохможно данная опция отключена в BIOS сервера. Ищите параметры “Intel Virtualization Technology” или “SVM MODE”.

На моем сервере поддержка данной технологии включена, поэтому можно приступать к установке необходимых компонентов в CentOS через пакетный менеджер yum/dnf:

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

  • qemu-kvm – сам гипервизор KVM;
  • libvirt – библиотеки управления вирилизацией;
  • virt-install – команды для управления виртуальными машинами KVM.

На сервер будет установлено большое количество пакетов, следите, чтобы у вас не возникло ошибок в процессе установки.

Теперь нужно добавить сервис libvirtd в автозагрузку и запустить его:

# systemctl enable libvirtd
# systemctl start libvirtd

Проверьте, загрузились ли модули ядра kvm_intel и kvm:

[root@localhost /]# lsmod | grep kvm

Если у вас ничего не выводится, перезагрузите сервер и проверьте повторно.

Настройка сети в KVM

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

Чтобы созданные виртуальные машины имели доступ в интернет, нам нужно настроить сеть через bridge. Для этого потребуется пакет bridge-utils, проверьте установлен ли он в Linux командой:

Если нужно, установите его:

# yum install bridge-utils -y

После установки пакетов для KVM, в системе появился сетевой интерфейс virbr0:

Чтобы создать сетевой мост(bridge), нужно настроить файл конфигурации для сетевого интерфейса сервера:

# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak – делаем бэкап файла

# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — открываем для редактирования

Удалите все содержимое и замените на следующее:

В вашем случае, имя интерфейса может отличаться (смотрите через команду ip a).

Где укажите свои данные: IP-адрес сервера и основной шлюз. После правки конфигурационных файлов сетевых интерфейсов нужно перезапустить есервис:

Чтобы проверить состояние bridge, используйте команду:

Последним шагом нужно настроить перенаправление сетевого трафика:

# echo -e «net.ipv4.ip_forward=1» >> /etc/sysctl.conf && sysctl -p

Теперь перезапустите сервис libvirtd:

На этом базовая настройка KVM закончена, можно создать виртуальную машину.

KVM: создание виртуальной машины

Перед созданием виртуальной машины, я скачал образ CentOS 8 с официального зеркала в директорию /vz/iso:

# cd /vz/iso && wget https://mirror.yandex.ru/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso

Чтобы создать новую виртуалную машину KVM, выполните:

virt-install -n test-centos \
—noautoconsole \
—network=bridge:br0 \
—ram 2048 —arch=x86_64 \
—vcpus=4 —cpu host —check-cpu \
—disk path=/vz/disk/test-centos.img,size=32 \
—cdrom /vz/iso/CentOS-8.1.1911-x86_64-dvd1.iso \
—graphics vnc,listen=IP,password=123456789 \
—os-type linux —os-variant=rhel7 —boot cdrom,hd,menu=on

  • test-centos — имя ВМ;
  • noautoconsole – после создания не нужно подключаться к консоли виртуальной машины автоматически;
  • network – тип сети(в нашем случае bridge);
  • ram — количество оперативной памяти в ВМ;
  • vcpus – количество ядер процессора (настройка vCPU в KVM);
  • disk – виртуальный диск, path – путь до диска. size – объем (в дальнейшем его можно расширить/уменьшить);
  • сdrom – виртуальный cdrom, в который монтируется iso образ для установки гостевой ОС;
  • graphics — параметры подключения к машине с помощью графической консоли. Мы подключаемся через VNC, поэтому в listen указывает IP сервера, где создали ВМ и пароль для подключения в консоли виртуальной машины (password).
Читайте также:  Установка hyper v сервера

Чтобы ВМ загружалась автоматически, выполните:

# virsh autostart test-centos

Подключение к ВМ на KVM через VNC, установка ОС

Чтобы подключиться к виртуальной машине через VNC, нам нужно узнать порт, на котором она работает:

[root@local vz]# virsh vncdisplay test-centos

означает, что порт для подключения по VNC 5900, если у вас будет другой результат, просто прибавляйте к 5900 цифру, которую выдаст вам команда.

Для подключения по VNC к серверам, я использую утилиту TightVNC. Запустите ее и укажите IP-адрес сервера и VNC порт, который мы узнали ранее (через двойное двоеточие).

Нажмите “Connect”, в открывшемся окне укажите пароль, который задали при создании ВМ. Если все сделали верно, у вас откроется консоль сервера, на которой запущена установка CentOS (или другой ОС, образ которой вы смонтировали).

Если у вас на сервере установлен файервол, откройте сетевые порты для VNC 5900-5910 в firewalld/iptables, этого количества должно хватить. После установки гостевой ОС на виртуальную машину, запустите ВМ с консоли сервера:

Чтобы выключить виртуальную машину KVM, используйте команду:

# virsh shutdown test-centos

Чтобы вывести список всех зарегистрированных виртуальных машин KVM:

Если вы предпочитаете графической управление, можете испольховат графическую консоль KVM — virt-manager.

На этом базовая настройка сервера для KVM и создание виртуальной машины окончено. На KVM можно создать неограниченное количество виртуальных машин, все зависит от ресурсов вашего сервера и ваших потребностей.

источник

Настройка KVM на CentOS 7

Настройку KVM будем проводить на CentOS 7, minimal, x64. Выбор KVM при использовании CentOS был для меня достаточно очевиден — он поддерживается и продвигается Red Hat.

Итак, в локальной сети 192.168.88.0/24 есть хост (CentOS 7, имя SERVER.LOCAL и IP 192.168.88.2, сетевой адаптер enp1s0). На этом хосте мы хотим запустить несколько виртуальных машин, доступных из локальной сети. Технология виртуализации: KVM.

Подготовительные работы

Для начала вообще проверим, наш хост поддерживает виртуализацию или нет:

Если ок (еще бы нет. ), готовим сеть для роутинга трафика между виртуальными машинами и внешней сетью:

Ок. Дальше выберем тип виртуальной сети.

Bridge или nat?

Есть два варианта работы виртуальных машин в сети:

1) Виртуальные машины будут за nat, недоступные из внешней сети.
Создаваемые виртуальные машины по-умолчанию будут принадлежать внутренней виртуальной сети хоста (по-умолчанию 192.168.122.0/24) и будут иметь доступ во внешнюю сеть хоста (т.е. в сеть 192.168.88.0/24), а если маршрутизация на хосте настроена, то и в интернет тоже. Из локальной сети виртуальные машины будут недоступны до тех пор, пока вы не настроите проброс портов (forwarding) на хосте из сети хоста в виртуальную сеть.
+ Этот способ проще, т.к. не потребует создания дополнительного сетевого интерфейса — bridge.
+ Если внешний IP один, то может быть невозможным иной сценарий, как только пробрасывать порты.
+ Возможно, вам вообще необходимо создать закрытую сеть для виртуальных машин и вам уж точно не нужно публиковать их в сети хоста. Кто знает? Хозяин — барин!

2) Bridge — виртуальные машины будут видны в сети так же, как и обычные компьютеры, без всяких там nat и forwarding.
В этом случае виртуальные машины будут получать IP по DHCP от вашего обычного сервера, будут видны в сетевом окружении другими компьютерами и прочее.
+ Клиенты в сети не увидят разницу между виртуальным сервером и реальным.
— В случае с внешним IP для каждой виртуальной машины нужен будет свой IP, а это не всегда возможно.
— Надо немного потрудиться и подготовить сеть хоста для создания бриджа (bridge), на котором и будет висеть сеть виртуальных машин.

После установки kvm у вас уже будет готовая внутренняя сеть (вариант 1), вполне себе работоспособная, позволяющая гостевым виртуалкам выходить в интернет. Для простоты предлагаю использовать эту сеть, почувствовать, что к чему и потом, при желании, создать bridge для реализации второго варианта.

Устанавливаем KVM

Собственно, мы дорвались до установки виртуализации KVM, эмулятора QEMU и сопутствующих инструментов.

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

# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
# systemctl enable libvirtd && systemctl start libvirtd

Хранить образы виртуальных машин мы будем в новой папке /vms

Добавляем соответствующий контекст для нашей папки, чтобы SELinux не возмущалась:

# semanage fcontext —add -t virt_image_t ‘/vms(/.*)?’

и проверяем, применились ли они:

# ls -aZ /vms
drwxr-xr-x. root root unconfined_u:object_r:virt_image_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..

Ок, скачиваем из сети образ iso для той ОС, которая будет установлена на вирт. машине, например, тот же CentOS 7 minimal для будущего веб-сервера? Или Tails? Кто знает 🙂

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

После вышеперечисленных действий для виртуальных машин на хосте создан сетевой интерфейс virbr0 с IP 192.168.122.1:

Также создана виртуальная сеть default:

Пока давайте не будем ничего менять и создадим виртуальную машину, подключенную с сети default:

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

Читайте также:  Установка пенного пожаротушения дистанционное

—network network=default — подключаем нашу виртуальную машину к виртуальной сети с именем default (с ней мы уже знакомы).
М.б. —network bridge:br0, например, если бы мы создали bridge с именем br0 для варианта номер 2.

Указанная выше команда может быть введена сразу, одной строкой, тут уж как удобнее:

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

После выполнения команды можете увидеть сообщение:

WARNING Unable to connect to graphical console: virt-viewer not installed. Please install the ‘virt-viewer’ package.
WARNING No console to launch for the guest, defaulting to —wait -1

Нам и не надо, ведь у нас все равно хост виртуальных машин не имеет оконного менеджера. У меня так, во всяком случае.

Мужественно ждем. Процесс займет какое-то время.

После завершения команды посмотрим список виртуальных машин:

Вирт. машины можно запускать ( virsh start vm1 ), приостанавливать ( virsh suspend vm1 ), возобновлять ( virsh resume vm1 ), выключать ( virsh shutdown vm1 ) и много чего еще с ними делать. Итак, машина vm1 запущена (проверить можно командой virsh domstate vm1 ). Как к ней подключиться?

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

На предыдущем этапе вы создали виртуальную машину, указали ей CDROM с операционной системой, а дальше что? Как вы планируете установить и настроить ОС? Да, есть варианты. Можно подготовить инфраструктуру и заливать готовые образы и др. Но мы с вами учимся и у нас нет ничего, кроме недавно скачанного с интернета файла образа диска iso. На самом деле все не сложно. Мы указали на предыдущем шаге параметр «—graphics vnc,password=vm1password». Он означает, что мы можем подключиться к терминалу (читай — экрану) виртуальной машины через VNC, например, программой TightVNC, указав IP хоста виртуальных машин и порт для подключения.

Нашей виртуальной машине был назначен порт VNC, подключившись к которому мы увидим «экран» виртуальной машины. Узнать, какой порт назначен конкретной vm1, можно командой:

# virsh vncdisplay vm1
127.0.0.1:0

Это означает, что порт VNC 5900+0=5900. Если бы результат был «127.0.0.1:1», порт VNC был бы 5901. И т.д.

Подключаться к порту 5900 надо к хосту виртуальных машин. Это на нем открыт этот порт, а не на виртуальной машине vm1.

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

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

Если после перезагрузки машины потребуется снова подключить к ней образ iso, это можно сделать командой:

# virsh attach-disk vm1 /vms-iso/CentOS-7-x86_64-Minimal-1503-01.iso hdb —type cdrom —mode readonly

где hdb — имя блочного устройства CDROM. Это имя можно узнать просмотрев конфиг вирт. машины ( virsh edit vm1 ).

Управлять виртуальными машинами с хоста можно консольным набором virsh. С некоторыми командами вы уже познакомились. Наберите в консоли:

и вы увидите, сколько всего можно сделать.

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

Если вы создадите виртуальную машину и попытаетесь ее выключить, то несмотря на рапорт о выполнении, машина может не выключиться:

Здесь дело в поддержке acpi со стороны виртуальной машины. Не во всех случаях вирт. машина обработает сигнал о выключении или перегагрузки (virsh shutdown/restart vm1). В этой ситуации могут быть следующие варианты:

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

Вы прекрасно понимаете, к чему это может привести. Хотя на начальном этапе, пока ОС не установлена, появление ошибок

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

Не всегда бывает необходимо выключать или перезагружать машину извне. Для обслуживания может быть достаточно приостановки. Не факт, но все же.

Включение поддержки acpi в виртуальной машине.

Тут могут быть разные рецепты, например так (выполнить в вирт. машине, а не на хосте):

yum install acpid
chkconfig acpid on
service acpid start

Автостарт виртуальных машин

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

# virsh autostart vm1
Domain vm1 marked as autostarted

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

# virsh autostart vm1 —disable Domain vm1 unmarked as autostarted

Контроль сетевой активности виртуальной машины KVM

Может быть полезным оценивать сетевую активность виртуальной машины — например, сколько трафика она потребила. Также это может помочь при отладке сети или поиске утечек трафика. Например:

Тут все понятно, кроме откуда взять название адаптера vnet0. Можно в дампе конфигурации вирт. машины (virsh dumpxml vm1) найти секцию network и в ней параметр dev:

Подключение и отключение привода cdrom

Подключить к vm3 iso-образ в качестве cdrom:

# virsh attach-disk vm3 /data/vms-iso/CentOS-7-x86_64-Minimal-1511.iso hda —type cdrom —mode readonly
Disk attached successfully

Здесь надо быть внимательным, т.к. после пути до iso-файла на хосте идет указание имени устройства cdrom у виртуальной машины vm3. Если вы не уверены, какое имя устройства надо указать (hda, hdb или др.), сверьтесь с конфигурацией виртуальной машины:

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

# virsh attach-disk vm5 «» hda —type cdrom —mode readonly

А еще созданные виртуальные машины можно клонировать. Удачи!

источник

Добавить комментарий

Adblock
detector