Восстановить пространство в дифференциальном VHD - PullRequest
2 голосов
/ 30 марта 2009

http://www.petri.co.il/virtual_creating_differencing_disks_with.htm

Я выполнил эти шаги, чтобы создать «Дифференцирующие диски» демонстрационного виртуального жесткого диска WSSv3 от Microsoft. Ну, прошло некоторое время, забыл, что это был «разностный» диск, и после дефрагментации VUD (Virtual Undo Disk) расширился, чтобы использовать оставшуюся часть свободного места на моем жестком диске.

Иначе, после внесения этих изменений обратно в исходный VHD-файл, это какой-то другой способ для меня уменьшить VUD.

Спасибо

[Обновление]

К сожалению, история изменений сохраняет все изменения в файле, даже фрагментацию файла (почему).

org -> verA -> verB -> verC -> verD -> verE -> current.

Было бы неплохо, чтобы инструмент свернул древовидное дерево до чего-то вроде org -> current и удалил / проигнорировал промежуточную историю изменений, а также дефрагментировал журнал изменений для оптимизации.

[Update # 2]

Во-первых, извините за расширения моих вопросов

Во-вторых, возможно ли сжать дифференциальный диск, объединив его с дифференциальным родительским диском.

Base.VHD
 -> Child.VHD (Differential)
   -> Grandchild.VHD (Differential)

При объединении внука с ребенком размер будет [Детский размер] + [Размер GrandChild] или это будет что-то вроде [Размер ребенка] + [Размер фактических различий в файлах в внуке]?

Еще раз спасибо.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2009

Спасибо, Грант, вы правы, и я застрял с раздутым виртуальным жестким диском, чтобы слиться, но каким-то образом сумел облажаться и потерял изменения.

Вот что еще я нашел.

http://www.invirtus.com/blog/?p=7

Это отличная статья, объясняющая, почему различия настолько велики. Очевидно, каждый байт записан в свой собственный 512-байтовый сектор, тянущий тонны пространства.

http://www.invirtus.com/downloads/Differencing_Disk_Discussion.ppt

В этой презентации объясняется, как использовать сжатие дисков при хранении разностных дисков и как отменить диски занимают меньше места. Короче говоря, размещение разностного VHD или VUD в сжатой папке NTFS сэкономит вам массу места.

[Пример]

Я создал разностный диск для образа WSSv3 от Microsoft (5 ГБ), загрузил его и установил программное обеспечение. Только обработанная загрузка добавила 300 МБ к VHD, установка TortoiseSVN (20 МБ) добавила 200 МБ, а установка WSPBuilderExtensions (800 КБ) добавила 1 ГБ к VHD.

Конечный результат был 1,5 ГБ дифференциал от установки 21 МБ. Я объединил его с базой и добавил только 29 МБ обратно к родителю.

Затем я создал другой дифференциальный виртуальный жесткий диск в сжатой папке NTFS, запустил его и создал новое веб-приложение WSS через Central Admin. Размер файла подскочил до 900 МБ, но в файловой системе это привело только к 90 МБ к сжатию NTFS. Затем я создал VUD, переименовал в VHD и выполнил то же действие. Размер файла увеличился до 300 МБ, что привело к 12 МБ в файловой системе.

Так что да, дифференциальный VHD крайне неэффективен и не имеет никакого смысла во всем этом, но вздутие живота допускает некоторое приятное сжатие.

Для разработки вам также следует создать новый виртуальный жесткий диск, подключить его в качестве дополнительного диска и переместить сюда свой файл, поскольку все операции ввода-вывода файлов записываются на разностный диск или диск отмены.

2 голосов
/ 30 марта 2009

Разностный диск записывал все изменения, сделанные программой дефрагментации, поэтому он вышел из-под контроля. Я сомневаюсь, что вы можете уменьшить его, поскольку он содержит изменения, которые были сделаны и еще не зафиксированы.

Я думаю, вам придется либо зафиксировать изменения в исходном виртуальном жестком диске, либо выбросить все изменения.

...