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 является частью пакета virtinst. Для ее установки введите в терминале:

sudo apt-get install virtinst

Существует несколько опций доступных при использовании virt-install. Например:

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
  1. -n web_devel: имя новой виртуальной машины, в данном примере web_devel.

  2. -r 256: определяет размер памяти виртуальной машины в мегабайтах.

  3. –disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4: указывает путь к виртуальному диску, который может быть файлом, разделом или логическим томом. В этом примере файл с именем web_devel.img в каталоге /var/lib/libvirt/images/ размером 4 гигабайта, использующий virtio в качестве дисковой шины.

  4. -c jeos.iso: файл, используемый как виртуальный CDROM. Файл может быть как образом ISO, так и путем к устройству CDROM основной системы.

  5. –accelerate: разрешает использование ускоряющих технологий ядра.

  6. –network: обеспечивает детали, касающиеся сетевого интерфейса виртуальной машины.

  7. –vnc: предоставление гостевой виртуальной консоли через VNC.

  8. –noautoconsole: не подключается автоматически к консоли виртуальной машины.

  9. -v: создает полностью вируализированную гостевую систему.

После загрузки virt-install вы сможете подсоединиться к консоли виртуальной машины либо локально с использованием GUI, либо с помощью утилиты virt-viewer.

virt-clone

Приложение virt-clone может быть использовано для копирования одной виртуальной машины в другую. Например:

sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \
--connect=qemu:///system 
  1. -o: оригинальная виртуальная машина.

  2. -n: имя новой виртуальной машины.

  3. -f: путь к файлу, локальному тому или разделу для использования новой виртуальной машиной.

  4. –connect: определяет к какому супервизору подключаться.

Также используйте опцию -d или –debug для помощи при решении проблем с virt-clone.

Замените web_devel и database_devel на подходящие названия виртуальных машин.

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

virsh

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

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

virsh -c qemu:///system list

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

virsh -c qemu:///system start web_devel

3. Аналогично, запустить виртуальную машину в процессе загрузки:

virsh -c qemu:///system autostart web_devel

4. Перегрузить виртуальную машину:

virsh -c qemu:///system reboot web_devel

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

virsh -c qemu:///system save web_devel web_devel-022708.state

Единожды сохраненная машина больше не может быть запущена. ( :?: возможно имеется ввиду, что не может быть запущена сохраненная копия, а не сама машина.)

6. Сохраненная виртуальная машина может быть восстановлена такой командой:

virsh -c qemu:///system restore web_devel-022708.state

7. Выключить виртуальную машину:

virsh -c qemu:///system shutdown web_devel

8. Устройство чтения CDROM может быть подмонтировано к виртуальной машине следующей командой:

virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom
В приведенных примерах замените web_devel на соответствующее название виртуальной машины, а web_devel-022708.state на описательное имя файла.

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

Пакет virt-manager содержит утилиту с графическим интерфейсом для управления локальными и удаленными виртуальными машинами. Для установки virt-manager введите:

sudo apt-get install virt-manager

Поскольку virt-manager требует наличия графической среды, рекомендуется ее устанавливать на рабочую станцию или тестовую машину, а не на рабочий сервер. Для подключения к локальному сервису libvirt введите:

virt-manager -c qemu:///system

Вы можете соединиться и к сервису libvirt, запущенном на другом компьютере, введя следующую команду в терминале:

virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
В последнем примере подразумевается, что SSH соединение между управляющей системой и virtnode1.mydomain.com уже настроено и для аутентификации используются ключи SSH. SSH ключи требуются поскольку libvirt посылает запрос на ввод пароля другому процессу. Подробности настройки SSH смотрите в разделе Сервер OpenSSH.

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

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

Для установки virt-viewer из терминала введите:

sudo apt-get install virt-viewer

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

virt-viewer -c qemu:///system web_devel

Как и virt-manager, virt-viewer может соединяться с удаленным сервером используя для аутентификации ключи SSH:

virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel

Убедитесь, что заменили web_devel на соответствующее название виртуальной машины. Если настроено использование моста для сетевого интерфейса, вы можете настроить SSH доступ и непосредственно к виртуальной машине. Смотрите разделы Сервер OpenSSH и Строительство мостов для дополнительной информации.

Ссылки

  1. Обратитесь к домашней странице KVM для дополнительной информации.

  2. Больше информации по libvirt смотрите на домашней странице libvirt.

  3. Сайт по Virtual Machine Manager содержит дополнительную информацию по разработке virt-manager.

  4. Также посетите IRC канал #ubuntu-virt на freenode для обсуждения технологий виртуализации в Ubuntu.

  5. Еще один хороший ресурс - страница Ubuntu Wiki KVM.