Преамбула

Для тестирования разнообразных виртуальных конфигураций обычно требуется несколько физических хостов. Это далеко не всегда удобно, а иногда и невозможно.
Выход есть - это “вложенные” (nested) виртуальные машины, когда есть гипервизор установленный непосредственно на железо(уровень L0), в нем запускается виртуальная машина с другим гипервизором (уровень L1), а затем в гипервизоре уровня L1 запускаются еще виртуальные машины.

Возможные пути решения

Nested виртуализация поддерживается VMWare ESXi 5.x. Об этом есть статьи в интернете. И у меня немного тоже есть - Запуск других гипервизоров в ESXi 5.
Также “вложенные” гипервизоры можно запускать в KVM. Я попытался сделать это в Ubuntu 14.04.
Обязательное условие - поддержка процессором технологий Intel VT-x или AMD-V, то есть наличие флага vmx для процессоров Intel или svm для процессоров AMD.
Посмотреть наличие этих флагов можно в выводе команды:

cat /proc/cpuinfo

Что получилось у меня

Я попробывал запустить XenServer 6.2 под ESXi 5.5 и он запустился. Но с ESXi невозможно работать на ноутбуке.
Решение пришло в виде Ubuntu 14.04 Server + KVM.
Я поставил Ubuntu 14.04 Server, при установке я указал что хочу KVM host, а затем поставил desktop от KDE. Для управления виртуальными машинами установил virt-manager:

sudo apt-get install virt-manager

Дальше оказалось нужно проверить возможность запуска вложенных гипервизоров в KVM. Для этого выполняем:

$ cat /sys/module/kvm_intel/parameters/nested
Y

Если в вывод Y, значит поддержка вложенных VM уже включена.
Если нет - делаем как написано тут: http://www.rdoxenham.com/?p=275.
У меня на свежеустановленной Ubuntu 14.04 все уже было включено.
Как написано во многих мануалах - в виртуальной машине с гипервизором нужен процессор с поддержкой vmx. Ее можно специально включить либо в virt-manager, указав в конфигурации процессора в ProcessorConfigurationCPU Featuresvmx - require, либо в конфигурационном xml-файле вирутальной машины в папке /etc/libvirt/qemu/ строкой:

<feature policy='require' name='vmx'/>

в секции cpu.
Итак - я создал виртуальную машину типа Generic, дал ей 4 Gb памяти, включил vmx, в дополнительных свойствах указал Virt-type: kvm и Architecure: x86_64 и запустил инсталлятор XenServer 6.2.
Инсталлятор запустился, я обрадовался, но быстро обломался. При установке XenServer 6.2 инсталлятор бодро сообщал мне что Hardware virtualization assist support is not available on this system. . Это было обидно. Это означало однозначную невозможность запустить в этом гипервизоре Windows. Несколько часов гугления не давали результата. Перебор различных вариантов параметров виртуальной машины под XenServer тоже.
И вот я обнаружил таких же страдальцев на багтрекере ядра Linux - https://bugzilla.kernel.org/show_bug.cgi?id=45931. Они сообщали, что проблема в единственной строке кода и патч будет включен в версию ядра 3.16, а состав Ubuntu 14.04 входит ядро 3.13. К моему счастью я обнаружил, что для Ubuntu вышел релиз-кандидат ядра версии 3.16RC2.

Обновление ядра вышло предельно простым:

wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-headers-3.16.0-031600rc2_3.16.0-031600rc2.201406220135_all.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-headers-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-image-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
wget kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-rc2-utopic/linux-image-3.16.0-031600rc2-generic_3.16.0-031600rc2.201406220135_amd64.deb
sudo dpkg -i linux-headers-3.16*.deb linux-image-3.16*.deb

В результате я смог установить XenServer 6.2 и запустить в нем виртуальную машину в режиме HVM и в ней установку Windows 7 x64, однако установка зависает в разных местах. Самое большее что пока удалось сделать - дойти до копирования файлов. Хотя, есть подозрение, что XenServer останавливается сам, независимо от того, работают на нем виртуальные машины или нет. Кстати - аналогичное зависание XenServer 6.2 наблюдается и под VirtualBox в среде Windows. Там удается установить какой-нибудь Linux в режиме PV, но потом XenServer виснет в произвольном месте.

Продолжение следует.

Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/xenserver-6-2-в-виртуальнои-машине-kvm-на-базе-ubuntu-14-04-nested-guest-vm-in-kvm.txt
  • Last modified: 2019/02/11 09:13
  • by 127.0.0.1