Citrix xenserver free ограничения

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

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

Производим расчет для всех серверов. На основании нагрузки выбираем железо – начиная с характеристик процессора их количества в сервере для предоставления ядер виртуальным машинам. Рассчитываем количество оперативной памяти необходимой для всех виртуальных машин. Подбираем жесткие диски, на которых будут хоститься наши машины и требуемого пространства для резервного копирования.
После всех подсчетов получаем таблицу примерно такого содержания:

Имя сервера

Процессор

Память

Диск

Этап второй – Подбираем железо
Золотой серединой для почти всех не сильно нагруженных проектов является процессор intel xeon 2620.
Память, чем ее больше, тем лучше.
Hdd – можно не затрачивать финансы на raid контроллеры, на мой взгляд передовым решением на текущий момент является установка гипервизора на ssd диски.
Альтернативой raid контроллера на дисковом сторадже может стать файловая система ZFS

Этап третий – Выбор софта
Мой взгляд остановился на Citrix Xen Server.
+ Существует редакция, не требующая лицензии
+ Морально доделанный продукт с удобным управлением мышкой, и хорошим мануалом для работы в консольном режиме
При подборе железа к Citrix Xen Server не лишним будет просмотреть список совместимого оборудования.
На сайте Citrix, иначе могут возникнуть проблемы с установкой гипервизора.
И кроме того, нужно иметь ввиду, что конфигурация пула на разных аппаратных платформах возможна, но работать он будет на процессоре с меньшим набором инструкций.

Таблица возможностей бесплатной (Free) версии Citrix Xen Server 6.5

Feature

XenServer 6.5 Free

XenServer 6.5 Standard

64-bit Xen Hypervisor

Active Directory Integration

Role-based Administration and Audit Trail

Multi-Server Management with XenCenter GUI

Live VM Migration with XenMotion

Live Storage Migration with Storage XenMotion

Dynamic Memory Control

Host Failure Protection with High Availability

Performance Reporting and Alerting

Mixed resource pools with CPU Masking

GPU Pass-Through for Desktop Graphics Processing (AMD + NVIDIA)

IntelliCache for XenDesktop Storage Optimization

Live Memory Virtual Machine Snapshot and Revert

OpenFlow-capable Virtual Switch

Vmware vSphere to XenServer conversion Utilities (Conversion Manager)

Support for Intel TXT

Hot-Fix Deployment using XenCenter

GPU Virtualization (vGPU) with NVIDIA GRID

Dynamic Workload Balancing and Audit Reporting

Export Pool Resource List (minor feature)

In-memory Read Caching

Citrix Support and Maintenance

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

Установка Citrix Xen Server 6.5

Установка Citirix банально проста, ниже не будет информации, как установить Xen Server 6.5. А лишь краткая заметка.
1-е Скачиваем дистрибутив Free Xen с сайта Citrix
2-е
Устанавливаем гипервизор Xen с cd. С флешки Xen устанавливаться не захотел, сейчас уже не помню, почему
3-е Установка стандартная и сводится лишь к выбору, языка и раскладки, установки пароля пользователю root и выбора сетевого интерфейса для управления Xen management
Реальные затраты RAM на гипервизор около 6 Гб.
После установки гипервизора устанавливаем SP1 к нему и патчи, в 6.5 теперь это можно делать мышкой SP1 скачиваем с сайта Citrix SP1. Патчи скачиваем и устанавливаем, используя Notification -> Updates консоли

Настройка пула серверов Citrix Xen Server 6.5

Только сервера xen, объединенные в пул могут выдать весь набор преимуществ виртуализации по сравнению с традиционным построением серверной инфраструктуры. При проектировании нагрузки нужно обязательно исходить из того, что один узел в ноде(кластере) должен полностью вывозить нагрузку всех виртуальных машин с учетом расходов на гипервизор и запас.
Создаем пул, здесь и дальше работа с Xen преимущественно будет осуществлять через графическую консоль управления.
Запускаем XenCenter добавляем XEN сервера по IP или name. Кликаем слева по иконке XenServer правой кнопкой мыши и выбираем, создать NewPool придумываем произвольное имя пула, например Pool1, выбираем сервер, который будет мастером пула. После создания пула кликаем по свободным серверам и добавляем их в пул. Тут может быть подводный камень следующего характера, если физические процессоры на серверах гипервизора отличаются, то весь пул будет предоставлять набор инструкций процессора с меньшим набором характеристик. Кроме того для того, чтобы собрать такие узлы в пул нужно будет менять битовую маску на хосте которые нужно ввести в пул, более подробно на хабр.
На моем тестовом стенде это выглядело так:
E5 040ce3bd-bfebfbff-00000001-20100800
X3 0408e3fd-bfebfbff-00000001-20100800
хост 1-100000011001110001110111101
хост2-100000010001110001111111101

