一种基于Openstack的硬盘快照方法和装置与流程

文档序号:23859885发布日期:2021-02-05 16:07阅读:110来源:国知局
一种基于Openstack的硬盘快照方法和装置与流程
一种基于openstack的硬盘快照方法和装置
技术领域
[0001]
本发明涉及快照领域,更具体地,特别是指一种基于openstack的硬盘快照方法和装置。


背景技术:

[0002]
openstack是一项开源云平台软件技术,提供了一个部署云的操作平台和工具集,是一个为用户综合提供虚拟化计算服务、存储服务和网络服务的云平台,并且拥有可靠的云部署方案和良好的扩展性,是云计算时代的操作系统。
[0003]
快照作为一种数据容灾的方式,是一种有效的数据保护措施,可以对源数据进行一定程度的保护。如云平台中,对于正在运行着的虚拟机,挂载有数据盘的场景下,数据盘中写入了数据,在t1时打了快照,过了一段时间后,在t2时刻,数据盘出现了损坏,这时就可以用t1时刻的快照进行数据恢复,此时损失的数据为(t2-t1)这段时间内的数据,数据恢复到t1时刻的数据状态,这样可以尽量降低数据损失。
[0004]
目前openstack原生接口基于快照创建云硬盘时不支持跨存储进行创建,核心原因是当前原生逻辑中并没有实现快照挂载与数据拷贝的关键动作,不能支持这种操作的进行。现有技术的为题在于,云硬盘与对应的快照存储在同一套后端存储中,一旦后端存储出现问题,那么保存的数据也就失去了应用价值,不能进行使用;原生的openstack原生接口不支持快照创建云硬盘时指定卷类型,也就限制了可基于快照创建云盘时不能创建到其他存储后端,具有一定的局限性;通常云平台会带有备份存储系统,但是备份的数据内容在当前云平台原生逻辑下,是没有办法直接挂载将备份后的磁盘数据挂载给云平台虚拟机可用的,相应的接口没有实现,也不符合openstack各个模块独立的设计思想。
[0005]
针对现有技术中openstack原生接口不能跨后端存储硬盘快照的问题,目前尚无有效的解决方案。


技术实现要素:

