Exchange 2010 vs 2013. Part 4. Offline Address Book (OAB)

OABВсем привет!

В этот раз мы посмотрим как в Exchange 2013 изменился принцип работы OAB, как управлять распространением OAB и какие могут быть при этом ошибки.



 

Список всех статей цикла: Exchange 2010 vs Exchange 2013

 

В Exchange 2013 архитектура серверных ролей была изменена таким образом, что из 5 ролей осталось всего только 2: CAS и Mailbox. Причем роль CAS теперь выполняет в основном только проксирующие действия. Оглядываясь на это изменение, а так же, что более важно, на тот факт, что в Exchange 2010 генерацию Offline Address Book выполнял всего 1 сервер, что никак не укладывалось в понятие отказоустойчивости, сам процесс создания и распространения автономной адресной книги был изменен.

В Exchange 2013 вывод информации по автономной адресной книге выглядит вот так – параметр Server пустой:

Get-OfflineAddressBook | fl Name, Server

Name   : Default Offline Address Book
Server :

Схема генерации OAB была изменена следующим способом. Чтобы увеличить отказоустойчивость, все сгенерированные файлы автономной адресной книги теперь размещаются сначала в служебном почтовом ящике и только потом копируются в папку %ExchangeInstallPath%\ClientAccess\OAB. В Exchange 2010 эти файлы сразу размещались в папку %ExchangeInstallPath%\ExchangeOAB, из которой впоследствии CAS их и забирал.

Изменения в процессе генерации:

  • процесс генерации OABGenerationAssistant теперь выполняется с учетом текущей загрузки сервера (throttled process)
  • процесс генерации OAB теперь выполняется службой Microsoft Exchange Mailbox Assistants. В Exchange 2010 эту задачу выполняла служба Microsoft Exchange System Attendant.
  • За период генерации теперь отвечают параметры: OABGeneratorWorkCycle – временной период, в интервале которого будет запускаться задание на генерацию OAB;
    OABGeneratorWorkCycleCheckpoint – временной период, через который нужно запускать генерацию OAB в заданном периоде OABGeneratorWorkCycle. Т.е. если нужно, чтобы генерация OAB запускалась каждые 4 дня в течение дня, то необходимо установить OABGeneratorWorkCycle равным 01.00:00:00 (1 день), а OABGeneratorWorkCycleCheckpoint равным 04:00:00 (4 часа)

 

Процесс генерации OAB

Как я уже писал, прежде чем файлы OAB попадают в папку ExchangeOAB, они размещаются в арбитражном почтовом ящике SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}. Найти этот ящик можно так:

Get-Mailbox -Arbitration | {_.PersistedCapabilities –Like "*OabGen*"} | fl Name, Database, PersistedCapabilities


Name : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
Database : MDB01
PersistedCapabilities : {OrganizationCapabilityMessageTracking, OrganizationCapabilityUMGrammarReady,
		    OrganizationCapabilityMailRouting, OrganizationCapabilityClientExtensions,
		    OrganizationCapabilityGMGen, OrganizationCapabilityOABGen,
		    OrganizationCapabilityUMGrammar}

В чем преимущество размещения файлов OAB в почтовом ящике? В том, что мы можем переместить этот служебный почтовый ящик в DAG и тем самым получим отказоустойчивость для процесса генерации автономной адресной книги. Как именно – будет описано чуть позже.

Еще несколько изменений в OAB:

  • Exchange 2013 поддерживает распространение только через Web (Web-based distribution)
  • Ecvhange 2013 поддерживает только OAB версии 4

 

Как это работает

При запросе OAB клиент обращается к CAS серверу, который в свою очередь выполняет следующие шаги, чтобы определить куда перенаправить этот запрос:

  1. Проводит аутентификацию клиента для доступа к OAB.
  2. Посылает запрос к Active Directory с целью определить ближайший служебный почтовый ящик (Organization Mailbox) и название почтовой базы для него.
  3. Посылает запрос к Active Manager с целью определить на каком сервере в данный момент смонтирована (активна) эта почтовая база. На этом шаге как раз и реализована функция отказоустойчивости.
  4. Проксирует запрос клиента к серверу из пункта №3.
  5. Получает файлы OAB и отдает их клиенту. Но перед тем, как отдать файлы, Mailbox сервер извлекает последний файлы OAB из служебного почтового ящика, чтобы убедиться в том, что CAS сервер, а соответственно и клиент, получили актуальные данные.

 

 

Материалы по теме:

Managing OAB in Exchange Server 2013

Offline Address Books

Change the Offline Address Book Generation Schedule

 

Читайте также:

комментария 2

  1. BD:

    Спасибо за статью.
    В командлете «Get-Mailbox -Arbitration | {_.PersistedCapabilities –Like «*OabGen*»} | fl Name, Database, PersistedCapabilities» 2 опечатки — пропущены «where» символ «$», по-крайней мере на Exch2013CU10 заработал только такой код:
    Get-Mailbox -Arbitration | where {$_.PersistedCapabilities –Like «*OabGen*»} | fl Name, Database, PersistedCapabilities

    И ещё — не освещён вопрос по «дефолтной» OAB (вывод команды: Get-OfflineAddressBook | fl Name, Server). Что увидят пользователи Exchange2013, если администратор не будет вручную ничего создавать после первичной установки Exchange2013? Пустую адресную книгу? 1 книгу со всеми адресатами? Отсутствие адресной книги?

  1. 16.04.2013

    […] Exchange 2010 vs 2013. Part 4. Offline Address Book (OAB) […]

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