Гид по технологиям

Запуск полно-виртуализованных гостей (HVM) под Xen 3.2 на Debian Lenny (x86_64)

5 min read Virtualization Обновлено 24 Nov 2025
HVM на Xen 3.2 в Debian Lenny
HVM на Xen 3.2 в Debian Lenny

Version 1.0
Author: Falko Timme

Введение

HVM (Hardware Virtual Machine) — полноценно аппаратная виртуализация: позволяет запускать неизменённые гостевые ОС (включая Windows) при наличии процессорной поддержки Intel VT или AMD‑V. В отличие от паравиртуализации, гость не требует изменения ядра. Полная виртуализация обычно даёт худшую производительность по сравнению с паравиртуализацией, зато обеспечивает совместимость с закрытыми ОС.

Для общего обзора технологий виртуализации можно посмотреть VMware whitepaper: http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf

Внимание: Руководство предоставляется без гарантий; результаты зависят от аппаратуры и конфигурации хоста.

Предварительная заметка

Я предполагаю, что у вас уже установлен Xen 3.2 на Debian Lenny и система настроена согласно разделу 2 руководства Virtualization With Xen On Debian Lenny (AMD64). В этом руководстве используются образы дисков (файлы) для хранения виртуальных машин. При использовании реальных разделов или LVM были проблемы — гость не видел диск. Возможно, реализация работы с физическими устройствами на вашей платформе возможна, но это выйдет за рамки данного материала.

Важно: HVM требует процессорной поддержки аппаратной виртуализации. Ниже — несколько способов проверить поддержку.

Как проверить поддержку аппаратной виртуализации

Проверить поддержку аппаратной виртуализации после установки Xen можно командой:

xm dmesg | grep -i hvm

Если команда что‑то выводит — поддержка есть. Пример на процессоре AMD‑V:

server1:~# xm dmesg | grep -i hvm  
(XEN) HVM: SVM enabled  
server1:~#

Проверка до установки Xen (по признаку наличия флагов в cpuinfo):

egrep '(vmx|svm)' --color=always /proc/cpuinfo

Если вывод пуст — аппаратной поддержки нет.

Установка первого HVM-гостя

В этом примере создаём гостя xen1.example.com. Сначала создаём файл‑образ диска, например 4 ГБ:

dd if=/dev/zero of=/home/xen1.example.com.img bs=1024k count=4000

(Для увеличения размера — увеличьте параметр count.)

Вы можете устанавливать гостя с физического CD/DVD или с ISO‑образа. Чтобы создать ISO из CD/DVD:

dd if=/dev/cdrom of=/home/ubuntu8_10_server_amd64.iso

Далее создайте файл конфигурации /etc/xen/xen1.example.com.cfg:

vi /etc/xen/xen1.example.com.cfg

Вставьте в файл конфигурацию (пример):

import os, re
arch = os.uname()[4]

kernel = "/usr/lib/xen-default/boot/hvmloader"

builder='hvm'

memory = 512
shadow_memory = 8
name = "xen1.example.com"
vif = [ 'type=ioemu, bridge=eth0' ]
disk = [ 'file:/home/xen1.example.com.img,xvda,w', 'file:/home/ubuntu8_10_server_amd64.iso,xvdc:cdrom,r' ]
#disk = [ 'file:/home/xen1.example.com.img,xvda,w', 'phy:/dev/cdrom,xvdc:cdrom,r' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"

sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncpasswd='howtoforge'
stdvga=0
serial='pty'
usbdevice='tablet'

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Примечания по конфигурации:

  • Используйте первую строку disk (с ISO) для установки из образа; вторую (phy:/dev/cdrom) — при установке с реального CD/DVD.
  • boot=”dc” — сначала попытка загрузки с CD/ISO (d), затем с диска (c). При первом запуске важно, чтобы привод CD/ISO был первым устройством загрузки.
  • vnc=1 и vnclisten=”0.0.0.0” включают удалённый доступ по VNC на всех интерфейсах. Если хотите ограничить доступ — укажите конкретный IP или оставьте значение по умолчанию (localhost).
  • vncpasswd задаёт пароль для VNC; оставьте пустым vncpasswd=’’ если пароль не нужен.

Запустите гостя:

xm create /etc/xen/xen1.example.com.cfg

Проверка прослушиваемых портов (VNC обычно 5900):

netstat -tap

Пример вывода:

server1:/etc/xen# netstat -tap  
Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address           Foreign Address          State       PID/Program name  
tcp        0      0 *:5900                 *:*                     LISTEN      24492/qemu-dm  
...

После создания вы можете подключиться к гостю по VNC. На Windows можно использовать TightVNC; в Ubuntu — Просмотр удалённого рабочего стола.

Окно списка приложений с пунктом Remote Desktop Viewer в Ubuntu

