Это старая версия документа.


libvirt

Библиотека libvirt используется в качестве интерфейса к различным технологиям виртуализации. Прежде чем начать использовать libvirt стоит убедиться, что ваше оборудование поддерживает необходимые расширения виртуализации для KVM. Наберите следующее в терминале:

kvm-ok

Вам будет выведено сообщение о том поддерживает ли ваш центральный процессор (CPU) аппаратную виртуализацию или нет.

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

Виртуальные сети

Существует несколько способов позволить виртуальной машине получить доступ во внешнюю сеть. По умолчанию виртуальная сеть настраивается как usermode, когда используется протокол SLIRP, а сетевые данные маскируются с помощью NAT на сетевом интерфейсе компьютера при соединении с внешней сетью.

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

Установка

Для установки необходимых пакетов введите в строке терминала:

sudo apt-get install kvm libvirt-bin

После установки libvirt-bin пользователя, используемого для управления виртуальными машинами, необходимо добавить в группу libvirtd. Это позволит пользователю получить доступ к расширенным сетевым опциям.

Введите в терминале:

sudo adduser $USER libvirtd
Если в качестве пользователя выбран текущий, вам потребуется выйти из системы и войти снова, чтобы применились новое членство в группе.

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

В случае с виртуальными машинами графический пользовательский интерфейс (GUI) аналогичен использованию физической клавиатуры и мыши. Вместо установки GUI приложение virt-viewer может быть использовано для соединения с консолью виртуальной машины по VNC. Смотрите секцию Программа просмотра виртуальных машин для дополнительной информации.

Существует несколько способов автоматизации процесса установки Ubuntu, например, использование preseeds, kickstart и пр. Обратитесь к руководству по установке Ubuntu за подробностями.

Кроме того, еще один способ установить виртуальную машину Ubuntu - использовать ubuntu-vm-builder. ubuntu-vm-builder позволит вам создать дополнительные разделы, выполнить после-установочные сценарии и пр. Детали смотрите в разделе JeOS и vmbuilder.

virt-install

virt-install is part of the virtinst package. To install it, from a terminal prompt enter:

sudo apt-get install virtinst

There are several options available when using virt-install. For example:

sudo virt-install -n web_devel -r 256 \ –disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ jeos.iso –accelerate –network network=default,model=virtio \ –connect=qemu:/system –vnc –noautoconsole -v -n web_devel: the name of the new virtual machine will be web_devel in this example. -r 256: specifies the amount of memory the virtual machine will use in megabytes. –disk path=/var/lib/libvirt/images/web_devel.img,size=4: indicates the path to the virtual disk which can be a file, partition, or logical volume. In this example a file named web_devel.img in the /var/lib/libvirt/images/ directory, with a size of 4 gigabytes, and using virtio for the disk bus. -c jeos.iso: file to be used as a virtual CDROM. The file can be either an ISO file or the path to the host's CDROM device. –accelerate: enables the kernel's acceleration technologies. –network provides details related to the VM's network interface. Here the default network is used, and the interface model is configured for virtio. –vnc: exports the guest's virtual console using VNC. –noautoconsole: will not automatically connect to the virtual machine's console. -v: creates a fully virtualized guest. After launching virt-install you can connect to the virtual machine's console either locally using a GUI or with the virt-viewer utility. ====virt-clone==== The virt-clone application can be used to copy one virtual machine to another. For example: sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ –connect=qemu:/system

  1. o: original virtual machine.
  1. n: name of the new virtual machine.
  1. f: path to the file, logical volume, or partition to be used by the new virtual machine.
  1. connect: specifies which hypervisor to connect to.

Also, use -d or –debug option to help troubleshoot problems with virt-clone.

Replace web_devel and database_devel with appropriate virtual machine names.

Управление виртуальными машинами

virsh

There are several utilities available to manage virtual machines and libvirt. The virsh utility can be used from the command line. Some examples:

  To list running virtual machines:
  virsh -c qemu:///system list
  To start a virtual machine:
  virsh -c qemu:///system start web_devel
  Similarly, to start a virtual machine at boot:
  virsh -c qemu:///system autostart web_devel
  Reboot a virtual machine with:
  virsh -c qemu:///system reboot web_devel
  The state of virtual machines can be saved to a file in order to be restored later. The following will save the virtual machine state into a file named according to the date:
  virsh -c qemu:///system save web_devel web_devel-022708.state
  Once saved the virtual machine will no longer be running.
  A saved virtual machine can be restored using:
  virsh -c qemu:///system restore web_devel-022708.state
  To shutdown a virtual machine do:
  virsh -c qemu:///system shutdown web_devel
  A CDROM device can be mounted in a virtual machine by entering:
  virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom

In the above examples replace web_devel with the appropriate virtual machine name, and web_devel-022708.state with a descriptive file name.

Управление виртуальными машинами

The virt-manager package contains a graphical utility to manage local and remote virtual machines. To install virt-manager enter:

sudo apt-get install virt-manager

Since virt-manager requires a Graphical User Interface (GUI) environment it is recommended to be installed on a workstation or test machine instead of a production server. To connect to the local libvirt service enter:

virt-manager -c qemu:/system You can connect to the libvirt service running on another host by entering the following in a terminal prompt: virt-manager -c qemu+ssh:virtnode1.mydomain.com/system

The above example assumes that SSH connectivity between the management system and virtnode1.mydomain.com has already been configured, and uses SSH keys for authentication. SSH keys are needed because libvirt sends the password prompt to another process. For details on configuring SSH see OpenSSH Server

Программа просмотра виртуальных машин

The virt-viewer application allows you to connect to a virtual machine's console. virt-viewer does require a Graphical User Interface (GUI) to interface with the virtual machine.

To install virt-viewer from a terminal enter:

sudo apt-get install virt-viewer

Once a virtual machine is installed and running you can connect to the virtual machine's console by using:

virt-viewer -c qemu:/system web_devel Similar to virt-manager, virt-viewer can connect to a remote host using SSH with key authentication, as well: virt-viewer -c qemu+ssh:virtnode1.mydomain.com/system web_devel

Be sure to replace web_devel with the appropriate virtual machine name.

If configured to use a bridged network interface you can also setup SSH access to the virtual machine. See OpenSSH Server and Bridging for more details.

Ссылки

  See the KVM home page for more details.
  For more information on libvirt see the libvirt home page
  The Virtual Machine Manager site has more information on virt-manager development.
  Also, stop by the #ubuntu-virt IRC channel on freenode to discuss virtualization technology in Ubuntu.
  Another good resource is the Ubuntu Wiki KVM page.