» ГЛАВНАЯ > К содержанию номера
 » Все публикации автора

Журнал научных публикаций
«Наука через призму времени»

Октябрь, 2017 / Международный научный журнал
«Наука через призму времени» №7 2017

Автор: Григорьева Екатерина Романовна, -
Рубрика: Технические науки
Название статьи: Разработка NLB-кластера виртуальных машин на одноранговой сети тонких клиентов

Статья просмотрена: 944 раз

УДК 004

РАЗРАБОТКА NLB-КЛАСТЕРА ВИРТУАЛЬНЫХ МАШИН НА ОДНОРАНГОВОЙ СЕТИ ТОНКИХ КЛИЕНТОВ

Григорьева Екатерина Романовна
Московский институт психоанализа, г. Вологда

 

Аннотация. В работе описан аппаратно-программный комплекс, предназначенный для построения надежных и масштабируемых локальных сетей для мелкого и среднего бизнеса, бюджетных учреждений и т.п. Аппаратная часть комплекса строится на основе стандартного ПК и стандартных Ethernet-коммутаторов. Программная часть состоит из базовой ОС, модуля гипервизора, модуля балансировки нагрузки, модуля управления и гостевых ОС. Указанная технология позволяет достичь хороших параметров отказоустойчивости и производительности при незначительных затратах на аппаратную часть.

Ключевые слова: виртуализация, мэйнфрейм, кластер, тонкий клиент, NLB

 

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

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

Мы используем Xen — кроссплатформенный гипервизор гибридного типа, разработанный в компьютерной лаборатории Кембриджского университета и распространяемый на условиях лицензии GPL. Основные особенности: поддержка режима паравиртуализации помимо аппаратной виртуализации, минимальность кода самого гипервизора за счёт выноса максимального количества компонентов за пределы гипервизора. Первый публичный релиз Xen выпущен в 2003 году, в настоящее время актуальная версия 4.8.1 от 10.05.17.

Основной концепцией Xen является домен. Доменом называется запущенная копия вирту-альной машины. Если виртуальная машина перезагружается, то её домен завершается (в момент перезагрузки) и появляется новый домен. Более того, даже при миграции содержимое копируется из одного домена в другой домен. Таким образом, за время своей жизни практически все вирту-альные машины оказываются по очереди в разных доменах. Xen оперирует только понятием до-мена, а понятие «виртуальной машины» появляется на уровне администрирования (прикладных программ, управляющих гипервизором). Домены бывают нескольких типов. Самые известные dom0 и domU.

Стандартным режимом работы Xen является паравиртуализация (обычно сокращается до PV). Этот метод является эффективным и легким методом виртуализации, изначально введеным Xen Project, а затем адаптированным для других платформ виртуализации. PV не требует расши-рений виртуализации от центрального процессора хоста, тем не менее, паравиртуализированным гостям требуется поддержка PV ядром и драйверы PV, так что гости знают о наличии гипервизора и могут работать эффективно без эмуляции или виртуально эмулируемого оборудования. Ядра с поддержкой PV существуют для Linux, NetBSD, FreeBSD, Open Solaris и др.

Являясь гибридным гипервизором типа 1, Xen запускается непосредственно на аппаратной платформе, но для своей работы требует управляющей операционной системы в dom0. Xen поддерживает процессоры, начиная от Pentium II, имеются версии для архитектур EM64T, PowerPC, Itanium (до версии 4.4) и ARM (стабильна с версии 4.4). Загрузка Xen осуществляется начальным загрузчиком типа GRUB или подобным.

Операционные системы семейства Microsoft Windows могут быть запущены в режиме полной виртуализации HVM начиная с Xen 3 на процессорах с поддержкой аппаратной виртуализации. В этом случае виртуальные устройства (диски, сеть) эмулируются с помощью специальной версии QEMU. Для ускорения работы Windows могут применяться так называемые паравиртуальные драйверы. В отличие от Linux в паравиртуальном режиме, ядро системы Windows не подвергается изменениям и работает в режиме аппаратной виртуализации, однако драйверы устройств обращаются напрямую к Xen (через HyperCalls), минуя слой эмуляции QEMU. Существует разработка GPL'ed. Paravirtualisation drivers for Windows, а продукты Citrix XenServer и Oracle VM содержат в своем составе подписанные паравиртуальные драйверы Windows.

Среди кластерных технологий нас интересует две: HA-кластеры, создаются для обеспечения высокой доступности сервиса за счет избыточного числа узлов, входящих в кластер и кластеры распределения нагрузки (Network Load Balancing, NLB). Принцип их действия строится на распределении запросов через один или не-сколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы.

Таким образом, мы имеем предварительные модели наиболее распространенных сетевых архитектур, представленные на рис. 1.

 

 