Нажмите Connect и укажите IP хоста Xen и порт, например 192.168.0.100:5900:

Диалог подключения VNC: ввод адреса и порта для удалённого подключения к гостю Xen

Если в конфигурации гостя указан vncpasswd, вас попросят ввести пароль:

Запрос пароля VNC перед подключением к VNC-сессии гостя Xen

Затем должен отобразиться установщик выбранной ОС; следуйте обычной инсталляции как на физической машине:

Экран установщика гостевой ОС, запущенной внутри HVM на Xen

Полезные советы и отладка

  • Если гость «не видит» диск, проверьте строку disk в конфигурации и права на файл образа. Попробуйте задать disk как абсолютный путь и убедитесь, что qemu-dm имеет доступ к файлу.
  • Если VNC не слушает на внешнем интерфейсе, проверьте vnclisten и брандмауэр хоста.
  • Для проблем с производительностью проверьте shadow_memory и параметры памяти гостя; HVM потребляет больше ресурсов, чем PV-гости.
  • Логи Xen и qemu-dm помогут диагностировать большинство ошибок: /var/log/xen, сообщения ядра (dmesg) и вывод xm dmesg.

Когда HVM может не подойти

  • Отсутствие аппаратной поддержки (нет VT/AMD‑V) — HVM не запустится.
  • Требуется высокая производительность — для серверных задач часто предпочтительнее паравиртуализация.
  • Необходим доступ к физическим устройствам с тех пор как HVM с файлами образов проще, чем попытки проброса физических разделов.

Альтернативные подходы

  • Паравиртуализация (PV) — лучше по производительности, но требует изменения гостевого ядра.
  • Использование KVM — если у вас современный Linux‑хост и поддержка VT/AMD‑V, KVM интегрирован в ядро и удобен для множества гостевых ОС.
  • LXC/контейнеры — легковесная виртуализация для Linux‑гостей без отдельного ядра.

Порядок действий (чеклист)

  1. Убедиться, что CPU поддерживает VT/AMD‑V (egrep или xm dmesg).
  2. Подготовить образ диска dd if=/dev/zero of=/home/guest.img bs=1024k count=.
  3. Скопировать/создать ISO образ или вставить CD/DVD.
  4. Создать конфигурацию в /etc/xen/.cfg и проверить disk, vif, vnc, boot.
  5. Запустить xm create /etc/xen/.cfg.
  6. Подключиться по VNC и выполнить установку ОС.
  7. Проверить и настроить сеть, доступы и производительность.

Критерии приёмки

  • Гость успешно загружается с CD/ISO и устанавливается ОС.
  • После установки гость загружается с виртуального диска.
  • Гость доступен по сети и выполняет ожидаемые сервисы (ping, SSH, HTTP и т. п.).
  • Производительность соответствует требованиям (ответы сервисов в приемлемом временном окне).

Runbook при проблемах (короткий)

  1. Если гость не создаётся — проверяйте синтаксис .cfg и права на файлы.
  2. Если guesт не видит диск — попробуйте отключить SELinux/AppArmor или изменить права, проверьте device_model.
  3. При отсутствии VNC — проверьте vnclisten, vnc=1 и netstat; отключите брандмауэр на время теста.
  4. Сбор логов: /var/log/xen/*, вывод xm dmesg, системный журнал (dmesg, /var/log/syslog).

Короткий глоссарий (1 строка)

  • HVM — аппаратная виртуализация, запускает неизменные ОС.
  • PV — паравиртуализация, требуется специальное ядро гостя.
  • qemu-dm — device model для эмуляции устройств в Xen HVM.
  • vnclisten — куда qemu‑dm слушает VNC‑подключения.

Итог

HVM под Xen 3.2 на Debian Lenny позволяет запускать полноценные гостевые ОС (включая Windows) при наличии аппаратной поддержки виртуализации. Основные шаги: проверить поддержку CPU, создать образ диска или ISO, подготовить конфигурацию гостя и подключиться по VNC для установки. При возникновении проблем используйте приведённый чеклист и runbook для диагностики.

Important: Если вы добились работы с физическими разделами или LVM в HVM — поделитесь решением в сообществе, это поможет другим.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Тёмная тема в популярных приложениях Windows
Советы

Тёмная тема в популярных приложениях Windows

Изменение имени учётной записи в Windows
Windows

Изменение имени учётной записи в Windows

Настройка iptables в Linux — базовый файл правил
Безопасность

Настройка iptables в Linux — базовый файл правил

Исправить "This version of Netflix is not compatible"
Технологии

Исправить "This version of Netflix is not compatible"

Как настроить беспроводные наушники USB
Гаджеты

Как настроить беспроводные наушники USB

Приватный Docker Registry: запуск и настройка
DevOps

Приватный Docker Registry: запуск и настройка