[0006]
有鉴于此,本发明实施例的目的在于提出一种基于openstack的硬盘快照方法和装置,能够在openstack中跨后端存储硬盘快照,保护平台数据,提高应用业务的连续性和健壮性。
[0007]
基于上述目的,本发明实施例的第一方面提供了一种基于openstack的硬盘快照方法,包括执行以下步骤:
[0008]
发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;
[0009]
响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;
[0010]
在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;
[0011]
将快照从旧云硬盘经由宿主机复制到新云硬盘。
[0012]
在一些实施方式中,新云硬盘具有多种类型,openstack平台具有多个存储后端,多种类型和多个存储后端之间具有一一对应关系,基于新云硬盘的类型确定新云硬盘所在的第二存储后端包括:基于一一对应关系将与新云硬盘的类型相对应的存储后端确定为第二存储后端。
[0013]
在一些实施方式中,方法还包括:在确定将创建的新云硬盘的类型之前,先确定是否需要指定新云硬盘的类型;响应于不需要指定新云硬盘的类型而直接将第一存储后端确定为第二存储后端。
[0014]
在一些实施方式中,响应于第二存储后端与第一存储后端相同而执行以下步骤:
[0015]
基于openstack平台的原生接口在第一存储后端上创建新云硬盘;
[0016]
基于第一存储后端的底层命令将快照从旧云硬盘直接复制到新云硬盘。
[0017]
在一些实施方式中,在第二存储后端上基于新云硬盘的类型创建新云硬盘包括:
[0018]
使用openstack平台的cinder应用程序接口校验新云硬盘的类型的合法性,并响应于类型合法而向openstack平台的cinder调度器发送创建请求;
[0019]
使用cinder调度器基于创建请求和新云硬盘的类型在第二存储后端上创建新云硬盘。
[0020]
在一些实施方式中,方法还包括:使用cinder调度器将新云硬盘挂载到宿主机上。
[0021]
在一些实施方式中,方法还包括:响应于复制结束而从宿主机上卸载旧云硬盘和新云硬盘。
[0022]
本发明实施例的第二方面提供了一种基于openstack的硬盘快照装置,包括:
[0023]
处理器;和
[0024]
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
[0025]
发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;
[0026]
响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;
[0027]
在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;
[0028]
将快照从旧云硬盘经由宿主机复制到新云硬盘。
[0029]
在一些实施方式中,新云硬盘具有多种类型,openstack平台具有多个存储后端,多种类型和多个存储后端之间具有一一对应关系,基于新云硬盘的类型确定新云硬盘所在的第二存储后端包括:基于一一对应关系将与新云硬盘的类型相对应的存储后端确定为第二存储后端。
[0030]
在一些实施方式中,在第二存储后端上基于新云硬盘的类型创建新云硬盘包括:
[0031]
使用openstack平台的cinder应用程序接口校验新云硬盘的类型的合法性,并响应于类型合法而向openstack平台的cinder调度器发送创建请求;
[0032]
使用cinder调度器基于创建请求和新云硬盘的类型在第二存储后端上创建新云硬盘。
[0033]
本发明具有以下有益技术效果:本发明实施例提供的基于openstack的硬盘快照
方法和装置,通过发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;将快照从旧云硬盘经由宿主机复制到新云硬盘的技术方案,能够在openstack中跨后端存储硬盘快照,保护平台数据,提高应用业务的连续性和健壮性。
附图说明
[0034]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]
图1为本发明提供的基于openstack的硬盘快照方法的流程示意图;
[0036]
图2为本发明提供的基于openstack的硬盘快照方法的详细流程图。
具体实施方式
[0037]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0038]
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0039]
基于上述目的,本发明实施例的第一个方面,提出了一种在openstack中跨后端存储硬盘快照,保护平台数据的基于openstack的硬盘快照方法的一个实施例。图1示出的是本发明提供的基于openstack的硬盘快照方法的流程示意图。
[0040]
所述的基于openstack的硬盘快照方法,如图1所示,包括执行以下步骤:
[0041]
步骤s101,发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;
[0042]
步骤s103,响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;
[0043]
步骤s105,在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;
[0044]
步骤s107,将快照从旧云硬盘经由宿主机复制到新云硬盘。
[0045]
本发明首先发起基于快照创建云硬盘动作请求,创建时选择一种可用的云硬盘类型(云硬盘类型通常与存储后端绑定在一起,即一种云硬盘类型对应一个存储后端);基于传入的云硬盘类型,在目的存储后端创建一个新的云硬盘;将快照挂载给云平台的某一个宿主机,建立一种映射关系;将新云硬盘挂载给与快照建立映射关系的宿主机,也建立一种映射关系;开始执行数据拷贝动作,快照即源云硬盘是一份完全可用的副本,所以可以进行数据的读取操作,在宿主机侧读取源云硬盘的数据并写入到目的云硬盘中;等待拷贝动作完成后,解除快照、目的云硬盘与宿主机的映射关系。
[0046]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0047]
在一些实施方式中,新云硬盘具有多种类型,openstack平台具有多个存储后端,多种类型和多个存储后端之间具有一一对应关系,基于新云硬盘的类型确定新云硬盘所在的第二存储后端包括:基于一一对应关系将与新云硬盘的类型相对应的存储后端确定为第二存储后端。
[0048]
在一些实施方式中,方法还包括:在确定将创建的新云硬盘的类型之前,先确定是否需要指定新云硬盘的类型;响应于不需要指定新云硬盘的类型而直接将第一存储后端确定为第二存储后端。
[0049]
在一些实施方式中,响应于第二存储后端与第一存储后端相同而执行以下步骤:
[0050]
基于openstack平台的原生接口在第一存储后端上创建新云硬盘;
[0051]
基于第一存储后端的底层命令将快照从旧云硬盘直接复制到新云硬盘。
[0052]
在一些实施方式中,在第二存储后端上基于新云硬盘的类型创建新云硬盘包括:
[0053]
使用openstack平台的cinder应用程序接口校验新云硬盘的类型的合法性,并响应于类型合法而向openstack平台的cinder调度器发送创建请求;
[0054]
使用cinder调度器基于创建请求和新云硬盘的类型在第二存储后端上创建新云硬盘。
[0055]
在一些实施方式中,方法还包括:使用cinder调度器将新云硬盘挂载到宿主机上。
[0056]
在一些实施方式中,方法还包括:响应于复制结束而从宿主机上卸载旧云硬盘和新云硬盘。
[0057]
下面根据如图2所示的具体实施例进一步阐述本发明的具体实施方式。参见图2,首先openstack平台存在多套可用存储后端,然后执行以下步骤:
[0058]
(1)开始准备发起基于快照创建云硬盘请求;
[0059]
(2)选择是否要指定云硬盘类型参数(即是否要进行跨存储创建),如果是:则继续执行(3)(5)(6)(7)(8)(9)(10);如果否:则继续执行(4)(10);
[0060]
(3)选定一种云硬盘类型(即跨存储)进行创建云硬盘;
[0061]
(4)选择同一存储,基于原生接口直接将新云硬盘创建至与快照所在的同一套存储后端中,接着在同一存储后端底层命令执行从快照至新云硬盘的数据拷贝动作,并判断拷贝是否结束,等待数据拷贝完成后,新云硬盘创建完成;
[0062]
(5)cinder api接收到请求,校验用户传递的参数合法性,然后下发创建请求到cinder scheduler;
[0063]
(6)将快照挂载到云平台的一台宿主机上并进行映射;
[0064]
(7)cinder scheduler根据传入的卷类型参数,去指定的存储后端创建一个新卷并挂载到云平台的与快照已映射完成的同一台宿主机上;
[0065]
(8)执行数据拷贝:从快照读数据然后写入到新创建的云硬盘中,即从源云硬盘拷贝数据到目的云硬盘,并同步判断数据是否拷贝完成;
[0066]
(9)数据拷贝完成后,解除快照与新创建云硬盘与云平台的映射关系;
[0067]
(10)结束。
[0068]
本发明实施例提供了一种新的快照创建云硬盘的方法。快照创建云硬盘时,支持云硬盘类型参数,即支持在其他存储后端创建新的云硬盘,用于避免原存储后端出现异常不可用的风险,增加了数据的一种保护措施。同时云平台对接多套存储后端的情况下,当源存储后端集群不可用时,其上存储的数据将不可被正常访问,此时跨存储创建的云硬盘就发挥出了其重要作用,因为源存储与目的存储均对接在同一套云平台,所以基于源存储后端的快照创建的新云硬盘就显示了实际的应用价值,新云硬盘此时可直接被云平台中的资源使用,比如:正在运行业务的虚拟机,之前挂载有源存储后端的数据盘,因为某种异常,源存储后端不可用,此时可直接将提前创建的目的存储后端的新云硬盘直接挂载给虚拟机进行备份数据的正常访问,从而保障了业务的连续性与健壮性。综上可知,这种方案实现了一定程度上不同存储后端互为备份的冗余保护机制,可实现云平台应用业务的连续性与鲁棒性。现有的技术手段支持实现本方案,具有极大的实际意义,能切实给云平台用户及开发提供可预见的价值。
[0069]
从上述实施例可以看出,本发明实施例提供的基于openstack的硬盘快照方法,通过发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;将快照从旧云硬盘经由宿主机复制到新云硬盘的技术方案,能够在openstack中跨后端存储硬盘快照,保护平台数据,提高应用业务的连续性和健壮性。
[0070]
需要特别指出的是,上述基于openstack的硬盘快照方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于基于openstack的硬盘快照方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
[0071]
基于上述目的,本发明实施例的第二个方面,提出了一种在openstack中跨后端存储硬盘快照,保护平台数据的基于openstack的硬盘快照装置的一个实施例。基于openstack的硬盘快照装置包括:
[0072]
处理器;和
[0073]
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
[0074]
发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;
[0075]
响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;
[0076]
在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;
[0077]
将快照从旧云硬盘经由宿主机复制到新云硬盘。
[0078]
在一些实施方式中,新云硬盘具有多种类型,openstack平台具有多个存储后端,多种类型和多个存储后端之间具有一一对应关系,基于新云硬盘的类型确定新云硬盘所在
的第二存储后端包括:基于一一对应关系将与新云硬盘的类型相对应的存储后端确定为第二存储后端。
[0079]
在一些实施方式中,在第二存储后端上基于新云硬盘的类型创建新云硬盘包括:
[0080]
使用openstack平台的cinder应用程序接口校验新云硬盘的类型的合法性,并响应于类型合法而向openstack平台的cinder调度器发送创建请求;
[0081]
使用cinder调度器基于创建请求和新云硬盘的类型在第二存储后端上创建新云硬盘。
[0082]
从上述实施例可以看出,本发明实施例提供的基于openstack的硬盘快照装置,通过发起基于快照的云硬盘创建请求并确定将创建的新云硬盘的类型,并基于新云硬盘的类型确定将容纳新云硬盘的第二存储后端;响应于第二存储后端不同于存储快照的旧云硬盘所在的第一存储后端,而确定一个宿主机并将旧云硬盘挂载到宿主机上;在第二存储后端上基于新云硬盘的类型创建新云硬盘,并将新云硬盘挂载到宿主机上;将快照从旧云硬盘经由宿主机复制到新云硬盘的技术方案,能够在openstack中跨后端存储硬盘快照,保护平台数据,提高应用业务的连续性和健壮性。
[0083]
需要特别指出的是,上述基于openstack的硬盘快照装置的实施例采用了所述基于openstack的硬盘快照方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述基于openstack的硬盘快照方法的其他实施例中。当然,由于所述基于openstack的硬盘快照方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述基于openstack的硬盘快照装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
[0084]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0085]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1