Администраторы серверов Microsoft Exchange Server, как правило, не особенно радуются выходу очередного обновления Microsoft Office System — это всегда влечет за собой необходимость трудоемкого обновления программного обеспечения на компьютерах пользователей. Но есть надежда, что выход Office 2007 SP2 станет исключением из этого правила. В данный пакет обновления включено исправление проблемы Microsoft Office Outlook 2007, которое портило жизнь пользователям почтовой системы Exchange Sever на протяжении многих лет. Более того, учитывая востребованность этого пакета, Microsoft выпустила в феврале 2009 г. кумулятивное обновление для Outlook 2007 SP1, так что его можно установить уже сейчас, не дожидаясь выхода полного пакета SP2. Давайте разберемся, в чем заключалась эта проблема и что сделали специалисты Microsoft для ее решения.

Зачем нужны файлы OST

Уже самые ранние версии Outlook, а также исходная версия Microsoft Exchange Viewer и другие программы-клиенты сервера Exchange Server, работающие по протоколу MAPI, использовали файлы OST для автономного хранения содержимого пользовательских почтовых ящиков для удаленной работы с почтой. Важные папки, такие как Inbox, синхронизировались автоматически при подключении к серверу Exchange, однако для нормальной работы требовалась дополнительная настройка параметров синхронизации при подключении к серверу. Папки в файле OST представляют собой реплики расположенных на сервере почтовых ящиков пользователей, синхронизация обеспечивала их взаимное соответствие. В отличие от файлов PST, которые могут быть открыты любой программой-клиентом MAPI, файл OST всегда связан с определенной учетной записью пользователя почтовой службы и может быть открыт только программой-клиентом, которая настроена для подключения к почтовому ящику данного пользователя.

Простая синхронизация была прекрасным решением в те годы, когда повсеместно использовался коммутируемый доступ, и подключение со скоростью 56 Кбит/с было предметом гордости. Заметное изменение произошло с появлением пары Outlook 2003 — Exchange Server 2003 и режима кэширования в Exchange под названием Cached Exchange Mode. В Exchange Server 2003 была введена новая функциональность — фоновая частичная синхронизация (drizzle-mode), а также другие усовершенствования работы в распределенной сети. В совокупности эти изменения позволили клиенту Outlook поддерживать локальную полную копию пользовательских почтовых ящиков, а пользователям — работать с полнофункциональной копией почтового ящика даже при отсутствии сетевого подключения.

С точки зрения администраторов режим кэширования тоже был очень популярен, поскольку облегчал задачу консолидации серверов Exchange. Раньше клиентам было необходимо подключаться к локальному серверу Exchange, поскольку приемлемые средства оперативного подключения к центральному серверу Exchange в главном корпоративном хранилище просто отсутствовали. Режим кэширования позволил клиентам подключаться к серверу по удаленному соединению и выполнять фоновую синхронизацию, при этом пользователь мог спокойно работать с копиями папок в файле OST. При этом временные нарушения связи с сервером Exchange просто чуть задерживали синхронизацию, не нарушая ее в целом. В сочетании Outlook 2003 с Exchange 2003 полоса пропускания используется более эффективно, что позволяет обслуживать большее число пользователей по тому же каналу.

Поддержка производительности OST

Режим кэширования и сегодня является основным аспектом архитектуры Exchange. Однако старая структура файла OST не предусматривала возможность использования почтовых ящиков таких размеров, какие стали обычными в наши дни. OST прекрасно подходит для синхронизации избранных папок с небольшими почтовыми ящиками, но это решение плохо справляется, когда речь идет о синхронизации всех папок в многогигабайтном почтовом ящике. По моим оценкам, скорость работы существенно снижается уже при достижении файлом OST размера в 1,5 Гбайт, более 5000 элементов в папке или более 20 000 элементов в файле OST, хотя эти значения могут изменяться в зависимости от скорости жесткого диска (самыми быстрыми являются твердотельные диски, за ними следуют диски со скоростью вращения 7200 RPM). Проблему файла OST можно обнаружить, если при открытии папки в Outlook индикатор работы диска долгое время горит постоянно при обращении к данным в файле OST.

Как правило, размер OST на 10–15% больше, чем исходный почтовый ящик, — это связано со способом хранения данных и необходимостью хранения индексов. Удаление элементов из почтового ящика не решает проблему производительности, в файле OST просто образуются пустоты, которые удаляются при выполнении специальной процедуры сжатия. Сжатие выполняется автоматически в фоновом режиме, когда Outlook ничем не занят, можно также вызвать принудительное сжатие файла OST (см. экран 1).

Сжатие файла OST в Outlook 2007

Для этого в меню Outlook 2007 нужно выбрать Tools, Account Settings. На вкладке Data Files выберите из списка файл OST и щелкните Settings. На вкладке Advanced щелкните Offline File Folder Settings, а затем нажмите Compact Now. Сжатие файла данных может потребовать от нескольких секунд до нескольких минут, в зависимости от размера файла OST.

Даже если размер файла OST невелик, эффективность работы с ним может снижаться за счет накапливающихся со временем нарушений внутренних структур данных. Эту проблему можно решить с помощью утилиты проверки целостности файла OST (Scanost.exe, OST Integrity Check), которая служит для обнаружения и устранения нарушений структур данных в файле (см. экран 2).

Запуск утилиты Scanost

Этот процесс можно сравнить с дефрагментацией файлов на диске или проверкой целостности базы данных Exchange с помощью утилиты Isinteg. Более подробно об использовании Scanost.exe и о том, какие действия эта утилита выполняет, рассказано в статье на сайте Microsoft Scan and repair corrupted Outlook data files, http://office.microsoft.com/
en-us/outlook/HA100758311033.aspx.

