Поиск по сайту:

Как создать и установить гостевые виртуальные машины в XenServer. Часть 5


Продолжая развивать серию XenServer, в этой статье мы рассмотрим создание самих гостевых систем (часто называемых виртуальными машинами).

Обновление: В мае 2016 года Citrix выпустила новую версию платформы XenServer 7. Для установки выполните следующие действия: Свежая установка XenServer 7.

В этой статье предполагается, что все предыдущие статьи, посвященные работе в сети, исправлениям и хранению данных, пройдены. К счастью, больше не нужно обсуждать новую терминологию, и можно начинать создание гостей!

Обзор системы

На данный момент на этом хосте XenServer многое настроено. Это послужит кратким обзором того, что было настроено и в какой статье обсуждалась тема.

  1. XenServer 6.5 был установлен на сервер.
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Все исправления XenServer 6.5 были применены.
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Создано объединение сетевых интерфейсов и VLAN.
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. Репозитории хранения iSCSI и ISO были созданы для хранения установочных файлов операционной системы и виртуальных жестких дисков, используемых гостями.
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Создание виртуальных гостей в XenServer

В этой части руководства установщики ISO будут фактически загружать вновь созданную гостевую машину и устанавливать операционную систему. Обязательно прочтите четвертую статью для получения информации о создании репозитория ISO.

XenServer поставляется с рядом шаблонов, которые можно использовать для быстрого предоставления виртуального гостя. Эти шаблоны предоставляют общие параметры для выбранной операционной системы. Опции включают в себя такие параметры, как пространство на жестком диске, архитектуру процессора и объем доступной оперативной памяти, а также другие параметры.

Эти параметры позже можно будет изменить вручную, но сейчас для иллюстрации их использования будет использован простой шаблон. Чтобы получить список доступных шаблонов, традиционной команде 'xe' можно передать различные аргументы, чтобы предложить системе вернуть доступные шаблоны.


xe template-list

Эта команда, скорее всего, вернет большой объем вывода. Чтобы облегчить чтение вывода, предлагается передать его в less следующим образом:


xe template-list | less

Это облегчит анализ доступных шаблонов для поиска необходимой информации UUID. В этой статье мы будем работать с Debian 8 Jessie, но потребуется использовать старый шаблон Debian 7 Wheezy до тех пор, пока Citrix не выпустит новый шаблон. .

Выбор Debian 7 ни на что не повлияет на работу реальной операционной системы. (На снимке экрана ниже в команде используется UUID, чтобы обрезать часть обычного вывода).


xe sr-list name-label=”Tecmint iSCSI Storage”

С помощью этого UUID была получена вся исходная информация для настройки этого гостя. Как и почти все в XenServer, для инициализации нового гостя будет использоваться другая команда ’xe’.


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

Выделенный UUID — это UUID нового гостя. Есть несколько шагов по ведению домашнего хозяйства, которые потенциально могут облегчить задачу в будущем. Первый — предоставить метку имени вновь созданному VDI, а второй — изменить любую из спецификаций оборудования по умолчанию, предоставленных шаблоном.

Чтобы понять, почему так важно давать имя VDI, взгляните на то, что система автоматически назначит VDI при его предоставлении с помощью следующих команд ’xe’:


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

Другой доступный вариант — собрать обе части информации с помощью следующей команды:


xe vm-disk-list vm=TecmintVM

Часть, выделенная желтым цветом, представляет собой проблему. Для многих людей эта проблема незначительна, но для служебных целей желательно использовать более описательное имя, позволяющее отслеживать назначение этого конкретного VDI. Чтобы переименовать этот конкретный VDI, необходим UUID в приведенном выше выводе и необходимо создать другую команду ’xe’.


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

Это может показаться тривиальной установкой, но по опыту это предотвратило серьезную проблему при отсоединении репозитория хранилища от одного XenServer и попытке присоединить его к другому XenServer. В этом конкретном сценарии резервную копию метаданных всей гостевой информации не удалось восстановить на новом XenServer, и, к счастью, присвоив имя VDI на каждом из гостей, правильное сопоставление гостя с его VDI можно было выполнить просто с помощью именной ярлык.

Следующий шаг по ведению домашнего хозяйства в этой статье — предоставить этому конкретному гостю больше ресурсов. Согласно предоставленным данным, у этого гостя будет только 256 МиБ (Мебибайт) памяти. Большинству гостей этого недостаточно, поэтому полезно знать, как увеличить доступную память гостя. Как и все в XenServer, это можно сделать с помощью команд ’xe’.


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

Зеленое поле выше означает, что максимальный объем памяти, который когда-либо мог иметь этот конкретный гость, составляет около 256 МБ. Для целей тестирования это было бы хорошо, но для любой системы интенсивного использования этого оказалось бы недостаточно.

Чтобы изменить это значение и предоставить гостю доступ к большему объему оперативной памяти, можно выполнить простую команду ’xe’ при выключенном гостевом компьютере. В этом примере объем оперативной памяти, который будет предоставлен этой машине, будет представлен в байтах, но будет равен 2 Гибибайтам оперативной памяти.


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

Обратите внимание, что для этого гостя будет постоянно резервироваться два ГиБ оперативной памяти.

Теперь этот конкретный гость готов к установке операционной системы. Из предыдущей статьи о репозиториях хранилища к этому XenServer была добавлена общая папка Samba для хранения файлов установщика ISO. Это можно подтвердить с помощью следующей команды ’xe’:


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