Рисунок 1    Сетевая инфраструктура от наиболее распространенной к менее распространенной: 1 – классический клиент-сервер (стандартная серверная стойка, ПО – WinServer), 2 – ЦОД/кластер (стандартные серверные стойки, ПО – NLB/HA-кластер), 3 – мэйнфрейм (IBMZ/Series, z/VM+z/OS).

 

В результате проведенного исследования были выявлены достоинства и недостатки указанных решений:

          Традиционная архитектура «клиент-сервер» сложна в развертывании и поддержке (т.к. требует практически индивидуального подхода к организации сети в каждом случае); ограниченно масштабируема; имеет ограниченное быстродействие; недостаточно без-опасна.

          NLB/HA-кластер требует значительных финансовых вложений и/или знаний; отсутствие единого стандарта заставляет строить систему «под себя» с нуля или приобретать готовые решения за большие деньги. 

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

Наша архитектура в первом приближении имеет вид, представленный на рис. 2.

 

Рисунок 2  Аппаратная и программная часть предлагаемого комплекса ВК.

 

Принцип работы альфа-версии ВК таков:

1.         На рабочую станцию  установлен гипервизор Xen или KVM, в нем подняты ВМ с требуе-мым программным обеспечением по числу терминалов. ОС - модифицированный Debian.

2.         С помощью Open Mosix ВМ соединены в управляемый кластер с балансировкой нагрузки (для резервирования возможно использование Ganeti или средств самих гипервизоров, например, Remus и Kemari в Xen).

3.         В обычной архитектуре все ВМ развернуты на сервере подобно облаку. Это требует большой мощности.

4.         Мы используем другой путь – ВМ, посредством PXE загружаются на соответствующие ПК, превращенные в бездисковые терминалы и выполняются с использованием их ОЗУ и процессора.

5.         При этом Open Mosix динамически балансирует нагрузку. При отключении управляющей машины ее функции принимает на себя ближайшая свободная.

Использование операционных систем в неизменном виде возможно при использовании процессоров с поддержкой виртуализации:

1.         VT™ (Virtualization Technology) отIntel.В Intel VT реализована виртуализация режима ре-альной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуали-зация ввода-вывода — VT-d(кодовое название — Vanderpool). Часто обозначается аббре-виатурой VMX (Virtual Machine eXtension).

2.         SVM или AMD-V™ (Pacifica) от AMD. AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем IntelVT. Поддержка AMD-V появилась в Xen 3.3.

Указанные архитектурные расширения доступны в перечисленных ниже процессорах. Поддержка виртуализации на аппаратном уровне обеспечивается во всех процессорах серии AMD-V (SVM). Процессоры для рабочих станций должны работать с сокетом AM2 с поддержкой DDR2, иметь степпинг K8 Rev. F2 и выше (F3,G1,G2,Tri- и Quadcores) и при этом не быть Sempron'ом процессорах для ноутбуков поддержка виртуализации есть в моделях Turion 64 X2 и TurionUltra.Кроме того, поддержка виртуализации есть в AMD Opteron c DDR2 (серии 1000, 2000 и 8000).Процессоры на Socket939 и Socket940 не поддерживают технологию SVM.

Если у Вас в системе установлен Linux, Вы можете проверить, поддерживает ли Ваш процессор архитектурные расширения следующим образом:

%# cat /proc/cpuinfo | egrep 'flags.*(svm|vmx)'

Должен быть не пустой результат. Проверку можно выполнять только, когда ядро работает непосредственно на железе, потому что гипервизор скрывает флаги процессора, и Вы ничего не узнаете, если запустите команду из домена Xen (даже домена 0).Пример для процессора Intel поддерживающего HVM:

%# cat /proc/cpuinfo | grep flags

flags           :fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmovpat pse36 clflush

dtsacpi mmx fxsrsse sse2 ssht tm pbenx lm constant_tscpni monitor ds_cpl

vmxsmxest tm2 ssse3 cx16 xtprlahf_lm

flags           : fpuvme de psetscmsrpaemce cx8 apicsepmtrrpgemcacmov pat pse36 clflush

dtsacpi mmx fxsrsse sse2 ssht tm pbenx lm constant_tscpni monitor ds_cpl

vmxsmxest tm2 ssse3 cx16 xtprlahf_lm

Нам также потребуется поддержка технологии VT-d. Существует три основных способа обеспечения ввода/вывода (и, фактически, доступа к оборудованию) для гостевой операционной системы, работающей внутри домена Xen:

          Эмуляция устройств со стороны домена 0 и использование традиционных драйверов в гостевой системе;

          Монопольное выделение устройств гостевой системе;

          Использование паравиртуальных драйверов.

Включим поддержку VT-d в Xen

cd xen-unstable.hg

make install

make linux-2.6-xen-config CONFIGMODE=menuconfig

