Hello, I have this issue with all of these hyper visors (Hyper-V / VMWare Pro / Virtual Box). Regardless of the Guest OS and respective vDisc file system type. All these hyper visors give us the option to create Dynamic vDisc. It helps to create and assign a large virtual disc to the Guest OS without blocking the same size in your physical disc. As your Guest OS or it's data keeps growing, it can keep on expanding the footprint of that dynamic disc. However, this process seems an one-way affair. All these hyper visors will expand that disc but when you delete stuff from your Guest OS, it will not reduce that expanded vDisc. Unnecessarily occupying and wasting large portion of your physical storage. All these hyper visors offer a vDisc utility for managing the virtual disc and all of them comes with an option to scan & reduce the dymanic v-disc by trimming out the extra unused portion. In reality, none of them works at all. Even after a so-called successful run, there is hardly even 1 or 2% difference in size. Even though the Guest OS is reporting, and I know for sure 80% of the v-disc is now empty. If anyone has any solution, please do point me towards the right direction. Also, if anyone has any experience with Proxmox or TrueNAS, please comment your experience about this issue on those platforms. Are they any different? Thanks.
Hi naxal, The issue your having isn't down to the Hypervisors. Its the way the filesystem on the VM (usually Windows) deals with old/deleted files. Years ago Mark Russinovich of Sysinternals and now Microsoft, made a little util called 'SDelete' that would 'zero out' the unused space on a HDD making copies/backups a lot smaller in size. It also worked great on VHDs. Just run it on the VM before you shut it down, and then compress the VHD. Note: You may want to find a v1.6x version as its faster at zeroing than the v2.x versions.
I believe that would be "Winternals" but since I'm 82 now I could be wrong. Had to look that up since it's been many years since I have heard the term "Winternals" (formerly known as "ntinternals"). Only became "Sysinternals" when M$ bought all of Mark's software and hired him. And yeah "SDelete" was very handy.