Установка гипервизора Xen представляет из себя процесс длиной в одну команду, но не менее важно правильно выполнить дальнейшие шаги по настройке среды виртуализации. Об этом я и расскажу в статье, а также поделюсь своим опытом и готовым скриптом для развертывания Xen.
Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.
Содержание
Установка гипервизора Xen
Первым делом проверим поддержку инструкций аппаратной виртуализации у нашего CPU. Сделать это можно командой:
1 |
egrep '(vmx|svm)' /proc/cpuinfo | wc -l |
Если возвращается отличное от 0 значение, значит все ОК.
На всякий случай выполним обновление репозиториев:
1 |
apt-get update |
Можно приступать к установке.
Установка
Установим Xen командой:
1 |
apt-get install xen-linux-system |
Полное название пакета – xen-linux-system-amd64. На этом с установкой закончено.
Изменение порядка загрузки
Поскольку Xen является гипервизором первого типа, запускаться он должен перед хостовой ОС, а для этого нужно изменить порядок загрузки:
1 |
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen |
Заново сгенерируем файл /boot/grub/grub.cfg:
1 |
update-grub |
После этого нужно перезагрузиться.
Для целей тестирования вы можете не изменять порядок загрузки на постоянной основе, а выбрать необходимый режим в процессе загрузки:
Как только система загрузилась, проверить запущен ли Xen можно командой:
1 |
xl list |
Хостовая ОС должна работать в нулевом домене (Dom0), а гостевых доменов (DomU) пока что нет, ведь ни одна виртуальная машина ещё не создана. Поэтому мы увидим только одну запись:
1 2 |
Name ID Mem VCPUs State Time(s) Domain-0 0 60387 8 r----- 789.6 |
Ну а если что-то пошло не так, то система вернет результат:
1 |
ERROR: Can't find hypervisor information in sysfs! |
С гипервизором мы закончили.
Базовая настройка сети
Xen – это только гипервизор и ничего более, а значит он отвечает за управление CPU, RAM и прерываниями. Он ничего не знает о функциях ввода/вывода, задача управления которыми целиком положена на первую “виртуальную машину” – хостовую ОС, запущенную в особом привилегированном режиме.
Именно поэтому сетевой функционал лежит на стороннем софте, а именно на пакете bridge-utils. Устанавливать его отдельно не требуется, он находится в зависимостях xen-linux-system-amd64 и подтягивается автоматически.
В большинстве случаев виртуальным машинам необходимо находиться в одной и той же сети, что и хост. Этим требованиям удовлетворяет мостовая конфигурация.
Bridge-utils позволяет создать мост командой brctl addbr xenbr0 и добавить к нему существующий интерфейс командой brctl addif xenbr0 eth0. Но чтобы конфигурация моста была постоянной, необходимо внести изменения в сетевые настройки 2. Открываем для редактирования:
1 |
nano /etc/network/interfaces |
Предположим ваша конфигурация выглядит следующим образом:
1 2 3 4 5 |
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp |
После добавления моста она будет иметь вид:
1 2 3 4 5 6 7 8 9 |
auto lo iface lo inet loopback auto xenbr0 iface xenbr0 inet dhcp bridge_ports eth0 auto eth0 iface eth0 inet manual |
Ну а если у вас был статический адрес, то просто добавьте необходимые параметры:
1 2 3 4 5 6 7 8 9 10 11 12 |
auto lo iface lo inet loopback auto xenbr0 iface xenbr0 inet static bridge_ports eth0 address 192.168.1.120 netmask 255.255.255.0 gateway 192.168.1.1 auto eth0 iface eth0 inet manual |
Сетевые настройки будут привязаны именно к мосту, но не к интерфейсу eth0.
Увидеть мост вы сможете как через утилиту brctl командой
1 |
brctl show |
1 2 |
bridge name bridge id STP enabled interfaces xenbr0 8000.00155d010e26 no eth0 |
так и любым другим способом, с помощью которого вы просматриваете сетевую конфигурацию, например:
1 |
ip addr |
Остается перезапустить демона, чтобы настройки применились:
1 |
service networking restart |
Базовая настройка на этом завершена.
Установка из скрипта
Если ваша задача просто поставить Xen и сконфигурировать сеть как рассмотрено в разделе выше, то вы можете воспользоваться моим скриптом – xen_install.
Не забудьте сделать скрипт исполняемым командой:
1 |
chmod +x xen_install_V1.0.3.sh |
Запускаем:
1 |
./xen_install_V1.0.3.sh |
В конце работы скрипта система будет перезагружена. Если это не произойдет, то информацию для отладки ищите в логе xen_installation.log в каталоге, из которого был запущен скрипт.
Немного личного опыта
Не всегда после установки Xen все пойдет хорошо. У меня встретилась ситуация, когда на определенном оборудовании Xen не мог запуститься и сервер входил в бесконечно повторяющуюся перезагрузку. Проблему так решить и не удалось и решено было просто установить Debian Stretch, в репозиториях которого уже присутствовал последний Xen 4.8, в то время как Debian Jessie имел только Xen 4.4.