изменить XEN->"PCI-device backend driver" с "M" на "*".

make linux-2.6-xen-build

make linux-2.6-xen-install

depmod 2.6.18.8-xen

mkinitrd -v -f --with=ahci --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18-xen.img 2.6.18.8-xen

cp initrd-2.6.18-xen.img /boot

lspci - выбрать идентификаторы устройств, которые вы хотите назначить гостевым системам

скрыть PCI-устройства от домена 0 (dom0) с помощью такой записи в GRUB:

title Xen-Fedora Core (2.6.18-xen)

root (hd0,0)

kernel /boot/xen.gz com1=115200,8n1 console=com1 vtd=1

 module /boot/vmlinuz-2.6.18.8-xen root=LABEL=/ ro console=tty0 console=ttyS0,115200,8n1 pciback.hide=(01:00.0)(03:00.0) pciback.verbose_request=1 apic=debug

module /boot/initrd-2.6.18-xen.img

Перезагрузим операционную систему и добавим строку "pci" в файл /etc/xen/hvm.conf

pci = [ '01:00.0', '03:00.0' ]

запустим гостевой HVM-домен и с помощью команды lspci посмотрим, пробрасывается ли устройство. Если это сетевое устройство, можно попробовать поработать с ним, например, с по-мощью ifconfig. Если мы хотим чтобы проброс PCI-устройств внутрь PV-доменов также выпол-нялся с помощью VT-d, то нужно указать параметр  iommu=pv в числе аргументов командной строки Xen при его загрузке.

Другие возможные значения параметра iommu (из файла xen/drivers/passthrough/iommu.c):

/*                                                                                                      

 * The 'iommu' parameter enables the IOMMU.  Optional comma separated                                   

 * value may contain:                                                                                   

 *                                                                                                       

 *   off|no|false|disable       Disable IOMMU (default)                                                 

 *   pv                         Enable IOMMU for PV domains                                              

 *   no-pv                      Disable IOMMU for PV domains (default)                                  

 *   force|required             Don't boot unless IOMMU is enabled                                      

 *   passthrough                Enable VT-d DMA passthrough (no DMA                                

 *                              translation for Dom0)                                                   

 *   no-snoop                   Disable VT-d Snoop Control                                               

 *   no-qinval                  Disable VT-d Queued Invalidation                                        

 *   no-intremap                Disable VT-d Interrupt Remapping                                        

*/

Сейчас Xen не поддерживает MSI, поэтому для тех гостевых систем, которые по умолча-нию используют MSI, нужно добавить опцию ядра  pci=nomsi в загрузчик GRUB. Проверенные нами комбинации:

64-битный хост: 32/PAE/64 Linux/XP/Win2003/Vista guests

PAEхост: 32/PAELinux/XP/Win2003/Vistaguests

Аппаратные системы с поддержкой VT-d

Исследованные материнские платы, в которых точно есть поддержка VT-d (список не полный):

1.         DQ35MP

2.         DQ35JO

3.         Intel S3210SHLC после прошивки BIOSдо версии S3200X38.86B.00.00.0043, 13.06.08.

Исследованные системы, в которых точно есть поддержка VT-d (список не полный):

1.         Dell Optiplex 755

2.         HP Compaq DC7800

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

 

Список литературы:

  1. «Xen and the Art of Virtualization» by Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauery, Ian Pratt, Andrew Warfield, University of Cambridge Computer Laboratory, SOSP 2003
  2. Э. Танненбаум. Современные операционные системы. 3-е изд.// Спб.: Питер, 2010. – 1120 с.
  3. В.Е. Карпов, К.А. Коньков. Основы операционных систем. Курс лекций. Учебное пособие. 2-е изд.// М.: ИНТУИТ.РУ, 2011. – 536 с.
  4. VMWare, Inc. «Software and Hardware Techniques for x86 Virtualization», 2009
  5. Нил Макалистер. Виртуализация серверов // InfoWorld, 2007
  6. Advanced Micro Devices, Inc. «AMD-VTM Nested Paging», July, 2008
  7. Intel®, «Intel® 64 and IA-32 Architectures Software Developer’s Manual»
  8. «Virtualize Your IT Infrastructure». VMWare. 2011.
  9. М. Тим Джонс, «Виртуальный Linux. Обзор методов виртуализации, архитектур и реали-заций», 2007
  10. Митч Таллок - Решения Майкрософт для виртуализации: от настольного компьютера до центра обработки данных(Understanding Microsoft Virtualization Solutions from the Desktop to the Datacentre). Корпорация Майкрософт, 2011
  11. Дмитрий Тихович - Технологии виртуализации VMware: динамическая ИТ-инфраструктура уже сегодня. VMware Россия и СНГ 01-2008


Комментарии:

Фамилия Имя Отчество:
Комментарий: