Моя служба Azure зависит от огромного файлового дерева, и я пытаюсь иметь дело с этим файловым деревом. с использованием VHD. В настоящее время я планирую создать файл VHD, смонтировать его, отформатировать в NTFS и включить прозрачное сжатие NTFS, а затем скопировать туда дерево файлов. Затем я загружу файл VHD в хранилище BLOB-объектов Windows Azure. При запуске экземпляра Azure он загружает файл VHD, подключает его и использует прозрачно, как если бы он находился в локальной папке.
Звучит все отлично, но файловое дерево примерно 800 мегабайт. При включенном сжатии NTFS он умещается в VHD-файл размером 600 мегабайт. Однако, если я заархивирую дерево файлов, оно займет около 400 мегабайт.
Я хочу, чтобы файл был как можно меньше и без необходимости распаковывать его, чтобы его можно было «смонтировать» и использовать прозрачно. Это похоже на VHD, но с лучшим сжатием.
Могу ли я получить VHD с лучшим сжатием?
Однако виртуальные жесткие диски уже достаточно хорошо сжаты, как и любой обычный жесткий диск, они могут фрагментироваться, и в зависимости от типа виртуальных жестких дисков может потребоваться периодическое сжатие, чтобы они были меньше. Вы можете попробовать сжать VHD перед загрузкой, чтобы увидеть, улучшит ли это его вообще или нет.
http://blogs.technet.com/b/tonyso/archive/2008/10/09/hyper-v-how-to-shrink-a-vhd-file.aspx
Кажется, что парню по ссылке ниже удалось сжать кучу больших виртуальных машин размером более 180 ГБ в диск VHDX размером всего 25 ГБ!
Насколько я понимаю, основная техника - это активация так называемого дедупликация на диске VHDX (работает на серверах и может быть настроен для работы с Win 8.1 и выше), а затем дефрагментация и сжатие виртуального диска стандартно.
Я был бы очень удивлен, если бы дефрагментация действительно повлияла на размер здесь, но это именно то, что он сделал.
Дальнейшая упаковка с помощью 7zip позволила сжать даже до 16 ГБ, но с потерей гибкости виртуального диска.