УДК 004.052.3

ИССЛЕДОВАНИЕ ВИРТУАЛИЗАЦИИ ДЛЯ ПОСТРОЕНИЯ ОТКАЗОУСТОЙЧИВЫХ КЛАСТЕРОВ

Ланских Евгений Владимирович1, Калашник Валентина Николаевна2, Скрипка Яна Сергеевна3
1Черкасский государственный технологический университет, кандидат технических наук, доцент кафедры компьютерных систем
2Киевский национальный университет технологий и дизайна, студентка кафедры информационно компьютерных технологий и фундаментальных дисциплин
3Киевский национальный университет технологий и дизайна, ассистент кафедры информационно компьютерных технологий и фундаментальных дисциплин

Аннотация
Данная статья посвящена исследованию построения отказоустойчивых кластеров. Рассмотрены существующие пути повышения отказоустойчивости кластеров, исследованы методы обеспечения отказоустойчивости кластерных систем путем использования технологий виртуализации. Приведены результаты сравнения систем VMware и Hyper -V.

Ключевые слова: виртуализация, отказоустойчивость кластера


RESEARCH VIRTUALIZATION TECHNOLOGY FOR BUILD A FAILOVER CLUSTER

Lanskih Evgeniy Vladimirovich1, Kalashnyk Valentina Mykolaivna2, Skrupka Yana Sergeevna3
1Cherkasy State Technological University, Candidate of Technical Sciences,Associate Professor of Computer Systems
2Kiev National University of Technology and Design, student of computer technology and information fundamental disciplines department
3Kiev National University of Technology and Design, Assistant of the Department of Information and Computer Technology fundamental disciplines department

Abstract
This article focuses on the research of building a failover cluster. Existing ways of increasing the resiliency of clusters, the methods provide vidmostiykosti cluster systems by using virtualization technologies. The results of the comparison of VMware and Hyper-V.

Keywords: Hyper-V, Virtual PC, VMware


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Ланских Е.В., Калашник В.Н., Скрипка Я.С. Исследование виртуализации для построения отказоустойчивых кластеров // Современные научные исследования и инновации. 2014. № 4. Ч. 1 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2014/04/32958 (дата обращения: 03.10.2017).

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

Основа надежности кластера – это некоторое избыточное количество отказоустойчивых узлов, в зависимости от конфигурации кластера и его задач.

Кластерная конфигурация узлов, коммуникационного оборудования и памяти может обеспечить отражение данных, резервирование компонентов самоконтроля и предупреждения, а также совместное использование ресурсов для минимизации потерь при отказе отдельных компонентов.

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

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

Распространенных путей повышения отказоустойчивости два. Во-первых – повышение надежности отдельных компонентов системы. Например, жесткие диски SAS, предназначенные для серверов и систем хранения данных имеют гораздо больший срок наработки на отказ, чем SATA – диски, используемые в рабочих станциях. Во-вторых – избыточность. За счет записи информации одновременно на два диска – при отказе одного диска информация считывается с другого, и система продолжает работать. Аналогично могут резервироваться другие компоненты: блоки питания, модули памяти и даже – целые сервера.

Оба метода повышения надежности – ни в коей мере не являются взаимоисключающими, а наоборот – взаимодополняющими. Нельзя использовать для критических задач сервер, построенный на типовой элементной базе, используемой для построения рабочих станций, но это не отменяет необходимости и в резервировании наиболее критических и склонных к отказу компонентов: жестких дисков, блоков питания, вентиляторов и т.д. Понятное дело, что повышение надежности автоматически влечет сильное удорожание системы – как правило – в разы. Поэтому необходимо найти некую «золотую середину», отталкиваясь от суммы убытков, которые может повлечь за собой выход системы из строя. Например, нет смысла собирать домашний компьютер из серверного аппаратного обеспечения и делать массив RAID1 – это будет бессмысленной тратой денег, достаточно бэкапа данных. А вот на самолете стоимостью в 250 миллионов долларов – совсем не помешало бы добавить резервную микросхему стоимостью в 20 долларов. Как уже говорилось, резервироваться могут не только отдельные компоненты, но и целые сервера. Такое резервирование обеспечивает отказоустойчивость кластера. При работе в составе кластера, два (или более) сервера работают как единый «виртуальный сервер», что имеет свой ​​IP-адрес и сетевое имя. Сервера, работающие в кластере, называют «узлами». Сервис, с которым работают пользователи, в определенный момент времени запущен на одном из узлов, который называется «активным узлом». Другой узел играет роль резервного, и называется «пассивным ». Для работы кластера все узлы должны иметь доступ к какому-то общему дисковому ресурсу, который называется «кворум ». На этом ресурсе хранятся файлы конфигурации кластера. В роли «кворума» может выступать любая система хранения данных, поддерживающая интерфейсы iSCSI, SAS, FibreChannel [1]. Все узлы кластера периодически обмениваются особыми пакетами данных, которые называют «heartbeat». Если один из узлов выходит из строя – он перестает отвечать на heartbeat, и автоматически запускается процесс Failover – перезапуск сервиса на работоспособном узле. Это как правило происходит довольно быстро – без времени простоя, или с минимальным временем простоя – до нескольких минут, вместо нескольких часов при стандартном восстановлении сервера.

