Отказоустойчивость серверов клиентского доступа в Exchange 2013 (Client Access Server, CAS)
Начиная с версии Exchange 2010, разработчики предоставили нам очень удобное решение по обеспечению отказоустойчивости и высокой доступности серверов баз данных почтовых ящиков (Mailbox Server).
С отказоустойчивостью серверов клиентского доступа Client Access Server (CAS) в Exchange 2010 все оказалось не так радужно. Приходилось создавать массивы CAS-серверов и NLB-кластеры (на базе Windows-решения или "железное" решение).
К счатью, в Exchange 2013 производитель перешел к абсолютно новому решению клиентского доступа. По сути, сейчас мы имеем "бывший" Outlook Anywhere, который работает как для клиентов снаружи сети, так и для внутренних пользователей. Запросы клиентов к серверу теперь обрабатываются независимо от подключения, т.е. абсолютно неважно, какой именно CAS-сервер отвечает клиенту, т.к. обработка всех запросов выполняется на серверах баз данных, а сервера клиентского доступа только отправляют\принимают данные.
Благодаря такому подходу, теперь не нужно использовать NLB-кластеры. Почтовый клиент самостоятельно определяет, к какому серверу подключаться.
Несмотря на то, что Microsoft рекомендует совмещать все роли на одном сервере, в нашей компании я стремлюсь к такому решению, как к более логичному и понятному для меня. Исходя из такой схемы я и попробую объяснить, каким образом очень просто и удобно реализовать высокую доступность CAS-серверов для Exchange 2013.
Во внутрненней DNS-зоне создаем по две записи owa и autodiscover для каждого CAS-сервера (всего - 4). Время жизни записей в кэше - 5 минут. Получаем DNS Round Robin.
Далее надо настроить сервера, чтобы они отвечали по этим именам. В моей статье Внутренние/внешние URL виртуальных каталогов в Exchange 2010 с помощью Powershell есть список виртуальных каталогов, которые надо настроить. И еще - Outlook Anywhere.
Настройка Outlook Anywhere
Посмотрим на текущее состояние.
[PS] C:\Windows\system32>Get-ClientAccessServer ex-cas16-1 | Get-OutlookAnywhere | select identity,*hostname | fl Identity : EX-CAS16-1\Rpc (Default Web Site) ExternalHostname : InternalHostname : ex-cas16-1.domain.local [PS] C:\Windows\system32>Get-ClientAccessServer ex-cas16-2 | Get-OutlookAnywhere | select identity,*hostname | fl Identity : EX-CAS16-2\Rpc (Default Web Site) ExternalHostname : InternalHostname : ex-cas16-2.domain.local
ExternalHostname - пустой, а InternalHostname указывает на внутреннее имя. Исправим это.
[PS] C:\Windows\system32>Get-ClientAccessServer ex-cas16-1 | Get-OutlookAnywhere | Set-OutlookAnywhere -InternalHostname owa.mail-domain.com -ExternalHostname owa.mail-domain.com -InternalClientsRequireSsl $true -SSLOffloading $false -ExternalClientsRequireSsl $true -ExternalClientAuthenticationMethod Ntlm [PS] C:\Windows\system32>Get-ClientAccessServer ex-cas16-2 | Get-OutlookAnywhere | Set-OutlookAnywhere -InternalHostname owa.mail-domain.com -ExternalHostname owa.mail-domain.com -InternalClientsRequireSsl $true -SSLOffloading $false -ExternalClientsRequireSsl $true -ExternalClientAuthenticationMethod Ntlm
Настройка виртуальных каталогов
$urlpath = "owa.mail-domain.com"; $servername = "ex-cas16-1"; # потом поменяйте имя сервера и еще раз запустите все команды Get-ClientAccessServer -Identity $servername | Set-ClientAccessServer –AutodiscoverServiceInternalUri "$urlpath/autodiscover/autodiscover.xml" Get-WebServicesVirtualDirectory -ADPropertiesOnly -Server $servername | Set-WebServicesVirtualDirectory -InternalUrl "$urlpath/ews/exchange.asmx" -ExternalUrl "$urlpath/ews/exchange.asmx" Get-OabVirtualDirectory -ADPropertiesOnly -Server $servername | Set-OabVirtualDirectory -InternalUrl "$urlpath/oab" -ExternalUrl "$urlpath/oab" Get-OwaVirtualDirectory -ADPropertiesOnly -Server $servername | Set-OwaVirtualDirectory -InternalUrl "$urlpath/owa" -ExternalUrl "$urlpath/owa" Get-EcpVirtualDirectory -ADPropertiesOnly -Server $servername | Set-EcpVirtualDirectory -InternalUrl "$urlpath/ecp" -ExternalUrl "$urlpath/ecp" Get-ActiveSyncVirtualDirectory -ADPropertiesOnly -Server $servername | Set-ActiveSyncVirtualDirectory -InternalUrl "$urlpath/Microsoft-Server-ActiveSync" -ExternalUrl "$urlpath/Microsoft-Server-ActiveSync"
Заключение
После наших действий надо подождать как минимум 15 минут для применения настроек (Outlook Anywhere). После этого можно проверять работу.
Проверка может заключаться в выключении одного из серверов CAS. При этом Outlook обычно переключается на другой сервер в течение 20 секунд, что очень быстро для работы электронной почты.
Использование DNS Round Robin в данном случае также обеспечивает распредение нагрузки между серверами.
exchange (ru), exchange 2013 (ru)
- Просмотров: 9492
Здравствуйте, не обязательно.
Добрый, да, будет. Но я бы все-таки так не делал.