Настройка сети Citrix Xen Server

Для того, чтобы виртуальные машины могли мигрировать между хост-машинами, конфигурация настроек сети на них должна совпадать.
Опционально выделить отдельную сеть и разнести ее по IP и портам в соответствии с задачами.
Приблизительно можно выделить следующие сети по их функциональному назначению:
а) Сеть управления. Под management xen, по этому каналу будем получать управление к пулу используя консоль XenCenter и по этому же каналу будут мигрировать наши виртуальные сервера, конечно чем выше скорость на канале тем лучше. Быстрее будут мигрировать наши виртуалки.
б) Сеть для iscsi. Будем использовать для серверов с дисками, подключенными с использованием iscsi
в) Сеть для nfs. Будем использовать для серверов с дисками, подключенными с использованием nfs
г) Сеть nfs где будут храниться наши iso образы операционных систем
При использовании nfs зарезервировать каналы от гипервизора к полке можно, используя агрегацию каналов.
При использовании iscsi можно активировать multipathing. Multipathing включается на хосте, переведенным в режим обслуживания.
Вот скриншот моих сетевых настроек

Xen позволяет создавать сети и использовать в них vlan-ы которые используют nic серверов, так и сети которые не используют сетевую карту сервера для создания изолированных сетей между виртуалками.
Логика создания Server Network.
Создать сеть, настроить ip адрес для xen в добавленной сети.

После настройки сети добавляем стораджи к нашему пулу.
В Xen, Storage могут быть двух типов для создания библиотеки ISO и Storage для виртуальных жестких дисков.

Подключение NFS и ISCSI Storage Citrix Xen Server 6.5

Создаем библиотеку. Для этого выбираем пункт меню Storage -> New SR -> ISO library -> NFS ISO

Придумываем name новой библиотеки

Вводим адрес нашей шары где будут храниться наши ресурсы

Получаем готовую библиотеку с образами

Для добавления NFS storage виртуальных дисков нужно создать сторадж для NFS VHD
Вводим, путь до storage и выбираем Create a new SR

Форматируем новый SR

После чего можно создавать виртуальные диски на SR

Установка виртуальных машин в Citrix Xen Server 6.5

Установка vm ничем не отличается от установки системы на обычный ПК.
Сценарий развертывания вм (виртуальной машины) поддерживает механизм шаблонов. Что позволяет создавать собственные шаблоны для установки вм.
Переходим в пункт меню VM –> New VM

Выбираем шаблон, который будем использовать для установки vm

Вводим имя машины

Выбираем ISO-образ из библиотеки для установки

Сервер на котором будут хоститься вм

Число процессоров их топологию и размер памяти

Выделяем диск и сетевой адаптер

Запускаем созданную VM

Стандартно инсталлируем операционную систему, после установки монтируем xs-tools

Как установить xs-tools citrix xen server 6.5

mount /dev/xvdd /tmp
./install.sh
Теперь есть возможность использовать performance сервера


Настраиваем High Availability высокую доступность в Citrix Xen Server 6.5

XenServer позволяет обеспечить автоматическую живую миграцию виртуальных машин при падении одного из узлов в пуле, настраиваем High Availability
Активируем HA и конфигурируем High Availability

Выбираем общий storage для реализации HA

Выбираем план миграции ВМ и расставляем их приоритеты

Проводим тест доступности для этого деактивируем один из узлов пула, на котором находится наш виртуальный сервер.
Сервер должен самостоятельно мигрировать на оставшийся узел в пуле.
После отсутствия Мастер сервера в пуле роль мастера захватывает оставшийся хост в пуле серверов.

Поддержка usb устройств и токенов XenServer 6.5

