[Прим. переводчика. Материал статьи относится к Windows Server 2003/2003R2/2008/2008R2, но большинство из описанного справедливо и для более поздних версий ОС]
Уоррен снова здесь. Эта статья — краткое справочное руководство о том, как правильно вычислить минимальный размер промежуточной папки, необходимый для нормальной работы DFSR. Задание меньших значений может привести к замедлению репликации или вообще к ее остановке. Имейте в виду, что это лишь минимальные значения. Принимая решение о размере промежуточной папки, помните следующее: чем больше будет размер промежуточной папки, тем лучше, вплоть до размера самой реплицируемой папки. За дополнительными сведениями о том, как важно использовать верный размер промежуточной папки, обратитесь к разделу «Как определить, есть ли у вас проблема с промежуточной папкой» и постам из блогов, ссылки на которые размещены в конце этой статьи.
Обновление: Уоррен действительно умеет убеждать! Теперь есть исправление, с помощью которого можно рассчитать размер промежуточной папки.
https://support.microsoft.com/kb/2607047
Эмпирические правила
Windows Server 2003 R2 — квота промежуточной папки должна быть такой же, как суммарный размер 9 самых больших файлов в реплицируемой папке.
Windows Server 2008 и 2008 R2 — квота промежуточной папки должна быть такой же, как суммарный размер 32 самых больших файлов в реплицируемой папке [Прим. переводчика. Это число актуально и для Windows Server 2012/2012R2]
Первичная репликация использует намного больше места в промежуточной папке, чем обычная ежедневная репликация. Если позволяет размер дискового пространства, то перед началом первичной репликации настоятельно рекомендуется задать размер, превышающий необходимый минимум.
Где взять PowerShell?
PowerShell включен в состав Windows 2008 и выше. На Windows Server 2003 его придется установить. Скачать PowerShell для Windows 2003 можно здесь.
Как найти эти самые большие файлы?
Используйте скрипт PowerShell, чтобы найти 32 или 9 самых больших файлов и определить, сколько гигабайт они занимают (за PowerShell-команды спасибо Нэду Пайлу). Я хочу познакомить вас c тремя скриптами PowerShell. Каждый из них полезен по-своему, однако, 3-й – самый полезный.
- Выполните:
Get-ChildItem c:\temp -recurse | Sort-Object length -descending | select-object -first 32 | ft name,length -wrap -auto
Эта команда возвращает имена файлов и их размер в байтах. Полезно, чтобы узнать, какие 32 файла самые большие в реплицируемой папке, и наведаться к их владельцам.
- Выполните:
Get-ChildItem c:\temp -recurse | Sort-Object length -descending | select-object -first 32 | measure-object -property length –sum
Эта команда возвращает общее количество байтов для 32 самых больших файлов в папке без указания их имен.
- Выполните:
$big32 = Get-ChildItem c:\temp -recurse | Sort-Object length -descending | select-object -first 32 | measure-object -property length –sum $big32.sum /1gb
Эта команда получает общее количество байтов для 32 самых больших файлов в папке и с помощью математических вычислений преобразует их в гигабайты. Эта команда состоит из двух отдельных строк. Вы можете вставить их разом в командную оболочку PowerShell, либо запустить по очереди.
Ручной анализ
Чтобы продемонстрировать процесс и по возможности углубить понимание того, что мы делаем, пройдемся по каждой операции и выполним ее вручную.
1-я запущенная команда вернет результаты, подобные тем, что приведены ниже. Для краткости в этом примере взяты только 16 файлов. Всегда берите в расчет 32 файла для Windows 2008 и более поздних операционных систем и 9 – для Windows 2003 R2.
Пример данных, возвращаемых PowerShell:
Name | Length |
---|---|
File5.zip | 10286089216 |
archive.zip | 6029853696 |
BACKUP.zip | 5751522304 |
file9.zip | 5472683008 |
MENTOS.zip | 5241586688 |
File7.zip | 4321264640 |
file2.zip | 4176765952 |
frd2.zip | 4176765952 |
BACKUP.zip | 4078994432 |
File44.zip | 4058424320 |
file11.zip | 3858056192 |
Backup2.zip | 3815138304 |
BACKUP3.zip | 3815138304 |
Current.zip | 3576931328 |
Backup8.zip | 3307488256 |
File999.zip | 3274982400 |
Как использовать эти данные для определения минимального размера промежуточной папки:
- Name = имя файла
- Length = размер в байтах
- Один гигабайт = 1073741824 байт
Сначала нужно посчитать общее количество байтов. Затем разделите полученное число на 1073741824. Рекомендую для этих вычислений использовать Excel, либо другой табличный редактор, которым вы пользуетесь.
Расчеты на основе примера
В приведенном выше примере общее количество байтов равно 75241684992. Чтобы получить минимально необходимый размер промежуточной квоты, нужно разделить 75241684992 на 1073741824.
75241684992/1073741824 = 70,07 (ГБ)
На основании полученных данных я бы задал размер промежуточной папки равным 71 ГБ, округлив в бОльшую сторону до целого числа.
Практическое применение
Несмотря на то, что ручной анализ – дело интересное, это не самое лучшее, на что можно потратить свое время. Чтобы автоматизировать процесс, используйте 3-ю команду из приведенных выше примеров. Результаты будут примерно такими:
Используя команду из 3-го примера, можно без всяких расчетов (не считая округления), определить, что для папки d:\docs требуется промежуточная квота размером 6ГБ.
Нужно ли перезагружать сервер или перезапускать службу для применения изменений?
Для того, чтобы внесенные изменения квоты промежуточной папки вступили в силу, не требуется перезагружать сервер или перезапускать службу. Для применения изменений нужно будет дождаться завершения репликации AD и цикла опроса для DFSR-объектов в AD.
Как выявить наличие проблем с промежуточной папкой
Проблемы с промежуточной папкой обнаруживаются путем отслеживания определенных кодов событий в журналах DFSR-серверов. Вот список этих событий: 4202, 4204, 4206, 4208 и 4212. Описания для них представлены ниже. Важно понимать разницу между событиями 4202 и 4204, а также другими событиями. События 4202 и 4204 могут регистрироваться в большом количестве и при нормальном режиме работы. Воспринимайте события 4202 и 4204 как что-то вроде присутствия пульса, тогда как 4206, 4208 и 4212 будут сродни боли в груди. Ниже я объясню, как интерпретировать события 4202 и 4204.
События, относящиеся к промежуточной папке
[Прим. переводчика. Описанные ниже события журнала представлены в том виде, в котором они присутствуют в русской локализации Windows Server 2012 R2.]
Код: 4202
Уровень: предупреждение
Служба репликации DFS обнаружила, что промежуточное пространство, используемое реплицированной папкой с локальным путем <путь>, превысила свой верхний предел. Служба попытается удалить самые старые промежуточные файлы. Это может сказаться на производительности.
Код: 4204
Уровень: сведения
Служба репликации DFS успешно удалила старые промежуточные файлы реплицированной папки с локальным путем <путь>. Промежуточное пространство теперь находится ниже верхнего предела.
Код: 4206
Уровень: предупреждение
Служба репликации DFS не смогла очистить старые промежуточные файлы для реплицированной папки по локальному пути <путь>. Службе может не удастся реплицировать некоторые большие файлы и реплицированная папка может стать несинхронизованной. Служба автоматически попытается провести повторную очистку промежуточного пространства в течение <Х> мин. Служба может запустить очистку раньше, если она обнаруживает, что некоторые промежуточные файлы были разблокированы.
Код: 4208
Уровень: предупреждение
Служба репликации DFS обнаружила, что использование промежуточного пространства превысило промежуточную квоту реплицированной папки по локальному пути <путь>. реплицировать некоторые большие файлы и реплицированная папка может стать несинхронизованной. Служба автоматически попытается провести повторную очистку промежуточного пространства.
Код: 4212
Уровень: ошибка
Служба репликации DFS не смогла реплицировать реплицированную папку с локальным путем <путь>, потому что промежуточный путь является недопустимым или недоступным.
В чем разница между событиями 4202 и 4208?
У событий 4202 и 4208 похожее описание, т.е. DFSR обнаруживает, что размер, занимаемый промежуточной папкой, превышает предельное значение. Разница в том, что событие 4202 регистрируется сразу после того, как запустится процесс очистки промежуточной папки, при этом промежуточная квота всё ещё превышена. Событие 4202 — признак нормальной штатной работы, в то время как 4208 свидетельствует об отклонении от нормы и требует вмешательства.
Какое количество событий 4202 и 4204 считается слишком большим?
На этот вопрос нет однозначного ответа. В отличие от событий 4206, 4208 и 4212, которые всегда говорят о плохом и указывают на необходимость действий, события 4202 и 4204 встречаются и при нормальном режиме работы. Частые события 4202 и 4204 могут указывать на наличие проблемы. Факты, которые необходимо учитывать:
- Регистрируются ли события 4202 для реплицируемой папки (RF) во время ее первичной репликации? Если да, то события 4202 и 4204 – нормальное явление. Если на время первичной синхронизации вы хотите сократить количество этих событий до минимума, то этого можно достичь, увеличив размер промежуточной папки.
- Просто посчитать общее количество событий 4202 недостаточно. Необходимо знать, сколько из них относится к конкретной RF. Если за 24 часа в журнале было двадцать событий 4202, относящихся к одной папке, то это много. Но если у вас 20 реплицируемых папок и одно событие на каждую из них, то всё в порядке.
- Чтобы получить общую картину, необходимо проанализировать сведения, собранные в течение нескольких дней.
Обычно я советую заказчикам допускать не больше одного события 4202 на реплицируемую папку в течение дня при нормальном режиме работы. «Нормальный» означает, что не происходит первичная репликация. Я обосновываю это следующими рассуждениями:
- Время, потраченное на очистку промежуточной папки, — это время, отнятое у репликации файлов. Репликация приостанавливается на время очистки промежуточной папки.
- DFSR работает эффективнее, если для промежуточной выделено достаточно много места, используя его для RDC и cross-file RDC, а также для репликации одинаковых файлов на другие члены репликации.
- Чем больше в журнале регистрируется событий 4202 и 4204, тем выше вероятность того, что вы столкнетесь с ситуацией, когда DFSR не сможет очистить промежуточную папку или будет вынуждена удалять из нее файлы преждевременно.
- По моему опыту, события 4206, 4208 и 4212 всегда предвосхищались и сопровождались большим количеством событий 4202 и 4204.
Следование правилу «не более одного события 4202 в день на каждую RF» значительно снизит вероятность возникновения проблем с промежуточной папкой и поможет DFSR-серверу более эффективно использовать ресурсы для целевого назначения – репликации файлов.
Дополнительная информация
https://blogs.technet.com/b/askds/archive/2010/03/31/tuning-replication-performance-in-dfsr-especially-on-win2008-r2.aspx
https://blogs.technet.com/b/askds/archive/2007/10/05/top-10-common-causes-of-slow-replication-with-dfsr.aspx
Уоррен “way over my Oud quota” Уильямс