Дополнительные сведения о балансировке нагрузки службы топологии SharePoint 2010

Дополнительные сведения о балансировке нагрузки службы топологии SharePoint 2010

По существу эта запись является добавлением к великолепной записи, которую Джон (JoshGav) поместил в блоге Beside the Point по адресу http://blogs.msdn.com/b/besidethepoint/archive/2010/12/08/load-balancing-the-sharepoint-2010-topology-service.aspx. Как мудро сформулировал Джон, служба топологии отвечает на запросы по балансировке нагрузки различным конечным точкам приложений-служб; однако, когда вы публикуете приложения службы в других фермах, вам требуется нечто, способное выполнить балансировку нагрузки самой службы топологии. Например, вы, как обычно, подключаетесь к приложению-службе по URL-адресу, который выглядит примерно следующим образом: https://serverNetBiosName:32844/Topology/topology.svc. Проблема заключается в том, что "serverNetBiosName&" постоянно падает, когда ваш прокси не способен получить URL-адрес необходимой конечной точки службы.

Итак, в первую очередь прочтите блог Джона на эту тему! Здесь приведены только некоторые дополнительные замечания о поводу действий, которые я выполнял при настройке. Учитывая вышеизложенное, я воспользовался первым описанным Джоном способом, согласно которому создается новый SSL-сертификат с несколькими альтернативными именами субъекта (SAN) и этот сертификат добавляется на каждый сервер фермы. Мои замечания:

1. Создайте новый SSL-сертификат с поддержкой SAN: это надо сделать на каждом сервере, на котором требуется создать новый сертификат для SSL. Он должен поддерживать три имени: localhost, имя NetBIOS соответствующего сервера и имя балансировки нагрузки, которое требуется использовать. По умолчанию в SharePoint включается localhost и имя NetBIOS, так что нам нужно только добавить имя балансировки нагрузки.

a. Тем из вас, кто проверяет это способ в лабораторных условиях и использует для выпуска сертификатов службы сертификации Active Directory, можно настроить их на поддержку именований SAN. На серверах, на которых работают службы сертификации, выполните из командной строки следующие команды:

certutil –setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

net stop certsvc

net start certsvc

 

После выполнения первой команды вы получите сообщение, указывающее, сработала она или нет.

b. Запустите MMC и добавьте оснастку "Шаблоны сертификатов (Certificate Templates)" (это надо сделать на сервере, на котором выполняются службы сертификации Active Directory). Щелкните узел "Шаблоны сертификатов (Certificate Templates)", чтобы его раскрыть и увидеть все шаблоны. Выполните прокрутку вниз и дважды щелкните шаблон "Веб-сервер (Web Server)" Перейдите на вкладку "Безопасность (Security)"; в группе "Прошедшие проверку (Authenticated Users)" следует установить флажок после надписи "Заявка (Enroll)" в столбце "Разрешить (Allow)" и сохранить изменения. Пока вы этого не сделаете, вы не сможете выполнить инструкции на следующем шаге.

c. Сведения о запросе сертификата, поддерживающего SAN, из службы сертификации AD, см. по адресу: http://technet.microsoft.com/en-us/library/ff625722(WS.10).aspx. Помните, вам надо это сделать на КАЖДОМ сервере фермы, на котором работает служба веб-приложений.

2. Измените SSL-сертификат для каждого веб-приложения служб SharePoint: я использую простой скрипт PowerShell, основанный на скрипте, взятом из записи Джона. Я включил его в ZIP-файл, присоединенный к этой записи. Помните, что вам надо изменить отпечаток сертификата и выполнить его на каждом сервере фермы, на котором работает служба веб-приложений. Чтобы упростить получение отпечатков сертификатов, я написал небольшой инструмент под названием GetThumbprints, который тоже включен в ZIP-файл, присоединенный к этой записи. Он просто просматривает хранилище сертификатов "Локальный компьютер (Local Machine)" в хранилищах "Мое хранилище (My store)" и SharePoint. Если вы хотите воспользоваться этим инструментом, убедитесь, что сертификат, созданный ранее на шаге 1, находится в одном из этих хранилищ.

3. На всех серверах настройте виртуальный IP-адрес для имени балансировки нагрузки: как и для любой службы балансировки нагрузки, потребуется виртуальный IP-адрес, общий для всех компьютеров в пуле. В зависимости от решения балансировки нагрузки вы сможете воспользоваться существующим виртуальным IP-адресом или вам потребуется создать новый. Определите, какой вариант подходит для вашего решения балансировки нагрузки, и, если необходимо, разверните новый виртуальный IP-адрес. В моем случае я уже использовал балансировку сетевой нагрузки, входящую в Windows Server и предназначенную для балансировки запросов к содержимому фермы. Поэтому я использовал тот же самый виртуальный IP-адрес для балансировки службы топологии. В моем случае это означает, что только мои интерфейсные веб-серверы будут получать запросы на публикацию приложений-служб.

4. Настройте систему балансировки нагрузки и службу DNS для имени балансировки нагрузки: если вы используете многосерверную ферму, у вас уже должно быть какое-нибудь решение балансировки нагрузки. Настройте свое имя балансировки нагрузки для службы топологии в своей подсистеме балансировке нагрузки. После того как это было сделано, все, что мне осталось сделать, это создать новую запись псевдонима (A) в службе DNS для моего имени балансировки нагрузки службы топологии; в качестве адреса я использовал тот же самый виртуальный IP-адрес, который применялся для балансировки веб-запросов к ферме.

5. Настройте URL-адрес для службы топологии SharePoint: лучше всего это сделать в два этапа:

a. Сначала получите сведения о службе топологии, выполнив приложение Get-SPTopologyServiceApplication. При этом отображается идентификатор (ID) службы и текущий URL-адрес балансировки нагрузки.

b. Выполните команду Set-SPTopologyServiceApplication -LoadBalancerUrl <имя балансировки нагрузки>; здесь не забудьте выполнить рекомендации, приведенные в статье Джона. PowerShell запросит идентификационные данные службы топологии. Тут можно указать идентификатор (ID), который отображался при выполнении приложения Get-SPTopologyServiceApplication на предыдущем этапе.

6. Опубликуйте свою службу-приложение: здесь я не могу добавить ничего существенного. Самое главное, НЕ ЗАБУДЬТЕ ВЫПОЛНИТЬ ВСЕ ШАГИ, описанные в статье, описывающей распространение приложений-служб на всю ферму, находящейся по адресу: http://technet.microsoft.com/en-us/library/ff621100.aspx. Даже если вы еще раньше публиковали и распространяли приложения-службы между фермами, не забудьте, по крайней мере, предоставить своей удаленной ферме полный доступ в разрешениях опубликованном приложении-службе, иначе вы получите сообщения об ошибке отказа в доступе.

7. Воспользуйтесь опубликованным приложением-службой: здесь нечего добавить, кроме того же предупреждения, что и в предыдущем замечании — не забудьте выполнить все шаги, подробно описанные в статье.

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

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

Это локализованная запись блога. Исходная статья находится по адресу Additional Info on Load Balancing the SharePoint 2010 Topology Service