В настоящее время одной из технологий обеспечения отказоустойчивости кластерных технологий является виртуализация. В широком смысле слова, виртуализация – это программная имитация какой-то физической сущности. Например, раздел жесткого диска, видимый в системе как отдельный диск – это виртуальный диск, аналогично – эмуляция физического привода CD – ROM – программа так и называется – Virtual CD. Здесь же и дальше будет говориться о виртуализации серверов.

Благодаря виртуализации можно более рационально использовать аппаратные ресурсы серверов. Довольно часто IT – инфраструктура включает в себя множество серверов, каждый из которых утилизируется не более, чем на 10-15 %. Логично предположить, что если вместо нескольких серверов взять один сервер, пусть даже и немного более мощный, и разместить на нем несколько виртуальных серверов, можно будет хорошо сэкономить.

Во-первых – экономия на аппаратном обеспечении. Как известно, несколько отдельных серверов стоит заметно, в разы дороже, чем один сервер, но немного более мощный.

Во-вторых – один сервер занимает меньше места, чем несколько. Это будет особенно актуально для размещения на колокейшн [2], где приходится платить за каждый юнит.

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

Одно из главных преимуществ виртуализации – удобство администрирования. Виртуальными машинами намного проще управлять, чем физическими серверами. Например, если виртуальная машина вдруг «зависла» – не обязательно бежать в серверную, чтобы ее перезагрузить, нажав кнопку Reset в консоли. Да и просто, если по какой-то причине машина вдруг стала недоступна, например, по RDP, не важно из-за чего – из-за «зависания» или ошибочной настройки – всегда можно удаленно зайти на ее консоль, и для этого не надо бежать в серверную или покупать дорогой IP KVM. Так же – вечная проблема админов – бэкап. В некоторых случаях, для быстрого восстановления системы нужно делать бэкап всего системного раздела. С виртуальной машиной такой трюк можно проделать значительно проще, быстрее и незаметнее для пользователя: достаточно лишь «бэкапить» файл виртуального диска средствами Volume Shadow Copy. Для восстановления на «голом железе» достаточно будет просто скопировать файлы, и займет это считанные минуты. Полный же бэкап физического сервера занимает больше времени и может привести к состоянию, когда система вообще не работает и необходима перезагрузка.

На ряду с явными преимуществами технология виртуализации имеет также и определенные недостатки. Во-первых, виртуализация по понятным причинам имеет высокие требования к аппаратному обеспечению. Во-вторых – образуется единая точка отказа – физический хост. Если на одном хосте будет запускаться сразу несколько виртуальных машин – то при «падении» хоста – «упадут» и все виртуальные машины, запущенные на нем, а следовательно – и все сервисы, которые они предоставляют – станут недоступны.

