1、快照的概念
存储网络行业协会(SNIA)对快照的定义是:对指定数据集合的一个完全可用拷贝,该拷贝包含源数据在拷贝时间点的静态影像。
快照可以是数据再现的一个副本或者复制。对于文件系统来说,文件系统快照是文件系统的一个即时拷贝,它包含了文件系统在快照生成时刻所有的信息,本身也是一个完整可用的副本。
1.1创建一个快照不同的设备需要不同的命令,但对于系统来说,基本都包括如下几个步骤:
1、首先发起创建指令
2、在发起时间点,指令通知操作系统暂停应用程序和文件系统的操作
3、刷新文件系统缓存,结束所有的读写事务
4、创建快照点
5、创建完成之后,释放文件系统和应用程序,系统恢复正常运行。
1.2 快照在不同层级的实现
在IT设备的不同层级都会有相应的产品去实现快照,而且不同的存储产品也经常会使用多种技术实现快照。
广义的快照技术通常可有7个不同类型的实现主体:
1、主机文件系统(包括服务器、台式机、笔记本电脑)
2、逻辑卷管理器(LVM)
3、网络附加存储系统(NAS)
4、磁盘阵列
5、存储虚拟化设备
6、主机虚拟化管理程序
7、数据库。
基于文件系统和LVM的快照
1.2.1 基于文件系统的快照
很多文件系统都支持快照功能,免费是文件系统快照的优势之一,因为它集成在文件系统内部;另一个优点是非常好用,最新版文件系统的快照功能通常使用起来很简单。但存在的劣势是每个文件系统都必须独立进行管理,当系统数量激增时,管理工作会变得非常繁重
1.2.2 基于LVM逻辑卷管理器快照
我们可以创建跨多个文件系统的LVM快照。像赛门铁克的Veritas Volume Manager可以支持大多数常见的操作系统和文件系统。LVM通常还包括存储多路径和存储虚拟化等功能。
基于NAS和磁盘阵列的快照
1.2.3 基于NAS的快照
NAS本质上就是一个经过优化的、或是专门定制的文件系统,运行在特定的设备上,或集成在存储设备里。
通过网络连接到NAS的计算机系统都可以使用这种标准的通用快照,包括物理服务器、虚拟机、台式机和笔记本电脑。它也非常容易操作和管理
1.2.4 基于磁盘阵列的快照
基于磁盘阵列的快照与基于NAS的快照有非常相似的优点,即所有与磁盘阵列相连的计算机系统都可以使用这种标准的通用快照功能。
基于存储虚拟化的快照技术
1.2.5 基于存储设备的快照
这里所说的存储虚拟化设备主要用于SAN光纤网络环境,不同于基于文件(NFS)应用的网络设备,像F5 Network公司的Acopia ARX产品就是排除在这个范畴之外的。主要的存储虚拟化软硬件存储设备(或融合了虚拟化功能的存储系统)都支持快照能力。
1.2.6 基于主机虚拟化软件的快照
随着服务器虚拟化应用的普及,基于主机虚拟化管理软件(Hypervisor)的快照技术也逐渐流行起来。像Citrix公司的 XenServer、微软的Hyper – V、SUN的xVM Ops Center、以及VMware的ESX和vSphere4等主机虚拟化产品都支持快照功能。
1.2.7 基于数据库的快照
在数据库中,快照动作被称为“SnapShot Isolation(快照隔离)”,这点在SQL Server中应用比较多(其6个事物隔离级别中的一个就是snapshot isolation)
1.3 快照的分类
快照分类的方式有很多种,比如按照是全量还是增量来区分为全量快照、增量快照。比较也可以分为物理快照和逻辑快照。
这里按照常用的快照技术分类:
2.1 Clone or split mirror 克隆或镜像分离
Clone(或Split-Mirror)快照所创建的是数据的完整副本。
split mirror:
如下图,先创建一个原始卷的镜像卷,每次写磁盘的时候,都会往原始卷和快照卷同时写入内容,当启动快照时,则镜像卷能快速脱离,生成一个快照卷。
然后重新创建一个原始卷的镜像卷,等待下次快照。
可以看到这种方案最大的缺点是很费磁盘空间,每个快照都需要占用和原始卷同样的空间,而且写数据时同时写两份,对写入性能影响比较大。
优点是快照生成和恢复都方便,而且数据隔离很好,不存在快照卷和原始卷的相互影响。
2.2 Copy-on-write with background copy 后台拷贝的复制写
该快照有两个生成步骤,首先创建一个瞬时即可生成的COW快照,然后利用后台进程将数据卷的数据复制到快照空间,最后生成一份数据卷的克隆或镜像。
创建这种快照的目的是发挥COW快照的优势,同时尽量屏蔽它的不足。因此,这种快照常常被形容为COW和Clone快照的混合体。
2.3 COW快照(copy on write)
2.3.1 COW快照原理:
2.3.2 图解原理
2.3.3 优缺点
2.3.4 注意
2.4 ROW快照(redirect on write)
2.4.1 ROW快照原理
2.4.2 图解原理
2.4.3 优缺点
2.4.4 删除中间快照原理
当不需要某个快照,或者因为快照太多,要删除一些快照的时候,根据我们上面所说的,每个快照都有部分数据,所有需要快照数据合并。
这里懒得画图,直接使用ECS快照的删除快照原理:
假设需要删除快照链中的某一份快照S1,则流程示意图和逻辑概览如下所示:
快照S2的2个。
2.5 COW和ROW小结及使用场景