XenServer поддерживает проброс usb устройств в гостевую систему. Исключение составляют usb устройства типа смарт-карта, которые пробросить на текущий момент не возможно без использования стороннего программного обеспечения.
Проброс USB
lspci | grep USB на хост системе Узнаем uuid vm
xe vm-list name-label=
сам проброс xe vm-param-set other-config:pci=0/000:00:1d.0 uu > Проверка параметров проброса xe vm-param-list uu > Отключить проброс xe vm-param-remove param-name=other-config param-key=pci uu >

После падения мастер хоста в пуле, его роль захватывает оставшийся сервер в пуле.
Для того, чтобы сменить мастер хост нужно: Смена master pool
Отключаем HA
xe pool-ha-disable
Ищем uuid мастера в пуле xe host-list
Назначаем новый мастер xe pool-designate-new-master host-uu >
активируем HA
xe pool-ha-enable

Как известно, XenServer доступен в трех вариантах — Free, Standard, и Enterprise. Standard почти идентичен бесплатной версии в плане набора возможностей, но имеет поддержку, в то время как Enterprise включает в себя множество дополнительных возможностей и опций.

После внимательного пересмотра набора возможностей в бесплатной версии, было решено переместить некоторые в Standard. Полный список возможностей, убираемых из бесплатной версии:

  • динамический контроль памяти (Dynamic Memory Control);
  • живой перенос дисков (Xen Storage Motion);
  • интеграция с АД (Active Directory Integration);
  • уровни доступа, основанные на ролях пользователей (Role Based Аccess Control);
  • высокая доступность (High Availability);
  • проброс видеопроцессора (GPU Pass-Through);
  • Site Recovery Manager (Disaster Recovery);
  • мастер обновления пулов (XenCenter Rolling Pool Upgrade Wizard);
  • максимальный размер пула теперь ограничен тремя хостами (уже существующие пулы продолжат работать, но добавить в них хосты будет невозможно).

Таким образом, Standard будет существенно отличаться от бесплатной версии.

Многие. конечно, спросят «почему?». Мы надеемся, что те, кто использует бесплатную версию для крупных установок, решат купить подписку для того, чтобы получить доступ к недоступному набору фичеров, так же как и к исправлениям для каждого выпуска на продленный период (примерно 7 месяцев), доступ к долгосрочным релизам (до 10 лет поддержки) и поддержке от Citrix.

Эт точно, что в бесплатной версии теперь не столько плоти, сколько костей осталось.

Мы надеемся что те кто использует бесплатную версию для крупных установок решат купить подписку для того чтоб получить доступ к недоступному набору фичеров.

А причём эти фичи именно к крупным установкам?

Динамический контроль памяти (Dynamic Memory Control)

Живой перенос дисков (Xen Storage Motion)

Проброс видеопроцессора (GPU Pass-Through)

Вот если бы было что-то вроде

тогда ещё понятно.

Эт точно, что в бесплатной версии теперь не столько плоти, сколько костей осталось.

остальное — перевод заявления PM xenserver, a не мои слова, все вопросы можно задать ему по ссылке

А что, кто-то этим до сих пор пользовался? Я думал, что с бесплатной все давно на oVirt и Proxmox свалили, но суда по пригару в комментах, таки нет.

это фиаско, братан!

пока MSFT снова и снова добавляет фичи в бесплатный Hyper-V Server, пока VMware сокращает разницу между фришной и платной реализациями, эти идут в обратную сторону. и кому оно теперь надо с таким подходом?

p.s. почти уверен, что фичи и дальше будут исчезать из бесплатной версии, просто постепенно

Конечно спросят!
Только, наверное, более экспрессивно спросят, и ощущать будут серьёзные недоумения.
Ну я ещё могу понять HA, проброс видеопроцессора (хотя тут уже сомнения гложут), SRM, RollingPoolUpgrade. Это и вправду не для мелких установок.
Но Dynamic Memory Control, Xen Storage Motion — это-то тут при чём?
Что — уходить теперь с платформы XEN?

пока MSFT снова и снова добавляет фичи в бесплатный Hyper-V Server, пока VMware сокращает разницу между фришной и платной реализациями, эти идут в обратную сторону.

По сути согласен. Но почему в твоём списке отсутствует полностью открытый KVM? Линуксоадмины если куда и будут сваливать, то именно на KVM (или на продукты на его основе, которые тут выше уже назывались), а не на вымыварь, и уж точно не на гиперви.

А по XenServer — поясните, они с платной версией исходники поставляют, или перемещение из Free в Standard означает, что теперь и исходников не будет?

Если первое, то я не вижу драмы, разработчикам тоже надо кушать. Ну а если с таким подходом от них народ разбежится, значит, тоже нет драмы, просто они сами себе злобные буратины и неверно оценили ЦА.

Окончательно отмирает. И так не особо популярная штука, теперь даже за бесплатно никто ставить не станет. Хотя vdi стек по прежнему хорош.

пока MSFT снова и снова добавляет фичи в бесплатный Hyper-V Server, пока VMware сокращает разницу между фришной и платной реализациями, эти идут в обратную сторону. и кому оно теперь надо с таким подходом?

. пока космические корабли бороздят большой театр

То, что бесплатную версию xen урезали — очень печально. Но ты несёшь какой-то бред

Для винды, на которую ты ставишь hyper-v, всё равно нужна лицения, емнип

В vsphere бесплатные есть только лицензии на esxi. Без платного VC там вообще никакой миграции нет ( т.е. и High Availability тоже, нужна минимум лицензия standard ) , не то что между datastore’ами ( лицензия enterprise, ЕМНИП )

Для винды, на которую ты ставишь hyper-v, всё равно нужна лицения, емнип

Для бесплатного Hyper-V Server ничего покупать не нужно, платная только инфраструктура управления от родителя или сторонних вендоров, а так всё есть, миграции и прочее, полноценный гипервизор но без рюшек.

Для винды, на которую ты ставишь hyper-v, всё равно нужна лицения, емнип

Конечно нужна, только я про винду ни слова не сказал, вы её придумали. Лицензия для Hyper-V Server не нужна, он активируется автоматически сразу после установки.

В vsphere бесплатные есть только лицензии на esxi. Без платного VC там вообще никакой миграции нет

Разница между фришной и платной реализациями состоит не только из возможности миграции. И да, миграция есть, просто не из коробки.

По сути согласен. Но почему в твоём списке отсутствует полностью открытый KVM? Линуксоадмины если куда и будут сваливать, то именно на KVM (или на продукты на его основе, которые тут выше уже назывались), а не на вымыварь, и уж точно не на гиперви.

На мой взгляд Xenserver в принципе не вписывается в Linux-only окружения — с нормальными управлялками беда (по крайней мере раньше приходилось держать винду в виртуалке специально для Xencenter или долго и нудно ковырять XO), да и KVM гораздо проще устроен + он как бы «роднее». Я перечислял конкурентов по «смешанным окружениям» или даже чисто виндовым (куда Xenserver и метит, судя по всему).

А я так ждал 7.3, так ждал, у меня новая мамка на Z270, и там не помню даже что именно, но какое то устройство не заводилось, а в линуксах современных всё работает, думал может в 7,3 дрова подвезут, а тут такая подстава — проброс GPU выкинули. Ну и иди ты лесом Citrix! 😛

А я так ждал 7.3, так ждал, у меня новая мамка на Z270, и там не помню даже что именно, но какое то устройство не заводилось, а в линуксах современных всё работает, думал может в 7,3 дрова подвезут, а тут такая подстава — проброс GPU выкинули. Ну и иди ты лесом Citrix! 😛

А обычный xen чем тебе не нравиться? собирай ядро и используй xen без citrix или я чего-то не знаю?

А что, кто-то этим до сих пор пользовался? Я думал, что с бесплатной все давно на oVirt и Proxmox свалили, но суда по пригару в комментах, таки нет.

Я,активно пользую, из-за паравиртуализации ,у меня куча старого железа без vt

Давненько я не пользовался XEN, а уж XenServer так и подавно сто лет не видел. Citrix имеют полное право урезать функционал своих продуктов, но такими темпами они всё своё сообщество добьют окончательно, если таковое существует. Как пользователю qemu-kvm мне это даже приятно.

вот теперь вопрос о нужности xen-а можно даже не поднимать

А обычный xen чем тебе не нравиться? собирай ядро и используй xen без citrix или я чего-то не знаю?

Ну мне xenserver нравился тем, что мог из коробки пробросить видеокарту если она была даже в общей со всеми IOMMU-группе, на простецких материнках, не надо плясок с патчами, не люблю я это. А так теперь да, kvm да xen-hypervisor наше всё =)

Те, кто хотят, пускай голый xen ставят. Там всё абсолютно тоже самое. KVM удобен тем, что он есть практически в любом ядре. И запустить его можно даже на самом обычном ПК. Я кстати, не использую даже libvirt. На сервере у меня стоит просто qemu с openvswitch и пара скриптов для управления всем этим хозяйством.

