一种基于Hadoop文件系统实现数据异地容灾的方法
技术领域
本发明属于数据安全技术领域,具体的说是一种基于Hadoop文件系统实现数据异地容灾的方法。
背景技术
PM系统(performance management system,性能管理系统)一般用于电信运营商网络的性能监控,通过对EMS(Element Management System,网元管理系统)系统和NE(Network element,网元设备)网元的性能数据的采集、解析、入库、汇总和展现,来对电信运营商网络的整体性能状态和发展趋势给出直观显示。PM系统由于管理着数量庞大的NE网元设备,每个NE网元设备每隔5分钟或15分钟持续上报性能数据,造成PM系统的性能数据量增长很快,而采用常规性能数据的容灾备份方式,由于备份效率低下,造成备份数据的速度远低于性能数据生成的速度,而导致性能数据永远备份不完的情况。
随着大数据时代的到来,越来越多的大型信息处理系统,采用了分布式文件系统作为数据存储的载体,而Hadoop(Hadoop Distributed File System,简称HDFS)作为主流的分布式文件系统,已经得到广泛推广和使用。PM系统必须解决海量性能数据存储的问题,而采用Hadoop分布式文件系统来存储这些性能数据,是一个非常好的选择。但是,这些海量的性能数据还是给PM系统带来另外一个难题,如何高效率的实现PM系统的数据异地容灾?
PM系统的性能数据具有下列特点:
1)性能数据由PM系统通过采集EMS系统和NE网元的原始指标数据之后,再经过解析、入库、汇总之后生成,这些性能数据具有比较强的时间稳定特征,也即性能数据生成之后,随着时间的推移,性能数据会变成历史数据,不会被更新和修改,因此,性能数据非常适于用增量同步的方式来进行数据同步;
2)性能数据的数据来源为数量庞大的NE网元设备,这些网元设备按5分钟或15分钟的频率,定期输出自身的性能数据,这些原始的性能指标数据数据量非常巨大,比如一个中等规模运营商网络的一小时的网元设备的性能数据量大约为4到6GB左右,由此导致PM系统的性能数据量增长速度很快,如果采用传统的数据容灾备份方式(比如Oracle系统DataGuard),往往由于数据备份效率低下,数据备份速度赶不上数据量增长速度,会出现性能数据的异地容灾备份永远备份不完的情况。
因此,针对PM系统的现状,迫切需要一种全新的数据异地容灾备份机制,要求该机制能够对性能数据按增量方式进行备份,并提供高效的性能数据导出和导入能力。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种快速高效的PM系统中基于Hadoop文件系统实现数据异地容灾的方法。
本发明所述一种基于Hadoop文件系统实现数据异地容灾的方法,解决上述技术问题采用的技术方案如下:所述一种基于Hadoop文件系统实现数据异地容灾的方法,利用PM系统的性能数据具有时间稳定的特征,适于做数据增量备份,同时性能数据全部存储在Hadoop分布式文件系统中的特性,利用Hadoop分布式文件系统数据导入/导出的机制,将数据以文件方式从Hadoop系统中导出,然后将文件加密传输到异地容灾系统,最后将文件导入到容灾系统的Hadoop系统中实现数据异地容灾的同步备份。
优选的,根据PM系统的硬件配置和应用服务在异地搭建PM容灾系统,在PM系统中部署容灾导出模块,在PM容灾系统中部署容灾导入模块;PM系统的性能数据文件入库进程,在进行性能数据文件入库到Hadoop文件系统中并将性能数据刷新到Oracle的同时,将新增的性能数据文件记录下来;后继容灾导出模块定期扫描性能数据文件入库记录,找出新入库的性能数据文件列表,再利用Hadoop文件系统的文件导出功能,批量导出到本地目录中,进行文件打包压缩之后,基于SFTP文件传输方式传输到异地的PM容灾系统中;PM容灾系统对接收后的压缩包解压到本地目录中,再通过容灾系统的Hadoop文件系统的文件导入功能,将解压后的性能数据文件批量导入到Hadoop文件系统中,同时将性能数据刷新到容灾系统的Oracle数据库中,从而实现PM系统的性能数据异地容灾备份。
优选的,PM系统中性能数据pia文件的异地容灾步骤如下:
步骤101:由pia文件入库进程负责将性能数据pia文件批量导入到Hadoop文件系统中,同时将新入库的pia文件名称记录到pia文件入库记录表中;
步骤102:基于101步骤导入Hadoop文件系统的性能数据pia文件,刷新pia文件中的性能数据到Oracle数据库中;
步骤103:容灾导出模块扫描pia文件入库记录表,找出新入库的pia文件列表;
步骤104:基于103步骤找出的pia文件列表,从Hadoop文件系统中批量导出pia文件到本地目录,并打包压缩成压缩文件;
步骤105:将压缩文件用SFTP文件传输方式,从PM系统远程传输到PM容灾系统;
步骤106:PM容灾系统将PM系统传输过来的压缩文件接收到本地目录,并解压释放出pia文件,移动到性能数据文件同步目录下;
步骤107:容灾导入模块定期扫描性能数据文件同步目录,将新传输过来的pia文件,导入到容灾系统的Hadoop文件系统中;
步骤108:基于107步骤中新导入容灾Hadoop文件系统中的性能数据pia文件名称,将pia文件中的性能数据,刷新到容灾系统从Oracle数据库中;
步骤109:对于已经导入Hadoop文件系统的性能数据pia文件,从性能数据文件同步目录下进行清理,确保性能数据文件同步目录下不存在无效的pia文件。
本发明所述一种基于Hadoop文件系统实现数据异地容灾的方法与现有技术相比具有的有益效果是:本发明将PM系统的性能数据文件,利用Hadoop分布式文件系统的文件导出/导入功能,定期增量备份到异地容灾系统;本发明通过数据文件的方式来实现数据容灾备份的备份效率非常高,远比常规的数据备份手段,比如从Oracle数据库中用export增量备份,或者通过DataGuard的数据日志重做的方式,来实现数据增量备份的效率高很多;本发明仅仅取决于Hadoop分布式文件系统的文件导入/导入的I/O瓶颈,因此可以有效解决当前PM系统的性能数据异地容灾备份时,采用常规方式在限定时间内无法完成的问题。
说明书附图
附图1为PM系统中性能数据pia文件的容灾导出示意图;
附图2为容灾系统中性能数据pia文件的容灾导入示意图;
附图3为基于Hadoop文件系统实现数据异地容灾的方法的流程图;
附图4为基于Hadoop文件系统实现数据异地容灾的操作示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述一种基于Hadoop文件系统实现数据异地容灾的方法进一步详细说明。
针对PM系统中性能数据量增长速度快,采用常规的数据容灾备份方式时(比如DataGuard),由于数据容灾备份速度慢导致性能数据的异地容灾备份无法完成的难题,结合PM系统中性能数据具有比较强的时间稳定性适合采用数据增量备份,以及PM系统采用Hadoop分布式文件系统作为数据存储载体的特点,本发明提供一种基于Hadoop文件系统实现数据异地容灾的方法,利用PM系统的性能数据具有时间稳定的特征,适于做数据增量备份,同时性能数据全部存储在Hadoop分布式文件系统中的特性,利用Hadoop分布式文件系统数据导入/导出的机制,将数据以文件方式从Hadoop系统中导出,然后将文件加密传输到异地容灾系统,最后将文件导入到容灾系统的Hadoop系统中,高效地实现数据异地容灾的同步备份。
实施例:
本实施例所述基于Hadoop文件系统实现数据异地容灾的方法,根据PM系统的硬件配置和应用服务在异地搭建PM容灾系统,在PM系统中部署容灾导出模块,在PM容灾系统中部署容灾导入模块;PM系统的性能数据文件入库进程,在进行性能数据文件入库到Hadoop文件系统中并将性能数据刷新到Oracle的同时,将新增的性能数据文件记录下来;后继容灾导出模块定期扫描性能数据文件入库记录,找出新入库的性能数据文件列表,再利用Hadoop文件系统的文件导出功能,批量导出到本地目录中,进行文件打包压缩之后,基于SFTP文件传输方式传输到异地的PM容灾系统中;PM容灾系统对接收后的压缩包解压到本地目录中,再通过容灾系统的Hadoop文件系统的文件导入功能,将解压后的性能数据文件批量导入到Hadoop文件系统中,同时将性能数据刷新到容灾系统的Oracle数据库中,从而实现PM系统的性能数据异地容灾备份。
PM系统整体异地容灾备份的备份内容包括:应用程序的配置和模板、数据库结构、性能数据pia文件、原始性能数据文件pif文件等,而性能数据pia文件的数据量占总体备份数据量的85%以上,因此性能数据pia文件的能否迅速顺利备份,具有决定性的意义。
本实施例所述基于Hadoop文件系统实现数据异地容灾的方法,为了实现性能数据的快速异地容灾备份,PM系统中性能数据pia文件的容灾导出如图1所示,由pia文件入库进程,负责将性能数据pia文件导入到Hadoop分布式文件系统中,同时将pia文件中性能数据刷新到Oracle数据库中,并将导入的pia文件名称记录到入库记录表中,容灾导出模块会定期扫描pia文件入库记录表,从中找出新入库的pia文件名称列表,按文件名称列表从Hadoop文件系统中,将相应pia文件全部导出到本地目录,进行打包压缩,通过SFTP文件传输方式传输到异地的容灾系统。
因为性能数据分布在大量pia文件中,这些pia文件的大小比较适中,不会存在文件过大或过小情况,用SFTP文件传输方式来传输文件时,对传输网络带宽利用比较合理,不会出现网络过于拥挤或过于空闲的情况。
PM容灾系统中性能数据pia文件的容灾导入如图2所示,PM容灾系统对接收到压缩文件进行解压,将解压后的pia文件全部导入到容灾系统的Hadoop文件系统中,同时刷新pia文件中的性能数据到容灾系统的Oracle数据库中,实现PM系统的性能数据快速异地容灾备份。
本实施例所述基于Hadoop文件系统实现数据异地容灾的方法,PM系统中性能数据pia文件的异地容灾步骤如附图3所示:
步骤101:由pia文件入库进程负责将性能数据pia文件批量导入到Hadoop文件系统中,同时将新入库的pia文件名称记录到pia文件入库记录表中;
步骤102:基于101步骤导入Hadoop文件系统的性能数据pia文件,刷新pia文件中的性能数据到Oracle数据库中;
步骤103:容灾导出模块扫描pia文件入库记录表,找出新入库的pia文件列表;
步骤104:基于103步骤找出的pia文件列表,从Hadoop文件系统中批量导出pia文件到本地目录,并打包压缩成压缩文件;
步骤105:将压缩文件用SFTP文件传输方式,从PM系统远程传输到PM容灾系统;
步骤106:PM容灾系统将PM系统传输过来的压缩文件接收到本地目录,并解压释放出pia文件,移动到性能数据文件同步目录下;
步骤107:容灾导入模块定期扫描性能数据文件同步目录,将新传输过来的pia文件,导入到容灾系统的Hadoop文件系统中;
步骤108:基于107步骤中新导入容灾Hadoop文件系统中的性能数据pia文件名称,将pia文件中的性能数据,刷新到容灾系统从Oracle数据库中;
步骤109:对于已经导入Hadoop文件系统的性能数据pia文件,从性能数据文件同步目录下进行清理,确保性能数据文件同步目录下不存在无效的pia文件。
采用本实施例所述数据异地容灾的方法,其具体实施操作过程如附图4所示:
步骤201:在实施数据异地容灾备份之前,首先在远端容灾机房内,搭建一套PM容灾系统,确保该PM容灾系统的硬件部署和应用服务,和原有PM系统的硬件配置和应用服务一致,使得当灾难发生时PM容灾系统可以替代原有PM系统;
步骤202:在PM系统的服务器部署容灾导出模块,并设置SFTP的传输目标为PM容灾系统,同时在PM容灾系统部署容灾导入模块,设置接收SFTP文件传输的性能数据文件同步目录;
步骤203:在正式启动PM系统的性能数据异地容灾备份之前,做一次全量同步,将PM应用程序的配置和模板、数据库结构、性能数据历史数据等,全部同步到PM容灾系统中,形成性能数据灾备同步的基线;
步骤204:基于203步骤形成的同步基线,设置容灾导出模块和容灾导入模块起始同步时间点,启动性能数据容灾同步任务,开始性能数据灾备同步。
就完成基于Hadoop文件系统的数据异地容灾备份的实施,一旦设置好容灾同步的执行计划,则可以实现性能数据异地容灾备份的自动化执行,无需人工参与。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。