Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:виртуализация:libvirt [2012/09/21 17:25] создано |
wiki:руководство_по_ubuntu_server:виртуализация:libvirt [2012/09/23 13:34] (текущий) [Установка] |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
=====libvirt===== | =====libvirt===== | ||
- | The libvirt library is used to interface with different virtualization technologies. Before getting started with libvirt it is best to make sure your hardware supports the necessary virtualization extensions for KVM. Enter the following from a terminal prompt: | + | Библиотека **libvirt** используется в качестве интерфейса к различным технологиям виртуализации. Прежде чем начать использовать **libvirt**, стоит убедиться, что ваше оборудование поддерживает необходимые расширения виртуализации для **KVM**. Наберите следующее в терминале: |
+ | <code>kvm-ok</code> | ||
+ | Вам будет выведено сообщение о том поддерживает ли ваш центральный процессор (CPU) аппаратную виртуализацию или нет. | ||
- | kvm-ok | + | <note>На большинстве компьютеров, чьи процессоры поддерживают виртуализацию, необходимо включать эту опцию в BIOS.</note> |
- | + | ||
- | A message will be printed informing you if your CPU does or does not support hardware virtualization. | + | |
- | + | ||
- | On most computer whose processor supports virtualization, it is necessary to activate an option in the BIOS to enable it. | + | |
- | + | ||
- | Virtual Networking | + | |
- | Installation | + | |
- | virt-install | + | |
- | virt-clone | + | |
- | Virtual Machine Management | + | |
- | Virtual Machine Viewer | + | |
- | Resources | + | |
====Виртуальные сети==== | ====Виртуальные сети==== | ||
- | There are a few different ways to allow a virtual machine access to the external network. The default virtual network configuration is usermode networking, which uses the SLIRP protocol and traffic is NATed through the host interface to the outside network. | + | Существует несколько способов позволить виртуальной машине получить доступ во внешнюю сеть. По умолчанию виртуальная сеть настраивается как **usermode**, когда используется протокол **SLIRP**, а сетевые данные маскируются с помощью **NAT** на сетевом интерфейсе компьютера при соединении с внешней сетью. |
- | To enable external hosts to directly access services on virtual machines a bridge needs to be configured. This allows the virtual interfaces to connect to the outside network through the physical interface, making them appear as normal hosts to the rest of the network. For information on setting up a bridge see Bridging. | + | Чтобы разрешить внешним компьютерам соединяться с сервисами виртуальной машины напрямую, требуется настроить мост (**bridge**). Это делает возможным соединения виртуальных интерфейсов с внешней сетью через физический интерфейс, позволяя им считать себя обычными компьютерами в нормальной сети. Для информации по настройке сетевых мостов смотрите секцию [[wiki:руководство_по_ubuntu_server:сеть:сетевые_настройки#строительство_мостов|Строительство мостов]]. |
====Установка==== | ====Установка==== | ||
- | To install the necessary packages, from a terminal prompt enter: | + | Для установки необходимых пакетов введите в строке терминала: |
+ | <code>sudo apt-get install kvm libvirt-bin</code> | ||
- | sudo apt-get install kvm libvirt-bin | + | После установки **libvirt-bin**, пользователя, используемого для управления виртуальными машинами, необходимо добавить в группу **libvirtd**. Это позволит пользователю получить доступ к расширенным сетевым опциям. |
- | After installing libvirt-bin, the user used to manage virtual machines will need to be added to the libvirtd group. Doing so will grant the user access to the advanced networking options. | + | Введите в терминале: |
+ | <code>sudo adduser $USER libvirtd</code> | ||
+ | <note>Если в качестве пользователя выбран текущий, вам потребуется выйти из системы и войти снова, чтобы применились новое членство в группе.</note> | ||
- | In a terminal enter: | + | Теперь вы готовы установить гостевую операционную систему. Установка виртуальной машины повторяет тот же процесс, что и на обычном оборудовании. Вы можете либо автоматизировать установку, либо потребуется подключение клавиатуры и монитора к физической машине. |
- | sudo adduser $USER libvirtd | + | В случае с виртуальными машинами графический пользовательский интерфейс (GUI) аналогичен использованию физической клавиатуры и мыши. Вместо установки GUI приложение **virt-viewer** может быть использовано для соединения с консолью виртуальной машины по VNC. Смотрите секцию [[#программа_просмотра_виртуальных_машин|Программа просмотра виртуальных машин]] для дополнительной информации. |
- | If the user chosen is the current user, you will need to log out and back in for the new group membership to take effect. | + | Существует несколько способов автоматизации процесса установки Ubuntu, например, использование preseeds, kickstart и пр. Обратитесь к [[https://help.ubuntu.com/12.04/installation-guide/|Руководству по установке Ubuntu]] за подробностями. |
- | You are now ready to install a Guest operating system. Installing a virtual machine follows the same process as installing the operating system directly on the hardware. You either need a way to automate the installation, or a keyboard and monitor will need to be attached to the physical machine. | + | Кроме того, еще один способ установить виртуальную машину Ubuntu - использовать **ubuntu-vm-builder**. **ubuntu-vm-builder** позволит вам создать дополнительные разделы, выполнить после-установочные сценарии и пр. Детали смотрите в разделе [[wiki:руководство_по_ubuntu_server:виртуализация:jeos_and_vmbuilder|JeOS и vmbuilder]]. |
- | + | ||
- | In the case of virtual machines a Graphical User Interface (GUI) is analogous to using a physical keyboard and mouse. Instead of installing a GUI the virt-viewer application can be used to connect to a virtual machine's console using VNC. See Virtual Machine Viewer for more information. | + | |
- | + | ||
- | There are several ways to automate the Ubuntu installation process, for example using preseeds, kickstart, etc. Refer to the Ubuntu Installation Guide for details. | + | |
- | + | ||
- | Yet another way to install an Ubuntu virtual machine is to use ubuntu-vm-builder. ubuntu-vm-builder allows you to setup advanced partitions, execute custom post-install scripts, etc. For details see JeOS and vmbuilder | + | |
====virt-install==== | ====virt-install==== | ||
- | virt-install is part of the virtinst package. To install it, from a terminal prompt enter: | + | Программа **virt-install** является частью пакета **virtinst**. Для ее установки введите в терминале: |
- | + | <code>sudo apt-get install virtinst</code> | |
- | sudo apt-get install virtinst | + | |
- | + | ||
- | There are several options available when using virt-install. For example: | + | |
+ | Существует несколько опций доступных при использовании **virt-install**. Например: | ||
+ | <code> | ||
sudo virt-install -n web_devel -r 256 \ | sudo virt-install -n web_devel -r 256 \ | ||
--disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ | --disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ | ||
jeos.iso --accelerate --network network=default,model=virtio \ | jeos.iso --accelerate --network network=default,model=virtio \ | ||
--connect=qemu:///system --vnc --noautoconsole -v | --connect=qemu:///system --vnc --noautoconsole -v | ||
+ | </code> | ||
- | -n web_devel: the name of the new virtual machine will be web_devel in this example. | + | -- **-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**: создает полностью вируализированную гостевую систему. | ||
- | -r 256: specifies the amount of memory the virtual machine will use in megabytes. | + | После загрузки **virt-install** вы сможете подсоединиться к консоли виртуальной машины либо локально с использованием GUI, либо с помощью утилиты **virt-viewer**. |
- | + | ||
- | --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==== | ====virt-clone==== | ||
- | The virt-clone application can be used to copy one virtual machine to another. For example: | + | Приложение **virt-clone** может быть использовано для копирования одной виртуальной машины в другую. Например: |
+ | <code> | ||
sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ | sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img \ | ||
--connect=qemu:///system | --connect=qemu:///system | ||
+ | </code> | ||
- | -o: original virtual machine. | + | -- **-o**: оригинальная виртуальная машина. |
+ | -- **-n**: имя новой виртуальной машины. | ||
+ | -- **-f**: путь к файлу, локальному тому или разделу для использования новой виртуальной машиной. | ||
+ | -- **--connect**: определяет к какому супервизору подключаться. | ||
- | -n: name of the new virtual machine. | + | Также используйте опцию **-d** или **--debug** для помощи при решении проблем с **virt-clone**. |
- | + | <note>Замените **//web_devel//** и **//database_devel//** на подходящие названия виртуальных машин.</note> | |
- | -f: path to the file, logical volume, or partition to be used by the new virtual machine. | + | |
- | + | ||
- | --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. | + | |
====Управление виртуальными машинами==== | ====Управление виртуальными машинами==== | ||
Строка 108: | Строка 84: | ||
===virsh=== | ===virsh=== | ||
- | There are several utilities available to manage virtual machines and libvirt. The virsh utility can be used from the command line. Some examples: | + | Доступны несколько утилит для управления виртуальными машинами и **libvirt**. Утилита **virsh** может быть использована из командной строки. Несколько примеров: |
- | To list running virtual machines: | + | 1. Получить список запущенных виртуальных машин: |
+ | <code>virsh -c qemu:///system list</code> | ||
- | virsh -c qemu:///system list | + | 2. Запустить виртуальную машину: |
+ | <code>virsh -c qemu:///system start web_devel</code> | ||
- | To start a virtual machine: | + | 3. Аналогично, запустить виртуальную машину в процессе загрузки: |
+ | <code>virsh -c qemu:///system autostart web_devel</code> | ||
- | virsh -c qemu:///system start web_devel | + | 4. Перегрузить виртуальную машину: |
+ | <code>virsh -c qemu:///system reboot web_devel</code> | ||
- | Similarly, to start a virtual machine at boot: | + | 5. Состояние (**state**) виртуальной машины может быть сохранено в файл с целью возможного восстановления в дальнейшем. Приведенная команда сохранит состояние виртуальной машины в файл с именем, содержащем дату: |
+ | <code>virsh -c qemu:///system save web_devel web_devel-022708.state</code> | ||
+ | Единожды сохраненная машина больше не может быть запущена. ( :?: возможно имеется ввиду, что не может быть запущена сохраненная копия, а не сама машина.) | ||
- | virsh -c qemu:///system autostart web_devel | + | 6. Сохраненная виртуальная машина может быть восстановлена такой командой: |
+ | <code>virsh -c qemu:///system restore web_devel-022708.state</code> | ||
- | Reboot a virtual machine with: | + | 7. Выключить виртуальную машину: |
+ | <code>virsh -c qemu:///system shutdown web_devel</code> | ||
- | virsh -c qemu:///system reboot web_devel | + | 8. Устройство чтения CDROM может быть подмонтировано к виртуальной машине следующей командой: |
+ | <code>virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom</code> | ||
- | 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: | + | <note>В приведенных примерах замените **//web_devel//** на соответствующее название виртуальной машины, а **//web_devel-022708.state//** на описательное имя файла.</note> |
- | + | ||
- | 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: | + | Пакет **virt-manager** содержит утилиту с графическим интерфейсом для управления локальными и удаленными виртуальными машинами. Для установки **virt-manager** введите: |
- | + | <code>sudo apt-get install virt-manager</code> | |
- | sudo apt-get install virt-manager | + | Поскольку **virt-manager** требует наличия графической среды, рекомендуется ее устанавливать на рабочую станцию или тестовую машину, а не на рабочий сервер. Для подключения к локальному сервису **libvirt** введите: |
- | + | <code>virt-manager -c qemu:///system</code> | |
- | 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: | + | Вы можете соединиться и к сервису **libvirt**, запущенном на другом компьютере, введя следующую команду в терминале: |
- | + | <code>virt-manager -c qemu+ssh://virtnode1.mydomain.com/system</code> | |
- | 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 | + | <note>В последнем примере подразумевается, что SSH соединение между управляющей системой и **//virtnode1.mydomain.com//** уже настроено и для аутентификации используются ключи SSH. SSH ключи требуются поскольку **libvirt** посылает запрос на ввод пароля другому процессу. Подробности настройки SSH смотрите в разделе [[wiki:руководство_по_ubuntu_server:удаленное_администрирование:openssh_server|Сервер OpenSSH]].</note> |
====Программа просмотра виртуальных машин==== | ====Программа просмотра виртуальных машин==== | ||
- | 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. | + | Приложение **virt-viewer** позволяет вам соединиться с консолью виртуальной машины. **virt-viewer** требует графического интерфейса (GUI) для взаимодействия с виртуальной машиной. |
- | To install virt-viewer from a terminal enter: | + | Для установки **virt-viewer** из терминала введите: |
+ | <code>sudo apt-get install virt-viewer</code> | ||
- | sudo apt-get install virt-viewer | + | Как только виртуальная машина установлена и запущена, вы можете подсоединиться к ее консоли командой: |
+ | <code>virt-viewer -c qemu:///system web_devel</code> | ||
- | Once a virtual machine is installed and running you can connect to the virtual machine's console by using: | + | Как и **virt-manager**, **virt-viewer** может соединяться с удаленным сервером используя для аутентификации ключи SSH: |
+ | <code>virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel</code> | ||
- | virt-viewer -c qemu:///system web_devel | + | Убедитесь, что заменили **//web_devel//** на соответствующее название виртуальной машины. |
- | + | Если настроено использование моста для сетевого интерфейса, вы можете настроить SSH доступ и непосредственно к виртуальной машине. Смотрите разделы [[wiki:руководство_по_ubuntu_server:удаленное_администрирование:openssh_server|Сервер OpenSSH]] и [[wiki:руководство_по_ubuntu_server:сеть:сетевые_настройки#строительство_мостов|Строительство мостов]] для дополнительной информации. | |
- | 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. | + | -- Обратитесь к [[http://kvm.qumranet.com/kvmwiki|домашней странице KVM]] для дополнительной информации. |
- | + | -- Больше информации по **libvirt** смотрите на [[http://libvirt.org/|домашней странице libvirt]]. | |
- | For more information on libvirt see the libvirt home page | + | -- Сайт по [[http://virt-manager.et.redhat.com/|Virtual Machine Manager]] содержит дополнительную информацию по разработке **virt-manager**. |
- | + | -- Также посетите IRC канал **//#ubuntu-virt//** на [[http://freenode.net/|freenode]] для обсуждения технологий виртуализации в Ubuntu. | |
- | The Virtual Machine Manager site has more information on virt-manager development. | + | -- Еще один хороший ресурс - страница [[https://help.ubuntu.com/community/KVM|Ubuntu Wiki KVM]]. |
- | + | ||
- | 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. | + | |
---- | ---- |