Достижение высокого уровня доступности и масштабируемости — ARR и Load Balancer оборудования
По Вон Ю
Достижение высокого уровня доступности и масштабируемости.
Маршрутизация запросов приложений (Майкрософт) (ARR) для IIS 7.0 и более поздних версий и Load Balancer оборудования.
Microsoft Corporation | F5 |
---|---|
Автор: Вон Ю | Автор: Райан Корок |
Опубликовано: 13 ноября 2008 г. |
Краткие сведения
В этом документе содержатся инструкции по использованию маршрутизации запросов приложений (ARR) с аппаратной подсистемой балансировки нагрузки для достижения высокого уровня доступности и масштабируемости. В этом документе используется подсистема балансировки нагрузки F5 BIG-IP, чтобы проиллюстрировать рабочие отношения между ARR и аппаратными подсистемами балансировки нагрузки.
Общие сведения
Маршрутизация запросов приложений (Майкрософт) (ARR) для IIS 7.0 и более поздних версий — это модуль маршрутизации на основе прокси-сервера, который пересылает HTTP-запросы на серверы содержимого на основе заголовков HTTP, переменных сервера и алгоритмов балансировки нагрузки. Типичное развертывание ARR показано на схеме ниже.
Хотя ARR обеспечивает высокий уровень доступности и масштабируемости для серверов содержимого, общее развертывание не является высокодоступным или масштабируемым, так как:
- ARR — это единственная точка отказа.
- Масштабируемость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
Чтобы решить эти проблемы, администраторы могут рассмотреть возможность использования нескольких серверов ARR с аппаратными подсистемами балансировки нагрузки, такими как F5 BIG-IP. ARR можно развернуть в активном и пассивном режиме только для достижения высокого уровня доступности или в режиме "активный—активный" для достижения высокого уровня доступности и масштабируемости. В этом техническом документе описывается, как ARR и F5 BIG-IP можно развернуть вместе, чтобы реализовать основные сценарии ARR при достижении общего высокого уровня доступности и масштабируемости.
Использование маршрутизации запросов приложений и F5 BIG-IP
ARR создается как модуль на основе IIS и предназначен для принятия решений о маршрутизации на уровне 7 (приложение). Точнее, ARR использует другой модуль IIS, перезапись URL-адресов, для проверки входящих заголовков HTTP-запросов и переменных сервера для принятия решений о маршрутизации. Учитывая эту структуру, администраторы могут создавать интеллектуальные правила маршрутизации на основе сведений об уровне приложения, таких как:
- Имя узла (HTTP_HOST): маршрутизация трафика на разные серверы содержимого на основе имени узла.
- Запрошенный ресурс (URL-адрес). На основе расширений файлов определите, относятся ли запрошенные ресурсы к статическому содержимому или динамическому содержимому, и перенаправите запросы соответствующим образом.
- Сведения о клиенте (HTTP_USER_AGENT). В зависимости от типа и версии браузера перенаправите запросы на соответствующие серверы содержимого.
- Пользовательские заголовки (устанавливаются приложениями в качестве файла cookie): маршрутизирует трафик на основе сведений о файлах cookie, заданных приложениями, таких как предпочтения пользователя или идентификатор пользователя.
Ниже приведены лишь некоторые примеры. Полный список заголовков HTTP и переменных сервера см. в приложении А.
Функциональные возможности уровня 3 и 4 уровня F5 Big-IP дополняют силу ARR в принятии решений о маршрутизации на основе уровня 7, таких как заголовки HTTP и переменные сервера. В то же время ARR не предоставляет отказоустойчивые функции развертывания для себя и должен полагаться на другие дополнительные технологии и решения для достижения высокого уровня ARR, как показано ниже.
Сценарий 1. Маршрутизация и балансировка нагрузки на основе HTTP
Сценарий маршрутизации и балансировки нагрузки на основе HTTP обеспечивает трехуровневую архитектуру развертывания, которая включает в себя:
- Уровень 1 (Интернет). Обеспечивает двойную обработку статического содержимого, маршрутизацию и балансировку нагрузки оставшихся динамических запросов к серверам уровня 2.
- Уровень 2 (приложение). Обрабатывает динамическое содержимое, использующее бизнес-логику.
- Уровень 3 (данные). Хранит данные.
На следующей схеме показано трехуровневое развертывание.
Хотя в приведенном выше примере показано правило маршрутизации, которое отличает статическое содержимое от динамического, другой распространенный сценарий заключается в отличии запросов на представление от запросов веб-службы.
Вариант 1. Активный/пассивный
В режиме "активный— пассивный" обычно есть два сервера ARR, на которых один сервер обрабатывает запросы, а другой сервер находится в качестве сервера отработки отказа. Как отмечалось выше, хотя эта конфигурация обеспечивает высокий уровень доступности за счет удаления единой точки отказа, она не является решением для горизонтального масштабирования, так как совокупная емкость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
В этой настройке, так как два сервера ARR настроены одинаково, используется общая конфигурация. F5 BIG-IP настроен таким образом, чтобы он перенаправлял все запросы на активный сервер ARR и только запросы на пассивный сервер ARR при необходимости.
За исключением функции сопоставления имен узлов в ARR, нет сведений о состоянии среды выполнения, которые должны быть совместно использоваться двумя серверами ARR. Поэтому для этого сценария не требуется специальная настройка ни на серверах ARR, ни на F5 BIG-IP. Даже если вы используете функцию сопоставления серверов в ARR, сведения о сопоставленном состоянии будут доступны пассивному серверу через файл cookie в заголовке запроса, когда F5 BIG-IP перенаправит запросы на ранее пассивный, но теперь активный сервер.
Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Настройка ARR
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в службах IIS.
Шаг 2. Настройка трехуровневой архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в трехуровневой архитектуре развертывания.
В общих чертах приведенный выше документ описывает:
- Как сделать статическое содержимое доступным на сервере ARR.
- Как написать правила перезаписи URL-адресов для статического содержимого, чтобы оно обслуживалось непосредственно с сервера ARR.
- Как написать правила перезаписи URL-адресов для динамического содержимого, чтобы оно перенаправляться на серверы приложений.
Конфигурация F5 BIG-IP
В этом сценарии вы создадите виртуальный сервер, который распределяет нагрузку с пулом из двух (или более) серверов ARR. Выбор метода балансировки нагрузки должен отправлять весь трафик на основной сервер ARR, пока он не станет недоступным. На этом этапе BIG-IP LTM должен отправить весь трафик на дополнительный сервер ARR.
Шаг 1. Настройка пула серверов ARR.
- В разделе Локальный трафик щелкните Пулы. Затем нажмите кнопку Создать, чтобы создать пул.
- Для пула будет работать любое уникальное имя; В примере используется ARR_Pool.
- Для монитора работоспособности можно использовать пользовательский монитор HTTP или http-монитор по умолчанию.
- Можно оставить для параметра Метод балансировки нагрузки значение Циклический перебор. В этом сценарии, так как существует только активный и пассивный сервер ARR, балансировка нагрузки не используется.
- Не забудьте включить активацию приоритетной группы. Это настраивает BIG-IP для отправки трафика на серверы с наивысшим значением приоритета. Если эти серверы недоступны, BIG-IP отправляет трафик на сервер ARR со следующим наивысшим приоритетом.
- В этом сценарии сервер ARR с 10.0.0.1 имеет значение приоритета 1, а 10.0.0.2 имеет значение приоритета 2. Весь трафик будет отправлен в 10.0.0.2, пока он не выйдет из строя, а затем трафик будет отправлен в 10.0.0.1.
Шаг 2. Настройка пула серверов ARR.
- В разделе Локальный трафик щелкните Виртуальные серверы. Затем нажмите кнопку Создать, чтобы создать виртуальный сервер.
- Для виртуального сервера будет работать любое уникальное имя; в примере используется ARR_VS.
- В поле Назначение можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом примере используется 65.197.145.23. Для порта службы используется "80".
- В разделе Тип виртуального сервера есть несколько вариантов. Так как вы зависите от ARR для маршрутизации, вы можете выбрать производительность HTTP, который предназначен для наилучшей производительности.
- В поле Пул по умолчанию выберите пул, созданный на шаге 1.
- На этом этапе вы сможете подключиться к этому виртуальному серверу, который будет отправлен на соответствующий сервер ARR.
Вариант 2. Активный/активный
В режиме "активный/активный" можно использовать два или более серверов ARR. Эта конфигурация обеспечивает высокий уровень доступности и масштабируемость, в отличие от режима "активный/сквозной", который обеспечивает только высокий уровень доступности. Как отмечалось ранее, так как несколько серверов ARR настроены одинаково, используется общая конфигурация. F5 BIG-IP настроен для балансировки нагрузки входящих запросов ко всем доступным и работоспособным серверам ARR, которые, в свою очередь, перенаправляют запросы на серверы содержимого. Независимо от того, используется ли функция сопоставления серверов на F5 BIG-IP или нет, специальная настройка на серверах ARR не требуется. Например, серверы ARR используют одну общую конфигурацию, чтобы настроить их таким же образом. Во-вторых, поскольку ARR использует файл cookie клиента для хранения сведений о сходстве сервера для собственного использования, эти сведения доступны для каждого запроса и, следовательно, доступны на серверах ARR. Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Конфигурация ARR
Конфигурация ARR для параметра "активный—активный" идентична конфигурации "активный/пассивный". Разница main заключается в настройке F5.
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка трехуровневой архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в трехуровневой архитектуре развертывания.
В общих чертах в приведенном выше документе описано:
- Как сделать статическое содержимое доступным на сервере ARR.
- Как написать правила перезаписи URL-адресов для статического содержимого, чтобы оно обслуживалось непосредственно с сервера ARR.
- Как написать правила переопределения URL-адресов для динамического содержимого, чтобы оно переадресовывало на серверы приложений.
Конфигурация F5 BIG-IP
В этом сценарии все доступные серверы ARR считаются активными и кандидатами для трафика с балансировкой нагрузки. Используйте BIG-IP LTM для определения работоспособности и производительности внешних интерфейсов ARR и перенаправления трафика к наиболее производительным.
Шаг 1. Настройка пула серверов ARR.
- В разделе Локальный трафик щелкните Пулы. Затем нажмите кнопку Создать, чтобы создать пул.
- Для пула будет работать любое уникальное имя; в примерах используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский монитор HTTP или монитор HTTP по умолчанию. — Так как у вас есть несколько серверов ARR, на которые будет распределяться трафик, необходимо выбрать метод балансировки нагрузки, который лучше всего соответствует вашим потребностям. При условии, что все серверы ARR имеют схожие аппаратные характеристики, динамический метод балансировки нагрузки, например самый быстрый, наблюдаемый или прогнозный, обеспечит распределение на основе производительности.
Шаг 2. Настройка виртуального сервера.
- В разделе Локальный трафик щелкните Виртуальные серверы. Затем нажмите кнопку Создать, чтобы создать виртуальный сервер.
- Для виртуального сервера будет работать любое уникальное имя; в примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом примере мы используем 65.197.145.23. Для порта службы мы используем "80". — В разделе Тип виртуального сервера есть несколько вариантов. Так как маршрутизация зависит от ARR, вы можете выбрать производительность HTTP, который предназначен для достижения наилучшей производительности. — В поле Пул по умолчанию выберите пул, созданный на шаге 1.
Сценарий 2. Общее размещение с использованием сопоставления имен узлов
В этом сценарии используется функция сопоставления имен узлов в ARR, чтобы обеспечить развертывание общего размещения для:
- Сократите ручное управление и обслуживание, связанное с традиционным развертыванием общего размещения.
- Увеличьте существующие ресурсы сервера, гарантируя равномерное использование всех ресурсов сервера.
- Простое масштабирование среды.
- Создание бизнес-возможностей для продажи дополнительной емкости.
Дополнительные сведения о общем размещении и ARR см. в этом документе.
На следующей схеме показана общая среда размещения с использованием ARR:
Вариант 1. Активный/пассивный
Как отмечалось ранее, в режиме "активный— пассивный" обычно имеются два сервера ARR, на которых один сервер обрабатывает запросы, а другой сервер является сервером отработки отказа. Хотя эта конфигурация обеспечивает высокий уровень доступности за счет удаления единой точки отказа, она не является решением для горизонтального увеличения масштаба, так как совокупная емкость серверов содержимого ограничена максимальной емкостью одного сервера ARR.
В этой конфигурации используется общая конфигурация, так как два сервера ARR настроены одинаково. F5 BIG-IP настроен для маршрутизации всех запросов к активному серверу ARR и только для пассивного сервера ARR при необходимости.
Функция сопоставления имени узла в ARR сравнит запросы к определенному серверу (или группе серверов в версии-кандидате) на основе имени узла. Сведения о состоянии среды выполнения сопоставленного сопоставления между именами узлов и серверами содержимого хранятся в памяти экземпляра сервера ARR. В выпуске ARR версии 1 ARR использует внешний кэш Майкрософт для IIS для совместного использования и поддержания этого состояния среды выполнения между несколькими серверами ARR. Дополнительные сведения об этом сценарии см. в этом документе.
Этот сценарий полностью поддерживается в выпуске ARR версии 1.
Конфигурация ARR
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка трехуровневой архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в трехуровневой архитектуре развертывания.
В общих чертах в приведенном выше документе описано:
- Как сделать статическое содержимое доступным на сервере ARR.
- Как написать правила перезаписи URL-адресов для статического содержимого, чтобы оно обслуживалось непосредственно с сервера ARR.
- Как написать правила переопределения URL-адресов для динамического содержимого, чтобы оно переадресовывало на серверы приложений.
Шаг 3. Включение и настройка внешнего кэша.
- Выполните действия, описанные в этом документе, чтобы включить и настроить внешний кэш для использования с ARR.
Конфигурация F5 BIG-IP
В этом сценарии вы создадите виртуальный сервер, который распределяет нагрузку с пулом из двух (или более) серверов ARR. При выборе метода балансировки нагрузки весь трафик должен отправляться на основной сервер ARR, пока он не станет недоступным. На этом этапе BIG-IP LTM должен отправить весь трафик на дополнительный сервер ARR.
Шаг 1. Настройка пула серверов ARR.
- В разделе Локальный трафик щелкните Пулы. Затем нажмите кнопку Создать, чтобы создать пул.
- Для пула будет работать любое уникальное имя; В примере используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский монитор HTTP или монитор HTTP по умолчанию. — Можно оставить для параметра Метод балансировки нагрузки значение Циклический перебор. В этом сценарии, так как существует только активный и пассивный сервер ARR, балансировка нагрузки не используется. — Обязательно включите приоритетную групповую активацию. Это позволяет настроить BIG-IP для отправки трафика на серверы с наивысшим значением приоритета. Если эти серверы недоступны, BIG-IP отправляет трафик на сервер ARR со следующим значением наивысшего приоритета. — В этом сценарии сервер ARR с 10.0.0.1 имеет значение приоритета 1, а 10.0.0.2 — значение приоритета 2. Весь трафик будет отправляться на 10.0.0.2, пока он не выйдет из строя, а затем трафик будет отправлен в 10.0.0.1.
Шаг 2. Настройка виртуального сервера.
- В разделе Локальный трафик щелкните Виртуальные серверы. Затем нажмите кнопку Создать, чтобы создать виртуальный сервер.
- Для виртуального сервера будет работать любое уникальное имя; в примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом случае мы используем . Для порта службы мы используем "80". — В разделе Тип виртуального сервера есть несколько вариантов. Так как маршрутизация зависит от ARR, вы можете выбрать производительность HTTP, который предназначен для достижения наилучшей производительности. — В поле Пул по умолчанию выберите пул, созданный на шаге 1.
- На этом этапе вы сможете подключиться к этому виртуальному серверу, который будет отправлен на соответствующий сервер ARR.
Вариант 2. Активный и активный в ARR
В режиме "активный— активный" можно использовать два или более серверов ARR. Эта конфигурация обеспечивает высокий уровень доступности и масштабируемость, в отличие от режима "Активный/pass", который обеспечивает только высокий уровень доступности. Так как несколько серверов ARR настроены одинаково, используется общая конфигурация. F5 BIG-IP настроен для балансировки нагрузки входящих запросов ко всем доступным и работоспособным серверам ARR, который, в свою очередь, перенаправит запросы на серверы содержимого.
Как отмечалось ранее, сведения о состоянии среды выполнения сопоставленного сопоставления между именами узлов и серверами содержимого хранятся в памяти экземпляра сервера ARR. Для совместного использования этих сведений между несколькими серверами ARR используется внешний кэш Майкрософт для IIS. Дополнительные сведения о внешнем кэше см. в этом документе.
Конфигурация ARR
Конфигурация ARR для параметра "активный—активный" идентична конфигурации "активный/пассивный". Разница main заключается в настройке F5.
Шаг 1. Включение общей конфигурации на двух серверах ARR.
- Выполните действия, описанные в этом документе, чтобы настроить общую конфигурацию в IIS.
Шаг 2. Настройка трехуровневой архитектуры развертывания с помощью ARR.
Выполните действия, описанные в этом документе, чтобы настроить ARR в трехуровневой архитектуре развертывания.
В общих чертах в приведенном выше документе описано:
- Как сделать статическое содержимое доступным на сервере ARR.
- Как написать правила перезаписи URL-адресов для статического содержимого, чтобы оно обслуживалось непосредственно с сервера ARR.
- Как написать правила переопределения URL-адресов для динамического содержимого, чтобы оно переадресовывало на серверы приложений.
Шаг 3. Включение и настройка внешнего кэша.
- Выполните действия, описанные в этом документе, чтобы включить и настроить внешний кэш для использования с ARR.
Конфигурация F5 BIG-IP
В этом сценарии все доступные серверы ARR считаются активными и кандидатами для трафика с балансировкой нагрузки. Используйте BIG-IP LTM для определения работоспособности и производительности внешних интерфейсов ARR и перенаправления трафика к наиболее производительным.
Шаг 1. Настройка пула серверов ARR.
- В разделе Локальный трафик щелкните Пулы. Затем нажмите кнопку Создать, чтобы создать пул.
- Для пула будет работать любое уникальное имя; В примере используется ARR_Pool. — Для монитора работоспособности можно использовать пользовательский монитор HTTP или монитор HTTP по умолчанию. — Так как у вас есть несколько серверов ARR, на которые будет распределяться трафик, необходимо выбрать метод балансировки нагрузки, который лучше всего соответствует вашим потребностям. При условии, что все серверы ARR имеют схожие аппаратные характеристики, динамический метод балансировки нагрузки, например самый быстрый, наблюдаемый или прогнозный, обеспечит распределение на основе производительности.
Шаг 2. Настройка виртуального сервера.
- В разделе Локальный трафик щелкните Виртуальные серверы. Затем нажмите кнопку Создать, чтобы создать виртуальный сервер.
- Для виртуального сервера будет работать любое уникальное имя; в примере используется ARR_VS. — Для назначения можно использовать IP-адрес, на который пользователи будут указывать свои браузеры. В этом случае мы используем . Для порта службы мы используем "80". — В разделе Тип виртуального сервера есть несколько вариантов. Так как маршрутизация зависит от ARR, вы можете выбрать производительность HTTP, который предназначен для достижения наилучшей производительности. — В поле Пул по умолчанию выберите пул, созданный на шаге 1.
Итоги
В этом техническом документе были рассмотрены два сценария main ARR для обеспечения высокой доступности и масштабируемости за счет развертывания нескольких серверов ARR и использования F5 BIG-IP.
Приложение
Приложение А. Все доступные заголовки HTTP и переменные сервера для написания правил принятия решений о маршрутизации.
ALL_HTTP | ALL_RAW | APPL_MD_PATH |
---|---|---|
APPL_PHYSICAL_PATH | CERT_COOKIE | CERT_FLAGS |
CERT_ISSUER | CERT_KEYSIZE | CERT_SECRETKEYSIZE |
CERT_SERIALNUMBER | CERT_SERVER_ISSUER | CERT_SERVER_SUBJECT |
CERT_SUBJECT | CONTENT_LENGTH | CONTENT_TYPE |
DOCUMENT_ROOT | GATEWAY_INTERFACE | HTTP_ACCEPT |
HTTP_ACCEPT_ENCODING | HTTP_ACCEPT_LANGUAGE | HTTP_CONNECTION |
HTTP_CONTENT_LENGTH | HTTP_HOST | HTTP_IF_MODIFIED_SINCE |
HTTP_IF_NONE_MATCH | HTTP_REFERER | HTTP_UA_CPU |
HTTP_USER_AGENT | HTTPS | HTTPS_KEYSIZE |
HTTPS_SECRETKEYSIZE | HTTPS_SERVER_ISSUER | HTTPS_SERVER_SUBJECT |
INSTANCE_ID | INSTANCE_META_PATH | LOCAL_ADDR |
PATH_INFO | PATH_TRANSLATED | QUERY_STRING |
REMOTE_ADDR | REMOTE_HOST | REMOTE_PORT |
REMOTE_USER | REQUEST_FILENAME | REQUEST_METHOD |
REQUEST_URI | SCRIPT_FILENAME | SCRIPT_NAME |
SERVER_ADDR | SERVER_NAME | SERVER_PORT |
SERVER_PORT_SECURE | SERVER_PROTOCOL | SERVER_SOFTWARE |
URL-адрес |