Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебные пособия / Усков М.В., Гольдштейн А.Б., Кисляков С.В. Программирование систем управления ИКС (оф. версия).pdf
Скачиваний:
38
Добавлен:
17.02.2022
Размер:
3.51 Mб
Скачать

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

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

5.2. Масштабируемость, отказоустойчивость, балансировка нагрузки

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

Служба балансировки нагрузки сети повышает надежность и масштабируемость серверных приложений Интернета, используемых на web-, прокси- и FTP-серверах, серверах брандмауэра и виртуальной частной сети (VPN) и на других ответственных серверах [54].

На данный момент существует две технологии кластеризации: отказоустойчивые кластеры и балансировка сетевой нагрузки. Отказоустойчивые кластеры служат, в первую очередь, для обеспечения высокой доступности; балансировка сетевой нагрузки обеспечивает масштабируемость и, в то же время, увеличивает доступность служб Интернета.

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

Отказоустойчивые кластеры предназначены для приложений, которые должны длительное время работать в оперативной памяти, или которые содержат часто обновляемые данные большого объема. Эти приложения называются переменными приложениями со сведениями о состоянии и включают в себя приложения для работы с базами данных и для обмена сообщениями. Как правило, отказоустойчивые кластеры используются для файловых серверов, серверов печати, баз данных и обмена сообщениями.

Балансировка сетевой нагрузки предназначена для приложений, которые не должны длительное время работать в оперативной памяти. Они называются неизменными приложениями. Неизменное приложение обрабатывает

61

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

TCP и UDP.

Преимущества отказоустойчивых кластерных систем с балансировкой нагрузки [55]:

надежность и отказоустойчивость,

масштабируемость,

легкая интеграция в существующую IT-инфраструктуру,

работающий кластер выглядит для клиента как один сервер,

использование недорогих серверов стандартной архитектуры,

не требуют специальных приложений,

поддерживается широкий набор дисковых и сетевых подсистем,

хорошее соотношение цена/надежность.

Особенности кластеров с балансировкой нагрузки:

вертикальная и горизонтальная масштабируемость,

равномерное распределение нагрузки,

добавление серверов (масштабируемость) без остановки работы,

сохранение работоспособности при отказе более одного сервера за счет большего количества узлов в системе.

Рис. 32. Общая схема использования reverse proxy при обеспечении отказоустойчивости

62

Для реализации балансировщика нагрузки обычно используется схема

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

сассоциированными с ним серверами и возвращает ответ только от них.

5.3.Мониторинг

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

Втехнической диагностике под мониторингом понимают непрерывный процесс сбора и анализа информации о значении диагностических параметров состояния объекта.

Мониторинг был и остается важнейшей частью системного и сетевого администрирования. К специализированным средствам централизированного управления и мониторинга можно отнести: Cacti, Zabbix, RHQ, Puppet и Cfengine. Чаще всего средства контроля администраторы применяют для мониторинга состояния аппаратного обеспечения, но с ростом числа программных сервисов на первый план выходит необходимость слежения за показателями программных комплексов.

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

Наиболее популярным средством мониторинга является система Zabbix. Она состоит из нескольких частей, и при большой нагрузке и наблюдении за очень большим количеством хостов позволяет разнести эти части на несколько раздельных машин [56].

63

Zabbix состоит:

из собственно сервера мониторинга, который выполняет периодическое получение данных, обработку, анализ и запуск скриптов оповещения;

базы данных (MySQL, PostgreSQL, SQLite или Oracle);

web-интерфейса на PHP;

агента – «демона», который запускается на отслеживаемых объектах

ипредоставляет данные серверу. Агент опционален, мониторинг можно производить не только с помощью него, но и по SNMP (версий 1, 2, 3), запуском внешних скриптов, выдающих данные, и нескольких видов предопределенных встроенных проверок, таких как ping, запрос по http, ssh, ftp и другим протоколам, а так же замеров времени ответа этих сервисов.

Основная логическая единица – Узлы сети (host), сервера, находящиеся под наблюдением. Каждому серверу присваивается описание и адрес (dns или ip, можно оба, причем с возможностью выбирать, что использовать для соединения).

Узлы объеднияются в группы, например web-сервера или сервера баз данных. Группы служат для вывода только определенных серверов при наблюдении.

Каждый узел имеет несколько Элементов данных (items) – параметров, за которыми ведется мониторинг. Для каждого элемента данных можно указать свой период обновления, способ хранения (сам параметр или скорость его изменения), множитель, временной интервал сбора (например только в рабочее время).

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

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

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

64

По данным любого параметра система может построить график изменения за любой промежуток времени с максимальной детализацией. Можно создавать сложные графики, отображающие на одном поле несколько параметров.

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

Другая программная система, служащая аналогичной цели мониторинга состояния сервисов – RHQ.

Открытая система RHQ предназначена для централизованного управления, инвентаризации, мониторинга и конфигурирования программного обеспечения [57]. Распространяется в рамках лицензии GNU GPL. Решение мультиплатформенное. Исходный код данной системы написан на Java. Модульный принцип построения позволяет организовать управление практически любыми параметрами работы операционной системы и приложений. По умолчанию поддерживает большое количество OpenSource приложений – web-серверы Apache и IIS, контейнеры Apache Tomcat, базы данных PostgreSQL, Oracle и MySQL, Postfix, cron, Samba, Cobbler, SSH,

