编者按:
本文转自架构师技术联盟,原作者晗狄。在灾难恢复方面,快照是一种有效的,甚至可以说是首选的方法。文中作者通过对不同快照技术及其工作原理的详细说明,全面地向读者讲解了快照技术相关问题及快照一致性问题,并对快照技术实际应用给出了建议。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
快照技术一般被定义为一组文件或目录或者是卷在某个特定的时间点上的副本。 它所能捕获到的是一些特定南宫NG·28在特定时间点上的映像。 快照技术的出现是为了解决我们经常碰到的一些备份上的问题。
所有上述常见的备份问题其实都可以用快照技术来解决。但是,我们也不能单纯的将快照视为解决所有问题的灵丹妙药,因为快照技术还有待进一步完善。(例如“快照的一致性问题”)
一、快照技术的概述介绍
创建一个快照不同的设备需要不同的命令,但对于系统来说,基本都包括如下几个步骤:
现在,快照技术已经超越了简单的南宫NG·28保护范畴。我们可以用快照进行高效且无风险的应用软件测试。用快照南宫NG·28做测试,不会对生产南宫NG·28造成任何的破坏。对于南宫NG·28挖掘(Data Mining)和电子发现(eDiscovery)应用,快照也是理想的测试南宫NG·28源。
在灾难恢复方面,快照是一种非常有效的方法——甚至是首选,非常适合遭到恶意软件攻击、人为误操作和南宫NG·28损坏等逻辑错误发生时的南宫NG·28恢复。
1.1基于文件系统和LVM的快照
过去我们认为只有磁盘阵列具备快照功能,但事实上磁盘阵列只是其中之一而已。广义的快照技术通常可有7个不同类型的实现主体:
1)基于文件系统的快照
很多文件系统都支持快照功能,例如:
免费是文件系统快照的优势之一,因为它集成在文件系统内部;另一个优点是非常好用,最新版文件系统的快照功能通常使用起来很简单。
但存在的劣势是每个文件系统都必须独立进行管理,当系统数量激增时,管理工作会变得非常繁重。想象一下,如果我们要做快照复制的话,需要给每一个文件系统都配置一套复制关系,而且还只能复制该文件系统自己的快照。
此外,不同文件系统所提供的快照种类、快照频率、预留空间等参数也可能不一样,当然也包括设置、操作和管理上的差异。总之,需要管理的服务器和文件系统越多,复杂程度就越高。
2)基于LVM逻辑卷管理器快照
带有快照技术的LVM也很多,比如:
我们可以创建跨多个文件系统的LVM快照。像赛门铁克的Veritas Volume Manager可以支持大多数常见的操作系统和文件系统。LVM通常还包括存储多路径和存储虚拟化等功能。
使用LVM时,通常要付出额外的成本,包括为每台服务器购买license(许可证)和维护费。而且,像基于文件系统的快照一样,我们可能还要面对系统之间的协调问题和复杂的技术实施问题。
1.2基于NAS和磁盘阵列的快照
1)基于NAS的快照
NAS本质上就是一个经过优化的、或是专门定制的文件系统,运行在特定的设备上,或集成在存储设备里。大多数终端和企业级NAS系统都提供快照功能,其中既有使用专有操作系统的设备,也包括大量基于Microsoft Windows Storage Server软件的各种NAS。
通过网络连接到NAS的计算机系统都可以使用这种标准的通用快照,包括物理服务器、虚拟机、台式机和笔记本电脑。它也非常容易操作和管理。基于NAS的快照往往同Volume Shadow Copy Services (VSS)、备份服务器和备份Agent等软件集成在一起使用。
一些NAS厂商还为非Windows平台的南宫NG·28应用系统开发了Agent代理程序。其他一些与NAS快照有关的技术还包括重复南宫NG·28删除(EMC公司,FalconStor软件公司和NetApp的产品),有些厂商甚至提供了带有自动精简配置功能的快照,目的是让快照占用的空间变得更少。
但是,使用便利的工具和附加功能也需要成本,软件license和维护费相当昂贵,一般是按照机器数量和磁盘卷容量来计算。大多数公司的南宫NG·28量增长很快,需要使用NAS快照技术的地方也越来越多,因此,操作和管理也将更复杂。
2)基于磁盘阵列的快照
大多数磁盘阵列的软件系统里都含有快照功能。基于磁盘阵列的快照与基于NAS的快照有非常相似的优点,即所有与磁盘阵列相连的计算机系统都可以使用这种标准的通用快照功能,包括物理服务器、虚拟机、台式机和笔记本电脑等等。
快照的实施、操作和管理也都很简单。像NAS一样,很多磁盘阵列的快照功能也可以被Windows VSS、备份服务器和备份Agent等软件直接调用。一些磁盘阵列厂商还有可供非Windows平台应用系统使用的Agent代理程序。
基于磁盘阵列的快照存在的缺点是license和维护费用昂贵,对非Windows平台的应用程序支持有限,磁盘阵列的数量越多,快照的管理也就越复杂。
1.3基于存储虚拟化的快照技术
1)基于存储设备的快照
这里所说的存储虚拟化设备主要用于SAN光纤网络环境,不同于基于文件(NFS)应用的网络设备,像F5 Network公司的Acopia ARX产品就是排除在这个范畴之外的。主要的存储虚拟化软硬件存储设备(或融合了虚拟化功能的存储系统)都支持快照能力。
磁盘阵列和NAS快照所具备的优点在存储虚拟化设备上同样能够体现,而且某些方面还能做的更好。我们可以将来自不同厂商的很多存储设备聚集在少量的几个控制点或单一控制点上进行管理,提供通用的标准化快照。这样做最大程度的简化了快照的管理操作成本和学习成本。
存储虚拟化快照的缺点与上述类型相比则有些不同。使用存储虚拟化设备会导致I/O延迟的增加,即使是采用旁路架构的设计,最终还是会影响应用程序的响应时间。增加存储虚拟化设备还会使故障分析变得更加困难,潜在的还可能激化厂商之间对故障责任的推诿。
从另一个角度看,虽然增加额外的虚拟化存储硬件或软件要产生一定的费用,但是与每个存储系统都独立购买快照功能相比,它的软件license和维护费用都要低一些。
2)基于主机虚拟化软件的快照
随着服务器虚拟化应用的普及,基于主机虚拟化管理软件(Hypervisor)的快照技术也逐渐流行起来。像Citrix公司的 XenServer、微软的Hyper – V、SUN的xVM Ops Center、以及VMware的ESX和vSphere4等主机虚拟化产品都支持快照功能。
在主机虚拟化软件层实现快照的优点是简单直接。由于同虚拟机管理软件绑定在一起,因此可以为所有的虚拟机 (VMs) 提供统一的快照,并且还可以同微软的VSS集成,随时调用。相对而言,基于虚拟机的快照很容易部署、使用和管理。
但是,如果非要找出不喜欢这种快照的理由?我想应该是每一套虚拟机软件的快照需要单独管理;而且当我们在非Windows平台下使用这种快照技术时,必须针对整个VM。
这意味着我们只能做粗粒度的南宫NG·28恢复,还要消耗更多的恢复时间。这种快照是在Windows操作系统外部创建,所以它不能架构在应用软件感知的层面,导致快照出来的映像南宫NG·28有可能是不一致状态。
1.4基于南宫NG·28库的快照
在南宫NG·28库中,快照动作被称为“SnapShot Isolation (快照隔离)”。像Oracle和PostgreSQL这样的南宫NG·28库需要做快照隔离以确保所有的交易命令序列化,就好像被一个个隔开一样,然后再逐个执行。其他的一些南宫NG·28库也支持快照隔离,但并不要求将交易序列化。在一般情况下,南宫NG·28库备份工具会利用快照隔离的功能,用快照来恢复崩溃(出现一致性问题)的南宫NG·28表。
针对南宫NG·28库内部南宫NG·28和基于该南宫NG·28库的相关应用,使用南宫NG·28库自带的快照比较有效。
相反,南宫NG·28库快照的重要缺欠就是覆盖的范围非常有限,其作用仅限于特定的南宫NG·28库内部和南宫NG·28库相关的应用,无法管理同在一台服务器上的文件系统、文件类应用或其他南宫NG·28库,更不用说管理到其他的服务器了。有时候我们不得不通过其他层次的快照技术来解决南宫NG·28库之外的南宫NG·28保护问题,这样,操作和管理将变得有些复杂。
二、不同类型的快照及工作原理
通常,我们会提到6种类型的快照技术:
2.1复制写和重定向写快照
1)Copy-on-write (COW) 复制写快照技术
COW快照需要消耗一些存储空间–建立快照卷。当我们为一个南宫NG·28卷创建一个快照之后,这些预留的空间用来存放被变化南宫NG·28更新的旧南宫NG·28。COW快照在初始化的过程中仅仅创建用来描述源南宫NG·28块位置的指针信息(元南宫NG·28),而不是完整的将源南宫NG·28块拷贝过来。因此初始化的过程几乎可以在瞬间完成,对系统的影响也很小。
COW快照会跟踪南宫NG·28卷的写操作和南宫NG·28块变化。当某个南宫NG·28块发生改变时,在将旧的南宫NG·28覆盖之前,首先将该块的旧南宫NG·28复制到预留的快照卷,该步骤仅在南宫NG·28卷相应南宫NG·28块位置发生第一次写操作请求时进行。
这个处理过程确保快照出来的南宫NG·28与发起快照的那个精确时间点保持完全一致。这个过程也描述了“Copy On Write”这个名字的含义。
如果我们需要访问某个时间点的快照南宫NG·28,对没有改变过的块直接从南宫NG·28卷读取;对已经改变并被复制的块则从快照空间读取。从快照被创建那一刻开始,每个快照都会跟踪记录描述块改变的元南宫NG·28信息。
COW快照的主要优势在于空间的高效利用,因为快照卷只需要保留发生过变化的南宫NG·28块,与南宫NG·28卷相比要小得多。但是我们也知道COW快照有个缺点,它会引起南宫NG·28卷性能的下降,这是因为创建快照之后,对南宫NG·28卷的写操作会增加一个等待的过程 –即旧南宫NG·28块复制到快照卷的过程。另外一个关键问题是每个快照卷必须依赖一个完整的南宫NG·28卷。
2)Redirect-on-write (ROW) 重定向写快照
“ROW重定向写”与“COW复制写”是相对的概念,它可以避免两次写操作引起的性能损失。ROW同COW一样在空间利用方面效率非常高。那是什么让ROW快照避免了写性能的损耗?
其中的原因是ROW把对南宫NG·28卷的写请求重定向给了快照预留的存储空间,而写操作的重定向设计则把需要两次写才能完成的操作减少为一次写。我们知道COW的两次写包括:
使用ROW快照,南宫NG·28卷存放的是上一个快照时间点的旧南宫NG·28,新南宫NG·28最终存放在预留的快照空间。这里也有一个复杂的问题,就是快照的删除。被删除的快照上的南宫NG·28必须被复制到原始南宫NG·28卷,并且做一致性回退。创建的快照越多,维护快照的复杂度也会以指数级别上升。
这些复杂性包括对原始南宫NG·28的访问、快照南宫NG·28和原始南宫NG·28卷的跟踪、以及快照删除后的南宫NG·28调整。另一个直接引发的严重问题是,原始南宫NG·28集中会产生大量的碎片。
2.2克隆和后台拷贝快照技术
1)克隆或分割镜像快照
Clone(或Split-Mirror) 快照所创建的是南宫NG·28的完整副本。Clone(或Split-Mirror) 快照的对象可以是一个存储卷、一个文件系统或者是一个LUN (logical unit number 逻辑单元号)。
Clone快照的优点是它们具有高可用性;缺点是所有的南宫NG·28都要完整的复制一份,复制的过程也不可能在瞬间完成。我们可以分割一对保持同步状态的镜像卷来启用Clone快照,分割的过程瞬间即可完成。然而,当镜像被分割成Clone快照之后,南宫NG·28卷也就失去了他的同步镜像。
使用Clone快照需要面对的一个非常严重的问题是每个快照都需要和南宫NG·28卷一样大的存储空间。尤其是当我们在任何时刻都需要保持一份以上Clone卷的情况,这个成本会非常高。另一个缺点是影响性能,因为在镜像卷之间保持写同步需要一定的系统开销。
2)后台拷贝的复制写快照
该快照有两个生成步骤,首先创建一个瞬时即可生成的COW快照;然后利用后台进程将南宫NG·28卷的南宫NG·28复制到快照空间,最后生成一份南宫NG·28卷的克隆或镜像。
创建这种快照的目的是发挥COW快照的优势,同时尽量屏蔽它的不足。因此,这种快照常常被形容为COW和Clone快照的混合体。
2.3增量快照与持续南宫NG·28保护
1)(Incremental)增量快照
增量快照的特点是可以跟踪南宫NG·28卷和快照卷的变化。当一个新的增量快照生成之后,旧的快照南宫NG·28将被刷新。第一个快照和随后创建的每一个增量快照南宫NG·28上都有时间戳标记,利用时间戳我们能够将快照南宫NG·28回滚到任意的一个时间点。增量快照技术能够加快后续快照的生成速度,而且仅仅在名义上多消耗了一点空间而已。由此,我们可以提高创建快照的频率,也能让快照保留得更久一点。
增量快照的不足之处是它需要依靠上面所提到的其他基础技术来创建第一个快照 。如果用Clone方式,那么第一个快照需要较长的初始化时间;如果用COW方式,南宫NG·28卷的性能会降低。
2)持续南宫NG·28保护(CDP)
CDP的出现是为了实现零南宫NG·28丢失的RPO指标,以及瞬时南宫NG·28恢复的RTO指标。它本身与同步南宫NG·28镜像很类似,不同之处在于CDP还可以对软性灾难进行恢复。包括人为误操作、恶意软件攻击、意外删除、南宫NG·28损坏等情况。
持续南宫NG·28保护颇像频率很高的增量快照。它会捕获并复制任何时刻发生的南宫NG·28变化,并且给这些南宫NG·28块打上时间戳。CDP本质上相当于每个时刻都创建一份增量快照,提供细粒度的精确南宫NG·28恢复。有些CDP产品同时提供基于时间和基于事件(例如应用程序升级事件)两种粒度的恢复方式。还有一个理解CDP概念的好方法就是将它看成一个快照的Journal日志。
对于邮件系统、南宫NG·28库和基于南宫NG·28库的应用来说,CDP是一个极好的保护方案,能将南宫NG·28回滚到任意的历史时间点,恢复过程也简便、迅速。最有代表性的CDP产品是飞康公司的IPStor,它是一个集成了CDP功能的存储系统兼存储虚拟化设备。
随着越来越多的南宫NG·28需要保护,备份窗口也变得越来越紧张,因此需要快照技术来帮助我们解决备份问题。在现实的应用环境中,快照利用的是否恰当对南宫NG·28保护的等级和恢复的速度有着很大的影响。尽管各类型快照之间存在的技术差异不太容易理解,但无论如何,快照技术都将在南宫NG·28保护领域和日常存储管理中扮演重要的角色。
三、快照的一致性问题
如果用快照来处理结构化南宫NG·28,可能会存在一些问题。结构化南宫NG·28涉及到南宫NG·28库,以及南宫NG·28库类应用(例如邮件系统、ERP或CRM等等)。许多产品中的快照并不能与这些应用程序集成或被直接调用。有一种可能的情况是,在我们创建快照的瞬间,南宫NG·28库恰好不在静止状态(缓存正在刷新、写操作事务尚未完成、索引和元南宫NG·28正在更新等等),此刻生成的快照南宫NG·28是不一致的,很有可能无法正常使用。
在微软的Windows Server平台上,这个问题要简单得多,利用Windows Volume Shadow Copy Services (VSS)和它的API,南宫NG·28库应用程序可以集成并调用快照工具。VSS是专门为结构化南宫NG·28应用设计的服务框架,可以驱动南宫NG·28库等应用进入南宫NG·28一致性的静止状态,在快照开始初始化之前,完成刷新缓存、结束写操作以及系统状态的更新。
遗憾的是,目前在Linux和Unix操作系统平台上还没有类似VSS的服务或API。VMware公司的vCenter storage API可以说是一个部分解决方案。快照的发起者可以通过vCenter storage API给vCenter发出一个指令,让虚拟机进入静止状态,然后再执行快照。但这个时候,快照由于没有通过应用程序感知,也许会存在不一致的问题。
这里还有一个好办法,可以不通过Windows VSS,获得南宫NG·28库的一致性快照。这个办法需要备份软件的配合。将快照技术的API同备份软件集成,就可以从备份服务器端驱动备份软件的南宫NG·28库代理Agent。Agent备份代理程序可以驱动南宫NG·28库进入静止状态,然后反向让备份服务器通知快照工具开始执行创建快照的操作。这也是一个比较有效的办法。
及时响应,快速服务,为您保驾续航
立即注册