误区

快照,对虚拟机快速的照了一张相?拍照意味着什么?是用某种技术手段对人和事物的过去某时间状态的记录。从这点讲,虚拟机快照与我们所熟知的拍照的确有几分相似。但除此之外,我真没找出两者之间还有什么共性。

传统意义上讲,对某个人拍照,是对其当时容貌的一个复制,无论是电子档还是纸质照片,都是一个载体,从信息的角度讲,无论看本人还是照片,我们都能知道她是个浓眉大眼,樱桃小嘴的菇凉,换句话来讲,就是一种容貌数据的两个存储。受限于此下意识的传统观念,故很多的人都会认为,虚拟机的快照就是对虚拟机的状态以某种方式做了一个状态的记录,所以我对虚拟机做快照,就相当于是对虚拟机做了一个当时状态的备份。

真的是你以为的这样么?可惜你以为的并不是VMware以为的。我在工作和生活中经常提醒自己,不要把“我以为的”当成"事实","我以为"真的害人不浅。

 

原理

有时候真觉得VMware是绝顶的聪明,他用一种绝对让你以为不到的方式巧妙的达到了"记录虚拟机状态"的目的。当你点击创建快照按钮的时候,vSphere会为虚拟机的每一块虚拟硬盘*.vmdk创建一块副本磁盘*00000x.vmdk,为虚拟机配置文件创建一个备份。如果勾选了内存快照,还会对内存文件(虚拟机的所有设备对于vSphere来说都是文件)做一次备份。原有硬盘不在写入,所有新数据均写入到副本磁盘。用户读取到的硬盘数据为主磁盘与副本磁盘结合的数据。

当你删除快照时,vSphere将副本磁盘数据整合到主磁盘。当然,有时候可能并不能自动的完成所有整合,所以偶尔会在vSphere里面看到一条提示"虚拟机需要整合"。

当你从现在的状态恢复到以往的某个快照节点时,比如虚拟机在昨天创建了三个快照,添加了三块副本磁盘1-3,今天13:01你想恢复到昨天没做快照的状态,是直接把虚拟机连接到主磁盘么?并不是这样,当你恢复到快照前状态后你会发现你还可以恢复到第1-3快照状态,如果是直接对主磁盘写入,将会导致主磁盘+快照1+快照2+快照3得到的数据里面却掺杂有你刚写入主磁盘的文件。所以VMware并没有这么做,而是在主磁盘上又双叒叕添加了一块副本磁盘。就是这么简单除暴。

下面就用一张图来简述虚拟机快照在常规操作中都干了啥。

1.jpg

 

 

演练

演练环境以一台ESXI 6.7 U3作为环境,其上新建windows7虚拟机,观察每个操作后平台上有些什么变化。

原始状态

 

2.jpg

3.jpg

4.jpg

 

创建快照1

 

5.jpg

6.jpg

 

 

写入一个大文件,观察存储占用情况

 

7.jpg

8.jpg

 

创建快照2

 

9.jpg

10.jpg

 

修改测试文件名称

 

11.jpg

12.jpg

 

平台校验文件实际上没变化,所以000002空间无变化

 

复制测试文件

 

13.jpg

14.jpg

15.jpg

16.jpg

 

删除所有快照

 

17.jpg

因为新建虚拟机时默认新建的是厚置备磁盘,容量永远是200G,所以这里文件整合进来看不出来。如果是提供,这里变化会比较明显,有一个6G容量增长。

18.jpg

 

总结

虚拟机所有设备都是文件,所以,虚拟机的快照实际上是对文件的操作,每添加一个快照会为每块磁盘附加一块磁盘,硬盘内容为主磁盘和副本磁盘中每个文件的最新数据。旧文件不会显示、添加快照会为虚拟机增加一个vmsn文件(虚拟机配置等信息)和vmem(快照时的内存数据,做内存快照才会有此文件)。创建非内存快照耗时将远比删除快照耗时短,创建内存快照时耗时主要取决于内存文件大小。

 

基于快照原理,导致快照存在多个不良表现,具体如下:

 

1、快照数量越多,检索数据耗时将会越长,虚拟机性能越低;

2、虚拟机主磁盘与副本磁盘关联如被打破(比如将主磁盘或某快照磁盘挂载到其他虚拟机)将会导致无法读取此硬盘,需重新组建磁盘关联(可能性小)或对vmdk进行数据恢复;

3、快照将会使虚拟机占用更多的存储空间,尤其是文件需要频繁修改且容量较大的虚拟机;

4、创建内存快照时将会损耗掉内存相等容量的存储空间;

5、快照数量增多导致虚拟机数据丢失概率大大增加;

6、伴随虚拟机的存储迁移,当虚拟机此前某快照状态对应存储停用时可能导致虚拟机无法恢复到相应快照,且该虚拟机永远关联此存储,除非删除相应快照。这将对日常运维带来不便(有些存储明明已经停用下架。虚拟化上仍然显示),同理网络端口组也存在此问题。

 

针对以上弊端,建议各位同行:

 

1、不要误将快照用作备份用途,他压根就没这用途;

2、建议仅将快照作为临时使用,如系统补丁测试等,切勿长期保留。

3、建议将虚拟机快照数量控制在3个以内;

4、如需保留虚拟机往日状态而没有备份支持,务必定期更新快照,删除老快照,创建新快照;

5、在不清楚虚拟硬盘关联关系情况下,切记不要将带有快照的虚拟机任何VMDK硬盘挂载到其他虚拟机,以防硬盘间关联失效,如需将虚拟硬盘挂载至其他虚拟机,可先将快照全部删除后方可挂载;

6、创建内存快照时充分衡量存储空间使用情况,存储空间实际可用容量至少要比内存容量大,否则可能导致存储上所有虚拟机宕机(主要是分层存储存在此情况,存储的原因,数据都动不了)

 

快照≠备份,快照的弊端对数据安全问题仍然有影响,不建议用快照代替备份。对数据最好的保护方式还是建立备份系统,云祺虚拟机备份与恢复系统支持对VMware vSphere虚拟化环境下的定时备份、实时备份、恢复、瞬时恢复、归档、灾难恢复演练,对数据备份更专业更有效。

 

转载:

https://www.vinchin.com/company/vinchin-news-details.html?id=110

 

posted on 2020-11-04 16:19  小油2018  阅读(4695)  评论(0编辑  收藏  举报