Перезапустить виртуальную машину linux

Manage your virtual machines

There are several methods from the GUI, but the easiest to set up is probably VirtManager. See the setup guide at the above link. Alternative management options include convirt (GUI) or convirt2 (WWW).

From the shell

You can manage your VMs from the shell using virsh. You can get a list of the available commands if you type «help». Type «help command» to get additional infos for a particular command.

Define your new VM

Before you can manage your new VM with virsh, you must define it:

$ virsh --connect qemu:///system Connecting to uri: qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # define /etc/libvirt/qemu/newvm.xml Domain newvm defined from /etc/libvirt/qemu/newvm.xml

Note that to list newvm, you must use ‘list —inactive’ or ‘list —all’, since list without any options will only list currently running machines.

List your VMs

Virsh allows you to list the virtual machines available on the current host:

yhamon@paris:/etc/libvirt/qemu$ virsh --connect qemu:///system Connecting to uri: qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # help list NAME list - list domains SYNOPSIS list [--inactive | --all] DESCRIPTION Returns list of domains. OPTIONS --inactive list inactive domains --all list inactive & active domains virsh # list Id Name State ---------------------------------- 15 mirror running 16 vm2 running virsh # list --all Id Name State ---------------------------------- 15 mirror running 16 vm2 running - test5 shut off

Define, undefine, start, shutdown, destroy VMs

The VMs you see with list —all are VMs that have been «defined» from an XML file. Every VM is configured via a XML file in /etc/libvirt/qemu. If you want to remove a VM from the list of VMs, you need to undefine it:

virsh # undefine test5 # WARNING: undefine will delete your XML file! Domain test5 has been undefined virsh # list --all Id Name State ---------------------------------- 15 mirror running 16 vm2 running

To be able to undefine a virtual machine, it needs to be shutdown first:

virsh # shutdown mirror Domain mirror is being shutdown

This command asks for a nice shutdown (like running shutdown in command line).

Notice: Ubuntu 10.04 server doesn’t have acpid installed by default. This package needs to be installed on the guest OS before it will listen to any requests from the host.

You can also use «destroy», the more brutal way of shutting down a VM, equivalent of taking the power cable off:

virsh # destroy mirror Domain mirror destroyed

If you have made a change to the XML configuration file, you need to tell KVM to reload it before restarting the VM:

virsh # define /etc/libvirt/qemu/mirror.xml Domain mirror defined from /etc/libvirt/qemu/mirror.xml
virsh # start mirror Domain mirror started

Suspend and resume a Virtual Machine

Virsh allows you to easily suspend and resume a virtual machine.

virsh # suspend mirror Domain mirror suspended virsh # resume mirror Domain mirror resumed

Editing the attributes of a Virtual Machine

  1. export (aka ‘dump’) the xml of the virtual machine you want to edit
  2. edit the xml
  3. import (aka ‘define’) the xml
Читайте также:  Linux mint icons theme

For example, to edit the machine named ‘foo’ (you can get a list of your machines with ‘virsh list —all’), do:

$ virsh dumpxml foo > /tmp/foo.xml (edit /tmp/foo.xml as needed) $ virsh define /tmp/foo.xml

Adding CPUs

KVM allows you to create SMP guests. To allocate two CPUs to a VM, dump the xml as above, then edit your xml to have:

Now define the VM as above.

Adding Memory

To change the memory allocation in a VM, dump the xml as above, then edit your xml to have:

Now define the VM as above. Keep in mind that the memory allocation is in kilobytes, so to allocate 512MB of memory, use 512 * 1024, or 524288.

Changing the Network Card Model

kvm and qemu currently default to using the rtl8139 NIC. Supported NICs in Ubuntu 8.04 LTS are i82551, i82557b, i82559er, ne2k_pci, pcnet, rtl8139, e1000, and virtio. To use an alternate NIC, dump the xml as above, then edit your xml to have:

Now define the VM as above.

Adding USB Device Pass-through

Limitations

Apparmor Modification

In order for a software program to access the usb device correctly the apparmor abstraction for qemu must be changed. Edit /etc/apparmor.d/abstractions/libvirt-qemu add a line:

# this lets qemu read all USB device information and might be considered a security risk /run/udev/data/* r,

After making the changes the guest must be restarted to get its profile regenerated.

Adding USB devices

This can also be done via virt-manager.

First find the usb Vendor ID and Product ID.:

$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 012: ID 0a5c:2110 Broadcom Corp. Bluetooth Controller Bus 005 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

In the event that the Broadcom Corp. Bluetooth Controller wants to be selected the vendor and product ids are 0a5c and 2110 respectively.

Hot Add

Create an xml snippet just representing the device like

You can then attach/detach that via:

$ virsh attach-device # work with it in the guest $ virsh detach-device

Static Add

The IDs can be entered into the xml profile. This can be done through virsh through the edit command.:

Читайте также:  Get folder permissions linux

Get new IDs

To get a new mac address to paste into your xml file, use this command:

MACADDR=»52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum | sed ‘s/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/’)»; echo $MACADDR

To get a new uuid for your xml file, use: uuidgen

KVM/Managing (последним исправлял пользователь paelzer 2017-04-26 07:45:02)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Источник

Управление виртуальными машинами KVM из консоли

date

04.03.2020

user

VyacheslavK

directory

CentOS, KVM, Linux

comments

комментария 3

В предыдущей статье мы рассмотрели установку гипервизора KVM и создание виртуальной машины. В рамках одной статьи, мы не смогли охватить все нюансы управления виртуальными машинами, а затронули лишь их часть. Сегодня, мы постараемся рассказать все об управлении виртуальными машинами из консоли сервера: как изменить параметры ВМ, добавить дополнительные устройства и рассмотрим основные команды, которые используются для администрирования виртуальных машин KVM.

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

