第一章、快照(Snapshot)技术发展综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章、快照(Snapshot)技术发展综述
摘要:传统数据备份技术存在备份窗口、恢复时间目标RTO和恢复时间点RPO 过长的问题,无法满足企业关键性业务的数据保护需求,因此产生了数据快照技术。本文对快照技术的概念、特点、实现技术和发展现状进行了概括性阐述,并对其未来的发展进行了展望。
关键词:快照,备份,复制,镜像,写时复制,指针重映射
作者简介:刘爱贵,研究方向为网络存储、数据挖掘和分布式计算;毕业于中科院,目前就职于赛门铁克@Symantec,从事存储软件研发。Email: Aigui.Liu@
注:作者学识和经验水平有限,如有错误或不当之处,敬请批评指正。
PDF格式下载:/source/1613486
一. 引言
随着计算机技术和网络技术的不断发展,信息技术水平不断得到提高。人类进入称为信息社会的二十一世纪后,诸如数字通信、数字多媒体、电子商务、搜索引擎、数字图书馆、天气预报、地质勘探、科学研究等海量数据型应用的涌现,各种信息呈现爆炸式的增长趋势,存储成为信息计算技术的中心。应用对存储系统的要求不断提高,存储容量不断升级,从GigaByte到TeraByte、 PetaByte、ExaByte,愈显巨大。图灵奖获得者Jim Gray提出一个新的经验定律:网络环境下每18个月生产的数据量等于有史以来的数据量之和。与此同时,现代企业对计算机的依赖性严重增强,信息数据逐渐成为企业赖以生存的基础,数据损坏或丢失将给企业带来巨大的损失。由于黑客、病毒、硬件设备的失效以及火灾、地震等自然灾害的原因,使系统和数据信息遭到破坏甚至毁灭,如果不及时地进行恢复,将对企业造成巨大的损失,所以备份容灾技术显得尤为重要。尤其,9.11等事件造成的灾难性后果使人们更加深刻地认识到数据信息的价值和意义,日益重视数据的保护。
在过去的20多年中,虽然计算机技术取得了巨大的发展,但是数据备份技术却没有长足进步。数据备份操作代价和成本仍然比较高,并且消耗大量时间和系统资源,数据备份的恢复时间目标和恢复点目标比较长。传统地,人们一直采用数据复制、备份、恢复等技术来保护重要的数据信息,定期对数据进行备份或复制。由于数据备份过程会影响应用性能,并且非常耗时,因此数据备份通常被安排在系统负载较轻时进行(如夜间)。另外,为了节省存储空间,通常结合全量和增量备份技术。
显然,这种数据备份方式存在一个显著的不足,即备份窗口问题。在数据备
份期间,企业业务需要暂时停止对外提供服务。随着企业数据量和数据增长速度的加快,这个窗口可能会要求越来越长,这对于关键性业务系统来说是无法接受的。诸如银行、电信等机构,信息系统要求24x7不间断运行,短时的停机或者少量数据的丢失都会导致巨大的损失。因此,就需要将数据备份窗口尽可能地缩小,甚至缩小为零,数据快照(Snapshot)、持续数据保护(CDP, Continuous Data Protection)等技术,就是为了满足这样的需求而出现的数据保护技术。
二. 快照概念
快照(Snapshot)是某个数据集在某一特定时刻的镜像,也称为即时拷贝,它是这个数据集的一个完整可用的副本。存储网络行业协会SNIA对快照的定义是[1]:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本(duplicate),也可以是数据的一个复制品(replicate)。
快照具有很广泛的应用,例如作为备份的源、作为数据挖掘的源、作为保存应用程序状态的检查点,甚至就是作为单纯的数据复制的一种手段等。创建快照的方法也有很多种,按照SNIA的定义[2],快照技术主要分为镜像分离(split mirror) 、改变块(changed block)、并发(concurrent) 三大类。后两种在实现时通常使用指针重映射(pointer remapping)和写时拷贝(copy on write)技术。changed block 方式的灵活性及使用存储空间的高效性,使得它成为快照技术的主流。
第一种快照是镜像分离。在即时拷贝之前构建数据镜像,当出现一个完整的可供复制的镜像时,就可以通过瞬间“分离”镜像来产生即时拷贝。这种技术的优点是速度快,创建快照无须额外工作。但缺点也很显明,首先它不灵活,不能在任意时刻进行快照;其次,它需要一个与数据卷容量相同的镜像卷;再者,连续地镜像数据变化影响存储系统的整体性能。
第二种快照是改变块[3]。快照创建成功后,源和目标共享同一份物理数据拷贝,直到数据发生写操作,此时源或目标将被写向新的存储空间。共享的数据单元可是块、扇区、扇道或其他的粒度级别。为了记录和追踪块的变化和复制信息,需要一个位图(bitmap),它用于确定实际拷贝数据的位置,以及确定从源还是目标来获取数据。
第三种快照是并发[3]。它与改变块非常相似,但它总是物理地拷贝数据。当即时拷贝执行时,没有数据被复制。取而代之,它创建一个位图来记录数据的复制情况,并在后台进行真正的数据物理复制。
三. 不同存储层次的快照实现
“计算机科学中的任何问题,都可以通过增加间接层次来解决”-Butler Lampson,1992年图灵奖获得者。对于快照技术,我们可以在存储系统中的不同层次来实现,可以在磁盘阵列、文件系统、卷管理器、NAS系统或备份系统中来实现。
图1 存储系统栈与快照实现
存储栈由一组硬件和软件组件组成,为运行在主机操作系统上的应用系统提供物理存储介质,如图1所示。快照可以采用很多不同实现方式,也可以在存储栈中的不同层次来实现,大致分为软件层和硬件层两类,也可分为基于控制器的快照和基于主机的快照两类[4]。
基于控制器的快照,在存储设备层或硬件层中实现,由存储系统硬件提供商管理并集成于磁盘阵列中。这种快照在LUN级(块级)完成,独立与操作系统和文件系统。基于主机的快照,在设备驱动和文件系统级之间实现,通常由文件系统、卷管理器或第三方软件来执行。这种快照不依赖存储硬件,但却依赖于文件系统和卷管理软件。该快照作用于逻辑数据视图,这与基于控制器的快照的不同,它作用与物理数据。
在以上各个存储层次中,物理存储层和卷管理器是最适合实现快照的两个组件,它们可以方便地利用物理存储,是当前主流的实现层次。文件系统层实现快照是一个可行的选择,然而诸如数据库等应用会直接选择使用逻辑卷来实现快照,