Установка и настройка Citrix XenServer Часть 1.
В данном цикле статей, мы рассмотрим установку и настройку виртуальной среды основанной на гипервизоре XenServer. Перейдем к установке гипервизора.
Скачиваем дистрибутив с официального сайта – тут.
Посмотреть возможности XenServer можно на этой странице.
Начнем. Загружаемся с установочного диска.
Выбираем раскладку клавиатуры.
Далее XenServer предупреждает что все данные на дисках будут уничтожены, также возможно установить специальные драйвера нажав F9 если это необходимо.
Далее выбираем диск на котором будет располагаться хранилище виртуальных машин. Если необходимо хранилище которое будет расширяться динамически, выбираем Thin provisioning.
Далее выбираем путь файлов установки. В нашем случае это локальное хранилище.
Если у вас отсутствует Supplemental Pack (дополнительные компоненты XenServer) нажимаем No.
Пропускаем проверку установочного диска, т.к. мы уверены что он на 100% рабочий =)
Вводим пароль root.
Указываем сетевой интерфейс для управления сервером.
Указываем сетевые настройки для управляющего интерфейса.
Указываем Hostname и DNS сервера.
Указываем временную зону.
Далее для синхронизации времени выбираем NTP.
Указываем адреса NTP серверов.
Подтверждаем установку XenServer.
Ожидаем окончания установки.
После окончания установки перезагружаемся.
После загрузки сервера устанавливаем Citrix XenCenter. Актуальную версию можно найти тут (Windows Management Console).
Запускаем XenCenter, выбираем Add New Server.
Вводим ip адрес установленного сервера и логин с паролем.
После этого в консоли появится наш XenServer.
Перейдем к установке SP1.
Скачивам и распаковываем SP1. Скачать можно отсюда.
В меню XenCenter выбираем Tools – Install Update.
Выбираем Xen хост.
Следующим шагом загружаем обновление на сервер. Заметьте, иконка сервера изменилась.
Проходим проверку, и нажимаем Next.
Далее предоставим XenCenter возможность самому запустить процесс установки обновления. Нажимаем Install Update.
Ждем окончания установки.
Во время установки хост Xen будет перезагружен. После перезагрузки XenCenter запустит скрипты обновления и завершит установку.
На этом установка SP1 завершена. Можете обратить внимание что после установки SP1 , появляется поддержка windows 10.
Перейдем к настройкам сети. Открываем хост Xen и открываем раздел networking.
Нажимаем add network.
Далее мы создадим агрегированный сетевой адаптер, состоящий из 2-х физических.
Выбираем Bonded network.
Выбираем сетевые адаптеры и тип агрегации.
Если у вас всего 2 физических сетевых адаптера, XenCenter предупредит вас о том что интерфейс управления переместиться в агрегированный интерфейс.
Теперь создадим сеть для виртуальных машин, сеть будет с определенным VLAN.
Нажимаем Add network.
Выбираем External Network.
Задаем имя сети.
Указываем агрегированный интерфейс и VLAN. Также можно добавлять эту сеть автоматически для новых виртуальных машин.
Теперь у нас есть сети для управления и виртуальных машин.
Теперь перейдем к созданию виртуальной машины.
Выбираем установку с DVD привода хоста.
Выбираем хост Xen.
Указываем ресурсы для VM.
Также при выборе сети, можно указать пропускную способность виртуальной машины.
Проверяем введенные данные и создаем виртуальную машину.
Для управления VM перейдите в раздел Console.
Далее установите ОС в обычном режиме.
Важная особенность, XEN в зависимости от выбранной ОС, сам определяем параметры загрузки ядра ОС, поэтому при установке Ubuntu, вы сразу попадаете в режим установки.
Также обратите внимание, что для хранения дисков VM, Xen использует LVM, и отдает ее виртуальной машине как блочное устройство.
Установка Windows проходит в обычном режиме, там Xen не меняет параметры загрузки.
После установки VM установите Xen tools. Дистрибутивы linux, например Ubuntu, устанавливают xen tools на этапе установки ОС.
В Windows нужно установить xen tools вручную. Сделать это можно подключив CD образ Xen tools в консоли Xen.
Добавим второй хост XEN.
Добавляем второй хост по аналогии.
Теперь у нас 2 хоста XenServer.
Установите SP1 по аналогии.
В последней версии Xen хосты находят обновления автоматически через XenCenter, и загружают обновления с ближайших хостов Xen.
Продублируйте настройки сети на втором хосте.
Рассмотрим живую миграцию с хоста на хост.
XenServer поддерживает живую миграцию без общих хранилищ.
Запускаем мастер миграции.
Выбираем какую виртуальную машину мы будем мигрировать на какой хост.
Далее будет выбрано локальное хранилище второго хоста Xen.
Далее выбираем сеть, куда VM будет мигрировать.
Далее выбираем Storage Network.
Как видите иконка VM изменилась. Теперь она в статусе миграции.
Как видите Vm успешно мигрировала на второй хост.
Также возможно администрировать хост XenServer напрямую, подключившись к консоли сервера.
Данных функций хватит для минимального управления хостом Xen.
В следующей статье мы рассмотрим интеграцию с Active Directory, настройку пулов серверов, настройку HA, и подключение общих хранилищ.
Xen: учимся работать с консолью.
В прошлой статье мы установили и предварительно настроили xen.
Сегодня мы будем учиться управлять виртуальными машинами в нем с помощью утилиты XL
Утилита XL — первый из инструментов, доступных после установки «чистого» xen. Именно с его посощю после загрузки ядра мы проверяем, что xen стартовал успешно:
Говорит нам о том, что dom0 стартовал, ему доступно 8 виртуальных процессоров и 1793МБ ОЗУ.
По умолчанию, dom0 будет использовать всю доступную память и процессоры. Меняется его поведение в файле /etc/xen/xend-config.xsp
Для начала нужно определить конфигурацию нашей виртуальной машины.
PV guest
Тут есть нюанс. Есть 2 способа работы гостевой ОС с собственным ядром в режиме паравиртуализации:
- Ядро качается и помещается в недрах dom0
- Ядро помещается внутри гостевой ОС, а помогает произвести первоначальную загрузку утилита pygrub
Первый вариант удобен при установке ОС, особенно при использовании netInstall (в дальнейшем мы будем использовать эту фичу), второй — удобен с точки зрения изолированности domU от dom0, но может нести в себе определенные проблемы — pygrub по сути хоть и хороший, но костыль. На данный момент пока сильно в данный вопрос не погружался, поэтому дать однозначного ответа — что лучше использовать — не могу. Как научился — так и работаю.
Запуск domU производится коммандой
Присоединиться можно либо сразу — для этого добавляем в предыдущую команду параметр -c
либо позже с помощью команды
выйти из консоли: Ctrl+] или для Putty — Ctrl+5
Отключение domU (в описании пишут: равнозначно вытаскиванию кабеля питания)
Если старт не удался — логи можно найти в /var/log/xen.
Автоматизация:
При создании большого количества однотипных виртуальных машин рано или поздно встает вопрос автоматизации этого процесса — создается некий эталонный конфиг, который копируется, меняются нужные параметры — и вуаля, новая виртуальная машина готова к работе.
Где-то на просторах интернета (ссылку не нашел, иначе бы указал) нашел скрипт, который позволяет шевелиться еще меньше — в нем указываются параметры domU, зеркало для скачивания netinstall-образа linux (на указанном зеркале есть все — от убунты до FreeBSD) и volume Group , и после запуска скрипт сам создаст lvm-раздел, напишет за нас конфиг, скачает ядро и начнет установку 🙂
С небольшими правками (он был под xm+немного заточил под функциональность) — скрипт под катом.
Для оптимизации процесса я создал в папке конфигов xen 2 поддиректории — domu-available и domu-enabled, да-да, по аналогии с размещением конфигурации apache или nginx. В папке domu-available лежат конфиги всех доступных виртуальных машин, в папке domu-enabled — симлинки на те конфиги, которые должны запускаться автоматически при старте системы. О том, почему так — опишу ниже.
HVM Guest
Тут, как ни странно, все проще. Хотя я ожидал, что будет больше проблем с запуском именно HVM-машин, заработало сразу.
Теперь можно подключится на адрес dom0 на порт 5935 с помощью vnc-клиента и начинат процесс установки. После окончания установки меняем в конфиге boot=’d’ на boot=’c’, либо просто комментируем описание cdrom-а.
Автоматизация
Путем несложных махинаций получаем скрипт для лентяев, создающий hvm-машину:
Тюнинг
При всей своей функциональности, xen обладает одним неприятным фактом — в «чистом» виде (без libvirt) не стартует автоматически виртуальные машины после перезагрузки. помочь ему можно несколькими методами:
Первый и банальный — прописать в rc.local команды xl create для каждой виртуальной машины. Это неудобно, можно забыть и т.д.
Второй, более изощренный — написать скрипт. Выше мы создавали структуру папок с конфигами a-la nginx именно для этих целей.
И пропишем его в /etc/rc.local
Теперь при старте системы виртуальные машины, симлинки на конфиг которых есть в папке domu-enabled будут запущены автоматически.
Полезные команды
Замечание
После завершения domU xen не возвращает использованную под нее память обратно в dom0
Если нужно зачем-то вернуть ее — придется сделать это вручную
Вообще XL подобен автомату Калашникова — простой и надежный. Да, небогат функционалом, однако работает как часы, ввиду отсутствия свистоперделок прост в работе и надежен. Для многих его функционала будет вполне достаточно для обслуживания гостевых ОС, а с недостатками можно смириться.