Что то я не понял, в оригинале новости:

As many of you will be aware, XenServer is available in three editions: Free, Standard, and Enterprise. All of them are installed from the same ISO, and all are equally open source.

Т.е. Standard и Enterprise с открытыми исходниками? Что мешает взять и собрать их из сырцов и получить все фичи?

Я был прав. когда решил не связываться с этими жлобами. Ненужный продугт.

Для винды, на которую ты ставишь hyper-v, всё равно нужна лицения, емнип

Нет. Hyper-V Server — абсолютно бесплатный продукт и в других версиях венды не нуждается, ставится на голое железо.

Хочу рассказать о том, как прижился XenServer в нашем отделе тестирования, а так же немного о другом используемом free/opensource (DRBL + Clonezilla, Tape redirector, MHVTL). Выбор остановился на этих продуктах не по идеологическим, а сугубо практическим причинам — они удобные и масштабируемые. Но есть и ряд проблем, которым я также уделю внимание в этой статье.
Под катом много текста и изображений.

Я работаю в команде тестирования Acronis в отделе поддержки пользователей, воспроизвожу пользовательские проблемы. Начиная с имитации дискового окружения и аппаратной части, заканчивая программным обеспечением и его специфическими настройками. Стояла задача — обеспечить работу тестового стенда с помощью двух рабочих станций. Были перепробованы и ESXi, Hyper-V, Proxmox и другие, но все же остановились на использовании XenServer. И вот что из этого получилось.

Аппаратное обеспечение

Изначально имелся один диск, на который и был установлен XenServer 4.2. По началу скорость устраивала. Чуть позже сервером стало пользоваться уже два человека, появилось уже тяжелое окружение (например, Exchange 2003 с базой данных в 300гб, которая постоянно работала под нагрузкой) и сразу стало понятно, что для комфортной работы текущей производительности явно недостаточно. Виртуальные машины грузились долго (а одновременно работает в среднем 20 штук на одном сервере), IO Wait часто достигал нескольких секуд. Надо было что-то делать.

Первое, что пришло в голову — RAID, но быстро это не реализовать, а решение нужно вчера. Как раз тогда в репозитории Debian добавили ZFS и было решено попробовать именно его.

Каждая из двух рабочих станций имеет материнскую плату с 4-мя SATA2 портами, 16ГБ ОЗУ и гигабитные сетевые карты.
Первая машина была выделена под гипервизор и загружается с USB флешки.
На вторую машину была установлена серверная Ubuntu 11.04, все необходимые пакеты для работы ZFS. Установлены 4ре диска по 1ТБ каждый. Был выбран RAID 10. Так как на материнской плате только 4 SATA порта, то ОС так же установлена на USB флешку.
Сам гипервизор соединен с ZFS через гигабитный свитч.
Были проведены эксперименты, прочитаны статьи, в итоге на ZFS была включена поддержка сжатия GZIP, выключена проверка контрольных сум, от дедупликации так же отказались. Это оказалось самым оптимальным решением, все 8 ядер очень редко нагружаются на 100%, и памяти вполне хватает. К сожалению, кэш на SSD протестировать не удалось 🙂

Сама файловая система экспортируется наружу через NFS, нативно поддерживаемый самим ZFS. А XenServer, да и ESX работают с NFS хранилищами. Это позволило использовать это же хранилище одновременно и для 2-х XenServer и для 3-х ESXi. Из этого ряда выбивается Hyper-V, который с завидным упорством и в Server 2012 отказывается работать с NFS, но это на совести MS.

Сконфигурированный ZFS выглядит так:

Скорость записи на диск примерно соответствует удвоенной скорости отдельного диска.

На данный момент до 40 виртуальных машин одновременно работают без каких либо проблем с производительностью, тогда как раньше 20 машин приводили к провисаниям IOW до 5 секунд. Сейчас, спустя полтора года с запуска ZFS решение можно признать надежным, быстрым и крайне бюджетным. Поднятые NFS и CIFS сервера на хранилище позволяют его использовать и для других целей:
XenServer позволяет создавать ISO хранилища на сетевых дисках CIFS. Продукты перед релизным тестированием собираются в ISO образ (инсталляторы для Windows и Linux разных локализаций), который, в свою очередь, загружен на сетевой диск во внутренней гигабитной сети. В результате, одним движением мышки (субьективно XenCenter гораздо удобнее и быстрее в такой работе, чем vSphere) или скрипта мы вставляем эту ISO в виртульный CDROM (можно и десяткам машин одновременно) и ставим продукт прямо «с диска», что значительно экономит время на копировании больших (2GB+) файлов. Конечно, такое линейное чтение просаживает сеть, особенно если установка идет сразу с 5+ машин, но это все равно очень удобно.

Гигабитная сеть, через которую подключено хранилище, доступна и для виртуальных машин. Таким образом, можно использовать CIFS для любых других тестов. Для удобства на ZFS машине так же был поднят DHCP сервер.

Кроме виртуальных машин, тестировать приходится и на обычных рабочих станциях. Это тестирование и с ленточными накопителями и всевозможные REV, RDX диски и т.д. Нужно постоянно и быстро разворачивать различное окружение на машины. Будь то ESX гипервизор или Windows 2008R2 с Hyper-V или SLES с поднятым iSCSI multipath. Для этой цели используется DRBL

DRBL в сочетании с Clonezilla позволяет быстро разворачивать образы чере PXE с гибкими сценариями, а так же служит NAT сервером для уже развернутых машин.

Машины во внутренней сети имеют доступ через NAT во внешнюю сеть, а к ним самим через iptables имеется доступ по RDP.

Набор различных ленточных накопителей подключен к одной машине, на которой используется бесплатный Tape Redirector, соответственно любая виртуальная машина может их использовать по iSCSI. Так же имеется отдельная виртуальная машина с поднятым MHVTL, но аппаратные накопители тоже нужны — не все проблемы проявляются на VTL.

Развертывание/клонирование делается в два клика с помощью утилиты, написанной на Perl+GTK. Работает достаточно просто — компонуется команда из блоков и выполняется через SSH. Кому интересно, репозиторий тут. Код сырой, но работает github.com/Pugnator/GTKdrbl

Интерфейс

Субьективно удобный интерфейс представлен только Citrix — XenCenter, но он, к сожалению, только под Windows. Кроме того, по какой-то причине в интерфейс не были выведены важные и полезные возможности, например, возможность поставить виртуальную машину на паузу или, к сожалению, часто нужную опцию перезагрузки XAPI, когда какая-либо виртуальная машина повисает намертво

Есть и другие варианты, например sourceforge.net/projects/openxenmanager, но они они оказались недостаточно стабильными.

Существует VNC веб прокси www.xvpsource.org

Удобно, но требует Java, включенную в браузере (бывают проблемы), ну и в первую очередь это VNC, работать как с полноценным интерфейсом нельзя.

В результате на GTK3 был написан клиент под Linux, который так же можно использовать и в вебе. GTK Broadway позволяет через HTML5 + WebSockets в браузере получить вот такой инструмент

Данная технология не позволяет использовать его для множества пользователей одновременно, но с помощью неё можно полноценно работать как на Linux, так и через веб, лишь меняя параметры запуска (например, вынести в две иконки).

При использовании HTML5 фронтэнда накладывается множество ограничений на само приложение, и эти ограничения почему-то недокументированы. Примером ограничения является невозможность использования иконок в трее, относительного позиционирования окна и прочее. Последствия — от нестабильной работы до падений.
С документацией все плохо, на данный момент изучение broadway представляет собой чтение исходных кодов GTK3, так как кроме странички описания и новостей 3-х летней давности по broadway ничего нет.

API существует для C, C#, Java, Python и Powershell. Для С сборка только под линукс, но методом небольшой доработки исходников (на тот момент в mingw отсутствовала реализация какой-то функции) все успешно собралось и под Windows (MinGW). API работает через HTTP(S). API предоставляет и достаточно низкоуровневый доступ к виртуальным машинам.

Диски

Хотелось многого, от быстрого просмотра MBR кликнув мышкой, до извлечения файла с виртуалки или закачивания оного назад на выключенной виртуальной машине.
Такое бывает нужно, к примеру, в случае BSOD — извлечь реестр (и/или отредактировать его и залить обратно, например, выключив какой-либо драйвер), либо отредактировать опции загрузчика (включить дебаг через последовательный порт) и много всего. Для таких целей приходится прибегать к помощи загрузочного диска.
Но можно и иначе, виртуальную машину возможно экспортировать через HTTP GET в формате XVA, который представляет из себя TAR архив, внутри которого лежат блоки диска.

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

