![从 Google 计算引擎创建的磁盘快照大小超出了已用空间](https://linux22.com/image/770340/%E4%BB%8E%20Google%20%E8%AE%A1%E7%AE%97%E5%BC%95%E6%93%8E%E5%88%9B%E5%BB%BA%E7%9A%84%E7%A3%81%E7%9B%98%E5%BF%AB%E7%85%A7%E5%A4%A7%E5%B0%8F%E8%B6%85%E5%87%BA%E4%BA%86%E5%B7%B2%E7%94%A8%E7%A9%BA%E9%97%B4.png)
我有一个 Google Compute 实例 (VM),它有 2TB 的磁盘和大约 80GB 的已用空间。我想存档此 VM,这样我就不用为整个 2TB 付费,而且如果需要,还可以快速重新创建它。磁盘快照似乎是最好的选择,因为据说在这种情况下我只需要为使用的磁盘空间付费。但是当我尝试这样做时,我得到的快照大小约为 600GB,几乎是已用空间的 10 倍,但仍然小于完整的 2TB。
我尝试对磁盘进行碎片整理,但没有帮助。我还尝试使用“zerofree”将 0 写入未使用的空间,这样快照大小就减少到 20GB - 比使用的空间低 4 倍。然而,zerofree 需要花费大量精力和时间才能运行,但我猜它有助于压缩磁盘。
在这种情况下,有没有更好的方法来提高磁盘压缩效率?也许我在生成磁盘快照时遗漏了任何关键步骤?
注意:我也尝试了机器映像,但它似乎在后台使用了磁盘快照,而且由于某种原因,它们的成本更高。
答案1
磁盘通常具有文件系统。文件系统具有用户数据和文件系统元数据。详细信息取决于磁盘分区方案和文件系统类型。快照由已更改的磁盘块组成。这包括文件系统分配、修改和释放的磁盘数据块。
您的块零策略正在增加更改块的数量,这意味着恢复快照将花费更长时间。注意:持久磁盘可以从快照中恢复懒惰的这种方式看起来恢复速度很快,但实际数据恢复却在进行。但是,这个过程在后台传输数据时会消耗磁盘带宽。
推荐:
使用柏油或类似的存档工具,并将文件作为压缩存档保存到云存储。重新创建持久磁盘、分区和格式化非常简单,大多数情况下只需几秒钟。然后恢复保存的文件。