Установка гипервизора Xen представляет из себя процесс длиной в одну команду, но не менее важно правильно выполнить дальнейшие шаги по настройке среды виртуализации. Об этом я и расскажу в статье, а также поделюсь своим опытом и готовым скриптом для развертывания Xen.
Если вам интересна тематика Debian и связанных с ним приложений, рекомендую обратиться к тегу Debian на моем блоге.
Содержание [Скрыть]
Установка гипервизора Xen
Первым делом проверим поддержку инструкций аппаратной виртуализации у нашего CPU. Сделать это можно командой:
Если возвращается отличное от 0 значение, значит все ОК.
На всякий случай выполним обновление репозиториев:
Можно приступать к установке.
Установка
Установим Xen командой:
Полное название пакета – xen-linux-system-amd64. На этом с установкой закончено.
Изменение порядка загрузки
Поскольку Xen является гипервизором первого типа, запускаться он должен перед хостовой ОС, а для этого нужно изменить порядок загрузки:
Заново сгенерируем файл /boot/grub/grub.cfg:
После этого нужно перезагрузиться.
Для целей тестирования вы можете не изменять порядок загрузки на постоянной основе, а выбрать необходимый режим в процессе загрузки:
Как только система загрузилась, проверить запущен ли Xen можно командой:
Хостовая ОС должна работать в нулевом домене (Dom0), а гостевых доменов (DomU) пока что нет, ведь ни одна виртуальная машина ещё не создана. Поэтому мы увидим только одну запись:
Ну а если что-то пошло не так, то система вернет результат:
С гипервизором мы закончили.
Базовая настройка сети
Xen – это только гипервизор и ничего более, а значит он отвечает за управление CPU, RAM и прерываниями. Он ничего не знает о функциях ввода/вывода, задача управления которыми целиком положена на первую “виртуальную машину” – хостовую ОС, запущенную в особом привилегированном режиме.
Именно поэтому сетевой функционал лежит на стороннем софте, а именно на пакете bridge-utils. Устанавливать его отдельно не требуется, он находится в зависимостях xen-linux-system-amd64 и подтягивается автоматически.
В большинстве случаев виртуальным машинам необходимо находиться в одной и той же сети, что и хост. Этим требованиям удовлетворяет мостовая конфигурация.
Bridge-utils позволяет создать мост командой brctl addbr xenbr0 и добавить к нему существующий интерфейс командой brctl addif xenbr0 eth0. Но чтобы конфигурация моста была постоянной, необходимо внести изменения в сетевые настройки 2. Открываем для редактирования:
Предположим ваша конфигурация выглядит следующим образом:
После добавления моста она будет иметь вид:
Ну а если у вас был статический адрес, то просто добавьте необходимые параметры:
Сетевые настройки будут привязаны именно к мосту, но не к интерфейсу eth0.
Увидеть мост вы сможете как через утилиту brctl командой
так и любым другим способом, с помощью которого вы просматриваете сетевую конфигурацию, например:
Остается перезапустить демона, чтобы настройки применились:
Базовая настройка на этом завершена.
Установка из скрипта
Если ваша задача просто поставить Xen и сконфигурировать сеть как рассмотрено в разделе выше, то вы можете воспользоваться моим скриптом – xen_install.
Не забудьте сделать скрипт исполняемым командой:
Запускаем:
В конце работы скрипта система будет перезагружена. Если это не произойдет, то информацию для отладки ищите в логе xen_installation.log в каталоге, из которого был запущен скрипт.
Немного личного опыта
Не всегда после установки Xen все пойдет хорошо. У меня встретилась ситуация, когда на определенном оборудовании Xen не мог запуститься и сервер входил в бесконечно повторяющуюся перезагрузку. Проблему так решить и не удалось и решено было просто установить Debian Stretch, в репозиториях которого уже присутствовал последний Xen 4.8, в то время как Debian Jessie имел только Xen 4.4.