» ГЛАВНАЯ > К содержанию номера
» Все публикации автора
Журнал научных публикаций
«Наука через призму времени»
Октябрь, 2017 / Международный научный журнал
«Наука через призму времени» №7 2017
Автор: Григорьева Екатерина Романовна, -
Рубрика: Технические науки
Название статьи: Разработка NLB-кластера виртуальных машин на одноранговой сети тонких клиентов
УДК 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
Таким образом, мы рассмотрели
новую концепцию организации вычислительной сети малого предприятия с
использованием виртуализации и кластеризации. Конкретные реализации этой модели
будут рассмотрены в следующих статьях.
Список литературы:
- «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 Э. Танненбаум. Современные операционные системы. 3-е изд.// Спб.: Питер, 2010. – 1120 с. В.Е. Карпов, К.А. Коньков. Основы операционных систем. Курс лекций. Учебное пособие. 2-е изд.// М.: ИНТУИТ.РУ, 2011. – 536 с. VMWare, Inc. «Software and Hardware Techniques for x86 Virtualization», 2009 Нил Макалистер. Виртуализация серверов // InfoWorld, 2007 Advanced Micro Devices, Inc. «AMD-VTM Nested Paging», July, 2008 Intel®, «Intel® 64 and IA-32 Architectures Software Developer’s Manual» «Virtualize Your IT Infrastructure». VMWare. 2011. М. Тим Джонс, «Виртуальный Linux. Обзор методов виртуализации, архитектур и реали-заций», 2007 Митч Таллок - Решения Майкрософт для виртуализации: от настольного компьютера до центра обработки данных(Understanding Microsoft Virtualization Solutions from the Desktop to the Datacentre). Корпорация Майкрософт, 2011 Дмитрий Тихович - Технологии виртуализации VMware: динамическая ИТ-инфраструктура уже сегодня. VMware Россия и СНГ 01-2008
Комментарии: