Вопрос или проблема
У нас, кажется, есть несколько дисков NTFS, которые занимают гораздо больше места на виртуальном диске, чем в виде файлов.
Мы заметили проблему, когда Windows Server Backup занимал гораздо больше места, чем сами файлы.
Например, у нас есть небольшой диск с офисными документами:
- Размер фактических файлов: 2.78Гб
- Используется свойствами диска: 6.03Гб
- Размер сжатого .vhdx: 27Гб
Это не корзина, я ее удалил. Это не теневое копирование, я их удалил.
Кажется, нет способа дефрагментации этих виртуальных дисков на Server 2012, так что здесь тоже ничего не поделаешь.
Есть ли другие предложения, что занимает столько места?
Удаление данных внутри ВМ не приводит к уменьшению размера VHDX. Как только VHDX увеличивается, он останется этого размера или увеличится, если количество данных внутри ВМ увеличится.
Если вы хотите восстановить часть пространства на хосте, которое занимает VHDX, вы можете скомпактировать VHDX.
Кроме того, вы можете уменьшить объем Windows внутри ВМ, а затем уменьшить VHDX.
Дополню ответ joeqwerty, он прав, размер виртуального жесткого диска не уменьшится автоматически, когда вы удаляете некоторые файлы из раздела.
Чтобы скомпактировать, вы можете сделать это через меню гипервизора.
В ESX: Виртуальная машина > Настройки виртуальной машины->Аппаратное обеспечение->Утилиты > Сжать
В HyperV: Внутри ВМ в меню инструментов для HHD нажмите Оптимизировать. После этого закройте ВМ, в самом гипервизоре или другой Windows ВМ щелкните правой кнопкой на VHDX, выберите Подключить и нажмите Оптимизировать.
Старый метод заключался в монтировании VHDX через diskpart, но я не рекомендую его сейчас.
Чтобы объяснить размер;
Инструмент обычно заполняет таблицу разделов HDD, где раньше были файлы и больше не существует, заполняя ее нулями. Оптимизация, которую мы запускаем после жесткого удаления этих ‘нулевых’ ссылок из VHDX. Как в прошлом, до 2012 года, нам приходилось запускать sdelete -z, чтобы обнулить пустое пространство изнутри ВМ, которое заполняло 100% до .VHDX, и после этого мы сжимали VHDX, когда ВМ была закрыта. Теперь процесс проще.
Мой опыт с Hyper-V: новейшая установка Alpine Linux 200 МБ, VHD 18 ГБ, максимальный размер диска 1024 ГБ. Полагаю, что Windows резервирует какое-то пространство, поскольку определенно не было записано 18 ГБ данных, так как это новая установка.
.
Ответ или решение
Когда сталкиваетесь с проблемой, что виртуальный диск формата VHDX занимает значительно больше места, чем сами файлы на NTFS-разделе, важно понять причины и возможные решения этой задачи. Даже если удалять файлы внутри виртуальной машины, размер VHDX обычно остаётся прежним или увеличивается по мере добавления новых данных. Вопросы, связанные с этой темой, нередко возникают при использовании таких инструментов, как Windows Server Backup.
Возможные причины увеличения размера VHDX
-
Файловая система и резервирование: NTFS файл-система может резервировать место для файлов и структуры метаданных, что приводит к дополнительному расходу дискового пространства. В некоторых случаях это обусловлено самой природой работы виртуальных машин и использованием структур предсказуемых размеров дисков.
-
Лишнее пространство: После удаления данных, освободившееся место на виртуальном диске не всегда сразу отражается в уменьшении размера файла VHDX. Это приводит к общей неэффективности использования пространства.
-
Неиспользованные блоки: Виртуальные машины и их диски часто содержат неиспользуемые блоки данных, которые хранятся в VHDX. Это может происходить в результате прошлых операций записи и удаления данных.
Решения проблемы
-
Компактное сжатие VHDX: Процедура компактного сжатия устраняет неиспользуемое пространство, которое остаётся после удаления файлов в виртуальной машине. В Hyper-V, для этого, внутри гипервизора или другой Windows VM, можно смонтировать VHDX, а затем выбрать опцию "Оптимизация".
-
Уменьшение размеров разделов: Вы можете провести сокращение раздела в самой Windows VM, после чего уменьшить и сам размер VHDX, чтобы физически освободить дисковое пространство на хосте.
-
Использование Zero Fill технологий: Прежние методы, такие как использование утилиты sdelete -z, помогали заполнить нулевые блоки перед запуском процесса сжатия VHDX. Хотя современные инструменты делают это проще, разумно периодически проверять эффективно ли используется дисковое пространство.
Заключение
Общий размер VHDX зависит от множества факторов, включая динамическое распределение данных, резервные копии и специфики работы системы. Для оптимизации пространства следует рассмотреть возможность регулярных проверок и программного сжатия данных. Компактно сжимая VHDX и проводя внутренние оптимизации, вы сможете более эффективно использовать доступное дисковое пространство.
Применение этих решений поможет обеспечить более эффективное управление виртуальной средой, что важно для поддержки производительности и экономичности IT-инфраструктуры.