Первый вопрос, который возникает у начинающего администратора KVM: как увидеть созданные виртуальные машины, как остановить, запустить и удалить их. Для управления ВМ в KVM из консоли можно использовать утилиту virsh (использует libvirt API). С помощью утилиты virsh можно выполнить практически все операции с виртуальными машинами KVM.

# virsh list – показать список запущенных ВМ

# virsh list —all – показать список всех машин (в том числе выключенных)

virsh list --all вывести все ВМ на сервере KVM

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

# virsh shutdown — выключить виртуальную машину

# virsh start — запустить виртуальную машину

virsh shutdown включить/выключить виртуальную машину kvm

# virsh suspend — приостановить виртуальную машину

# virsh resume — запустить приостановленную виртуальную машину

# virsh reboot — перезапустить виртуальную машину

# virsh destroy — уничтожить виртуальную машину

# virsh undefine — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).

# virsh vcpuinfo — информация о процессоре на виртуальной машине (информацию о железе физического Linux сервера можно получить так)

virsh vcpuinfo информация о процессорах ВМ

Еще несколько команд по получению различной информации о виртуальной машине:

# virsh domid — получить идентификатор виртуальной машины

# virsh domuuid — получить UUID виртуальной машины

# virsh dominfo — получить сведения о виртуальной машине

# virsh domstate — просмотр состояния виртуальной машины

virsh dominfo вывести все настройки виртуальной машины kvm

# virsh dumpxml — вывести файл конфигурации указанной виртуальной машины в XML формате

Добавление памяти и vCPU виртуальной машине KVM

В консоли KVM вы можете добавить или уменьшить ресурсы процессора и памяти, выделенные для ВМ двумя способами:

Если виртуальная машина запущена, ее нужно остановить:

# virsh shutdown test-centos

Domain test-centos is being shutdown

Теперь с помощью virsh изменим количество виртуальных процессоров до 6 (vCPU):

— количество ядер процессора

# virsh setvcpus test-centos 6 —config

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

“error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6 > 4”

Мы не можем установить количество ядер процессора, больше, чем максимальное количество. Чтобы увеличить максимальное количество ядер ВМ, выполните команду:

# virsh setvcpus test-centos 6 —config —maximum

Читайте также:  Виды файловых систем ос linux

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

virsh setvcpus добавить ядра процессора

Проверим количество процессоров в настройках ВМ: овленное количество процессоров:

 test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 2097152 2097152 6 

Аналогичным образом добавим память виртуальной машине:

# virsh setmem test-centos 4G —config

Все по той же причине, сразу же вышла ошибка:

“error: invalid argument: cannot set memory higher than max memory.”

Увеличим максимальное значение памяти::

# virsh setmaxmem test-centos 6G —config

Теперь можно увеличить память ВМ.

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

Также вы можете изменить ресурсы ВМ KVM через ее конфигурационный XML файл. Можно изменить файл в режиме онлайн или же сделав бэкап XML файла ВМ, изменить его и применить к виртуальной машине.

Отредактируем XML файл ВМ в онлайн режиме:

В открывшемся редакторе vi внесите изменения, нажав кнопку “Insert”.

test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 6291456 4194304 6

Например, зададим для ВМ 2 ядра и 1Гб памяти:

kvm добавить память и процессоры для виртуальной машины через xml

Сохраните изменения в файле и перезапустите ВМ:

xml файл с настройками ВМ KVM

Тоже самое можно сделать, сделав бэкап XML файла:

# virsh dumpxml > /root/test.xml
# vi /root/test.xml

Измените нужные вам параметры, сохраните файл и примените к виртуальной машине:

# virsh shutdown test-centos

Domain test-centos is being shutdown
Domain test-centos defined from /root/test.xml
Domain test-centos started

Иногда при изменении конфигурационного файла ВМ в онлайн режиме назначенные ресурсы сбрасываются после перезагрузки. В этом случае выполните остановку виртуальной машины и после этого просто запустите ее.

KVM: добавление диска в виртуальную машину

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

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

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

Вместо qcow2 вы можете указать нужный формат диска, так же нужно указать путь до файла. У меня хранилище для дисков /vz/disk/.

После этого, можно добавить устройство виртуального диска к самой ВМ:

# virsh attach-disk /vz/disk/test.img vdb —type disk —persistent

Остановите и запустите ВМ, проверьте что получилось:

# virsh shutdown test-centos

Domain test-centos is being shutdown
Domain test-centos started
 test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 2097152 2097152 6 /machine  hvm    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       

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

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

Попрьуем добавить дополнительный сетевой интерфейс для ВМ. Сначала проверим, какие сетевые интерфейсы созданы на хосте:

brctl show - сетевые интерфейсы KVM

У меня на KVM сервере создана одна виртуальная машина, с одним сетевым интерфейсом. К br0 нам нужно прикрепить еще один виртуальный сетевой интерфейс. Выполните команды:

# virsh shutdown test-centos
# virsh attach-interface test-centos —type bridge —source br0 —persistent
# virsh start test-centos

Проверьте, что у ВМ появился дополнительный сетевой интерфейс:

добавить сетевую карту для вирт. машины kvm

Также вы можете изменить сетевые настройки виртуальной машины напрямую через XML файл: # virsh edit test-centos

После первого сетевого интерфейса добавьте следующие строки:

Сохраните файл и запустите ВМ. Остальную конфигурацию, KVM добавит сам (mac address и тд).

В данной статье мы затронули основные моменты, которые могут вам понадобиться при управлении виртуальными машинами KVM из консоли Linux сервера. В следующей статье мы рассмотрим управление виртуальными машинами через графический менеджер virt-manager.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

Оцените статью
Adblock
detector