一、存储快照
1、概念 在对虚拟机创建快照时,系统会将所有虚拟磁盘置为只读,并生成对应数量的新磁盘文件(即快照空间)。快照创建完成后,该虚拟机的所有新增数据和对源数据的修改都将写入到新生成的快照空间,并将源虚拟磁盘和快照空间逻辑地址的对应关系写入映射表。例如下图: 1)创建快照后,数据写入流程如下: ①虚拟机写入数据,期望将数据“c”修改为数据“E” ②数据E被重定向写入到快照空间对应的逻辑地址“ii”中 ③系统将原虚拟磁盘和快照空间的逻辑地址对应关系写入映射表,记录原地址“2”的数据对应为快照地址“ii”的数据 2)快照后数据读取的流程: 快照创建后,虚拟机对数据的读取时存在两种情况: 1)若读取的数据是快照创建之前已有的数据,且创建快照后未进行修改,则从源虚拟磁盘中读取; 2)若读取的数据是快照创建之后增/改的数据,则从快照空间读取。 创建快照后,数据读取流程如下: ① 虚拟机下发数据读取命令 ② 读取原地址“1”对应的数据a,是创建快照之前的数据,地址“1”是不存在于映射表中,直接从原虚拟磁盘中读取返回数据“a”。 ③ 读取原地址“2”对应的数据c,是创建快照之后写入过的数据区域,则查询映射表,源地址“2”快照对应快照地址“ii”,因此读取快照地址“ii”返回数据“E”
2、注意事项 HCI6.0.1 及以上版本、三主机及其以上集群,使用虚拟存储时,默认采用存储快照对虚拟机打快照;当虚拟机在老版本平台打过快照时,可以选择“继续保持使用虚拟磁盘快照”或“切换为存储快照”。当切换至存储快照时,需要清除已创建的虚拟磁盘快照
二、磁盘快照 1、概念 qcow2快照采用的是“写时复制(Copy On Write)”的技术,实现原理比较简单,快照时复制一份原磁盘的索引,指向的实际数据均为原始磁盘的数据,只有当原镜像的的数据发生变化时,才将变化区域的在变化之前的数据复制一份给快照对应位置。所以打快照的时候数据比较小,后面会越来越大。例如下图: 1)快照后数据的写入流程: qcow2打了快照之后,将快照时刻qcow2的状态记录下来,即当时qcow2文件所描述的数据位置。该快照会记录在qcow2中的某个位置。做了快照后,当有数据写入同一个位置时,步骤如下: ① 在对虚拟机创建快照时,系统会生成一个动态增长的新磁盘文件(即快照空间)。 ② 快照创建完成后,修改原数据时会先将原磁盘数据复制到快照空间里,然后再将缓存里的数据写入到原磁盘文件中,最后将原虚拟磁盘和快照空间逻辑地址的对应关系写入映射表。 2)快照后数据读取的流程: 快照创建后,虚拟机对数据的读取时存在两种情况: 1)若读取的数据是快照创建之前已有的数据,且创建快照后未进行修改,则从源虚拟磁盘中读取; 2)若读取的数据是快照创建之后增/改的数据,则从快照空间读取。 创建快照后,数据读取流程如下: ① 虚拟机下发数据读取命令。读取快照,由快照系统判断数据是否存在于快照中。 ② 读取原地址“1”对应的数据a,是创建快照之前的数据,地址“1”是不存在于映射表中,直接重定向至源卷,从原卷中读取返回数据“a”。 ③ 读取原地址“2”对应的数据e,是创建快照之后写入过的数据区域,返回数据“e”
2、注意事项 HCI6.0.1之前版本都是使用的是磁盘快照,低于3主机环境下是磁盘快照,使用外置存储时虚拟机采用的是磁盘快照
三、存储快照和磁盘快照区别 1、磁盘快照是在磁盘文件上做的,存储快照是在存储层实现的,相比磁盘快照,存储快照对性能影响更小,磁盘快照删除以后空间不会释放,删除存储快照会将快照文件和以往的文件合并,这种操作会使得空间占用得到减少,但是没办法完全释放空间 2、区别 |