GRUB и др. Одной из составляющих RHQ сегодня является Jopr, используемый для администрирования и мониторинга сервера приложений JBoss. Для решения своих задач используются агенты, устанавливаемые на всех подчиненных серверах. Такой подход упрощает развертывание, так как агенты после установки обнаруживаются автоматически и возможности по управлению и инвентаризации удаленных систем практически не ограничены. Все настройки и собранная информация доступна через web-интер- фейс, базирующийся на фрэймворке SmartGWT и функционирующий с использованием технологии Ajax.

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

Одной из главных функций RHQ является настройка ресурсов при помощи интерфейса. Среди них – конфигурационные файлы PostgreSQL, MySQL, JBOSS, Apache и некоторые другие. Поддержка такой возможности реализована в плагине, поэтому в теории управлять можно любым приложением. При наличии нескольких серверов это более чем удобно.

65

Поддерживается контроль версий и всегда можно просмотреть, кто и что изменил и при необходимости «откатиться» к старым настройкам. Кроме этого часть ресурсов поддерживают так называемые операции, то есть возможность управления его работой, например запуск и остановка сервиса. Их список также определяется плагином, но для разных версий одного и того же приложения доступные операции могут отличаться. Администратор, выбрав в интерфейсе нужный объект, получает список всех доступных для него действий, которое можно выполнить немедленно или по расписанию, указав однократное или многократное повторение. Вне зависимости от времени исполнения, все операции проходят через планировщик, который связываясь с менеджером управления отдает команду агенту на исполнение и контролирует состояние. Результат сохраняется и в последующем может быть использован для анализа.

Еще одной функцией является измерение времени отклика приложения (по умолчанию функция отключена) [58]. После активации RHQ будет собирать данные по каждому web-запросу в результате можно получить полную картину, какие URL обрабатываются быстрее, а какие с задержкой. Собранные данные выводятся, в том числе и в виде наглядной диаграммы. Установленный агент собирает все связанные события, которые затем отправляются на сервер, где могут быть просмотрены и отобраны с помощью фильтров. Собранная в одном месте информация позволяет лучше видеть картину и при необходимости получить данные за любой период. На основе событий, которые проходят через ряд фильтров, корреляцию и прочую обработку строятся оповещения (Alerts). При этом различают связанные события, группировку однотипных событий и необходимость участия администратора в решении одного или нескольких событий. Администратор может самостоятельно задавать условия для активации оповещения, например наличие свободного места на разделе жесткого диска в абсолютном, относительном или процентном значении, с учетом конкретной платформы или группы (название/версия ОС, дистрибутив, архитектура и т. п.). В настоящее время поддерживается уведомление администратора по электронной почте.

Еще одна из полезных функций RHQ – распространение файлов на удаленной системе. Администратор указывает файл или архив который затем распаковывается агентом. Таким образом можно быстро обновить сайт или установить Java-приложение. Поддерживается установка приложений при помощи пакетного менеджера YUM и jar-файлов и т. п. Реализован контроль версий, поэтому если новый релиз работает не так, легко сделать откат к старым настройкам.

В противовес универсальным системам мониторинга, для слежения за состоянием клиент-серверных СУБД часто используются специализированные встроенные средства от производителя.

66

Например, Oracle Enterprise Manager (OEM) [59] – комплекс средств для централизованного управления системами, созданными на основе продуктов Oracle, включая базы данных, серверы приложений, HTTP-серверы, Интернет-приложения и т. д.

OEM включает в себя:

Oracle Management Service (OMS) – управляющий сервер, реали-

зующий всю логику работы OEM. Пользователи работают с OEM через Web browser по протоколу http/https, используя интерфейс, предоставляемый OMS. Управляющий сервер имеет свой репозиторий, где он хранит необходимую для работы информацию обо всех управляемых объектах. Репозиторий хранится в БД Oracle;

Oracle Management Agent (OMA). OMA должен быть установлен и работать на каждом узле, находящемся под управлением OEM. OMA выполняет задания, которые исходят от управляещего сервера. Выполнение этих заданий может происходить в заранее указанные моменты времени или с определенной периодичностью.

ОЕМ – это открытая платформа, позволяющая подключить различные пакеты для управления тем или иным ПО или оборудованием. В стандартную поставку OEM входят следующие пакеты:

Oracle Enterprise Manager Grid Control – средство управления Oracle Grid;

Oracle Enterprise Manager Database Control – облегченная версия

OEM Grid Control, предназначенная для управления только одним экземпляром или одним кластером баз данных Oracle, устанавливается по умолчанию с каждой базой данных Oracle;

Oracle Enterprise Manager Application Server Control – облегчен-

ная версия OEM Grid Control, предназначенная для управления только одним экземпляром или одним кластером серверов приложений Oracle, устанавливается по умолчанию с каждым Oracle Application Server.

Эти пакеты позволяют администратору выполнять основные операции по администрированию БД и сервера приложений Oracle. Они позволяют легко создавать, модифицировать, мониторить и удалять как пользовательские объекты БД (таблицы, индексы, процедуры, триггеры, представления

ит. д.), так и системные объекты (tablespaces, роли, пользователи, сегменты отката, дисковые группы, сервисы и т. д.). OEM упрощает запуск стандартных утилит (импорт, экспорт, загрузка данных и т. д.), упрощает установку и конфигурирование ПО Oracle (RAC, Grid, Standby Database, репликацию, Streams и т. д.)

Кроме того, OEM имеет открытую архитектуру – пользователи могут добавлять в него поддержку новых типов управляемых объектов, используя специальный SDK.

67