Андрей Панченко
Доступная виртуализация: Citrix XenServer 5.0
В настоящее время все более популярной становится тема виртуализации, и об этом сказано уже достаточно много. Свою статью я хочу посвятить доступному решению по виртуализации вычислительных ресурсов на базе бесплатного программного продукта Citrix XenServer 5.0, который стал доступен 30 марта 2009 года.
Скачать дистрибутив можно по адресу http://www.citrix.com/lang/English/lp/lp_1688615.asp. Следует упомянуть о том, что ранее было четыре редакции Citrix XenServer, отличающиеся набором функций: Express, Standard, Enterprise и Platinum. Хочу обратить внимание на то, что редакция Express была бесплатна, а остальные требовали оплаты за дополнительный функционал: возможность использования пула серверов, перемещения виртуальных машин между серверами пула, отказоустойчивый кластер и т.д.).
Не так давно компания Citrix приняла решение оставить только одну редакцию Citrix XenServer и распространять ее бесплатно. Теперь Citrix XenServer имеет практически весь набор функциональных возможностей бывшей Enterprise-редакции, кроме отказоустойчивого кластера (High Availability, HA). Редакции Enterprise и Platinum трансформировались в два дополнения для Citrix XenServer 5.0: Citrix Essentials for XenServer редакции Enterprise и Platinum соответственно. Эти дополнения стали доступны также и для Microsoft Hyper-V (Citrix Essentials for Hyper-V Enterprise Edition и Citrix Essentials for Hyper-V Platinum Edition), которые включают в себя:
- упрощенное управление различными системами хранения данных (технология Storage Link);
- динамическое управление виртуальными машинами (потоковая доставка операционных систем, Citrix Provisioning Services). Бездисковая виртуальная машина может загружаться по сети из заранее созданного образа виртуального диска. Из одного образа может загружаться несколько виртуальных машин, причем добавление нового сервера с уже готовой операционной системой занимает всего несколько минут;
- автоматизированное управление лабораторной средой для разработчиков и тестировщиков, в которой часто приходится удалять и заново разворачивать множество виртуальных машин (Citrix LabManager), а также поддержку гипервизора XenServer.
Но речь сегодня пойдет не о них, а именно о бесплатном продукте Citrix XenServer 5.0.
Функционал
Citrix XenServer 5.0 обладает богатым функционалом, достаточным для его использования не только в лабораторных целях, но и в ИТ-структуре действующего предприятия. Перечень основных функций и возможностей указан ниже:
- поддержка Windows и Linux в качестве гостевых операционных систем;
- поддержка до 8 виртуальных процессоров в виртуальной машине;
- поддержка до 7 виртуальных жестких дисков для гостевых машин;
- поддержка одного виртуального CD-ROM;
- поддержка до 7 виртуальных сетевых интерфейсов;
- поддержка до 6 физических сетевых интерфейсов на сервер (возможно использование 6 объединенных пар сетевых интерфейсов);
- поддержка виртуальных сетей (VLAN);
- поддержка неограниченного количества физических серверов в пуле, виртуальных машин и памяти;
- конвертер из физической среды в виртуальную для Windows и Linux-систем (P2V-конвертер);
- поддержка широкого спектра хранилищ данных (IDE, SATA, SCSI, SAS, DAS, Fibre Channel, iSCSI, NFS);
- централизованное управление пулом физических серверов из единой консоли управления;
- возможность перемещения виртуальных машин с одного физического сервера на другой без остановки виртуальной машины (XenMotion) при использовании сетевого хранилища данных;
- использование шаблонов для создания виртуальных машин;
- тонкая настройка использования процессорных мощностей;
- горячее подключение/отключение виртуальных жестких дисков и виртуальных сетевых адаптеров;
- создание мгновенных снимков виртуальных машин;
- возможность создания виртуальных машин из заранее подготовленных шаблонов и их клонирования.
Поддерживаемые гостевые операционные системы
Citrix XenServer официально поддерживает все современные операционные системы Microsoft Windows, а также популярные Linux-системы:
- Windows 2000 SP4;
- Windows Server 2003/2008 (32/64 бит);
- Windows XP SP2/SP3;
- Windows Vista;
- Debian Sarge 3.1;
- Debian Etch 4.0 X;
- Red Hat Enterprise Linux 3.6-3.8, 4.5-4.7, 5.0-5.2 (32/64 бит);
- SUSE Linux Enterprise Server 9 SP1/2/3/4;
- SUSE Linux Enterprise Server 10 SP1/2 (32-bit/64-bit);
- CentOS 4.5, 4.6, 4.7, 5.0-5.2 (32/64 бит);
- Oracle Enterprise Linux 5.0-5.2 (32/ 64 бит).
Архитектура
Citrix XenServer относится к программному обеспечению для виртуализации, устанавливаемому непосредственно на «железо» (bar-metal solutions), например, VMware ESX или Microsoft Hyper-V, в отличие от решений hosted solutions, которые устанавливаются на полноценную операционную систему, например VMware Workstation или Microsoft Virtual PC. Таким образом, Citrix XenServer практически не расходует ресурсы физического сервера на нужды собственной операционной системы и использует порядка 4-6% от его общей производительности.
Схематично архитектура Citrix XenServer представлена на рис. 1.
Рисунок 1. Архитектура Citrix XenServer
Приведу краткие пояснения:
- Hardware – это, собственно, вычислительные ресурсы, т.е. сервер.
- Hypervisor (Xen Hypervisor) – это программное обеспечение, которое устанавливается непосредственно на физическое «железо», т.е. на сервер, и образует так называемый уровень абстракции (Abstraction layer), который обеспечивает виртуализацию вычислительных ресурсов (Virtualized Hardware) и позволяет запускать на одном физическом сервере несколько виртуальных, эффективно развязывая их, а также приложения внутри этих виртуальных машин. Hypervisor управляет оперативной памятью и процессорами (RAM/CPU).
- Control Domain – это виртуальная машина Linux с наивысшим приоритетом использования вычислительных ресурсов. Эта машина управляет остальным оборудованием, таким как сетевые адаптеры, устройства хранения данных, в том числе и локальные и т.д. (Drivers), кроме оперативной памяти и процессора. Так как используются обычные драйверы для Linux, поддерживается обширный перечень устройств (список всех протестированных устройств можно посмотреть здесь – http://hcl.xensource.com). Control Domain содержит пакет инструментов (Xen Tool Stack) для управления Citrix XenServer.
- Linux – это гостевая виртуальная машина Linux с поддержкой паравиртуализации. Доступ к устройствам хранения данных и к сетевым интерфейсам такая виртуальная машина получает через Control Domain, а к процессорам и оперативной памяти посредством Xen Hypervisor.
- Windows – гостевая виртуальная машина Windows. Доступ к устройствам хранения данных и к сетевым интерфейсам такая виртуальная машина, так же как и Linux, получает через Control Domain, а к процессорам и оперативной памяти посредством Xen Hypervisor, используя возможности аппаратной технологии виртуализации процессоров Intel VT и AMD‑V, что позволяет увеличить производительность.
Установка Citrix XenServer
В блоге Сергея Халяпина (http://community.citrix.com/blogs/citrite/sergeyk) есть отличный видеоролик, который наглядно демонстрирует процесс установки Citrix XenServer от начала до конца, а также есть описание процедуры активации бесплатного Citrix XenServer.
В дополнение скажу лишь то, что процесс установки очень прост и занимает порядка 15 минут, а также приведу требования к аппаратной конфигурации сервера:
- один или более процессоров (до 32 процессоров) с поддержкой технологий виртуализации Intel VT или AMD-V 64-bit (необходимо только при использовании гостевых машин с операционной системой Microsoft Windows) с частотой не менее 1,5 ГГц;
- ОЗУ не менее 1 Гб;
- 100 Мбит/с сетевой интерфейс;
- локальный жесткий диск размером не менее 16 Гб.
Консоль управления Citrix XenServer
Управление Citrix XenServer производится при помощи командной строки посредством SSH-клиента. Для администраторов, использующих операционные системы семейства Windows, предусмотрен специализированный графический инструмент Citrix XenCenter Console. Тем не менее довольно много операций выполняется исключительно из командной строки, например «снимки» виртуальных машин (snapshots). К счастью, все команды хорошо описаны в руководстве администратора (XenServer Administrator's Guide), а также в базе знаний Citrix.
Для консоли управления Citrix XenCenter Console не нужно выделять специальный сервер. Она устанавливается на рабочую станцию администратора. Поддерживаются операционные системы Windows XP, Windows Server 2003 или Windows Vista. Данные о конфигурации пула серверов Citrix XenServer хранятся на всех серверах соответствующего пула, что обеспечивает сохранность конфигурации в случае выхода из строя одного из серверов пула Citrix XenServer.
Репозиторий данных
Репозиторий данных (Storage Repository) – это хранилище, на котором располагаются диски виртуальных машин (Virtual Disk Images, VDI). Репозиторий может быть локальным (IDE, SATA, SCSI и SAS диски, подключенные локально), а также сетевым (iSCSI, NFS и Fibre Channel).
Если вы планируете использовать не более одного физического сервера в пуле, то вполне можно использовать локальный репозиторий. В качестве локального могут использоваться два типа репозитория данных: LVM (Logical Volume Manager, создается по умолчанию при установке Citrix XenServer) и EXT (используется файловая система Ext3, можно создать после установки Citrix XenServer). Репозиторий EXT позволяет использовать диски виртуальных машин в формате Microsoft VHD (Virtual Hard Disk), что предоставляет возможность переносить на Citrix XenServer виртуальные диски из Microsoft Hyper-V либо Microsoft Virtual PC. Репозиторий EXT позволяет делать снимки (Snapshots) виртуальных машин, чего невозможно сделать при использовании репозитория LVM (см. ниже «Использованные источники», пункт 2 – «XenServer 5.0 Update 3 Administrator's Guide»).
Еще одним преимуществом репозитория EXT перед LVM является поддержка плавного роста виртуального диска. Например, если при создании виртуальной машины на базе Windows XP был создан виртуальный диск размером 30 Гб, а файлы операционной системы и приложений занимают 10 Гб, то на физическом жестком диске будет занято не 30 Гб, а всего лишь 10 Гб. Размер занимаемого физического дискового пространства будет постепенно расти до 30 Гб по мере заполнения виртуального диска. Такой же виртуальный диск, созданный на репозитории LVM, занял бы сразу 30 Гб на физическом жестком диске.
Однако конечный размер виртуального диска при использовании репозитория EXT изменить нельзя! Например, если был создан виртуальный диск размером 30 Гб, то увеличить его до 40 Гб уже не получится. А при использовании репозитория LVM поддерживается изменение конечного размера виртуального жесткого диска.
На мой взгляд, в качестве локального репозитория данных лучше всего использовать EXT и диски VHD, поэтому я расскажу, как удалить репозиторий LVM, который был создан при установке Citrix XenServer, и создать репозиторий EXT.
Все последующие операции выполняются в режиме командной строки из консоли управления Citrix XenServer. Для этого в Citrix XenCenter выделите соответствующий сервер, выберите вкладку Console, как показано на рис. 2. В этом случае команды выполняются непосредственно на сервере.
Рисунок 2. Консоль командной строки Citrix XenServer
Этот вариант подходит для администраторов, использующих рабочую станцию под управлением Windows. Тем же, кто использует Linux, следует воспользоваться SSH-клиентом. Например, для операционных систем семейства UNIX, использующих в качестве SSH-клиента команду ssh, подключение производится при помощи команды:
ssh -l root XenServer
где root – имя пользователя, а XenServer – имя или IP-адрес вашего сервера с установленным ПО Citrix XenServer. Когда будет запрошен пароль, введите тот, который вы назначили для пользователя root в процессе установки Citrix XenServer.
Перед тем как приступать к удалению существующего LVM-репозитория, экспортируйте все виртуальные машины, которые, возможно, уже созданы, на другой диск, например на USB-диск.
Экспорт производится следующим образом:
1) Определите имя подключенного USB-диска. Для этого используйте команду:
fdisk –l
В результате вы получите список дисковых устройств:
Disk /dev/sda: 160.0 GB 160000000000 bytes
255 heads, 63 sector track, 19452 cylinders
Units = cylinders of 16065*512 = 8225280 bytes
Device boot Start End Blocks Id System
/dev/sda1 * 1 499 4008186 83 Linux
/dev/sda2 500 998 4008217+ 83 Linux
/dev/sda3 999 19452 148231755 83 Linux
Disk /dev/sdb: 10.0 GB 10005037056 bytes
16 heads, 63 sector track, 19386 cylinders
Units = cylinders of 1008*512 = 516096 bytes
Device boot Start End Blocks Id System
/dev/sdb1 * 1 19385 9870008+ 7 HPFS/NTFS
|
где искомый USB-диск – это устройство /dev/sdb1.
2) Создайте каталог с именем «USB». Для этого используйте команду:
mkdir /mnt/usb
3) Смонтируйте устройство USB, определенное на этапе 1 в каталог, созданный на этапе 2, командой:
mount /dev/sdb1 /mnt/usb
4) Отформатируйте его при необходимости командой:
mkfs –t ext3 /dev/sdb1
5) Экспортируйте виртуальные машины на USB-диск командой:
xe vm-export vm=Debian filename=/mnt/usb/Debian.xva
где vm – это имя виртуальной машины, а filename – имя файла экспортированной виртуальной машины и путь к ней (расширение файла должно быть .xva).
6) Размонтируйте USB-диск, используя команду:
umount /mnt/usb
Теперь можно приступать к удалению LVM и созданию EXT-репозитория.
Последовательность действий следующая:
1) Определите, где находится необходимый репозиторий. Для этого используйте команду:
fdisk –l
чтобы увидеть список всех разделов:
/dev/sda1 * 1 499 4008186 83 Linux
/dev/sda2 500 998 4008217+ 83 Linux
/dev/sda3 999 19452 148231755 83 Linux
|
где раздел /dev/sda1 используется операционной системой домена управления (Control Domain), /dev/sda2 – для резервного копирования, а оставшийся /dev/sda3 и есть искомый репозиторий, где размещаются диски виртуальных машин.
2) Определите универсальный уникальный идентификатор (Universally Unique Identifier, UUID) для существующего LVM-репозитория, а также для интерфейса между физическим сервером и репозиторием данных (Physical Block Device, PBD). Для этого используйте команду:
xe sr-list type=lvm params=uuid,name-label,PBDs
которая выводит следующий результат:
uuid ( RO) : 45bab772-3aab-1a7f-33fb-3346b1ab379d
name-label ( RW): Local storage
PBDs (SRO): e1b07204-6424-f95a-dedc-0ca6bfe2f286
|
где name-label – это наименование репозитория в том виде, в котором он отображается в консоли Citrix XenCenter.
3) Отключите PBD репозитория командой:
xe pbd-unplug uuid=e1b07204-6424-f95a-dedc-0ca6bfe2f286
где uuid – это идентификатор соответствующего PBD, полученного нами на этапе 2. Не обязательно вводить номер целиком, введите первые несколько символов, а далее нажмите клавишу TAB – номер будет подставлен автоматически.
4) Удалите LVM-репозиторий командой:
xe sr-destroy uuid=45bab772-3aab-1a7f-33fb-3346b1ab379d
где uuid – это идентификатор репозитория, полученный на этапе 2. Не обязательно вводить номер целиком, введите первые несколько символов, а далее нажмите клавишу <TAB> – номер будет подставлен автоматически.
5) Создайте новый репозиторий в формате EXT командой:
xe sr-create host-uuid=5d189b7a-cd5e-4029-9940-d4daaa34633d content-type=user name-label="Local EXT Storage" shared=false device-config:device=/dev/sda3 type=ext
где host-uuid – это идентификатор Citrix XenServer (выводится при нажатии клавиши TAB), content-type – тип содержимого раздела (наименование произвольное), name-label – наименование создаваемого репозитория (произвольное).
6) Определите уникальный идентификатор созданного репозитория командой:
xe sr-list type=ext params=uuid,name-label
которая выводит следующий результат:
uuid ( RO) : 38525a18-7992-7905-ac73-468a03812ee5
name-label ( RW): Local EXT Storage
|
7) Установите его в качестве репозитория по умолчанию для размещения новых виртуальных машин:
xe pool-param-set default-SR=38525a18-7992-7905-ac73-468a03812ee5 uuid=6d87b954-db74-3414-cf64-d5568971069d
где default-SR – идентификатор созданного репозиториия, полученный на этапе 6, а uuid – идентификатор пула серверов Citrix XenServer (выводится при нажатии клавиши <TAB>).
8) Далее установите его в качестве репозитория по умолчанию для размещения приостановленных виртуальных машин:
xe pool-param-set suspend-image-SR=38525a18-7992-7905-ac73-468a03812ee5 uuid=6d87b954-db74-3414-cf64-d5568971069d
где suspend-image-SR – идентификатор созданного репозитория, полученный на этапе 6, а uuid – идентификатор пула серверов Citrix XenServer (выводится при нажатии клавиши <TAB>).
В итоге вы увидите созданный EXT-репозиторий в консоли Citrix XenCenter, как показано на рис. 3.
Рисунок 3. Консоль Citrix XenCenter с новым EXT-репозиторием
Администраторы Linux могут получить информацию о созданном репозитории при помощи команды:
xe sr-list uuid=38525a18-7992-7905-ac73-468a03812ee5 params
где uuid – идентификатор созданного репозитория, который был определен выше.
Если вы планируете использовать не один Citrix XenServer в пуле, а несколько, то рекомендую использовать общий сетевой репозиторий, чтобы можно было использовать функцию XenMotion. В качестве такого репозитория можно использовать как коммерческие, например NetApp или Dell EqualLogic, так и бесплатные решения, например FreeNAS (http://www.freenas.org) или Openfiler (http://www.openfiler.com).
Версия 5.5
В начале мая на конференции Synergy в Лас-Вегасе компания Citrix анонсировала Citrix XenServer версии 5.5, которая должна уже быть доступна на момент выхода этой статьи. Функциональные возможности несколько расширятся, но ничего принципиально нового с точки зрения архитектуры и управления не будет. Следовательно, все описанное выше будет актуально и для Citrix XenServer 5.5.
- XenServer 5.0 with Update 3 Installation Guide – http://support.citrix.com/article/CTX120714.
- XenServer 5.0 Update 3 Administrator's Guide – http://support.citrix.com/article/CTX120713.
- XenServer 5.0 Update 3 Virtual Machine Installation Guide – http://support.citrix.com/article/CTX120715.
- База знаний по программному обеспечению компании Citrix – http://support.citrix.com.
- Официальный учебный курс «CXS-200-1W Implementing Citrix XenServer Enterprise Edition 5.0.
- Блоги Citrix – http://community.citrix.com/blogs.