Использование отказоустойчивых кластеров при виртуализации позволяет  воспользоваться всеми преимуществами виртуализации, перечисленными ранее, при этом избавившись от главного недостатка – единой точки отказа. Поскольку хост не один, то в случае отказа одного из хостов виртуальная машина может быть просто перезапущена на другом. Запланированные простои – например, при техобслуживании серверов – сводятся к минимуму, а с использованием Live Migration – вообще к нулю. К сожалению, использование failover clustering приводит к значительному удорожанию системы. Во-первых – необходимо покупать целых два сервера вместо одного. Во-вторых – необходимо преобретать систему хранения данных и развертывать SAN (если до этого не было). В-третьих – Windows Server 2008 Std не поддерживает работу в составе кластера. Придется покупать более дорогие версии – Ent. и DC. Здесь, правда, есть нюансы. Во-первых – бесплатный Hyper -V Server, который с версии R2 поддерживает кластеры. Во-вторых – стоимость версий Ent/DC компенсируется правом использования бесплатных гостевых ОС (до 4 на Ent и без ограничений на один сервер для DC).

Собственно говоря, смысл объединения хостов в кластер состоит в возможности перемещения виртуальных машин с одного хоста на другой. Перемещение может быть как незапланированным – в случае отказа узла, это и есть Failover, так и запланированным – если надо по каким-то причинам перенести виртуальную машину на другой узел.

Failover происходит довольно просто: если один из узлов перестает отправлять heartbeat – виртуальная машина автоматически создается на другом узле и запускается на нем. Разумеется, это будет «холодный пуск», с возможной потерей данных , но это все же произойдет быстрее, чем восстановление физического сервера. Иногда же необходимо в штатном режиме перенести одну или несколько виртуальных машин с одного узла на другой. Например, если необходимо провести обслуживание одного из серверов – сам сервер нужно отключить, предварительно перенеся виртуальные машины на другой. Для этого используются штатные способы перемещения. Их три:

  • Move – собственно, само перемещение. При этом происходит вывод виртуальной машины в режим Offline – через шатдаун или save state – по выбору, файлы виртуальной машины переносятся на другой узел, затем виртуальная машина удаляется с одного узла, создается на другом и запускается.
  • Quick Migration – быстрая миграция. При быстрой миграции – виртуальная машина переводится в режим Save State, происходит перенос, виртуальная машина запускается на другом узле.

•  Live Migration позволяет осуществлять перемещение запущенных виртуальных машин прямо «на лету» – незаметно для пользователя. При использовании Live Migration происходит инкрементное копирование содержимого памяти виртуальной машины на другой узел, и затем – перенос конфигурации. Процесс переноса происходит за доли секунды, и даже TCP – соединения не успевают отключиться по таймауту. Пользователи вообще не замечают, что что-то произошло. В настоящее время наиболее употребительным является технология Live Migration.

Для создания виртуальных машин существует целый ряд программнхы продуктов, например, Microsoft Virtual PC и продукция VMWare. Virtual PC – программный пакет виртуализации для операционной системы Windows, а также программа эмуляции для Mac OS.

Для работы самой виртуальной машины требуется виртуальная среда с Windows XP и установленными Integration Components. Это среда свободна для загрузки, также на виртуальную машину можно установить Windows 7 или Windows Vista, а компоненты интеграции всегда можно установить через меню «Сервис», выбрав соответствующую команду. Virtual PC не совместима с Windows 8. В х64 версии Windows 8 заменена на Hyper -V.

VMware, в отличие от Virtual PC, позволяет эмулировать USB – порты и SCSI -устройства. Размер виртуальных жестких дисков ограничивается только объемом вашего настоящего винчестера. И в VMware, и в Virtual PC доступны встроенные средства для дефрагментации виртуальных дисков, что позволяет значительно сократить размер файла – диска. По желанию можно выставить фиксированный размер файла- диска – в этом случае его размер будет равен объему виртуального винчестера.

В VMware для защиты от неавторизованных пакетов необходимо докупать надстройку vShield App. Бесплатно воспользоваться защитой от нежелательных пакетов и атак можно только в Hyper -V.

Microsoft Hyper – V – система аппаратной виртуализации для x64 -систем на основе гипервизора. Возможности, предоставляемые Hyper – V, в различных версиях несколько отличаются. Так, Hyper – V Server 2008, по сути, является сильно облегченной версией Win2k8 Standard, в которой удалено практически все, что не касается виртуализации. Оставлены только средства управления гипервизором. Предназначен этот вариант только для “чистой виртуализации”, но зато требует на порядок меньше ресурсов, чем тот же Server Core. Он поддерживает (как и Standard) до 4 физических процессоров и до 32 Гб ОЗУ. Возможен запуск до 128 VM, недоступен локальный графический интерфейс управления и отсутствует поддержка кластеров, – что не позволяет создавать на нем отказоустойчивые решения и реализовать возможность быстрой миграции. Еще одним отличием версий стало количество VM, которые можно запускать без дополнительного лицензирования. В лицензию Standard “включена” одна бесплатная VM, в Enterprise – 4, количество VM в Datacenter – не ограничено.