Утилита Scanost была создана специалистами Microsoft для работы с файлами OST Outlook 2007. В комплект более ранних версий Outlook входила утилита Scanpst.exe, предназначенная для работы с файлами PST и OST. Насколько я могу судить, Scanost лучше обрабатывает внутренние структуры файлов OST, чем это делала Scanpst. После завершения обработки файла Scanost создает в папке Deleted Items сообщение с отчетом о выполненных действиях (см. экран 3).

Пример отчета выполнения Scanost

Если сканирование и уплотнение файла OST не дало желаемого повышения производительности, можно испробовать последний способ восстановить работоспособный вариант файла OST — построить его заново с нуля. Администраторы Exchange могут считать это действие аналогичным выполнению Eseutil для перестройки базы данных Exchange. Для этого следует завершить работу с Outlook и удалить файл OST (более осторожный пользователь может переименовать старый файл), после чего вновь запустить Outlook, чтобы файл OST был создан заново с нуля.

Точно так же, как администраторам Exchange не рекомендуется регулярно пересоздавать базу данных (это действие больше не требуется начиная с Exchange 2003 и для новых версий, хотя некоторые администраторы до сих пор считают, что перестройка не повредит), перестройка файлов OST так же не является тем действием, которое пользователям следует выполнять регулярно. Пересоздание файла OST может занимать до нескольких часов, в зависимости от числа элементов и объема данных, а также от скорости сетевого подключения к серверу Exchange. И уж точно перестройка OST нежелательна на медленных сетевых каналах или если сервер Exchange сильно загружен, поскольку все эти факторы существенно замедляют работу.

Почему важна скорость работы OST

Перестройка OST не гарантирует восстановления производительности, внутренние недостатки структуры OST в сочетании с большим объемом данных по-прежнему обрекают систему на снижение производительности. Именно поэтому разработчики Microsoft предприняли значительные усилия для совершенствования и оптимизации файла OST при работе с большими почтовыми ящиками. Проблема замедления работы системы при большом размере OST известна давно, и непонятно, почему она не была решена с первым выпуском Outlook 2007. Общая тенденция увеличения размеров почтовых ящиков и роста числа почтовых ящиков на серверах Exchange 2007 и Exchange 2003 делают эту проблему все более острой.

Для корпорации Microsoft очень важно решить проблему больших почтовых ящиков еще и потому, что необходимо конкурировать с Google и другими компаниями, предоставляющими почтовые ящики размером от 5 и даже 10 Гбайт. Некоторые организации уже сейчас используют серверы Exchange с очень объемными почтовыми ящиками: 50-гигабайтный почтовый ящик — не такая уж большая редкость для топ-менеджеров крупных компаний. Замедление работы с файлами OST при достижении критического размера может доставить массу неприятностей даже в том случае, если используется самый современный скоростной компьютер.

Надо сказать, что обновление для Outlook 2007 SP1 и Outlook 2007 SP2 обеспечивает гораздо более высокую производительность и скорость отклика при работе с файлами OST, подключенными к большим почтовым ящикам. Трудно измерить, насколько именно увеличивается скорость работы — специальных средств для таких измерений нет. Но, по опыту работы с файлом OST до 10 Гбайт, работа идет заметно быстрее, подвисаний при открытии больших папок и смене режима просмотра практически не наблюдается. Надеюсь, что в финальном варианте SP2 производительность станет еще выше после отключения отладочного кода и избыточных проверок, которые обычно присутствуют в бета-версиях.

Помимо увеличения скорости работы с файлом OST, в Outlook 2007 SP2 изменился способ закрытия программы. Подробная информация содержится в статье Application Shutdown Changes in Outlook 2007 SP2 (http://msdn.microsoft.com/en-us/library/dd239276.aspx) но кратко можно пояснить так: после выбора команды завершения работы пользователю приходилось слишком долго ждать, пока Outlook наконец завершит работу. У многих пользователей при этом возникало ощущение, что программа зависла, и они принудительно закрывали Outlook c помощью диспетчера задач Windows.

Принудительное закрытие Outlook с помощью диспетчера задач, конечно, ускоряет процесс. Но следует принять во внимание, что при этом Outlook может не успеть записать кэшированные данные на диск или записать их частично, в результате чего возникает риск нарушения целостности файла OST. При следующем запуске Outlook эта проблема будет решена, но это потребует дополнительных затрат времени на сканирование и устранение найденных несоответствий. Теперь Outlook будет закрываться значительно быстрее, и пользователи перестанут форсировать закрытие Outlook с помощью диспетчера задач.

Обновление для повышения скорости

Было бы замечательно, если бы каждое обновление Outlook сопровождалось таким очевидным положительным эффектом, как в этот раз. Программисты Microsoft действительно хорошо потрудились над производительностью Outlook. Развертывание исправлений и пакетов обновлений на всех пользовательских компьютерах может оказаться трудоемким и дорогостоящим процессом, особенно если в компании нет соответствующей системы автоматического распространения и установки программного обеспечения. И не всегда очевидно, что работа стоила того выигрыша, который можно получить в результате обновления.

И все же, если у вас есть возможность развернуть кумулятивное обновление February 2009 Cumulative Update или Outlook 2007 SP2, вашу заботу сразу оценят все пользователи, у которых объем почтового ящика превысил 1 Гбайт. Учитывая, что абсолютное большинство пользователей накапливает в своих почтовых ящиках все подряд, ящики многих сотрудников достигли размеров, которые несколько лет назад было трудно себе представить. Так что поддержка огромных почтовых ящиков — весьма нужное и своевременное усовершенствование.

Тони Редмонд (exchguru@windowitpro.com) — редактор журнала Windows IT Pro, старший технический редактор Exchange & Outlook Administrator, вице-президент и главный технолог HP Services