Контролировать работу с сетью виртуальной машины можно разными путями. Обычно это wireshark/tcpdump, установленные в виртуальную машину. Собирается нужный дамп и переносится в другое место для изучения. Но есть способ лучше — каждая запущенная виртуальная машина имеет свой dom-id, в соответствии с ним имеется и VIF устройство вида vifDOMID.0, доступное с гипервизора. Подключившись по SSH к гипервизору, можно легко получить дамп для любой произвольной включенной виртуальной машины (разумеется, имеющей добавленные сетевые карты), что делает тестирование чище и удобней (не нужно ставить PCAP драйвера). Далее, согаласно совету из Q&A программа делает пайп и запускает Wireshark. И в режиме реального времени получаем/фильтруем трафик.

Guest tools и последовательный порт

API не предоставляет никаких средств, аналогичных guest operation у vix vmWare, например, копирование файлов.
И если с установкой основного софта проблема решается с использованием ISO на гигабитной сети, то с передачей команд/сборкой логов, просмотром данных все не так гладко. Приходится использовать промежуточные сетевые диски, а это не всегда возможно (условия тестирования, изолированная сеть). В любом случае это отнимает время и неудобно.

Самая первая идея, пришедшая в голову — использовать виртуальный последовательный порт. Можно активировать виртуальный com-порт, который средствами XenServer транслируется по TCP. Теперь, если по соответствующему адресу открыто соединение, мы можем отправлять/принимать сообщения на скорости 115200. На виртуальной машине же запущена фоновая программа «последовательный порт-CLI прокси», которая и выполняет транслирование команд из последовательного порта и возвращает результаты.
Тут не обошлось без подводных камней:
1)Передача обрывается при достижении 65535 переданных байт, если клиент (виртуальная машина) не передала за это время хотя бы один байт.
2) Включение порта работает только после рестарта. То есть включать необходимо либо на выключенной виртуальной машине, либо перезагружать её.
3) Если по какой-либо причине соединение оборвется, восстановить его до перезагрузки не имеется возможности.
4) Ну и самое плохое — если TCP сервер не отвечает — виртуальная машина зависнет на старте.

По этим причинам, параллельно искались другие методы, например, через xenstore. Это хранилище, доступное разным доменам. В том числе и виртуальным машинам. Там буфер порядка двух мегабайт, и достаточно быстрая запись. Но чтение медленнее чем 115200, требуются установленные xen tools (что не всегда возможно) и требуется тщательно тестировать код. Например, если записать больше, чем XENSTORE_PAYLOAD_MAX, судя по комментариям в исходниках драйверов, это грозит фатальными последствиями.

На данный момент думаю об использовании паравиртуального последовательного порта виртуальной машины через ssh тоннель на гипервизор, по аналогии с методом, указанным выше про сетевые карты. Судя по всему, это максимально безопасный и быстрый метод. На данный момент лишь проверено, что это осуществимо.

Точно таким же образом можно производить дебаг ядра Windows/Linux, пробрасывая по TCP/SSH последовательный порт, а локально через пайп уже подключается WinDbg, к примеру. Для таких целей была создана отдельная виртуальная машина с набором символов под все доступные версии Windows.

Заключение

Работая с XenServer API и изучая его, на себе испытал многие плюсы и минусы opensource. Широкие возможности упираются в слабую документацию. Если VIX описан очень подробно, то с тем же xenserver api — 3 примера, 4 тестовых файла и комментарии в хэдерах исходников. Код понятный, но как связать отдельные функции — понятно либо разработчикам, либо тем, кто глубоко знает архитектуру Xen. Например, такая задача как узнать размер диска — нигде не описана. А не зная архитектуры — догадаться не слишком просто. Конечно, со временем вникая и углубляясь в строение Xen, многое стало понятней. Но на многие вопросы я так и не получил ответа, а в IRC чатах по выходным никто не отвечает — одинокие посетители пишут, что «сегодня же воскресение» :).
Но прогресс есть, за год пополнились wiki, статьи, примеры с демонстрацией новых возможностей. Очень надеюсь, что в будущем XenServer сможет стать сильным игроком на рынке с хорошим набором third party software

Оцените статью
Ремонт оргтехники
Добавить комментарий