Основной минус новой технологии – достаточно высокие требования к процессорам. Поддержка 32-разрядных систем отсутствует. Возможна работа только на 64-разрядных процессорах, поддерживающих технологии Intel VT или AMD-V (прежнее название Pacifica). В BIOS должен быть активизирован механизм защиты исполняемого кода (Intel XD или AMD NX). Сравнение основных характеристик Hyper-V и VMware представлено в таблице 1.

Таблица 1 – Сравнительная характеристика VMware и Hyper-V

Характеристика

VMware vSphere 4

Microsoft WS08R2 Hyper-V R2/SMSD

Управление физическими и виртуальными серверами

недоступно

доступно(SMSD)

Управление ПО VMware, Microsoft

недоступно

доступно(SMSD)

Мониторинг внутри гостевых ОС

недоступно

доступно(SMSD, SCOM)

Комплексный мониторинг работы ОС

недоступно

доступно(SMSD, SCOM)

Мониторинг работы приложений и служб

недоступно

доступно(SMSD, SCOM)

Оптимизация распределения ресурсов на уровне узлов и виртуальных машин

доступно (DRS)

доступно(SMSD, SCOM)

Централизованное управление гипервизорами

доступно (vCenter Server)

доступно(SMSD, VMM)

Установка обновлений и управления гостевыми ОС

доступно (Update Maneger)

доступно(SMSD, SCOM)

Высокая доступность и отказоустойчивость виртуальных машин

доступно (vCenter Server)

доступно (кластеры WS08R2+ VMM)

Перенесение виртуальных машин

доступно (vMotion)

доступно (Live Migration)

Перенесение хранилища виртуальных машин

доступно (Storage vMotion)

доступно (QSM)

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

1) Встроенный бэкап – данный механизм бесплатно доступен только в Hyper – V, в VMware – только начиная с Essentials Plus.

2) Репликация ВМ – решение для катастрофоустойчивости сценария, когда необходимо иметь возможность поднять актуальные экземпляры ВМ в другом дата- центре. В VMware для реализации этого решения есть отдельный продукт – Site Recovery Manager (SRM ) – а он стоит денег. В Hyper – V 3.0 – бесплатно.

3) Мониторинг гостевых приложений – механизм, который следит за состоянием программы или службы внутри ВМ и на основе этих данных может сделать любые действия с ВМ, например, перезапустить ее в случае необходимости. Встроенный функционал для снятия параметров и принятия действий у Hyper-V, в VMware является API – но нет самого решения для работы с данной функцией.

4) Правила распределения ВМ – механизм, который позволяет распределять ВМ на кластере так, чтобы они либо никогда не встречались на одном хосте, или наоборот – никогда не разъезжались между собой. VMware это умеет во всех платных редакциях, где доступно HA , а Hyper-V как всегда – бесплатно.

Подводя итоги, можно сказать, что для обеспечения отказоустойчивости кластеров целесообразным является использование технологий виртуализации. Для организации виртуализации наиболее эффективными продуктами являются VMware и Hyper -V. При использовании в системе ОС Linux – более целесообразно использовать VMware, а для систем на базе ОС фирмы Microsoft – Hyper -V.


Библиографический список
  1. Fibre Channel. http://www.xserver.ru/computer/nets/razn/69/
  2. Колокейшн. http://www.ru/art/01/01/0001.html
  3. Технология виртуализации. http://www.vmware.com/ru/virtualization
  4. Наталия Елманова, Сергей Пахомов. Виртуальные машины 2007. КомпьютерПресс 9’2007
  5. Виртуализация и управление серверной инфраструктурой – 31с. – 2009.
  6. Hyper –V. http://www.hyper-v.ru
  7. Morimoto Rand Windows Server 2008 Hyper-V Unleashed. — ISBN ISBN 0-672-33028-8


Все статьи автора «Валя Калашник»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: