当前位置:黑鲸出海 > 热点资讯 > 干货分享 >  专家解析|全面了解Azure磁盘快照功能

专家解析|全面了解Azure磁盘快照功能

发表时间:2021-07-22  来源:Microsoft云科技  作者:Microsoft云科技  浏览:次  
游览高山河川,随手按下快门,壮丽美景尽收囊中,随时都可以拿出来回味。而使用Azure的过程中,需要时按下“快门”,你的磁盘数据也能得到充分保护,并且可以在必要时用这样的快照将磁盘数据恢复为之前的状态。Azure磁盘快照就是这样一种方便的技术,甚至成为了Azure备份等数据保护服务的基础。不同于传统本地存储快照基于指针的方式,Azure磁盘快照更像是对磁盘有效数据创建的克隆,使用方式也有较大差异。

游览高山河川,随手按下快门,壮丽美景尽收囊中,随时都可以拿出来回味。

而使用Azure的过程中,需要时按下“快门”,你的磁盘数据也能得到充分保护,并且可以在必要时用这样的快照将磁盘数据恢复为之前的状态。

Azure磁盘快照就是这样一种方便的技术,甚至成为了Azure备份等数据保护服务的基础。不同于传统本地存储快照基于指针的方式,Azure磁盘快照更像是对磁盘有效数据创建的克隆,使用方式也有较大差异。

快照的操作很简单,在管理门户界面中选择磁盘即可直接创建快照,但仔细研究一下,还是有很多有意思的地方。

Azure快照基础概念

Azure磁盘快照分为两类:全量和增量,两者的区别和计价方式(以美东的Premium Disk为例)如下:

从描述中可以看出:


  • 快照分为全量和增量;

  • 快照只支持本地副本保护:LRSZRS(如果区域支持);

  • Premium Disk的全量快照可以放在Premium存储或标准储存中,增量快照只能放标准存储中(标准SSD和标准磁盘的全量和增量快照都只能放在标准存储);

  • 快照的容量由磁盘的有效数据量决定,而非磁盘大小;

  • 全量快照的基准点是当前磁盘;增量快照的基准点是上一次快照。无论上次快照是全量还是增量都可以。

快照实验

接下来我们将搭建一台虚拟机,借此验证快照功能。

实验设计

该虚拟机运行Windows 10,附加了一块1TB的数据盘用作快照测试,整体流程如下:

大致的实验流程如下:


  1. 首先在磁盘中放入一个10GB的文件,做全量快照Snapshot1Snapshot1基于磁盘当前有效数据量,所以容量为10GB

  2. 然后做增量快照Snapshot2,由于增量快照基于Snapshot1,而磁盘没有任何变化,所以Snapshot2容量为0GB

  3. 向磁盘增加一个20GB的文件,磁盘有效数据量变为30GB,做全量快照Snapshot3,容量为30GB

  4. 接着做增量快照Snapshot4,同理容量为0GB

  5. 第三次向磁盘中放入一个40GB文件,磁盘有效数据量增加为70GB,再次做增量快照Snapshot5,这次增量快照的基准点是最近一次快照Snapshot4,所以Snapshot5的容量应该为70-30=40GB

1. 创建快照

如下图所示,在创建好的虚拟机的数据盘(F盘)里,使用fsutil命令创建一个10GB的文件:

然后做第一次全量快照Snapshot1

可以看到,因为这块磁盘是Premium SSD,所以全量快照时可以选择不同的存储类型,这里统一选择Standard HDD,然后一直“Next”创建快照:

再对该磁盘创建增量快照Snapshot2

由于增量快照只支持标准存储(Standard HDD),所以没有存储类型的选择。创建完成结果如下:

随后按此步骤增加文件并创建剩余的快照,列表如下:

2. 快照验证

不同于传统存储快照可以直接回退,Azure的快照必须生成磁盘才能使用。因此我们首先用Snapshot1生成Disk1

随后用同样步骤,使用后边几个快照创建磁盘Disk2—Disk5

由于这些磁盘的来源还没附加到虚拟机,因此没有Owner

再次回到虚拟机的OS,我们在数据盘分别创建了3个文件:file01file02file03。按照创建快照的时间点,每个快照包含的文件如下:

随后将从快照生成的磁盘附加到虚拟机:

并在OS中附加这些磁盘(G—K盘):

检查磁盘内容发现符合预期:

进一步测试

上文提过,增量快照是基于前一次快照的变化量。那么如果前一次快照被删除,会出现什么情况?还是通过测试做验证。

首先删除Snapshot1(第一次全量快照):

发现快照列表里已经没有可Snapshot1

再次用Snapshot2生成磁盘Disk6,并附加到虚拟机:

将其附加到虚拟机(L盘),然后检查里边的内容:

结果发现file01仍然存在,并且检查哈希可知,其哈希值与之前的文件一致:

可以看出:即使删除作为基准点的快照,增量快照的安全也不受影响。

关于容量那些事

上文曾经提到,快照容量是由磁盘的有效数据量决定。对于全量快照,有效数据量比较容易确认;但对于增量快照,通常磁盘的使用不是简单的增加文件,而是一系列的增删改等操作,但Azure的快照并不提供容量查询的功能,属性里看到的容量是对应磁盘的容量。

不过我们可以通过一个变通方式来确认快照容量,即根据快照的成本来反推容量。

为此请重新创建一个虚拟机,附加两块1TB的数据盘:

进入OS,将两块数据盘分别创建分区并格式化(F盘和G盘):

随后分别在F盘和G盘各创建一个300GB的文件,F盘用Windows自带的fsutil工具创建,G盘用第三方的rdfc工具创建:

可以看到:fsutil创建速度很快,而rdfc速度非常慢。原因是fsutil会直接用“0”填充所生成的稀疏文件,而rdfc会用随机数填充,真正生成了一个文件。完成后两个磁盘的占用空间基本一致:

对这两个磁盘分别做全量快照SnapshotFSnapshotG

放置两天后,查看快照的使用成本。进入快照Overview,有一个View cost按钮:

点击进入,并选择Daily costs

借此可以看到,G盘快照每天的成本大约$0.19

而用同样方法查看F盘的快照成本如下,基本为0

对比可知:

  • G盘和F盘虽然空间占用基本一样,但快照成本相差较大。F盘的文件基本全部为“0”填充,创建快照时并没有实际占用空间,所以快照没有实际占用空间,成本为0

  • G盘的文件实际大小为300GB,理论上的每天成本为$0.05/30*300=$0.50,但实际为$0.19,说明快照存储时使用了类似压缩去重的技术,以节约空间。

小结

快照(Snapshot)是一个很平常的概念,在云端和本地有不同的机制。

虽然快照的操作很简单,但如果能熟练掌握,使用场景非常广泛,例如业务升级、数据更新等,可以利用快照做即时保护;另外在环境复制、远程迁移虚拟机等情况下,也可以通过快照实现。

希望本文对大家有所帮助。

注:文章源自于互联网,如有侵权,请联系客服删除。
19951839869
黑鲸出海客服