Установка Microsoft SQL Server Reporting Services на NLB-кластер

Для обеспечения дополнительной надёжности и повышения производительности сервера отчётов, можно развернуть службы сервера отчётов на кластере балансировки нагрузки (NLB-кластере). Большим плюсом такого решения будет единый адрес для конфигурирования службы отчётов, развёрнутого в связке кластера сервера-приложений и SQL-кластера. Это позволяет гибко переключать сервер отчётов на другие базы не перенастраивая клиентские приложения на новый адрес SSRS. Более подробно об этом можно прочитать в статьях, ссылки на которые приведены в конце заметки.

Standard Scale-Out Server Deployment

Приступим к настройке SSRS на NLB-кластере. Процедура эта простая, но имеет ряд тонкостей. Предполагается, что NLB-кластер уже развёрнут и настроен (например, для сервера приложений CRM).

  1. Итак, сначала устанавливаем сервер отчётов на каждой из нод кластера. Минимальная установка потребует всего двух компонентов: SQL Server Database Engine и Reporting Services. Во время установки важно отметить опцию "Install but do not configure server" (установить, но не настраивать сервер), т.к. необходимые настройки будут произведены позже.
  2. Запускаем Диспетчер конфигурации служб Reporting Services (Reporting Services Configuration Manager) и настраиваем с его помощью сервер отчётов (подключаемся к базе данных SSRS, задаём URL-адреса доступа, импортируем ключи шифрования настроек). Одним из важных моментов на этом шаге - прописать специально созданную учётную запись под которой будет запускаться служба отчётов.
    Настройка учётной записи службы SSRS
  3. Под учётной записью пользователя с ролью доменного администратора регистрируем идентификаторы SPN, для чего в консоли выполняем следующие команды (для кластера из 2-ух серверов):
    setspn -S http/node1[:port] domain\clusteraccount
    setspn -S http/node2[:port] domain\clusteraccount
    setspn -S http/node1.domain.ru[:port] domain\clusteraccount
    setspn -S http/node2.domain.ru[:port] domain\clusteraccount
    setspn -S http/nlb[:port] domain\clusteraccount
    setspn -S http/nlb.domain.ru[:port] domain\clusteraccount
    

    где

    • nlb - виртуальное имя кластера,
    • node1/node2 - названия физических машин кластера,
    • node1.FQDN - полный адрес сервера, включая наименование домена (Fully Qualified Domain Name, например, node1.domain.ru),
    • domain\clusteraccount - учётная запись под которой будет запущены службы SSRS (должна быть помечена как Trusted for Kerberos delegation в AD).
  4. Конфигурируем проверку состояния (view state validation) на каждом из серверов. Создайте ключ проверки и ключ дешифрования представления. Добавьте раздел с ключами в секцию <system.web> файла Web.config менеджера службы отчётов (обычно тут: \Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Web.config):

    <!-- Это пример с невалидными ключами, не используйте его в своих настройках! -->
    <machineKey validationKey="21F090935F..." decryptionKey="ABAA84D7EC..." validation="SHA1" decryption="AES"/>
    

    Данный шаг необходим для обеспечения обработки запросов разными SSRS-серверами: наличие одинакового ключа позволяет дешифровать состояние представления отчёта (view state) различными серверами отчётов, независимо от того, какой сервер из кластера зашифровал состояние.

    Подробно об этом шаге.

  5. Настраиваем Hostname и UrlRoot на использование виртуального адреса NLB-кластера. Для этого в конфигурационном файле RSReportServer.config (обычно тут: \Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config) указываем значения параметров Hostname и UrlRoot:
    	<Service>
    		<Hostname>nlb</Hostname>
    		...
    		<UrlRoot>http://nlb[:port]/ReportServer</UrlRoot>
    		...
    	</Service>
    
  6. Проверям работу сервера отчётов на кластере балансировки нагрузки. Для этого обращаемся к менеджеру отчётов по виртуальному адресу кластера: http://NLB-server[:port]/ReportServer или http://NLB-server[:port]/Reports

 

Ссылки:

Русский
field_vote: 
2.882355
Average: 2.9 (34 votes)

Добавить комментарий