发明内容
本申请实施例提供了一种云盘数据的迁移方法、装置、系统、计算机设备和计算机可读存储介质,以至少解决相关技术中云平台中的云盘数据不能跨可用区使用的问题。
第一方面,本申请实施例提供了一种云盘数据的迁移方法,所述方法包括:
云计算平台确定网络应用对应的云盘,获取所述云盘所在的第一节点;
所述云计算平台接收所述网络应用的迁移请求,根据所述迁移请求获取所述网络应用欲迁移的第二节点;
在所述第一节点与所述第二节点位于不相同可用区的情况下,所述云计算平台调用存储插件将所述云盘挂载到所述第一节点所在可用区的网络存储服务上,并通过所述网络存储服务返回网络存储地址;
所述云计算平台调用所述存储插件将所述网络存储地址挂载到所述第二节点所在的可用区上。
在其中一些实施例中,所述云计算平台确定所述网络应用对应的云盘之前,所述方法还包括:
所述云计算平台接收所述网络应用的安装请求,将所述网络应用部署在所述第一节点;
所述云计算平台调用所述存储插件发送存储请求至云厂商,以获取所述第一节点可用区的云盘;
在获取所述云盘之后,所述云计算平台调用所述存储插件将所述云盘挂载到所述第一节点。
在其中一些实施例中,所述云计算平台调用所述存储插件发送存储请求至云厂商,以获取所述第一节点可用区的云盘包括:
所述云计算平台发送云盘申请指令至所述存储插件,所述存储插件根据所述云盘申请指令中云计算平台提供的可用区信息,及节点信息生成所述存储请求;
所述存储插件发送所述存储请求至所述云厂商,以获取所述第一节点可用区的云盘。
在其中一些实施例中,在所述第一节点与所述第二节点位于相同可用区的情况下,所述方法还包括:
所述云计算平台调用所述存储插件,将所述云盘从所述第一节点删除并将所述云盘直接挂载到所述第二节点。
在其中一些实施例中,所述云计算平台调用存储插件将所述网络存储地址挂载到所述第二节点所在的可用区上之后,所述方法还包括:
所述网络应用接收所述云计算平台的控制信息,根据所述控制信息在所述第二节点所在可用区的云主机上对用户提供服务。
在其中一些实施例中,所述第一节点和所述第二节点位于所述云计算平台的所述可用区中,所述可用区的数据存储在与所述可用区对应的云主机上。
第二方面,本申请实施例提供了一种云盘数据的迁移系统,所述系统包括:云计算平台、存储插件和网络存储服务,其中;
所述云计算平台用于确定网络应用对应的云盘,获取所述云盘所在的第一节点,
或者用于接收所述网络应用的迁移请求,根据所述迁移请求获取所述网络应用欲迁移的第二节点;
所述存储插件用于在所述第一节点与所述第二节点位于不相同可用区的情况下,将所述云盘挂载到所述第一节点所在可用区的网络存储服务上;
所述网络存储服务用于在所述云盘挂载到所述第一节点所在可用区之后返回网络存储地址;
所述存储插件或者用于将所述网络存储地址挂载到所述第二节点所在的可用区上。
在其中一些实施例中,所述云计算平台还用于,接收所述网络应用的安装请求,并将所述网络应用部署在所述第一节点;
调用所述存储插件发送存储请求至云厂商,以获取所述第一节点可用区的云盘;
在获取所述云盘之后,通过所述存储插件将所述云盘挂载到所述第一节点。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种云盘数据的迁移方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种云盘数据的迁移方法。
相比于相关技术,本申请实施例提供的一种云盘数据的迁移方法,通过云计算平台确定网络应用对应的云盘,并获取云盘所在的第一节点;进一步的,云计算平台接收网络应用的迁移请求,根据迁移请求获取网络应用欲迁移的第二节点;在第一节点与第二节点位于不相同可用区的情况下,云计算平台调用存储插件将云盘挂载到第一节点所在可用区的网络存储服务上,并通过网络存储服务返回网络存储地址;最后,存储插件将网络存储地址挂载到第二节点所在的可用区上。解决了相关技术中平台中的云盘数据不能跨可用区使用的问题,实现了云计算平台中在不同可用区下的云盘复用,简化了应用迁移的流程和步骤。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的一种云盘数据的迁移方法,可以应用在图1所示的应用环境中,图1是根据本申请实施例的一种云盘数据的迁移方法的应用环境示意图。如图1所示,终端10与云主机11通过网络进行通信。终端10将用户发出的应用指令上传至云主机11之后,云主机11接收应用指令并进行处理。同时,该应用产生的数据则被存储在云主机11所在可用区的云盘上。在上述可用区的第一节点出现故障,该应用被调度到其他可用区的第二节点时,云计算平台可以通过调用存储插件将上述云盘挂载到网络存储服务上并返回一个网络存储地址。之后,云计算平台再指示存储插件把该网络存储地址挂载到第二节点所在的云主机11上,从而实现云盘数据的跨可用区使用,简化了云计算平台中应用迁移过程的复杂步骤。进一步的,本实施例中的终端10可以是智能手机、平板电脑、台式电脑、笔记本电脑和智能可穿戴设备,云主机11可以是独立的云主机或者是多个云主机组成的云主机集群。
本申请提供了一种云盘数据的迁移方法,图2是根据本申请实施例的一种云盘数据的迁移方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,云计算平台确定网络应用对应的云盘,获取云盘所在的第一节点;需要说明的是,云计算平台通常被部署在云主机11上,而云主机11则可能在不同的可用区中。对应的,在一个可用区中则存在多个节点,用于对用户提供服务的网络应用的云盘则被挂载在其中的节点上。当节点出现故障或者有新的业务需求,需要将该网络应用调度到其他节点时,云计算平台首先确定被调度的网络应用对应的云盘,进一步的再获取该云盘所在的节点;
步骤S202,云计算平台接收网络应用的迁移请求,根据迁移请求获取网络应用欲迁移的第二节点;其中,发现节点故障时,云计算平台管理人员对云计算平台发送某个网络应用的迁移请求。迁移请求中应该包括具体迁移的应用信息和欲迁移的目标节点信息。进一步的,云计算平台在接收到上述迁移请求之后,遍历所有的可用区,根据迁移请求在所有可用区中确定该网络应用的原节点(即第一节点)和目标节点(即第二节点)。再进一步的,云计算平台会判断该第一节点和第二节点是否位于同一个可用区。需要说明的是,在网络应用被调度时,因为其往期产生的云盘数据无法直接迁移到本可用区之外的其他可用区,因此,云计算平台在确定第一节点和第二节点之后,首先判断第一节点和第二节点是都位于同一个可用区,然后再根据判断的结果,结合预设的迁移规则进行云盘数据的迁移;
步骤S203,在第一节点与第二节点位于不相同可用区的情况下,云计算平台调用存储插件将云盘挂载到第一节点所在可用区的网络存储服务上,并通过网络存储服务返回网络存储地址;图3是根据本申请实施例的云盘数据迁移的示意图,如图3所示,存储插件首先将可用区A中的应用云盘数据挂载至云服务商提供的网络存储服务,之后再通过网络存储服务向被迁移至可用区B的应用提供存储服务。需要说明的是,该存储插件由云计算平台开发人员提供,用于对应用的调度和云盘数据的迁移。在本实施例中,存储插件是一个分配存储的中心,其主要用于:1.对应用分配对应的存储:在应用初次安装时,按照业务需求应用被调度到了A节点,如果该应用在安装时指定了存储,该存储插件负责把该应用的存储准备好;例如,需要一块云盘,该存储插件通过调用阿里云的接口申请云盘;2.将申请到的云盘挂载到主机中:获取到云盘之后,存储插件将云盘挂载到该应用所在主机的文件目录上,可选的,可以选择操作系统的mount指令进行云盘的挂载;3.对跨可用区的应用调度提供支持:当应用所在的A节点崩溃,且在本可用区中无可用节点时,只能将应用调度到其他可用区的节点B上,但是,因为节点A和节点B不在同一个可用区,云盘是无法直接挂载到B节点上的。在上述情况下,存储插件将云盘从原可用区的A节点上卸载,再将该云盘挂载到原可用区的网络存储服务上,之后,将网络存储服务返回的存储地址挂载到B节点上。需要说明的是,该网络存储服务是一种文件共享服务,其通常部署在网络存储设备上,将该网络存储设备连接上网络,可以提供数据和文件服务。在本实施例中,采用网络存储服务,可以挂载第一节点上的云盘并同时对后续的迁移流程提供网络存储地址;可选的,该网络存储服务可以是网络文件系统(network file system,简称为NFS),该NFS可以允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问;例如,对A主机搭建了一个NFS并指定了A主机的一个目录共享出去,那么,与A主机网络互通的B主机就可以通过A主机提供的网络地址和端口将A主机中的该目录挂载到B主机的一个目录下。对应的,在本实施例中,通过存储插件将云盘从挂载到原可用区的网络存储服务上之后,由网络存储服务输出网络存储地址,再将该存储地址挂载其他的目标可用区的节点上,那么在目标可用区的主机上,则可以基于该网络存储地址,通过网络实现对云盘的访问。
步骤S204,云计算平台调用存储插件将网络存储地址挂载到第二节点所在的可用区上。其中,上述步骤S203和步骤S201中,已经提供了网络存储地址和第二节点,对应的,云计算平台首先确定第二节点的可用区,之后再挂载该网络存储地址至第二节点的可用区。可以理解,上述步骤之后,在第二节点上,就可以通过该网络存储地址获取原有在第一节点上的云盘数据,实现云盘数据的迁移。
通过上述步骤S201至S204,相比较与相关技术中首先对网络应用添加多副本数据同步功能,在应用被调度到其他可用区时,需要在其他可用区对应的云主机11上重新申请一块云盘,再通过上述的多副本数据同步功能将数据同步到新申请的云盘中的方法。本实施例通过存储插件将原节点上的云盘挂载到网络存储服务,由网络存储服务返回一个网络存储地址之后,再通过该存储插件将该网络存储地址挂载至目标节点上,实现了云盘数据的跨可用区使用,同时无需针对应用添加多副本数据同步功能,简化了云盘数据迁移的流程、降低了业务成本。
在其中一些实施例中,图4是根据本申请实施例的云计算平台部署网络应用的示意图,如图4所示,首先,云计算平台接收网络应用的安装请求,将网络应用部署在第一节点;进一步的,云计算平台发送云盘申请指令至存储插件,调用存储插件根据云盘申请指令中云计算平台提供的可用区信息及节点信息生成存储请求;之后,存储插件发送存储请求至云厂商,以获取第一节点可用区的云盘;再进一步的,云厂商返回请求结果并提供对应的云盘。最后,在获取云盘之后,云计算平台调用存储插件将该云盘挂载到第一节点并指示应用启动,同时返回网络应用的部署结果。
在其中一些实施例中,图5是根据本申请实施例的另一种云盘数据的迁移方法的流程图,如图5所示,该流程包括如下步骤:
S501,云计算平台确定网络应用对应的云盘,获取云盘所在的第一节点;需要说明的是,云计算平台通常被部署在云主机11上,而云主机11则可能在不同的可用区中;在一个可用区中则存在多个节点,用于对用户提供服务的网络应用的云盘则被挂载在其中的节点上。在节点出现故障或者有新的业务需求,需要将该网络应用调度到其他节点时,云计算平台首先确定被调度的网络应用对应的云盘,进一步的再获取该云盘所在的节点;
S502,云计算平台接收网络应用的迁移请求,根据迁移请求获取网络应用欲迁移的第二节点,其中,在出现节点故障时,云计算平台管理人员对云计算平台发送某个网络应用的迁移请求,可选的,迁移请求中应该包括具体迁移的应用信息和欲迁移的目标节点信息。云计算平台在接收到上述迁移请求后,遍历所有的可用区,根据迁移请求在所有可用区中确定该网络应用的原节点(即第一节点)和目标节点(即第二节点);进一步的,云计算平台判断该第一节点和第二节点是否位于同一个可用区;
S503,在在第一节点与第二节点位于相同可用区的情况下,云计算平台调用存储插件,将云盘从第一节点删除并将云盘直接挂载到第二节点。
在其中一些实施例中,云计算平台调用存储插件将网络存储地址挂载到第二节点所在的可用区上之后,网络应用接收云计算平台的控制信息,根据控制信息在第二节点所在可用区的云主机11上对用户提供服务。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种云盘数据的迁移系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的一种云盘数据的迁移系统的结构框图,如图6所示,该系统包括云计算平台61、存储插件62和网络存储服务63,其中
云计算平台61用于确定网络应用对应的云盘,获取云盘所在的第一节点,
或者用于接收网络应用的迁移请求,根据迁移请求获取网络应用欲迁移的第二节点;
存储插件62用于在第一节点与第二节点位于不相同可用区的情况下,将云盘挂载到第一节点所在可用区的网络存储服务63上,以及将网络存储地址挂载到第二节点所在的可用区上;
网络存储服务63用于在云盘挂载到第一节点所在可用区之后返回网络存储地址。
在其中一些实施例中,云计算平台61还用于接收网络应用的安装请求,将网络应用部署在第一节点;进一步的,云计算平台61发送云盘申请指令至存储插件62,调用存储插件62根据云盘申请指令中云计算平台61提供的可用区信息及节点信息生成存储请求;之后,存储插件62发送存储请求至云厂商,以获取第一节点可用区的云盘;再进一步的,云厂商返回请求结果并提供对应的云盘。最后,在获取云盘之后,云计算平台61调用存储插件62将该云盘挂载到第一节点并指示应用启动,同时返回网络应用的部署结果。本申请实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的一种云盘数据的迁移方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种云盘数据的迁移方法。
在一个实施例中,图7是根据本申请实施例的电子设备的内部结构示意图,如图7所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图7所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种云盘数据的迁移方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。