Обязательно замените <servername> именем соответствующего сервера Samba для среды, в которой выполняется эта настройка. Как только XenServer подтвердит доступ к репозиторию хранилища ISO, необходимо добавить виртуальный компакт-диск к гостю для загрузки файла ISO. В этом руководстве предполагается, что ISO Debian Net Installer существует в хранилище ISO.


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

Приведенные выше команды сначала выводят имя Debian ISO. Следующая команда добавит виртуальное устройство CD-ROM к гостю TecmintVM и присвоит ему идентификатор устройства 3.

Третья команда используется для определения UUID вновь добавленного компакт-диска, чтобы продолжить настройку устройства для загрузки ISO-образа Debian.

Следующий шаг — сделать компакт-диск загрузочным, а также поручить гостю установить операционную систему с компакт-диска.


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

Первая команда выше делает CD-ROM загрузочным, используя его UUID, выделенный зеленым на снимке экрана выше. Вторая команда инструктирует гостя использовать компакт-диск в качестве метода установки операционной системы. UUID гостя Tecmint выделен на снимке экрана выше желтым цветом.

Последний шаг в настройке гостя — подключение виртуального сетевого интерфейса (VIF). Это особенно важно для этого метода установки, поскольку используется установщик Debian Network, и ему потребуется извлекать пакеты из репозиториев Debian.

Если вернуться к статье о сети XenServer, то для этого гостя уже была создана специальная VLAN, и это была VLAN 10. С помощью ’xe’ можно создать и назначить этому гостю необходимый сетевой интерфейс.


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

Первая команда используется для получения UUID сети, созданной для этого гостя. Следующая команда используется для создания сетевого адаптера для гостя и подключения сетевого адаптера к соответствующей сети.

Поздравляем! На этом этапе виртуальная машина готова к загрузке и установке! Чтобы запустить гостевую систему, введите следующую команду ’xe’.


xe vm-start name-label=TecmintVM

Если терминал не выдает ошибок, значит, гость запустился успешно. Правильный запуск гостя можно подтвердить следующей командой ’xe’:


xe vm-list name-label=TecmintVM

Теперь большой вопрос. Как получить доступ к установщику? Это правильный вопрос. Одобренный компанией Citrix метод — использование XenCenter. Проблема в том, что XenCenter не работает в Linux! Таким образом, существует обходной путь, позволяющий пользователям не создавать специальную станцию Windows просто для доступа к консоли работающего гостя.

Этот процесс включает в себя создание туннеля SSH от компьютера Linux к хосту XenServer и последующую переадресацию портов соединения VNC через этот туннель. Это очень умно и прекрасно работает, но этот метод предполагает, что пользователь может получить доступ к XenServer через SSH.

Первым шагом является определение номера домена гостя на XenServer. Это делается с помощью нескольких различных команд.


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

Порядок этих команд важен! Первая команда вернет число, необходимое для второй команды.

Вывод обеих команд важен. В первом выводе указывается идентификатор домена, в котором работает гость; 1 в этом случае. Следующей команде требуется этот номер, чтобы определить порт VNC для сеанса гостевой консоли. Вывод этой команды предоставляет порт VNC, который можно использовать для подключения к видео этого конкретного гостя.

Получив вышеуказанную информацию, пришло время переключиться на станцию Linux и подключиться к XenServer, чтобы просмотреть сеанс консоли этого гостя. Для этого будет создан SSH-туннель и настроена переадресация портов для направления локального VNC-соединения через SSH-туннель. Это подключение будет осуществляться с рабочей станции Linux Mint 17.2, но для других дистрибутивов оно должно быть аналогичным.

Первый шаг — убедиться, что клиент OpenSSH и xtightnvcviewer установлены на хосте Linux. В Linux Mint это можно сделать с помощью следующей команды:


sudo apt-get install openssh-client xtightvncviewer

Эта команда установит необходимые утилиты. Следующим шагом является создание SSH-туннеля к хосту XenServer и настройка переадресации портов на порт VNC, определенный ранее на хосте XenServer (5902).


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

Параметр '-L' указывает ssh перенаправить порт. Первым портом может быть любой порт выше 1024, который не используется на компьютере Linux Mint. 'localhost:5902' указывает, что трафик должен быть перенаправлен на удаленный порт локального хоста 5902, в данном случае это VNC-порт XenServer TecmintVM . .

'root@' — это учетные данные для входа по SSH на хост XenServer. Наконец, -N сообщает SSH просто открыть соединение с переадресацией портов. Используя команду «lsof», туннель можно просмотреть в выходных данных.


sudo lsof -i | grep 5902

Здесь туннель настроен и прослушивает соединения. Теперь пришло время открыть VNC-соединение с гостем на XenServer. Установлена утилита 'xvncviewer', а ssh-соединение для пересылки трафика на XenServer прослушивается на 'localhost:5902', поэтому можно создать соответствующую команду.


xvncviewer localhost:5902

Вуаля! Существует сеанс консоли TecmintVM, в котором запущен Сетевой установщик Debian, ожидающий начала процесса установки. На этом этапе установка продолжается так же, как и любая другая установка Debian.

До этого момента все с XenServer выполнялось через интерфейс командной строки (CLI). Хотя многим пользователям Linux нравится интерфейс командной строки, существуют утилиты, упрощающие процесс управления хостами и пулами XenServer. Следующая статья этой серии будет посвящена установке этих инструментов для пользователей, которые хотят использовать графические системы, а не CLI.