Диплом: Разработка и апробация макетного варианта программно-аппаратного комплекса для обеспечения высокой доступности веб-приложений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
12
RAID 50 массив RAID 0, построенный из массивов RAID 5;
RAID 51 массив RAID 1, построенный из массивов RAID 5;
RAID 60 массив RAID 0, построенный из массивов RAID 6;
RAID 100 массив RAID 0, построенный из массивов RAID 10.
Аппаратный мониторинг играет крайне важную роль при эксплуатации
любого высокотехнологичного устройства, так как эксплуатация в
недопустимом режиме сокращает срок службы и приводит к отказам. Все
современные компьютеры позволяют отслеживать значения температуры в
различных местах системы, скорости вращения вентиляторов, напряжение на
источниках питания. Аппаратная составляющая системы мониторинга
состоит из датчиков, находящихся на материнской плате или подключенных
к выводам микросхем. Программное обеспечение для систем аппаратного
мониторинга обычно поставляется вместе с оборудованием, но еще
существует ряд программ сторонних разработчиков. Проблемы при создании
систем аппаратного мониторинга обычно заключаются в выборе
методологии опроса датчиков и алгоритмов анализа результатов [13].
Вполне возможно, что в обозримом будущем большинство башенных и
стоечных серверов будут заменены блейд-системами. Системы такого типа
состоят из нескольких блейд-серверов, изготовленных в виде компактных
серверных плат, которые установлены в общее шасси. Каждая серверная
плата обеспечена минимально необходимым набором компонентов:
процессоры, память и сетевые адаптеры. Шасси обеспечивает использование
блейд-серверами общих устройств хранения данных, сетевых подключений,
источников питания и систем охлаждения. Блейд-серверы обладают высокой
производительностью и всеми возможностями, которые присущи обычным
стоечным серверам, но при этом обладают большим преимуществом с точки
зрения физических габаритов. В некоторых случаях блейд-системы являются
более гибкими и управляемыми, чем обычные серверы. Замена отказавшего
блейд-сервера осуществляется за несколько минут, в то время как остальные
блейд-серверы и шасси продолжают работать. Критичным компонентом в
13
блейд-системах является само шасси. Если отказывает шасси, то все
установленные в него блейд-серверы простаивают. Однако необходимо
отметить, что шасси это пассивный элемент, повредить который можно
только физически [4, c. 257-258].
1.3 Программные методы повышения доступности веб-приложений
Для повышения надежности информационных систем на программном
уровне создаются специальные методы и средства, которые позволяют
программным путем предупреждать сбои и автоматически производить
действия по восстановлению нормальной работы. В качестве примеров
можно привести [12]:
использование дублирующих объектов, которые могли бы прозрачно
для системы подменить поврежденные;
размещение однотипных функций в разных модулях системы с целью
обеспечения возможности сверки при выявлении ошибок;
повторное выполнение функций для обеспечения информационной
избыточности и обнаружения ошибок;
использование контрольных точек восстановления.
Проблема повышения надежности хранения данных с использованием
программных средств может быть решена при помощи систем резервного
копирования и репликации. Такие системы позволяют восстановить данные в
исходном или новом месте расположения. Резервное копирование можно
разделить на пять видов [4, c. 312]:
полное, в ходе которого создается копия всех данных;
дифференциальное, которое подразумевает, что измененные после
полного резервного копирования данные копируются каждый раз
заново;
инкрементное, при котором осуществляется копирование только тех
данных, которые были изменены с момента последнего полного или
добавочного резервного копирования;
14
синтетическое, когда актуальная полная копия создается из
устаревшей полной и набора инкрементных или дифференциальных
копий;
прогрессивное, при котором осуществляется одноразовое полное
копирование, а затем только инкрементное.
Под репликацией понимается процесс синхронизации данных между
несколькими источниками, то есть изменения, сделанные над одной копией
данных, распространяются и на другие копии [4, c. 314]. Выделяется
синхронная и асинхронная репликация. При синхронной репликации, если
одна из реплик изменяется, то все другие реплики одного и того же
фрагмента данных должны быть обновлены в одной транзакции. Это значит,
что в любой момент времени существует только одна версия данных. В
случае асинхронной репликации обновление одной реплики
распространяется на другие спустя некоторое время. При использовании
асинхронной репликации необходимо иметь в виду, что в процессе
присутствует задержка, в течение которой реплики могут быть
неидентичными.
1.4 Кластеризация серверов
Технология кластеризации серверов уже давно успешно применяется
при создании систем, к которым предъявляются высокие требования по
надежности, производительности и масштабируемости. Эта технология
позволяет проектировать гибкие решения, которые будут удовлетворять всем
перечисленным группам требований.
Кластером называется группа объединенных коммуникационной сетью
компьютеров, которая с точки зрения пользователя представляет собой
единый вычислительный ресурс [10]. Кластеры являются слабо связанными
структурами, и поэтому они могут быть географически распределены.
Существует два основных вида кластеров:
вычислительные кластеры;
отказоустойчивые кластеры.
15
Вычислительные кластеры, прежде всего, рассчитаны на достижение
максимальной производительности при решении вычислительных задач.
Важными показателями для них являются высокая производительность
процессора в операциях над числами с плавающей точкой и низкие задержки
при передаче данных по коммуникационной сети. Вычислительные кластеры
позволяют сократить время выполнения расчетов за счет разбиения исходной
задачи на несколько параллельно выполняемых ветвей и их распределения по
вычислительным узлам. Вычислительные кластеры используются при
решении задач, требующих огромных вычислительных ресурсов. При
достаточно большом количестве вычислительных узлов такие системы
обладают производительностью, сравнимой с производительностью
суперкомпьютера. При решении задач на вычислительном кластере
необходимо специализированное программное обеспечение для реализации
параллельных вычислений [4, c. 77]. Самым распространенным интерфейсом
параллельного программирования является MPI. Его преимуществом
является то, что он хорошо стандартизован и существуют как бесплатные,
так и коммерческие реализации для множества платформ.
В том случае, когда необходимо обеспечить высокую доступность
приложений используют отказоустойчивые кластеры [4, c. 74]. Избыточность
вычислительных узлов гарантирует работоспособность приложений при
отказе части кластера. Минимальное число узлов в конфигурации – два.
Отказоустойчивые кластеры строятся в соответствии с двумя основными
принципами:
холодного резервирования, когда основной узел обрабатывает
запросы, а резервный ожидает отказа и при его обнаружении
включается в работу;
горячего резервирования, когда все узлы обрабатывают запросы и
при отказе одного нагрузка распределяется между оставшимися.
Особый интерес представляют кластеры, построенные на принципе
горячего резервирования, так как они обладают очевидным преимуществом
16
по сравнению с другими видами отказоустойчивых кластеров –
горизонтальной масштабируемостью. Производительность системы
наращивается просто путем добавления одного или нескольких узлов в
кластер. Вертикальное масштабирование осуществляется путем замены
компонентов в вычислительных узлах более производительными и, как
следствие, имеет технический предел, а горизонтальное масштабирование
позволяет практически неограниченно увеличивать количество самих
вычислительных узлов. Но такой подход требует использования
специального программного обеспечения, которое позволит приложениям в
полной мере использовать предоставленную им инфраструктуру.
1.5 Программные продукты для построения кластеров под веб-
приложения
Исследование рынка программных продуктов, предназначенных для
построения высокопроизводительных и высоконадежных кластеров для
обеспечения функционирования веб-приложений, показало, что стоимость
готовых решений очень высока, при этом еще необходимо учитывать затраты
на аппаратную часть. В таблице 1.2 приведен сравнительный обзор
существующих программных продуктов для построения кластеров под веб-
приложения.
Таблица 1.2.
Программные продукты для кластеризации серверов
Параметр сравнения
Microsoft Network
Load Balancing
Oracle Solaris
Cluster
«1С-Битрикс: Веб-
кластер»
Поддержка веб-приложений
Без ограничений
Без ограничений
Только CMS
«1С-Битрикс»
Синхронная репликация
данных
Не
обеспечивается
Обеспечивается
Не
обеспечивается
Возможность
географического
распределения кластера
Не предусмотрена
Предусмотрена
Предусмотрена
Уровень подготовки
обслуживающего персонала
Средний
Высокий
Высокий
17
Автоматическое резервное
копирование данных
Не предусмотрено
Предусмотрено
Предусмотрено
Максимальное число
кластерных узлов
32
8
Не ограничено
Возможность миграции в
облачную инфраструктуру
Не предусмотрена
Не предусмотрена
Предусмотрена
В качестве альтернативы могут использоваться более дешевые
коммерческие продукты от разных производителей, но внедрение такой
системы требует привлечения высококвалифицированных специалистов, что
опять же не может не сказаться на бюджете. Самым экономичным вариантом
является использование свободного программного обеспечения. Такой
подход по-прежнему требует привлечения компетентных специалистов, но
позволяет значительно сэкономить на программном обеспечении.
1.5.1 Microsoft Network Load Balancing
Microsoft Network Load Balancing ‒ это программное средство
балансировки сетевой нагрузки, позволяющее повысить надежность и
масштабируемость сетевых сервисов, в частности веб-приложений,
файловых серверов, прокси-серверов, межсетевых экранов. Данное средство
доступно как опциональный компонент в серверных операционных системах
Windows, начиная с Windows Server 2008 R2 [18].
С помощью Network Load Balancing группа серверов объединяется в
виртуальный кластер, где обеспечивается высокая надежность и
производительность. В одном кластере поддерживается до 32 серверов.
Каждый сервер обслуживает собственную копию приложения, а средство
балансировки распределяет поступающие клиентские запросы между всеми
серверами в кластере. Средство балансировки реализует функцию
управления кластерным IP-адресом, что дает клиентам возможность
обращаться к кластеру по единому IP-адресу и единому доменному имени
соответственно. Нагрузка, которая подается на каждый отдельный сервер,
регулируется. Если общая нагрузка возрастает, то серверы в кластер можно
18
добавить, не прерывая его работы, и удалить, если же нагрузка снижается.
При сбое одного из серверов в кластере, приложение останется
работоспособным, так как Network Load Balancing распределит нагрузку по
рабочим серверам. Когда вышедший из строя сервер будет восстановлен, то
он автоматически присоединится к кластеру и возьмет на себя часть
нагрузки. При необходимости технического обслуживания сервер можно
отключить, и это не скажется на работе кластера в целом [18].
1.5.2 Oracle Solaris Cluster
Oracle Solaris Cluster ‒ комплекс программного обеспечения,
предназначенный для кластеризации серверов с операционной системой
Oracle Solaris. Oracle Solaris Cluster расширяет функциональность Oracle
Solaris, предоставляя функции для обеспечения высокой доступности и
восстановления при сбоях [9].
Oracle Solaris Cluster организовывает совместную работу группы
серверов таким образом, что при отказе части серверов, другая часть
продолжит предоставлять требуемый сервис. Oracle Solaris Cluster
предоставляет два типа сервисов: отказоустойчивый сервис и
масштабируемый сервис. Главное отличие между ними состоит в том, что
масштабируемые сервисы используют горячее резервирование, а
отказоустойчивые ‒ холодное. Oracle Solaris Cluster включает встроенную
поддержку множества приложений: Oracle WebLogic Server, Oracle Siebel
CRM, Oracle Database, Oracle RAC, Oracle E-Business Suite, Sun Java System
Application Server, Samba, NFS Apache, MySQL [9].
Возможность географического распределения доступна в специальной
редакции Solaris Cluster Geographic Edition [9, с. 223]. Две и более системы
Solaris Cluster управляются как единое целое, а серверы, фактически, могут
быть расположены в разных дата-центрах. Обновленные данные
распространяются на удаленные системы практически в реальном времени, и
в случае повреждения основной системы резервная система сможет
незамедлительно начать обрабатывать клиентские запросы.
19
1.5.3 «1С-Битрикс: Веб-кластер»
«1С-Битрикс: Веб-кластер» представляет собой набор программных
средств, предназначенных для обеспечения высокой доступности сайтов на
базе системы управления содержимым «1С-Битрикс: Управление сайтом». С
помощью «1С-Битрикс: Веб-кластер» сайт размещается на нескольких
серверах, между которыми распределяется поступающая нагрузка [17].
Веб-кластер за счет программной организации легко масштабируется
при росте нагрузки, а в случае отказа одного или нескольких из серверов сайт
останется работоспособным. Функционирование кластера поддерживается на
уровне платформы «1С-Битрикс», что освобождает разработчиков сайтов от
необходимости внесения изменений в код проектов при переходе на
кластерную инфраструктуру. Резервные копии снимаются со специально
выделенных серверов, не затрагивая работу сайта. «1С-Битрикс: Веб-
кластер» предусматривает возможность использования общего
распределенного кэша данных и возможность хранения пользовательских
сессий в базе данных. Использование общего кэша обеспечит повышение
производительности, а хранение пользовательских сессий в базе данных ‒
непрерывность сессий между серверами в кластере. Вся кластерная
инфраструктура может быть распределена по нескольким дата-центрам [17].
1.5.4 Свободное программное обеспечение для кластеризации серверов
Свободное кластерное программное обеспечение позволяет достичь
высокого уровня доступности при сравнительно небольших затратах. Оно
организовывает работу группы связанных серверов с Unix-подобной
операционной системой для обеспечения функционирования приложений. В
качестве примеров можно привести:
кластерные системы управления базами данных MySQL Cluster,
MariaDB Galera Cluster, Percona XtraDB Cluster, Postgres-XL;
распределенные файловые системы Ceph, Lustre, GFS, GlusterFS,
OCFS, HDFS;
20
балансировщики нагрузки Linux Virtual Server, HAProxy, BalanceNG,
Pen, Crossroads;
К сожалению готовых решений, которые практически сразу можно
начать использовать, крайне мало, и в большинстве случаев при разработке
кластеров с использованием свободного программного обеспечения
приходится совмещать несколько продуктов. Например, для того чтобы
организовать сетевое отказоустойчивое файловое хранилище, помимо
распределенной файловой системы необходимо позаботится еще о
программном обеспечении, реализующем протокол сетевого доступа, и
средствах контроля работоспособности серверов.
Выводы по главе 1
Для повышения доступности веб-приложений крайне важно
обеспечить высокую производительность и надежность инфраструктурной
платформы. Наиболее эффективным вариантом решения данной проблемы
является кластеризация серверов на программном уровне. При программной
организации кластера возможно варьирование аппаратной части. Это
позволяет достичь оптимальной производительности и надежности
аппаратной платформы за приемлемые финансовые средства. Ввиду того что
коммерческие кластерные решения в подавляющем большинстве крайне
затратны, аналогичная система, разработанная с использованием свободного
программного обеспечения, будет иметь большое преимущество.
21
Глава 2. Разработка требований и обоснование выбора программных
средств реализации
2.1 Разработка требований к программно-аппаратному комплексу для
обеспечения высокой доступности веб-приложений
Изучение современных тенденций показало, что наилучшим средством
повышения доступности критичных веб-приложений является использование
кластера распределения нагрузки. В связи с этим в основу разрабатываемого
программно-аппаратного комплекса было решено положить кластерную
архитектуру с балансировкой нагрузки. Это позволит достигнуть высокой
производительности и надежности функционирования веб-приложений, а так
же обеспечить широкие возможности по масштабированию системы в целом.
Принцип действия системы заключается в том, что один или несколько
входных узлов перенаправляют поступающие клиентские запросы к узлам,
занимающим непосредственно их обработкой. Структурная схема кластера
представлена на рисунке 2.1.
Рисунок 2.1. Структурная схема кластера из трех физических серверов
Такой принцип организации защищает систему от выхода из строя
процессоров, памяти, сетевых адаптеров, дисковых устройств в одном или
нескольких серверах. Масштабирование может быть осуществлено без
приостановления работы системы. Можно производить отключение части
кластера для технического обслуживания, в то же время веб-приложения

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран