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).

Читайте также:  Командная строка linux полное руководство уильям шоттс 2017

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

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.

Читайте также:  Deb package arch linux

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

Читайте также:  Linux btrfs file system

Static Add

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

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

Источник

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