Назад | Перейти на главную страницу

Что делает wbengine, когда сообщает, что сжимает / сжимает файлы VHDX через SMB?

Я создаю резервную копию Windows Server 2019 с помощью wbadmin на некотором Synology-NAS с помощью SMB. Время от времени в журналах, созданных во время этих резервных копий, упоминается, что один из созданных файлов VHDX сжимается / сжимается. Сервер использует немецкий язык для этих журналов, и в них используется термин, который на самом деле означает «сжатие», поэтому не уверен, что из обоих действительно сделано, но я уверен, что это означает «сжатие».

Судя по журналам, этот процесс, скорее всего, довольно быстр для C: \, который содержит только саму Windows и некоторые установленные приложения. Вместо этого большая часть данных хранится в D: \, и эти данные содержат некоторые базы данных, простые файлы, доступные через общие сетевые ресурсы, виртуальную машину и тому подобное. Так что на этом томе довольно много операций ввода-вывода.

Глядя на журналы последнего времени, когда это было сделано для D: \, я обнаружил две интересные вещи: 1. этот процесс занял около часа, и 2. журналы начинались с 30% и заканчивались на 69%. Я знаю, что это заняло около часа, потому что без сжатия / сжатия резервная копия заканчивается в основном около 22:45.

Von Volume "Daten(D:)" wird eine Sicherung erstellt. Kopiert: (100%).
Die virtuelle Festplatte für das Volume "Daten(D:)" wird komprimiert. 
Abgeschlossen: (30 %).
[...]
Die virtuelle Festplatte für das Volume "Daten(D:)" wird komprimiert. 
Abgeschlossen: (69 %).

Ende Datensicherung 13.11.2019 23:59:36,66

Так что же происходит во время этого процесса, особенно в случае сохранения в SMB?

Насколько я понимаю, сначала нужно знать, какие блоки VHDX больше не используются. Поскольку внутри этого образа есть NTFS, я полагаю, Windows просто знает об этом, и ей не нужно сканировать файл в каком-то дорогостоящем процессе? Узнав, какие блоки больше не нужны, их можно освободить, чтобы фактически уменьшить объем хранилища, необходимый для VHDX. Если бы он находился на самой NTFS, я предполагаю, что это было бы сделано путем выделения блоков из какого-то разреженного файла, или он действительно записывал бы 0 в ненужные блоки? Однако доступ к VHDX осуществляется с помощью SMB с BTRFS под ним, поэтому, скорее всего, он не знает ни о каких запасных файлах. Значит, он может перемещать блоки из конца файла в выделенные, но свободные блоки и после этого просто обрезать файл?

Если действительно нужно скопировать большие объемы данных, это объясняет, почему процесс занимает довольно много времени и почему 30 и 69% регистрируются только, поскольку это скопированный диапазон данных внутри VHDX, возможно, или даже только копирование самих данных и других операции до и после 30 и 69% снова довольно быстро.