这特别涉及托管虚拟化工具,如 VMware Server / Fusion / Workstation、Virtual Box 和 Parallels。
关于两者https://superuser.com/questions/61245和https://serverfault.com/questions/89269,我希望能够创建非常慷慨的虚拟机潜在的空间(例如,500GB),但如果主机操作系统需要/使用更多空间,那么该空间可以缩小。
使用 VMware,你可以为虚拟机提供大量空间,但是不是预先分配所有内容(因此,如果您永远不需要分配的 500GB,而只使用 100GB,则剩余的“分配”空间仍然可供主机操作系统使用)。
是否可以或多或少反向执行此操作?我可以创建数十个 10GB 或 20GB 虚拟驱动器(无需预先分配空间),并将它们连接到 LVM 卷中的虚拟机,根据需要添加它们 - 但这仍然存在问题,即当主机操作系统需要空间时,如何将它们从 LVM 卷中删除。
或者我可以创建大量未预分配的虚拟驱动器,并将它们预先连接到我的虚拟机,希望它们不会被使用,因此主机操作系统仍可运行。但是,由于 LVM 不能保证在哪里它将放入正在写入的下一位数据,它可能会将数据写入多个“真实”卷,从而触发一些非预分配的虚拟磁盘(“真实”卷)可以扩展,但其他卷不扩展。
使用第二种方法,我想人们可以不时地检查虚拟磁盘,并分离任何从未增长的虚拟磁盘,从而缩小 LVM 卷 - 但当我想让虚拟化管理器/虚拟机管理程序工具集和/或第三方实用程序为我处理这个问题时,这又回到了手动干预。
我最初的目标是利用分配给虚拟机的空间,并使用类似的东西将其转变为集群文件系统集群文件系统,光泽,虚拟文件系统, 或者Hadoop。
答案1
VMware 有一个工具可以缩小虚拟磁盘。Perfect Disk 中也内置了此功能。我使用完美磁盘 VMware Workstation不仅可以对我的主机操作系统磁盘进行碎片整理,还可以对我的客户操作系统磁盘进行碎片整理和缩小。
只要您可以释放客户操作系统中的空间,您就应该能够缩小虚拟磁盘。
我希望这有帮助。