Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:виртуализация:libvirt [2012/09/21 19:24] [virt-clone] |
wiki:руководство_по_ubuntu_server:виртуализация:libvirt [2012/09/23 13:34] (текущий) [Установка] |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
=====libvirt===== | =====libvirt===== | ||
- | Библиотека **libvirt** используется в качестве интерфейса к различным технологиям виртуализации. Прежде чем начать использовать libvirt стоит убедиться, что ваше оборудование поддерживает необходимые расширения виртуализации для **KVM**. Наберите следующее в терминале: | + | Библиотека **libvirt** используется в качестве интерфейса к различным технологиям виртуализации. Прежде чем начать использовать **libvirt**, стоит убедиться, что ваше оборудование поддерживает необходимые расширения виртуализации для **KVM**. Наберите следующее в терминале: |
<code>kvm-ok</code> | <code>kvm-ok</code> | ||
Вам будет выведено сообщение о том поддерживает ли ваш центральный процессор (CPU) аппаратную виртуализацию или нет. | Вам будет выведено сообщение о том поддерживает ли ваш центральный процессор (CPU) аппаратную виртуализацию или нет. | ||
Строка 16: | Строка 16: | ||
====Виртуальные сети==== | ====Виртуальные сети==== | ||
- | Существует несколько способов позволить виртуальной машине получить доступ во внешнюю сеть. По умолчанию виртуальная сеть настраивается как **usermode**, когда используется протокол **SLIRP**, а сетевые данные маскируются с помощью NAT на сетевом интерфейсе компьютера при соединении с внешней сетью. | + | Существует несколько способов позволить виртуальной машине получить доступ во внешнюю сеть. По умолчанию виртуальная сеть настраивается как **usermode**, когда используется протокол **SLIRP**, а сетевые данные маскируются с помощью **NAT** на сетевом интерфейсе компьютера при соединении с внешней сетью. |
Чтобы разрешить внешним компьютерам соединяться с сервисами виртуальной машины напрямую, требуется настроить мост (**bridge**). Это делает возможным соединения виртуальных интерфейсов с внешней сетью через физический интерфейс, позволяя им считать себя обычными компьютерами в нормальной сети. Для информации по настройке сетевых мостов смотрите секцию [[wiki:руководство_по_ubuntu_server:сеть:сетевые_настройки#строительство_мостов|Строительство мостов]]. | Чтобы разрешить внешним компьютерам соединяться с сервисами виртуальной машины напрямую, требуется настроить мост (**bridge**). Это делает возможным соединения виртуальных интерфейсов с внешней сетью через физический интерфейс, позволяя им считать себя обычными компьютерами в нормальной сети. Для информации по настройке сетевых мостов смотрите секцию [[wiki:руководство_по_ubuntu_server:сеть:сетевые_настройки#строительство_мостов|Строительство мостов]]. | ||
Строка 25: | Строка 25: | ||
<code>sudo apt-get install kvm libvirt-bin</code> | <code>sudo apt-get install kvm libvirt-bin</code> | ||
- | После установки **libvirt-bin** пользователя, используемого для управления виртуальными машинами, необходимо добавить в группу **libvirtd**. Это позволит пользователю получить доступ к расширенным сетевым опциям. | + | После установки **libvirt-bin**, пользователя, используемого для управления виртуальными машинами, необходимо добавить в группу **libvirtd**. Это позволит пользователю получить доступ к расширенным сетевым опциям. |
Введите в терминале: | Введите в терминале: | ||
Строка 66: | Строка 66: | ||
====virt-clone==== | ====virt-clone==== | ||
- | The virt-clone application can be used to copy one virtual machine to another. For example: | + | Приложение **virt-clone** может быть использовано для копирования одной виртуальной машины в другую. Например: |
<code> | <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 \ | ||
Строка 73: | Строка 72: | ||
</code> | </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. | + | |
====Управление виртуальными машинами==== | ====Управление виртуальными машинами==== | ||
Строка 89: | Строка 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> | ||
+ | Поскольку **virt-manager** требует наличия графической среды, рекомендуется ее устанавливать на рабочую станцию или тестовую машину, а не на рабочий сервер. Для подключения к локальному сервису **libvirt** введите: | ||
+ | <code>virt-manager -c qemu:///system</code> | ||
+ | Вы можете соединиться и к сервису **libvirt**, запущенном на другом компьютере, введя следующую команду в терминале: | ||
+ | <code>virt-manager -c qemu+ssh://virtnode1.mydomain.com/system</code> | ||
- | sudo apt-get install virt-manager | + | <note>В последнем примере подразумевается, что SSH соединение между управляющей системой и **//virtnode1.mydomain.com//** уже настроено и для аутентификации используются ключи SSH. SSH ключи требуются поскольку **libvirt** посылает запрос на ввод пароля другому процессу. Подробности настройки SSH смотрите в разделе [[wiki:руководство_по_ubuntu_server:удаленное_администрирование:openssh_server|Сервер OpenSSH]].</note> |
- | + | ||
- | 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. | + | Приложение **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. | + | |
---- | ---- |