В очередном развёртывании System Center 2012 R2 Configuration Manager (SCCM) при попытке добавления драйвера, исходные файлы которого размещены на файловом кластере на Windows Server 2012 R2 (на томе с включенной дедупликацией файлов) в пакет драйверов получили ошибку…
При этом на SCCM сервере в логе \SCCMServer\SMS_<site code>\Logs\DriverCatalog.log были зафиксированы ошибки обработки исходных файлов добавляемого драйвера, говорящие о невозможности обработать эти файлы
CreateFromINF("\\holding.com\DriverSources\Audio\Realtek High Definition Audio Driver\6.0.1.6662", "HDXSRSL.INF") DriverCatalog 18.03.2014 10:29:03 5052 (0x13BC) HashFile failed as \\holding.com\DriverSources\Audio\Realtek High Definition Audio Driver\6.0.1.6662\alcmtr.exe is a Reparse Point that SMS does not support via downloads, -1 DriverCatalog 18.03.2014 10:29:03 5052 (0x13BC…) … Import failed as \\holding.com\DriverSources\Audio\Realtek High Definition Audio Driver\6.0.1.6662\* is a Reparse Point that SMS does not support via downloads. DriverCatalog 18.03.2014 10:29:03 5052 (0x13BC) Failed to build driver content information for "\\holding.com\DriverSources\Audio\Realtek High Definition Audio Driver\6.0.1.6662". Code 0x80004005 DriverCatalog 18.03.2014 10:29:03 5052 (0x13BC)
Судя по содержимому ошибок, в данной ситуации SCCM не в состоянии обработать файлы расположенные на дисковом томе, подверженном дедупликации.
Если мы посмотрим в свойства файлов и каталогов использующихся в данном случае в качестве исходных, то действительно можем увидеть то, что они обработаны механизмами дедупликации, так как их номинальный размер отличается в большую сторону от фактически занимаемого места на диске.
Чтобы обойти вышеописанную проблему с SCCM не отключая при этом дедупликацию на весь том файлового сервера, настроим каталоги исходных файлов драйверов SCCM как исключаемые из механизмов дедупликации. Через графический интерфейс сделать это можно выбрав в Server Manager\File and Storage Services\Volumes для дискового тома в контекстном меню пункт Configure Data Deduplication и в открывшемся окне настроек дедупликации тома добавить исключаемый каталог…
Изменить список исключаемых каталогов можно также через командлеты PowerShell:
Import-Module ServerManager Set-DedupVolume -Volume S: -ExcludeFolder 'S:\system-center-cm\driversources'
Мы создали исключение и теперь все новые файлы попадающие в данный каталог в дальнейшем не будут подвергаться действию дедупликации, но как быть со старыми файлами в этом каталоге, которые уже были ранее подвернуты дедупликации? Как вариант можно их скопировать в отдельный временный каталог и затем обратно (не перенести а именно скопировать).
Далее нам нужно убедиться в том, что добавленное нами исключение работает и файлы в нашем каталоге в дальнейшем не будут подвергнуты дедупликации. Для форсированного выполнения дедупликации всех данных на дисковом томе изменим значение параметра MinimumFileAgeDays на 0 и выполним запуск оптимизации (разумеется подобного рода манипуляции рекомендуется делать только в нерабочее время):
Set-DedupVolume -Volume S: -MinimumFileAgeDays 0 Start-DedupJob -Type Optimization -Volume S:
Наблюдаем за ходом выполнения:
Get-DedupJob
Получить дополнительные сведения о выполнении действий дедупликции можно в эвент-логах Application and Services Logs > Microsoft > Windows > Deduplication а также с помощью командлета обновления и отображения статистики:
Update-DedupStatus –Volume S:
Get-DedupStatus
В результате после выполнения полной оптимизации мы должны убедиться в том, что размер исключаемой папки не “усох” а остался на прежнем уровне, и это значит, что наше исключение работает.
После не забываем вернуть обратно значение MinimumFileAgeDays на то, которое было установлено ранее:
Set-DedupVolume -Volume S: -MinimumFileAgeDays 3
Ну и теперь всё, что нам остается сделать, это проверить то, что SCCM без ошибок выполняет загрузку драйверов из указанной папки…
Дополнительные источники информации:
- SCCM Team Blog - Configuration Manager Distribution Points and Windows Server 2012 Data Deduplication
- WMUG - Robert - ConfigMgr - Windows 2012 Server Deduplication and ConfigMgr 2012
- Pipe2Text.com - Using PowerShell to Install and Configure Deduplication in Windows Server 2012
- TechNet Library - Deduplication Cmdlets in Windows PowerShell
Спасибо