Windows Data Deduplication и поддержка VHD

Сегодня хочу вкратце рассказать о Windows Data Deduplication, новой функции в Windows Server 8, и о том, как это влияет на виртуализацию.

История технологии дедупликации данных в продуктах Microsoft началась с выходом Windows 2000 Server. В Remote Installation Services использовался файловый фильтр Single Instance Storage, который находил одинаковые файлы в папке RemoteInstall и заменял их символическими ссылками. Таким образом, вы могли хранить множество дистрибутивов для распространения через RIS. Файлы дистрибутивов на диске хранились в единственном экзмпляре, существенно экономя дисковое пространство. В практически неизменном виде технология присутствует и в Windows Server 2003 RIS и в Windows Server 2008 Deployment Services. Для System Center Data Protection Manager и для Exchange Server были также созданы SIS фильтры экономии дискового пространства для резервных копий и писем соответственно. В Windows Storage Server 2003 впервые технология стала доступна для пользовательских данных. И именно в таком виде она сейчас существует в Windows Storage Server 2008 R2.

В Windows Server 8 Developer Preview сделано два больших шага. Экстенсивный шаг принёс функционал Data Deduplication из семейства Storage Server во все издания Windows Server. Достаточно просто установить опцию в Server Manager.

Более интересный, интенсивный шаг в развитии технологии перевёл фильтр с файлового уровня на блочный. Теперь не обязательно иметь одинаковые файлы для экономии дискового пространства. Достаточно чтобы эти файлы имели частично одинаковое содержимое. Совершенно логично приходят на ум VHD диски, которые в большинстве своём состоят из одних и тех же файлов. Задействовав функционал Data Deduplication на томах с виртуальными машинами и библиотеками шаблонов, мы сможем теперь существенно экономить дисковое пространство.

На версии Windows Server 8 Developer Preview я провёл интересный эксперимент. Я включил опцию Data Deduplication для моего 2ТБ внешнего жёсткого диска, на котором я хранил порядка полутора террабайт виртуальных машин.

Процесс индексирования блоков данных на USB диске занял около 20 часов. По окончании этого процесса у меня был лёгкий шок.

Технология Disk Deduplication помогла в моём случае сэкономить порядка 1.3ТБ. Количество повторявшихся блоков на диске составило 95%

Очевидно, в моём случае цифра нестандартно высокая. Вызвано это тем, что виртуальные машины в большинстве своём основаны на Windows 8 Developer Preview и Windows Server 8 Developer Preview. Если у вас большое разнообразие различных ОС, то процент экономии будет ниже.

Так как технология блочная и размер индексируемого блока равен 4КБ, технология не привязана к версии ОС и даже к файловой системе внутри виртуального диска. Для оптимального результата следует выполнять стандартные рекомендации Microsoft о дисковом смещении (disk alignment) и размере блока файловой системы (рекомендованное значение равно 64КБ) внутри виртуальных дисков.