Вопрос. Зачем в Microsoft® Exchange
Server 2007 вы уменьшили размер журнала транзакций до 1 МБ?
Ответ. В Exchange 2007 есть такая
отличная штука, которая называется «доставка журналов», — метод,
лежащий в основе ряда новых функций, в частности, локальной
непрерывной репликации (LCR) и кластерной непрерывной репликации
(CCR). Когда доставка журналов включена на уровне группы хранения
(SG), журналы транзакций SG копируются из работающей
производственной SG в SG-копию. Транзакции из журналов SG-копии
записываются в базу данных для ее обновления. Это, конечно,
упрощенное объяснение того, что там происходит, но картина,
надеемся, в целом ясна.
Все дело в том, что журналы транзакций не могут
быть отправлены в SG-копию, пока журнал не будет закрыт в
производственной SG. Иными словами, журнал e00 (текущий журнал
первой группы хранения) нельзя отправить до тех пор, пока он не
будет заполнен, закрыт и переименован. Кроме того, специальные
параметры определяют, сколько журналов может быть задействовано в
этом процессе, так как должен поддерживаться баланс между
доступностью и производительностью. (Доступ к этим параметрам
осуществляется с помощью запуска командлета Set-MailboxServer в
среде управления Exchange. Сведения о необходимых параметрах можно
получить в справочном файле.)
Короче говоря, мы уменьшили размер журнала
транзакций, чтобы сократить до минимума объем данных, которые могут
остаться несинхронизированными между двумя копиями группы хранения.
Это важно, например, когда после сбоя жесткого диска
производственной базы данных приходится запускать SG из копии. Чем
меньше журналы транзакций, тем меньше потери данных.
Однако гарантии, что будет потерян только 1
мегабайт данных, нет. Нельзя, например, исключить возможность, что
потерянный 1-мегабайтный журнал транзакций будет содержать операцию
COMMIT для 5 МБ данных. В этом случае в копии будут потеряны все 5
МБ данных, даже если будут скопированы пять 1-мегабайтных журналов с
самими данными, последний журнал с небольшим количеством данных и
операцией COMMIT — самый главный.
В конечном счете, вам самим решать, приемлем ли
такой риск для вашего бизнеса. Небольшая потеря данных и минутное их
восстановление — это все же лучше многих часов восстановительной
работы. Эту тему мы будем освещать и в дальнейшем.
Вопрос. Теперь, когда журналы
транзакций стали короче, они будут быстрее «расходоваться»?
Ответ. В Exchange темп «расходования»
журналов транзакций связан с их именами. В Exchange Server 2003
имена журналов транзакций выглядят следующим образом:
E nn fffff.log
Здесь nn — префикс, уникальный для каждой SG. Так
как префикс nn остается неизменным на протяжении всего периода
существования SG, число журналов транзакций с уникальными именами,
которое может быть создано для группы хранения — по существу,
определяется значением FFFFF и может доходить примерно до миллиона
(каково!). Некоторые из наших клиентов, однако, сообщали, что на
загруженных почтовых серверах удавалось достичь этого предела.
В Exchange Server 2000 и более поздних версиях мы
добавили исправление для записи в журнал приложений события в случае
приближения к этому пределу. Дополнительную информацию об этом см. в
статье по адресу http://support.microsoft.com/kb/896001 (на
английском языке).
Ну хорошо, а что происходит в Exchange 2007? Мы
говорили о том, что размер журналов транзакций, который раньше был 5
МБ (в предыдущих версиях Exchange), теперь стал 1 МБ (в Exchange
2007). Означает ли это, что уникальные имена журналов транзакций
будут исчерпаны после «прокачки» всего одной пятой части данных?
Ответ: нет. В Exchange 2007 имя журнала
транзакций имеет следующий формат:
E nn ffffffff.log
Обратите внимание, что теперь в нашем
распоряжении FFFFFFFF журналов, в отличие от всего лишь FFFFF в
предыдущих версиях Exchange. Внутренний математический алгоритм
расширенного обработчика хранилищ (ESE) Exchange 2007 не позволяет
создать все FFFFFFFF журналов. Вместо этого Exchange 2007 создает
7FFFFFEC журналов, что все равно является огромным числом (не верите
— преобразуйте его из шестнадцатеричного в десятичный вид!)
Что это означает на практике? На самом деле это
означает, что в Exchange 2007 можно создать примерно в 2048 раз
больше журналов, чем в предыдущих версиях Exchange. Разделим этот
коэффициент числа журналов с учетом теперешней одной пятой их
размера:
2048 / 5 = 409.6
Как видите, новая схема именования журналов
позволяет обрабатывать в 409 раз больше данных, чем старая. И это
при том, что речь идет только об одной группе хранения, а не о
сервере, поскольку каждая группа хранения будет иметь свой префикс
журналов (такой как e00, e01 и так далее). А если вспомнить, что на
одном сервере Exchange 2007 версии Enterprise можно создать 50 SG?
Нам трудно себе представить, что кто-то в обозримом будущем сможет
исчерпать такое количество журналов транзакций!
Вопрос. Как управлять сервером
Exchange 2007 дистанционно?
Ответ. Для удаленного управления
серверами Exchange 2007 есть несколько способов. Во-первых, можно
установить средства управления Exchange 2007 на отдельную от сервера
Exchange машину, если эта машина работает под управлением
32-разрядной или 64-разрядной версии Windows Server® 2003 с пакетом
обновления 1 (SP1) или более поздней версии, Windows Server 2003 R2
или Windows XP с пакетом обновления 2 (SP2) или более поздней
версии. Следует иметь в виду, что установка любой роли сервера
(клиентский доступ, почтовый ящик, пограничный сервер и так далее)
на 32-разрядном оборудовании в производственных средах не
поддерживается, но установка на 32-разрядной машине средств
управления — поддерживается. Также обратите внимание, что для
начального выпуска сервера Exchange Server 2007 установка средств
управления не поддерживается на компьютере с Windows Vista™.
В некоторых организациях ИТ-подразделения создают
отдельный сервер как сервер управления, установив на нем все
необходимые средства управления для различных продуктов. После этого
администраторы, которым нужны эти средства, обращаются к серверу
управления через сервер терминалов, получая таким образом
возможность выполнять удаленное администрирование. В других случаях
пользователи устанавливают средства управления в своих локальных
настольных системах.
С помощью консоли или оболочки можно выполнять
операции на серверах организации. В консоли серверы видны и
доступны, поэтому на любом из них можно выполнять удаленные
операции. В оболочке для многих задач поддерживаются флаг фильтрации
-server, который можно применять, если требуется ограничить область
действия операция отдельным сервером. Есть, однако, несколько
исключений для команд, которые должны выполняться локально, например
команда Get-NetworkConnectionInfo.
Вопрос. В своей последней статье вы
говорили, сколько оперативной памяти рекомендуется для сервера
Exchange 2007. А как насчет размера файла подкачки?
Ответ. Чтобы исключить на серверах
Exchange 2007 потенциальные ошибки нехватки виртуальной памяти, мы
рекомендуем при определении размера системного файла подкачки
придерживаться следующих правил.
Если на сервере размер ОЗУ меньше 8 ГБ,
минимальный размер файла подкачки должен равняться объему ОЗУ плюс
10 МБ. Таким образом, если размер ОЗУ на сервере — 4 ГБ, минимальный
размер файла подкачки должен быть 4 ГБ плюс 10 МБ. Рекомендуемый
размер файла подкачки, однако, равен полуторному объему ОЗУ. Поэтому
для сервера с объемом ОЗУ, равным 4 ГБ, размер файла подкачки должен
быть 6 ГБ.
Далее, минимальный размер файл подкачки для
сервера с ОЗУ более чем 8 ГБ рассчитывается аналогично, то есть,
объем ОЗУ плюс 10 МБ. Однако рекомендуемый размер определяется
иначе. На сервере с более чем 8 ГБ ОЗУ нужно сразу переходить к
файлу подкачки, равному полуторному объему ОЗУ, если при меньших
файлах подкачки возникают ошибки нехватки виртуальной памяти.
Следует помнить, что ошибки, о которых здесь идет
речь, не имеют никакого отношения к фрагментации виртуальной памяти
(проблема, характерная для серверов Exchange 2000 и Exchange 2003).
Это фактические, регистрируемые системой ошибки, которые говорят о
том, что размер файла подкачки увеличивается или файл подкачки
слишком мал.
Вопрос. Я бы хотел научиться работать
в среде управления Exchange, но никогда раньше не использовал
командную строку для управления моими системами. С чего мне
начать?
Ответ. Давайте начнем с основ. Каждый
командлет в среде управления Exchange состоит из одного
глагола-команды и одного существительного-объекта. В среде
управления Exchange используется всего несколько команд: Get — для
получения свойств объектов, Set — для изменения свойств объекта, New
— для создания новых объектов и так далее. Существительные среды
управления Exchange представляют различные концепции, хорошо
знакомые всем администраторам Exchange (например, Mailbox, Contact,
Queue и OWAVirtualDirectory). Есть также новые концепции, введенные
в Exchange Server 2007 (такие как TransportRule, StorageGroupCopy и
UMAutoAttendant). Таким образом, простой командлет будет выглядеть
примерно как New-Mailbox (создание почтового ящика) или Get-Mailbox
(получение списка почтовых ящиков организации).
Для большинства командлетов, однако, потребуются
дополнительные уточнения того, чего конкретно вы пытаетесь достичь.
Чтобы, например, изменить свойство почтового ящика, нужно указать
почтовый ящик и свойство. Это делается с помощью параметров. Если бы
командлетом было New-Sandwich (создать бутерброд), то в качестве
параметров можно было бы указать -NumberOfTomatoSlices 4 (4 ломтика
помидора), -Bread Wheat (белый хлеб) и множество других подобных
параметров, которые более подробно описывают ваш бутерброд, вплоть
до того, какой он вкусный (-FlufferNutter (ореховое масло с алтеем)
— да-да! Мммм… пальчики оближешь!).
Теперь, когда вы поняли суть конструкции
«команда-объект», можно воспользоваться командной строкой мастера
консоли управления Exchange (EMC) и посмотреть, какие операции
выполняют командлеты. В EMC выполните инструкции мастера для
создания нового пользователя. В конце работы мастера, после
завершения операции вы увидите копию команды, которую мастер
выполнил «за кулисами» (см. рис. 1).
Нажав Ctrl+C, вы можете скопировать содержимое этого диалогового
окна и затем вставить командлет в программу Блокнот, чтобы
объединить свои простые пакетные файлы.
Figure
1 Command-line exposure for
creating a new user
Хороший способ попрактиковаться в использовании
командлетов (не вызвав этим каких-либо повреждений в системе) —
поместить в конце команды параметр -WhatIf. При этом система
сообщит, что произойдет при выполнении данной команды, без
фактического внесения каких-либо изменений в систему.
Ознакомившись с простыми командлетами типа
*-Mailbox, вы, вероятно, захотите попробовать и другие. Чтобы найти
другие командлеты, воспользуйтесь командлетом Get-ExCommand. Эта
команда распечатывает список всех командлетов для управления
Exchange. (Для этого среда управления Exchange должна быть запущена.
Простого открытия командной оболочки Microsoft Command Shell или
Windows PowerShell™ для выполнения этой и любых других задач
управления Exchange недостаточно.) Список огромен, поэтому, чтобы
найти нужный командлет, используйте соответствующие подстановочные
знаки. Например, Get-ExCommand *database* вернет список всех
командлетов Exchange, в именах которых имеется элемент «database», —
такие как Dismount-Database, Move-DatabasePath или
New-MailboxDatabase.
Если вы знаете часть искомого существительного,
можно методом перебора просмотреть все возможные варианты. Например,
можно ввести «Get-Mailbox» и затем, нажимая клавишу TAB, просмотреть
все командлеты с элементом «mailbox» в существительном названия
задачи. Можно даже объединить подстановочные знаки и просмотр
клавишей TAB. Например, можно ввести Get-*Mailbox* и просмотреть все
возможные варианты.
Еще один простой метод — использовать подсказку.
Каждый командлет имеет ряд параметров, требуемых по умолчанию, — это
основные параметры, необходимые для выполнения операции. Командлеты
Get, такие как Get-Mailbox, не требуют каких-либо параметров. По
умолчанию Get-Mailbox возвращает список всех почтовых ящиков во всей
организации. (По умолчанию в списке возвращается не более 1000
элементов. Чтобы изменить этот максимум, можно, например, ввести
Get-Mailbox -ResultSize 2000.) Командлеты, которые создают или
изменяют объекты (как Set или New), запрашивают необходимую
информацию, например, объект, который нужно создать или изменить.
Если выполнить команду New-Mailbox, оболочка последовательно
запросит пароль, базу данных, название и так далее.
Для получения дополнительных сведений о возможных
параметрах определенного командлета используйте справочную систему:
например, введите команду Help Move-DatabasePath. (Можно также
ввести только Move-DatabasePath, Move-DatabasePath -? и так далее —
вариантов множество, здесь мы пытаемся охватить лишь основы.)
Справка содержит описание командлета, список параметров и назначение
каждого из них. Справку можно также открыть с помощью командлета
Get-Help. (Нам все же кажется, что добывать сведения о командлете,
введя просто Get-Help, не очень удобно. Обычно эту команду
используют редко.)
Другой способ узнать возможные параметры
командлета — использовать клавишу TAB для названий параметров.
Введите, например, Get-Mailbox -S, нажмите TAB и просмотрите все
возможные параметры, которые начинаются с «S».
Ну и есть еще, конечно, обширная справочная
система. Если не находите чего-либо в автономной справке, не
забывайте проверять регулярно обновляемые справочные материалы на
веб-узле go.microsoft.com/fwlink/?linkid=79421 и краткий справочник
go.microsoft.com/fwlink/?linkid=64647 (на английском языке).
Все это поможет вам начать осваивать консоль
управления Exchange, но дает лишь начальное представление об
универсальных возможностях командной строки. В следующих статьях мы
продолжим знакомить вас с этой темой.
Вопрос. В диспетчере Exchange Server
2003 (ESM) мы могли легко просмотреть размеры почтовых ящиков всех
пользователей. Похоже, что в Exchange 2007 этой функции нет. Есть ли
такая возможность в Exchange 2007?
Ответ. С помощью новой консоли
Exchange 2007 размер почтового ящика можно получить на общей
странице свойств данного почтового ящика. Чтобы просмотреть эти
данные для нескольких пользователей, следует воспользоваться средой
управления Exchange.
Выполнив командлет Get-MailboxStatistics, вы
получите данные по всему серверу (а не только по определенной базе
данных). По умолчанию размер почтового ящика не показывается. Чтобы
получить эту информацию, нужно выполнить командлет с параметром
Format-List:
get-mailboxstatistics | format-list
Еще удобнее может быть возможность выбирать
элементы для просмотра и распечатки в таблице. В следующем примере
мы получаем отображаемое название почтового ящика, общий размер
элементов, общий размер удаленных элементов и базу данных, к которой
относится почтовый ящик:
Get-MailboxStatistics | Select-Object
displayname,totalitemsize,
totaldeleteditemsize,databasename
| Format-Table
В зависимости от искомой информации, можно
использовать разное форматирование вывода. В этом примере параметр
Format-Table предпочтительнее параметра Format-List.