我正在阅读微软的Brad Calder(下面的链接)上的博客文章,内容涉及Azure如何使用页面blob支持的VHD文件。一些有趣的信息写道:
同样重要的是要注意,当您删除VHD使用的文件系统中的文件时,大多数操作系统都不会清除或清零这些范围,因此您仍然可以在blob中为您的数据支付容量费用通过磁盘/驱动器删除。“
我认为这意味着如果我连接1TB驱动器,填满它,然后删除所有文件,我仍将使用1TB后备页面,因为它们没有被清除,即使我的VM中的驱动器将显示为空
我决定对此进行测试,结果与布拉德所述相反。我在Azure中创建了一个Win2012 R2虚拟机,附加了一个1GB的驱动器,写了一些代码来查看我正在使用的页面blob数据量。然后我将文件复制到驱动器上,并再次记录正在使用的页面blob数据量;这个数字按预期上升。令我惊讶的是,当我删除文件时,正在使用的页面blob数据返回到空驱动器的原始编号。
我使用不同大小的驱动器和不同类型的数据多次运行此测试。每次我的后备页blob数据大小都准确地反映了驱动器上的内容(即我从未看到过“ghost”数据)。
有人可以对我的结果有所了解吗?这是预期的吗? Azure中有什么变化吗?除了Brad的博客文章之外,我找不到任何有关此主题的信息。
谢谢!
Brad Calder的博客:http://blogs.msdn.com/b/windowsazure/archive/2012/06/28/data-series-exploring-windows-azure-drives-disks-and-images.aspx
答案 0 :(得分:3)
发布后我设法发现了正在发生的事情。早在2013年10月,Microsoft就为Windows Server 2012虚拟机添加了TRIM支持(Win2008支持一些警告)。在Windows中删除文件时,现在会发送TRIM命令,这会导致Azure删除支持的VHD页面。
这是一篇讨论增加TRIM的帖子: http://mvwood.com/blog/trim-support-comes-to-windows-azure-virtual-machines/
以下是Mark Russinovich的YouTube视频,讨论Azure如何使用TRIM: https://www.youtube.com/watch?v=5PZ6wFXQ9-4