Содержание
libvirt
Библиотека libvirt используется в качестве интерфейса к различным технологиям виртуализации. Прежде чем начать использовать libvirt, стоит убедиться, что ваше оборудование поддерживает необходимые расширения виртуализации для KVM. Наберите следующее в терминале:
kvm-ok
Вам будет выведено сообщение о том поддерживает ли ваш центральный процессор (CPU) аппаратную виртуализацию или нет.
Виртуальные сети
Существует несколько способов позволить виртуальной машине получить доступ во внешнюю сеть. По умолчанию виртуальная сеть настраивается как 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
-n web_devel: имя новой виртуальной машины, в данном примере web_devel.
-r 256: определяет размер памяти виртуальной машины в мегабайтах.
–disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4: указывает путь к виртуальному диску, который может быть файлом, разделом или логическим томом. В этом примере файл с именем web_devel.img в каталоге /var/lib/libvirt/images/ размером 4 гигабайта, использующий virtio в качестве дисковой шины.
-c jeos.iso: файл, используемый как виртуальный CDROM. Файл может быть как образом ISO, так и путем к устройству CDROM основной системы.
–accelerate: разрешает использование ускоряющих технологий ядра.
–network: обеспечивает детали, касающиеся сетевого интерфейса виртуальной машины.
–vnc: предоставление гостевой виртуальной консоли через VNC.
–noautoconsole: не подключается автоматически к консоли виртуальной машины.
-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
-o: оригинальная виртуальная машина.
-n: имя новой виртуальной машины.
-f: путь к файлу, локальному тому или разделу для использования новой виртуальной машиной.
–connect: определяет к какому супервизору подключаться.
Также используйте опцию -d или –debug для помощи при решении проблем с virt-clone.
Управление виртуальными машинами
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
Управление виртуальными машинами
Пакет 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
Программа просмотра виртуальных машин
Приложение 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 и Строительство мостов для дополнительной информации.
Ссылки
Обратитесь к домашней странице KVM для дополнительной информации.
Больше информации по libvirt смотрите на домашней странице libvirt.
Сайт по Virtual Machine Manager содержит дополнительную информацию по разработке virt-manager.
Также посетите IRC канал #ubuntu-virt на freenode для обсуждения технологий виртуализации в Ubuntu.
Еще один хороший ресурс - страница Ubuntu Wiki KVM.