数据库备份方法及系统与流程

文档序号:11154712阅读:407来源:国知局
本发明涉及数据库备份领域,特别是涉及保护OpenStack管理平台下的主机中的数据库的方法及系统。
背景技术
:OpenStack是由Rackspace和NASA(美国国家航空航天局)合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API(ApplicationProgrammingInterface,应用程序编程接口)以进行集成。OpenStack目前有七个核心组件,分别是计算(Compute)、对象存储(ObjectStorage)、认证(Identity)、用户界面(Dashboard)、块存储(BlockStorage)、网络(Network)和镜像服务(ImageService)。其中:1)Compute的项目代号是Nova,它根据需要提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移;2)ObjectStorage的项目代号是Swift,它允许存储或检索对象,也可以认为它允许存储或检索文件,它能以低成本的方式通过REST管理大量无结构数据;3)Identity的项目代号是Keystone,为所有OpenStack服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用服务以及API的列表;4)Dashboard的项目代号是Horizon,它为所有OpenStack的服务提供一个模块化的基于Django的界面,为用户或运维人员可以完成大多数的操作;5)BlockStorage的项目代号是Cinder,提供块存储服务;6)Network的项目代号是Neutron,用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口;7)ImageService的项目代号是Glance,它是OpenStack的镜像服务组件,主要提供一个虚拟机镜像的存储、查询和检索服务,通过提供一个虚拟磁盘映像的目录和存储库,为Nova的虚拟机提供镜像服务。为了保护OpenStack数据和元数据的安全,2016年6月14日,OpenStack社区Karbor(原名Smaug)项目通过TC会议投票裁决,成为OpenStackBigTent项目,加入BigTent意味着Karbor已经成为了OpenStack正式的官方项目;Karbor提供一套数据保护服务,应对OpenStack部署的应用的丢失或损坏,同时该项目也满足第三方备份厂商扩展。目前Karbor已经集成了对OpenStack已有项目Nova、Cinder、Keystone和Glance等保护,但对于OpenStack创建的云主机或可管理的物理机上的数据库等应用没有达到很好的保护。技术实现要素:鉴于以上所述现有技术的缺点,本发明的目的在于提供数据库备份方法及系统,主要用于对OpenStack云计算管理平台下创建的云主机或可管理的物理机上的数据库进行保护,增强该平台下管理的设备中数据库的安全性和可靠性。为实现上述目的及其他相关目的,本发明提供一种数据库备份方法,用于备份OpenStack云平台中的至少一台主机里的至少一个数据库,所述OpenStack云平台包括数据保护服务框架,并预存有至少一个第三方备份厂商的信息,所述信息包括第三方备份厂商的客户端的安装信息,所述客户端用于通信连接所属第三方备份厂商的备份服务器,所述方法包括:所述OpenStack云平台获取需要备份的目标数据库名称,以及用于备份所述目标数据库的目标第三方备份厂商名称;所述OpenStack云平台将所述目标第三方备份厂商的客户端部署于所述目标数据库所在的目标主机中;所述OpenStack云平台将部署的客户端的指令通信功能整合到所述数据保护服务框架中,以供向所述目标第三方备份厂商的备份服务器发送备份所述目标数据库的操作指令;所述OpenStack云平台令部署的客户端将所述目标数据库的数据提供给所述目标第三方备份厂商的备份服务器,供其备份。于本发明一实施例中,所述数据保护服务框架包括:Kabor框架、或Smaug框架。于本发明一实施例中,所述整合后的数据保护服务框架向所述目标第三方备份厂商的备份服务器发送备份所述目标数据库的操作指令,包括:通过Plan接口创建备份计划;通过Checkpoint接口创建备份时间点。于本发明一实施例中,所述创建备份时间点之前,所述方法还包括:通过Trigger接口创建时间触发器;通过ScheduledOperation接口创建相应的调度操作,以供在预定时间到达时,由所述调度操作令所述Checkpoint接口创建备份时间点。于本发明一实施例中,所述方法还包括:恢复和/或删除步骤:所述恢复步骤包括:当所述OpenStack云平台获取用户输入的恢复数据库的指令时,获取用户选择的备份时间点、及恢复目的地;所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起恢复数据库的操作;所述删除步骤包括:当所述OpenStack云平台获取用户输入的删除备份的数据库数据的指令时,获取用户选择的备份时间点;所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起删除数据库备份数据的操作。为实现上述目的及其他相关目的,本发明提供一种数据库备份系统,用于备份OpenStack云平台中的至少一台主机里的至少一个数据库,所述OpenStack云平台包括数据保护服务框架,并预存有至少一个第三方备份厂商的信息,所述信息包括第三方备份厂商的客户端的安装信息,所述客户端用于通信连接所属第三方备份厂商的备份服务器,所述系统包括:用户输入模块,用于令所述OpenStack云平台获取需要备份的目标数据库名称,以及用于备份所述目标数据库的目标第三方备份厂商名称;安装部署模块,用于令所述OpenStack云平台将所述目标第三方备份厂商的客户端部署于所述目标数据库所在的目标主机中;指令通信模块,用于令所述OpenStack云平台将部署的客户端的指令通信功能整合到所述数据保护服务框架中,以供向所述目标第三方备份厂商的备份服务器发送备份所述目标数据库的操作指令;数据提供模块,用于令所述OpenStack云平台令部署的客户端将所述目标数据库的数据提供给所述目标第三方备份厂商的备份服务器,供其备份。于本发明一实施例中,所述数据保护服务框架包括:Kabor框架、或Smaug框架。于本发明一实施例中,所述整合后的数据保护服务框架向所述目标第三方备份厂商的备份服务器发送备份所述目标数据库的操作指令,包括:通过Plan接口创建备份计划;通过Checkpoint接口创建备份时间点。于本发明一实施例中,所述指令通信模块还用于:在所述创建备份时间点之前,通过Trigger接口创建时间触发器;通过ScheduledOperation接口创建相应的调度操作,以供在预定时间到达时,由所述调度操作令所述Checkpoint接口创建备份时间点。于本发明一实施例中,所述指令通信模块还包括:恢复子模块和/或删除子模块:所述恢复子模块:用于令所述OpenStack云平台获取用户输入的恢复数据库的指令,获取用户选择的备份时间点、及恢复目的地;并令所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起恢复数据库的操作;所述删除子模块:用于令所述OpenStack云平台获取用户输入的删除备份的数据库数据的指令,获取用户选择的备份时间点;并令所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起删除数据库备份数据的操作。如上所述,本发明的数据库备份方法及系统,将第三方备份厂商客户端的指令通信功能整合到了数据保护服务框架中,解决了Karbor等数据保护服务框架无法保护OpenStack云计算管理平台下云主机或可管理的物理机中的数据库的问题,增强了设备中数据库的安全性和可靠性,同时,也对Karbor等数据保护服务框架整合第三方备份厂商的其他与OpenStack相关的应用进行保护起到借鉴作用。附图说明图1显示为本发明一实施例的数据库备份方法流程示意图。图2显示为本发明一实施例的备份架构示意图。图3显示为本发明另一实施例的数据库备份方法流程示意图。图4显示为本发明一实施例的数据库备份系统模块示意图。元件标号说明400数据库备份系统401用户输入模块402安装部署模块403指令通信模块404数据提供模块S101~S104步骤S301~S302具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。在包括数据保护服务框架(如:Kabor框架、Smaug框架等)的OpenStack云计算管理平台中,预先创建有一台或多台主机,如:云主机(例如:由Nova、Neutron、Cinder等云资源组成)、物理主机(例如:由Ironic加入到Openstack统一管理)等,并且,各主机中预先安装有用于用户生产应用的数据库。本发明提出的数据备份方法要解决的技术问题就是:如何保护这类数据库,从而保证OpenStack平台下主机中数据库的安全性和可靠性。请参阅图1和图2,本实施例将以Karbor框架作为所述数据保护服务框架为例,详细阐述本发明提出的数据库备份方法,主要包括的步骤有:步骤S101:OpenStack平台获取用户指定的主机、该主机中待保护的数据库、用于保护该待保护的数据库的第三方备份厂商。需要说明的是,该OpenStack平台中预先存储有一个或多个用于备份数据库的第三方备份厂商的信息及其客户端的安装程序,通过列表等形式将一个或多个主机、主机中的数据库、第三方备份厂商的信息进行显示,以供用户选择需要备份的目标数据库名称、用于备份所述目标数据库的目标第三方备份厂商名称等。步骤S102:OpenStack平台在用户选择的主机上部署用户选择的第三方备份厂商客户端,该客户端用于和第三方备份厂商的备份服务器进行备份数据、恢复数据等交互,从而确保主机中数据库的安全。步骤S103:OpenStack平台将该第三方备份厂商客户端的部分功能整合到Karbor框架中(由于Karbor框架没有存储功能,所以无法被整合成与客户端完全等同的功能,即无法代替客户端向备份服务器发送数据的功能)。当新的Karbor框架与第三方备份厂商进行REST通信时(通过RestApi通信),就可以向第三方备份厂商的备份服务器发起保护主机中待保护的数据库的操作指令,例如:数据库备份、数据库恢复等操作指令。步骤S104:OpenStack平台向部署在主机上的客户端发起指令,令其通过REST通信向该备份服务器提供待保护的数据库的数据,以供备份服务器备份。以下将详细说明步骤S103的实现过程:首先,对现有的Karbor框架所提供的各类API做简要说明:●Provider:■list:列举所有备份服务厂商■show:显示指定服务厂商的详细信息●Protectable:■list:列举所有可备份的数据源类型■list_instances:列举指定数据源类型的所有实例■show:显示指定数据源类型的详细信息■show_instance:显示指定数据源实例的详细信息●Plan:■list:列举所有备份计划■show:显示指定备份计划的详细信息■create:创建新的备份计划■delete:删除指定备份计划■update:更新指定备份计划●Checkpoints:■list:列举指定厂商的所有备份时间点■show:显示指定备份时间点的详细信息■create:创建新的备份时间点■delete:删除指定备份时间点●Restore:■list:列举所有的还原操作■show:显示指定还原操作的详细信息■create:创建新的还原操作●Trigger:■list:列举所有的触发器■show:显示指定触发器的详细信息■create:创建新的触发器■delete:删除指定的触发器●ScheduledOperation:■list:列举所有的调度操作■show:显示指定的调度操作的详细信息■create:创建新的调度操作■delete:删除指定的调度操作其次,对如何在Karbor框架中实现第三方备份厂商客户端的指令通信功能,从而建立新的Karbor框架做以下说明:●Provider实现:■list:通过在/etc/karbor/providers.d/目录下添加第三方备份厂商的配置文件,Karbor服务启动时会加载这个配置并生成所有第三方备份厂商信息;■show:通过在/etc/karbor/providers.d/目录下添加第三方备份厂商的配置文件,Karbor服务启动时会加载这个配置并生成所有第三方备份厂商信息;在处理show请求时,会根据参数中的providerID确定和显示指定的厂商信息;●Protectable实现:■list:通过在protectable_plugins目录下添加database模块,Karbor服务启动时会加载这个模块并生成所有database数据源类型;■show:通过在protectable_plugins目录下添加database模块,Karbor服务启动时会加载这个模块并生成所有database数据源类型;在处理show请求时,会根据参数中的protectabletype确定和显示指定的资源类型信息,包括依赖资源等;■list_instances:通过与第三方备份厂商进行REST通信,获取所有数据库类型的数据库实例信息,比如:数据库大小等;■show_instance:通过与第三方备份厂商进行REST通信,获取所有数据库类型的数据库实例信息,比如数据库大小等;在处理show_instance请求时,会根据参数中的instanceID确定和显示指定的数据库实例信息;●Protection_plugin实现:■backup:在checkpoint-create时被调用,通过与第三方备份厂商进行REST通信,请求第三方备份厂商完成对指定数据库实例的备份;■restore:在restore-create时被调用,通过与第三方备份厂商进行REST通信,请求第三方备份厂商完成对指定备份时间点的恢复;■delete:在checkpoint-delete时被调用,通过与第三方备份厂商进行REST通信,请求第三方备份厂商完成对指定备份时间点的删除。再次,对以上系统环境部署完毕后,新的Karbor框架向对应的第三方备份厂商的备份服务器发起对OpenStack平台下主机中数据库的备份、恢复等操作的指令做详细说明,请参阅图3,主要包括以下步骤:步骤S301:创建Plan备份计划;可选的,在创建备份计划之前,可以先设置待保护的数据库实例的认证信息,例如:添加实例的用户和密码认证。步骤S302:创建用于记录备份的元数据(如:备份的时间点、备份厂商等)的Checkpoint;可选的,还可以先创建Trigger时间触发器,根据该Trigger触发器创建对应的ScheduledOperation调度操作,当指定时间到达时,由ScheduledOperation创建对应的Checkpoint。可选的,整合后的Kabor框架通过与备份服务器进行REST通信,在备份过程中不断获取备份进度。在一实施例中,在第三方备份厂商完成了一次或多次备份任务的基础上,当用户需要恢复该数据库时,新的Karbor框架获取用户选择的Checkpoint以及恢复目的地,向第三方备份厂商的备份服务器发起Restore恢复操作的指令,恢复过程中可以不断地获取恢复进度。需要说明的是,恢复的目的地可以是原主机,也可以是其他主机。当备份、恢复的是数据库中的某个实例时,所述其他主机应当预先安装有与该实例对应的数据库系统。另外,新的Karbor框架还可以通过OpenStack云平台获取的用户选择的备份时间点,令第三方备份厂商的备份服务器删除在该时间点对数据库进行备份的备份数据。请参阅图4,与上述方法实施例原理相似的是,本发明提供数据库备份系统400,包括:用户输入模块401、安装部署模块402、指令通信模块403和数据提供模块404,用于备份OpenStack云平台中的至少一台主机里的至少一个数据库,其中,所述OpenStack云平台包括Kabor、Smaug等数据保护服务框架,并预存有至少一个第三方备份厂商的信息和客户端安装程序,所述客户端用于通信连接所属第三方备份厂商的备份服务器。由于前述实施例中的技术特征可以应用于本系统实施例,因而不再重复赘述。用户输入模块401令所述OpenStack云平台获取需要备份的目标数据库名称,以及用于备份所述目标数据库的目标第三方备份厂商名称。安装部署模块402令所述OpenStack云平台将所述目标第三方备份厂商的客户端部署于所述目标数据库所在的目标主机中。指令通信模块403令所述OpenStack云平台将部署的客户端的指令通信功能整合到所述数据保护服务框架中,以供向所述目标第三方备份厂商的备份服务器发送备份所述目标数据库的操作指令,例如包括:通过Plan接口创建备份计划;通过Checkpoint接口创建备份时间点等过程。可选的,指令通信模块403还用于:在所述创建备份时间点之前,通过Trigger接口创建时间触发器;通过ScheduledOperation接口创建相应的调度操作,以供在预定时间到达时,由所述调度操作令所述Checkpoint接口创建备份时间点。除此之外,所述指令通信模块403还包括:恢复子模块、删除子模块中的一种或两种组合。恢复子模块令所述OpenStack云平台获取用户输入的恢复数据库的指令,获取用户选择的备份时间点、及恢复目的地,并令所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起恢复数据库的操作。删除子模块令所述OpenStack云平台获取用户输入的删除备份的数据库数据的指令,获取用户选择的备份时间点,并令所述OpenStack云平台令所述整合后的数据保护服务框架向通信连接的备份服务器发起删除数据库备份数据的操作。数据提供模块404令所述OpenStack云平台令部署的客户端将所述目标数据库的数据提供给所述目标第三方备份厂商的备份服务器,供其备份。综上所述,本发明的数据库备份方法及系统,克服了现有Karbor等数据保护服务框架不能保护OpenStack平台中云主机或可管理的物理机上的数据库等应用的缺陷,具高度产业利用价值。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1