Отказоустойчивость - это способ обеспечения бесперебойной работы системы и минимизации или предотвращения потери данных в случае компьютерного сбоя. ArcGIS Server, аналогично другим компонентам ArcGIS Enterprise, можно развернуть в конфигурации высокой доступности с балансировщиком сетевой нагрузки стороннего разработчика.
Данная конфигурация – вариант развертывания с одним сервером высокой доступности (active-passive), при котором балансировка нагрузки всегда настроена на распределение по всем сайтам. В данной конфигурации нет ожидающих сайтов.
Для такой архитектуры за сторонним балансировщиком нагрузки настроены два и более сайта ArcGIS Server для увеличения вместимости вашего развертывания ArcGIS Server. Вы можете воспользоваться этой техникой для установки ограничений, описанных в способах развертывания развертывание на одном компьютере и развертывание на одном компьютере с обратным прокси-сервером или для масштабирования – добавления дополнительных компьютеров.
Хотя вы можете использовать масштабирование и добиться высокой доступности с помощью сайтов с несколькими машинами, есть ряд преимуществ и ограничений развертываний active-active, которые обсуждаются ниже.
Архитектура active-active клонирует сайт с одним компьютером и размещает его независимые экземпляры за балансировщиком нагрузки. Технически эта конфигурация не может быть описана как сайт с несколькими машинами, поскольку каждый из сайтов независим от другого, состоит из одного компьютера ArcGIS Server и имеет собственные локальные хранилища конфигурации и директории сервера.
Развертывания сайта ArcGIS Server с несколькими компьютерами намного упрощают администрирование сервера. Однако архитектура active-active может использоваться в сценариях, где количество и параметры сервисов уже настроены и остаются неизменными. В этих случаях, такая конфигурация может существенно увеличить производительность, по сравнению с сайтами с несколькими компьютерами, особенно для сервисов с кэшированными картами.
Эта архитектура позволяют легко заменять устаревшие и неисправные машины, применять обновления, добавлять и удалять компьютеры сайта по мере необходимости, не прерывая сервисы или обработку запросов. Однако, с архитектурой active-active вам необходимо поддерживать синхронизацию сайтов. Это добавляет задачи администрирования, которые могут сделать этот шаблон развертывания непрактичным для случаев, когда у вас много компьютеров или сервисов / листов кэша, которые часто изменяются. Вы и ваши IT-сотрудники должны хорошо понимать работу сторонних балансировщиков нагрузки.
Компьютеры ArcGIS Server, директории сервера и хранилище конфигураций
На каждом компьютере ArcGIS Server должно быть собственное локальное хранилище конфигураций, кэш, задания и системные директории. Это приведет к достижению максимальной производительности и сведет к минимуму взаимозависимости. С другой стороны, выходная директория (или директории) должна быть доступна с каждого сайта. Более подробно см. в разделе Другие рекомендации ниже.
Данные
При использовании для ГИС-сервисов файловых источников данных рекомендуем, чтобы они хранились локально на каждом компьютере ArcGIS Server, а не в общей сетевой папке, поскольку это позволит увеличить производительность сервисов. В некоторых случаях, например, при обработке большого числа изображений, обращение к файлам по сети может оказаться единственным правильным вариантом. При использовании общих сетевых ресурсов вам важно выбрать высокопроизводительное запоминающее устройство.
При работе с базами данных вы можете использовать базу данных для каждого сайта: одну для основного сайта и вторую – для резервного. Для поддержки синхронизации баз данных вы можете осуществить репликацию базы данных или, при необходимости, репликацию базы геоданных. Либо использовать высокодоступные техники вашего провайдера базы данных.
Обратный прокси-сервер
В этой конфигурации требуется сторонний балансировщик нагрузки. Как минимум, этот компонент распределяет нагрузку по всем сайтам. Балансировщики нагрузки имеют разные настройки распределения нагрузки, например, круговую и с наименьшим числом подключений. Выбор правильного распределения нагрузки отражается на веб-сервисах, запущенных на сайтах ArcGIS Server и особенностях их использования.
Балансировщики нагрузки обычно используют различные опции обработки ошибок. К примеру, вы можете применить правила в своем балансировщике нагрузки, которые предотвратят пересылку запросов на компьютер, недоступный из-за ошибки сети или аппаратного обеспечения, или недоступности некоторого сервиса ArcGIS Server. При использовании сайтов с одним компьютером, как показано в этой модели, запросы, посылаемые на конкретный компьютер, обрабатываются именно им.
Использование ArcGIS Web Adaptor не является обязательным и обычно требуется, только если вы хотите получить преимущество аутентификации веб-уровня. Вы можете настроить его на том же компьютере, что и ArcGIS Server, либо на отдельном компьютере. В любом случае, при работе с ArcGIS Web Adaptor необходимо настроить отдельный ArcGIS Web Adaptor для каждого сайта в конфигурации active-active.
Обычно, сам балансировщик нагрузки также выполняет роль обратного прокси-сервера. В некоторых случаях у вас уже может быть настроенный обратный прокси-сервер – независимо от загрузчика данных.
Если балансировщиком нагрузки поддерживается функция проверки работоспособности, рекомендуется использовать точку доступа проверки работоспособности ArcGIS Server, чтобы определить, сможет ли сайт получать запросы. Это используется, чтобы быстро определить, нет ли на сайте аппаратного или программного сбоя. Дополнительные сведения см. в разделе Проверка работоспособности в ArcGIS REST API.
Примечания к конфигурациям active-active
При планировании сайта ArcGIS Server с отказоустойчивой конфигурацией active-active необходимо учитывать следующее.
Синхронизация сервисов
В отличие от сайта с несколькими компьютерами, эта настройка требует, чтобы все сайты под балансировщиком нагрузки имели одинаковые ресурсы и модель безопасности. Вы должны убедиться, что все сайты выглядят одинаково.
Есть несколько способов синхронизации сервисов ArcGIS Server через основной и резервные сайты:
- Написание скриптов: ArcGIS Server включает REST API для написания скриптов с административными задачами, такими как публикация сервисов и изменение их настроек безопасности. Вы можете написать собственные скрипты, чтобы внести изменения во все участвующие в развертывании компьютеры ArcGIS Server. Написание скриптов особенно полезно в случае необходимости внесения небольших улучшений, к примеру, изменения безопасности сервиса или его перезаписывание.
Примечание:
Каждый сайт можно создать с помощью скрипта. После того как все сайты будут созданы, создайте резервную копию с одного из сайтов и восстановите резервную копию друг на другом сайте. Это гарантирует использование единого ключа шифрования.
- Визуализация: Создайте шаблон виртуальной машины и используйте его для запуска новых сайтов. Как упоминалось выше, это гарантирует использование единого ключа шифрования. В дополнение, каждый шаблон будет иметь копию данных для ГИС-сервисов (если не используется база данных) и всех опубликованных и настроенных сервисов. Если необходимы изменения, например, добавление или обновление имеющихся сервисов, создайте шаблон для последующего запуска новых виртуальных машин, которые заменят имеющийся пул машин ArcGIS Server под балансировщиком нагрузки. Шаблоны виртуальных машин ArcGIS Server также можно использовать для быстрого восстановления устаревших машин .
Рекомендуемая процедура применения изменений к сайтам:
- Административные изменения будут вначале применены к сайту, находящемуся в режиме ожидания.. Например, вы можете добавить новый сервис и изменить безопасность другого сервиса на сайте, не обрабатывающем запросы. Это обеспечит отсутствие влияния на приложения, использующие ваш основной сайт.
- Настройте вручную свой балансировщик нагрузки для обработки всех запросов резервным сайтом, для которого были выполнены изменения.
- Внесите те же изменения в основной сайт.
- Настройте балансировщик нагрузки так, чтобы запросы направлялись опять на основной сайт и оставьте резервный сайт в режиме ожидания.
Изменения в вашем сайте в описанной выше процедуре можно применить вручную с помощью ArcGIS Server Manager, скриптов и виртуальных образов.
Предоставление доступа к выходной директории
Некоторые сервисные операции ArcGIS Server ссылаются на ресурсы в одной или нескольких выходных директориях. Например, картографические сервисы могут записывать изображения в выходную директорию и ссылаться на данные изображения посредством URL-адреса в ответе на запрос. Для того, чтобы клиенты успешно получили изображение, все сайты в конфигурации active-active должны ссылаться на одну выходную директорию. Это может быть достигнуто путем размещения выходных директории на сетевом ресурсе и предоставлением открытого доступа к ним с сайтов.
Далее приведен список операций сервисов, которые будут использовать выходные директории:
- Создание реплики сервиса объектов (сервис пространственных объектов)
- Загрузка растрового изображения (сервис изображений)
- Экспорт изображения карты (картографический сервис)
- Экспорт схематического представления (функциональные возможности schematics в картографическом сервисе)
- Экспорт веб-карты (сервис геообработки)
Асинхронное выполнение сервисов геообработки
Сервисы геообработки ArcGIS Server поддерживают два режима выполнения: синхронный и асинхронный. Синхронное выполнение следует шаблону запрос-ответ на уровне сети и полностью поддерживается в конфигурации active-active. Асинхронное выполнение следует шаблону запрос-ответ с сохранением состояний и является опцией по умолчанию. Для того, чтобы использовать асинхронное выполнение в конфигурации active-active, вы должны будете рассмотреть следующее:
- При выполнении задания асинхронной обработки вы получаете ID задания, соответствующий задаче и ее выходным данным. Только сайт ArcGIS Server, принимающий исходный запрос, может распознать этот ID. По этой причине, конфигурация active-active требует определения сходства в балансировщике нагрузки (также известного как липкие сессии) для асинхронного выполнения. Это поможет вам обеспечить высокую доступность асинхронной геообработки и выходных данных картографического сервиса. Обращайтесь к поставщику вашего балансировщика нагрузки, чтобы понять последствия включения липких сессий.
- Если ваш сервис геообработки не использует картографические сервисы для отображения выходных данных и не определено выходных данных типа 'Файл', то для сервисов геообработки можно выбрать синхронное выполнение. Не требуется никаких липких сессий в балансировщике нагрузки.
Использование безопасности на уровне токенов
При использовании аутентификации на уровне токенов, которую также называют аутентификацией на уровне сервера, важно, чтобы все сайты конфигурации использовали один и тот же ключ токена. В противном случае токены, созданные для одного компьютера, не подойдут для применения на другом. Для дублирования общих ключей токенов на нескольких сайтах можно отредактировать настройки токенов в Manager.
Способы обновления
Чтобы максимально уменьшить время простоя, обновляйте свои сайты ArcGIS Server последовательно. При обновлении сайта вы можете настроить балансировщик нагрузки, чтобы он не переадресовывал запросы на недоступный сайт и распределял нагрузку между другими независимыми сайтами в вашей архитектуре active-active.
Другой подход - параллельное обновление всех сайтов ArcGIS Server - практичен, если ваша организация может допустить некоторое время простоя и потери данных. Поскольку все сайты архитектуры active-active независимы друг от друга, вы можете обновлять их и одновременно - без всяких проблем с взаимозависимостью.
Интеграция
Поскольку для каждого сайта существуют отдельные хранилища конфигурации, с развертывания active-active ArcGIS Server на одной машине невозможно интегрировать с Portal for ArcGIS. Для интеграции отказоустойчивого сайта сервера с порталом, настройте сайт с несколькими компьютерами.