知识点:什么是快照?及存储快照的实现?

什么是快照?

存储网络行业协会SNIA(StorageNetworking Industry Association)快照的定义:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。

个人理解:快照就是复制了数据。(这里复制数据没错,不过这里的“数据”并不是完整数据!!下面讲解)

重点:快照是完全可用的拷贝,但不是一份完整的拷贝,为什么???

先来自己思考一下,快照可能需要做些什么?怎么做?(思考是学习的重要组成部分)

我们把存放源数据的容器称之为源数据卷,存放快照的数据称之为快照卷。假设我们要在今天0点进行快照的创建,那么,我们最终目标就是,在以后的某个时间点,可以通过某种方式,将源数据恢复到0点时的样子。

最简单的方式当然是做一份完整的拷贝,到时候直接复制回去即可。但是,这样做往往耗时较长,空间占用也比较多。所以,不推荐使用这种方式。

另外一种方式就是把有变化的数据存储下来,即将发生了改变的数据的原始状态保存下来。这样,在恢复时,将这部分数据和没发生过变化的数据合并起来,就达到了恢复的目的。

没错,快照就是这么做的。

存储快照的使用场景

场景1:

存储快照,是一种数据保护措施,可以对源数据进行一定程度的保护,通俗地讲,可以理解为----后悔药。
img

如上图,假设在t0时刻,有一份完整的源数据,我们在t1时刻,针对这份源数据创建一份快照。

t2时刻,若因为各种原因(误操作、系统错误等)导致源数据损毁,那么,我们可以通过回滚(rollback)快照,将源数据恢复至快照创建时的状态(即t1时刻),这样,可以尽量降低数据损失(损失的数据,是t1到t2之间产生的数据)。

这种功能,常用于银行、公安户籍、科研单位等。操作系统、软件升级或机房设备更替,一般会选择在夜间或其他无生产业务时,进行高危操作,操作前会对数据进行快照,若操作失败,则将快照进行rollback,将源数据恢复至操作前的状态。

场景2:

前言中说过,快照是一份完全可用的副本,那么,它完全可以被上层业务当做源数据。


img

如上图,针对源数据,创建快照后,将快照卷映射给其他上层业务,可以用于数据挖掘和开发测试等工作,针对快照的读操作不影响源卷的数据。

这种功能,常用于直播(视频&图片)鉴黄、科研数据模拟开发测试等,比如,视频直播平台需要将某一段时间的视频提供给执法机构进行筛查分析,那么可以通过对特定时间点保存的数据创建快照,将快照映射给执法机构的业务主机去进行挖掘分析。

存储快照的实现原理

目前,快照的实现方式均由各个厂商自行决定,但主要技术分为2类,一种是写时拷贝COW(Copy On Write),另一种,是写重定向ROW(Redirect On Write)。

猜你喜欢

转载自www.cnblogs.com/nhdlb/p/12319772.html