对于每一个企业来讲,数据备份都是必不可少的一项关键性工作,它直接决定着企业能够应对什么样的数据威胁以及相应解决方案的灵活度和有效性。但是在IT飞速发展的今天,每一个企业的应用系统在不断增加,数据类型在不断的多样化,数据的量级也在不断的扩展。在这种形势下,如何能把备份系统规划的科学合理并且高效化是作为IT建设者必须考虑的问题。
本文通过大量的调研分析总结抽象出备份系统规划时必须考虑的几个关键性问题,并针对每一个问题进行分析和论述,提出解决思路。希望能给企业进行备份系统建设、改造或者升级的项目带来一些启示和帮助。
1.如何确定备份对象及备份策略
近些年来,企业的数据逐渐呈现多元化格局,从数据的模型层面可以分为结构化数据、半结构化数据、非结构化数据。从企业IT功能层面又可以将常见数据列为如下几类:
- 关系型数据库中保存的二维表数据。
- 非关系型数据库中的文档、JSON、键值等类型数据。
- 以文字方式记录的文本、PDF、XML等文件形式的数据。
- 以二进制方式记录形成的图片、网页等数据。
- 以视频流方式记录形成的媒体类数据。
作为企业来讲,确定备份哪些数据对象,需要从数据重要性、数据量、数据特点等若干方面去评估。从企业业务角度评估的话,那么数据库保存的数据一定是最重要的,尤其是关系型数据库里面的二维表数据。其次需要根据行业特点以及具体的业务系统重要性来评估非结构化数据的重要性。
比如对于金融行业来讲,记录业务过程的一些影像类数据可能在业务审核过程中经常被调出查阅,这些数据虽然没有结构化数据那么重要但是也是业务环节当中比不可少的元素,其重要性相对业务视频类以及安防类视频数据会高很多。但是如果是媒体行业的话,那么视频类数据的重要性恰恰是支撑其业务的核心数据,其重要程度不言而喻。那么如何来决定哪些数据需要备份,以什么样的策略备份?
首先,我们需要确定数据的重要性程度。本文通过结果导向的思路从以下维度来分析企业数据的重要性,最终决定哪些数据需要备份,哪些数据可以不备份,哪些数据需要根据企业的实际投资战略情况来决定。
首先我们假定一个结果,那就是某个应用系统的某类型数据由于硬件故障或者其他原因导致数据丢失掉了。那么就看企业对该结果的容忍程度,假设不能容忍,那么就没什么好商量的了,肯定要做备份。接下来,最重要的事情是我们如何定义数据备份的策略,包括备份的频度、备份的模式、归档的档期等等一系列备份作业元素。这部分内容需要考虑到数据本身的量级、数据的具体类型、极端条件下对数据恢复时间及数据丢失量的容忍程度、数据备份系统以及备份介质本身的性能特性、业务发展的规模及趋势判断等等。
本文从以下几个原则来进行评估:
- 数据库的备份既要有全量备份也要有归档日志的备份,全量备份可以根据数据量及重要程度以天为单位进行频度调整;归档备份可以根据数据库恢复区空间预留、归档增长趋势、数据恢复时间要求、业务系统归档特点等多方面来进行以小时为单位的频度调整和作业发起调用。
- 文件类型数据可以根据具体数据量来选择是否利用传统的文件复制方式来实现其备份,对于数据量大的情况可以采用存储快照方式进行卷级别的复制代替以文件为单位的扫描复制方式。
- 系统备份作业的分布以及备份时间需要结合具体的备份窗口来进行合理调整,关键业务系统的备份作业不能影响到正常的业务,需要有强制的约束条件来约束备份作业时间跨度。尤其是全量备份,随着业务不断发展,数据量会与日俱增,如果对备份作业不进行任何调整,那么很有可能原有备份作业会超越备份窗口影响到业务性能。
- 根据具体的数据类型和业务重要性对所有备份作业进行分级管理。有些数据需要持续备份,有些数据可能只需要在特殊变更日进行备份即可,例如虚拟化的VMDK文件数据,完全没有必要进行持续备份,只需要在变更后进行备份即可。
以上是对备份对象的确定以及如何把握具体的备份策略的分析和描述,具体细节及关键方法在接下来的章节会有详细的剖析和介绍。
2.如何选择备份架构的问题
2.1 备份系统涉及到的关键对象
所谓备份系统中的一些关键对象包括:备份软件、备份介质、备份管理服务器、备份作业服务器、备份路径等。这些关键元素共同组成了一个完成的备份系统。
- 备份软件:常用的备份软件包括IBM TSM、EMC Networker、SYMANTIC NBU等。
- 备份介质:常用的备份介质包括带库、EMC DATADomain、常规存储等。
- 备份管理服务器:对备份作业进行配置调度并且保存备份元数据的集中管理节点。
- 备份作业服务器:具体执行备份作业的备份服务器。
- 备份路径:每一个备份作业从客户端采集数据到备份介质的整个路径。
2.2 基于容灾功能的备份架构
一般的企业可能只需要进行本地备份即可,但是对于某些行业尤其是金融行业,备份要求比较高,需要采用主数据中心和备数据中心联动的高可用备份架构。具体如下图所示:
整体架构从上到下分为三层:备份客户端层、备份控制层以及数据存储层。中间通过网络(以太网络或者是光纤网络)相连接。红色线表示控制信息流向,蓝色线表示备份过程中的数据流向。
- 备份客户端层,图中最上面的部分既是。备份客户端是我们要备份的数据对象存放的服务器,例如数据库服务器、虚拟化平台的VCenter、NAS服务器等。一般需要备份软件的客户端AGENT安装到备份对象服务器上实现备份目标与备份服务器的通讯。
- 备份控制层,图中中间的部分既是。主要包括备份主服务器和备份作业服务器,主服务器根据配置好的调度策略以及整体架构中的备份元素发送作业调度指令,并且将存储片的元数据存储到主服务器上的数据库当中。然后作业服务器可以通过与客户端的交互完成具体备份作业。元数据是具体备份片的索引信息、而真正的备份片数据会通过作业服务器送入备份介质当中,当我们对数据进行恢复时,首先需要对备份数据的元数据分析才能知道具体的数据备份位置及组合信息等,然后才能通过元数据的组织和具体备份片的恢复完成一个业务数据的完整恢复。
- 数据存储层,图中对下面的部分既是。实际上就是备份数据最终要存储的地方,可以通过光纤网络或者以太网络实现其与备份控制层的连接。传统模式一般会是光纤网络和虚拟带库的组合模式,其优点在于备份速度和容量的性价比上。但是近些年来随着以太网技术的发展,利用高速网络实现的备份数据传输同样可以保障其备份速度,同时具备更好的灵活性。所以近些年来利用万兆以太网和DDBoast组合的方式也越来越多。
2.3 备份架构高可用性分析
整个备份系统的高可用性是由每一个部分服务的高可用配置来保障的,主要包括备份控制层、备份存储介质层以及跨数据中心级别的高可用架构配置。下面我们分别来做剖析:
- 主备份服务器是整个备份系统的集中控制节点,其保存的元数据也是备份得以恢复的关键数据,因此为了保障主服务器的不间断工作,需要保障主服务器为主备或者更高级别的高可用架构,元数据为所有本地主服务器共享,如图2.2中所示的HA模式。
- 作业服务器是所有备份作业的执行者,必须将其组成一个备份作业服务器池,由这个备份作业服务器池向客户端提供统一备份作业服务才能保障备份作业的不间断性以及备份作业并发执行的性能,备份作业可以分布在不同的作业服务器节点上进行作业,如图2.2中所示的负载均衡资源池模式。
- 从备份存储介质层面上来看,为了保障备份作业无中断目标,我们需要将两个或者多个存储介质设备绑定为一个虚拟的存储介质池,当存储介质发生故障时可以自动切换存储介质设备,至少可以手动切换存储介质设备。
- 容灾角度来看,如图2.2所示:两个备份域之间备份介质可以通过光纤网络层或者是以太网络实现数据的异步复制,这样可以保障真正的备份数据可以跨地域实现数据保护,但是光有这些数据我们无法实施数据恢复,因为数据恢复过程中最主要的是要根据元数据记录的备份片索引及结构目录找到真正的数据备份片实现完整的数据恢复。所以主备份服务器也要实现跨域界别的元数据复制。
3.如何解决非结构化数据备份的问题
3.1 非结构化数据备份面临的困境
对于存储在传统NAS文件系统上的文件类数据,如果用通用的备份方法只能通过文件复制的方式来实现其全量和增量备份。但是随着日积月累的非结构化数据增长,这类数据可能会从TB级别发展到10TB甚至PB级别。这类数据存储组织的方式是文件系统的树目录形式,随着数据的增加,其目录的深度和规模也会呈现剧增趋势。备份软件在扫描文件目录的时候会变得非常非常慢,最终导致备份作业慢到超过备份窗口的程度。
3.2 业务管理层面的解决方案
如果从业务管理层面来解决该问题的话,那么就是要让备份作业在一定时间段内保持在合理的数据量范围之内,也就是说要形成合理的多级数据缓存,根据数据使用频度建立多级转储以及归档体系。保障使用频度高的数据在日常备份作业范围内,合理归档使用频率非常低的历史数据。拿金融行业的票据、信贷类系统来说,我们可以将合理业务周期内的非结构化数据存在在一级缓存当中,保障业务复核阶段的数据读取;将业务周期外的非结构化数据转储到二级NAS平台上,保障近期内可能使用到的业务场景;将较长周期之前的数据定义为离线数据,归档到归档存储设备当中。备份仅仅涉及到归档之前的数据。这样既可以保障数据存取的性能,又能保障备份作业的长期稳定性,最终保障备份系统整体的安全稳定。
3.3 技术管理层面的解决方案
通过3.1章节对问题的原因分析,我们知道导致备份无法进行的原因在于备份软件对于庞大文件系统目录的扫描时间过长。那么顺着这个思路,如果我们在备份的时候能避免去扫描整个文件系统目录,而是通过别的方式来完成备份,就可以解决这个问题。通过调查研究我们发现目有两种方法可以实现:
1)传统NAS的快照方式。对于传统的NAS存储来讲,快照是非常普遍的功能,通过NAS本身的快照复制,我们可以不用扫描文件系统没目录,仅仅基于某一个时刻点的快照,进行卷级别的复制实现全量备份;通过块儿级别的对比实现增量备份,因为NAS设备底层还是基于块儿设备实现的。当然这种技术需要对存储本身的快照功能有非常强的依赖性。
2)分布式NAS存储的日志记录方式。某些基于分布式技术实现的NAS存储可以对外提供日志操作的接口,也就是说对文件数据的增加和更新会记录到存储本身的底层日志当中,那么我们仅仅需要调用日志比对的接口就可以快速找到更新的目录和文件,仅仅需要扫描更新的部分做增量的复制来完成备份。
以上的两种技术方案需要我们在做备份规划之前的选型阶段对不同的备份软件及存储介质等进行深度调研和分析,尽可能科学合理组合实现以上解决方案。
4.如何解决平衡数据库归档频度和数据恢复完整性
4.1 数据库恢复的基本原理
对于数据库的恢复来说有很多种,我们只讨论需要介质恢复的情况。在这种场合下,首先我们需要找到一个最近时刻点的全量备份进行恢复;然后需要从备份介质上找到这个时刻点之后的重做日志进行数据追平,***我们需要找到本地没有丢失的重做日志进行再次追平直到没有可用日志。如下图所示:
如图所示,在时刻A,我们开始做在线全库备份,在B时刻全库备份结束。当数据库运行到E时刻之后数据库发生了重大介质故障,只能通过介质恢复。那么在A~C时间段内,大部分REDO日志文件都已经归档到备份介质池当中,服务器本地存储目录当中只剩下C~E(小于一个归档备份时间间隔)的归档日志和没有来得及归档的REDO日志文件。
假设发生的故障严重到服务器本地存储目录也无法恢复的时候,那么相当于在C-E这段时间产生的重做日志就丢失掉了。相当在这种极端场合下,数据丢失的***窗口就是一个归档间隔时间段。当然如果把这个间隔设置的足够小的话,那么另外的问题就产生了,备份作业随着系统增加会呈爆发式并发启动状态,最终会影响到整个备份系统的健康运行导致归档无法及时转储,最终还是可能会导致数据库的宕机。这就是一个矛盾,需要我们去很好的平衡。
4.2 平衡数据库归档频率的方法
数据库归档备份的频率是指一天24小时内间隔多长时间进行一次归档日志的备份,一方面是要保障增量数据备份的完整性,另外一方面是要避免因为恢复空间不足导致数据库的宕机时间。要平衡这个频率窗口需要采集以下几类数据:
1)单位时间内不同数据库系统平均的归档日志量。
采集这个数据的目的在于详细分析不同业务系统在不同时间段的写操作频繁程度。对于日志归档速度较快的系统,我们需要提高其恢复区的空间大小,同时加快归档备份的频率,使得数据库既能处于安全运行状态又能保障极端故障场合下数据丢失的量在较小范围之内。
2)业务系统类型。
所谓业务系统类型即OLTP或者是OLAP,因为对于OLAP来讲,每次的读写操作都会是批量的执行,它的归档速度是正常OLAP系统的几十倍甚至上百倍。最麻烦的是两者皆有的业务系统,比如说银行业中的交易系统,白天跑联机交易,晚上跑核算批量,白天和晚上的日志归档速度有着巨大的反差。那么我们就需要在批量作业时间段内将备份频率调快,将恢复区空间设置提高。
3)备份系统可以容忍的***并发量。
备份系统可以容忍的***并发Jobs,不仅仅取决于备份软件系统可以并发调度的作业数目和备份作业服务器的数目,还要取决于备份介质池可以容忍的资源消耗限制。及时我们可以同时调度几百个作业,但是当几十个作业同时写入备份介质池时就会把备份介质池的计算资源或者是IO资源使用殆尽。那么最终整个备份系统的并发数取决于短板因素。
4)不同数据库系统恢复区能够支撑最小时间窗口。
这个最小时间窗口是我们用数据库的恢复区可用空间大小/单位时间内的***归档速度来估算出来的时间窗口。因为我们在安装数据库或者是做变更的时候不可能按照每一个系统的特点详细计算出其日志存储空间的大小,只能按照有限的几个规格来做初始规划。
有了以上数据之后,我们需要根据以下几个原则来详细设计我们的归档作业频率。
首先,根据4当中采集到的数据,将时间窗口较小的几个系统进行存储空间调整,使其日志存储空间能够满足我们期望的最小时间标准。
然后,将一天24小时定义为几个时间段,批量业务集中的时间段、联机业务集中的时间段、特殊任务集中的时间段等。当然这个定义主要是根据1&2中采集到的详细数据来定义的。
接着,我们需要根据1中数据估算出一个归档作业大概持续的时间长度。为保障每一个时刻点的并发执行备份作业数目远小于3中估算出来的数据。
***,需要把备份作业的频度根据不同的时间段特点调整到以上条件都满足的状态,并在此前提条件下可以为了保障极端情况下的数据完整性而适当调快归档作业的备份频率。下图是一个根据以上采集数据进行多维分析的实例,仅仅是一个方法示意,归档频率根据数据重要性分级、归档速度、业务时间段分类等前提进行的粗略分析,最下面的一行数字表示每一个时刻点并发的归档备份数目,其目标在于平衡每一个时间间隔内的平均备份作业数。实际情况会比以下情况复杂很多,我们可以将时间间隔划分的更小,涉及的因素更多,分析的更加细致。、
5.如何评估数据库全量备份的策略
数据库的全量备份来讲,随着数据量的不断增加,其备份作业耗费的时间也就会越长,耗费的数据库资源也越多,对在线业务的影响也就越大。另外同一个时间段内发起的全量备份越多,那么其占用的备份系统整体资源(备份服务器、备份介质池、链路带宽等)也就会越多,其影响范围也会越广。
首先,这个问题是一个需要不断优化的问题。对于每一个应用系统来讲,根据业务服务的特点,其备份的时间窗口也是不同的。可能初期备份作业能够在备份窗口内完成,但是随着数据量的增长,后期的备份作业就会超过备份时间窗口。所以我们需要定期监控数据库的全量备份作业时间,在事件窗口范围内尽量通过调整合适的调度时间来完成全量备份。但是当数据量增长到完全没办法在备份窗口完成的时候,那么我们就需要进行调整全量备份的频度和具体调度时间点了。
其次,这个问题是一个跟业务特点密切相关的的问题。有些人喜欢把所有的业务系统都按照一个标准去定义其数据库全量备份的策略。比如说TB以下的数据库,每天一次全量备份;比如说业务等级属于重要的系统,每天一次全量备份;比如说只要能备份的系统,全部进行每天一次的全量备份等等策略。这些都是不科学的策略。应该从业务系统的数据重要性去评估数据库全量备分的频率,在现有备份系统有限的处理能力内保障数据重要性高的系统完成相应的全量备份。
***,这个问题是一个需要从各个方面着手去解决的问题。从备份网络的带宽和隔离性考虑,应该用单独的告诉备份网络,备份客户端应该设置区分于业务的单独网络通道及配置。从备份作业服务器的配置层面,我们应该配置相对合理的资源(内存、磁盘)来保障备份片在作业服务器层没有瓶颈。从备份介质池层面,我们需要保障备份介质的IO处理能力不能成为备份作业底端的性能瓶颈。
6.如何解决备份作业分布合理性问题
其实这个问题很简单,目的就是要保障备份时间窗口内调度起来以及运行过程中的备份作业处于一种平衡状态,不能使其作业调用或者是并发运行过于集中。但是当系统数目非常多,系统特点复杂,数据重要性级别有很多种,数据量以及数据增速各不相同时,这个问题就变得比较复杂。我们很难有一种精确的计算方法来实现其做到绝对,但是我们可以根据以下的方法进行定性的分析和调整。
假设我们定义一个系统的备份作业在备份体系当中必须具备的属性为:
P1 - 应用系统数据的重要性级别属性,可以通过业务分析划分为有限的几个级别。
P2 - 应用系统在不同时间段内的数据增量属性,需要通过梳理历史数据来评估。
P3 - 应用系统当前的备份作业的时间长度属性,需要通过历史数据结合数据量来评估。
P4 - 应用系统是否是具备双重业务特性,比如兼备批量和联机业务特性。
通过以上几个属性的加权计算或者其他方法的定性分析,计算出每一个系统的不同备份作业的定性矢量,然后我们可以将这些矢量根据其具体备份窗口设置初始的调度时间点,然后分析其具体分布图是否均衡稳定并且进行微调。例如下图是一个粗略的分析实例,可以提供相关的参考思路:
以上案例仅仅是一个相对粗略的分析方式,仅仅是一个基于某一特定案例的分析思路。我们可以根据业务系统特点结合更好的专业工具进行更加细节的分析。但是总体目标是让我们的备份作业分布达到一定范围内的平衡,另外在某些特定的业务场合或者特定的设备场合下,可能会有一些特殊的时间窗口需要和备份作业适当分割开来,比如说基于文件系统技术实现的备份介质存储池,由于我们的周期性归档配置,它会定期去做文件系统的清理作业,而且时间段比较长,耗费资源比较高。我们尽量要讲备份作业的分布策略与这些时间段保持适当的分割。这样才会保证备份系统运行的长久安全稳定。
7.如何解决业务发展与备份系统有限性瓶颈
所谓的业务发展在备份体系建设过程中包括几个方面的影响。一方面业务量的增长会导致备份作业的不断增加,另外一方面业务量的增长会导致现有备份作业负载的不断加剧,再有就是各种新业务的增加会带来新型模式数据备份的挑战。这几方面的因素不但会对现有备份系统的负载扩展能力提出巨大挑战,也会对现有备份系统功能扩展能力提出巨大挑战。
解决以上问题,本文认为唯一可行的方法就是从单一传统的备份系统逐渐过渡到完善的备份体系。传统的备份软件形成的格局只是这个体系的一个元素,基于快照的备份接口、基于软件加速的接口、基于异构平台转储的模块儿都应该成为这个体系当中的扩展元素;同时备份介质也应该从单一的带库、DD等传统备份介质扩展到由现有备份介质池和分布式存储池、对象存储池、云端备份池等多种元素组成的广义备份介质池;单一的备份恢复模式也应该转换为多级数据一体化模式,既包括多级数据的转储归档机制,又包括数据自动化下沉和上浮的机制,数据流向实现自动化平滑轨迹。
目前可以实现以上体系的软硬件产品组合有很多,各家都有各家的特点和局限。关键是要靠规划者根据自己的业务特点和长远的发展预测来选择和集成合适的解决方案。
8.总结和展望
本文基于企业备份系统建设过程遇到的一些问题进行深入调查和剖析,并切合企业具体问题案例从特定问题角度出发给出分析思路。随着目前的分布式技术、云计算技术、互联网技术等的不断发展,备份体系建设的内容会呈现越来越多的新模式和新思路。
解决的方法也不局限于企业的数据中心内部,一些结合云计算的整体解决方案也在不断诞生,它会涉及到数据的整个生命周期,当然这个根据不同的行业也会呈现不同的思路和模式。本文将次作为一个基础性的思考,更重要的是希望能引起更多从业者从不同角度的思考和提炼,并分享出来供大家参考。
作者:赵海,在某城商银行系统规划设计中心任系统架构师,专注于银行数据中心解决方案规划及设计工作。他是twt社区“虚拟化”、“数据复制技术”等多个领域的专家。