首页 / 专利库 / 软件 / 虚拟机迁移 / 虚拟机存储迁移方法、装置和计算机设备

虚拟机存储迁移方法、装置和计算机设备

阅读:996发布:2020-05-08

专利汇可以提供虚拟机存储迁移方法、装置和计算机设备专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 虚拟机 存储迁移方法、装置和计算机设备。其中,虚拟机存储迁移方法包括:生成虚拟机的迁移任务,并将迁移任务载入至任务队列中;利用线程池从任务队列中获取迁移任务,并执行迁移任务,其中,线程池中的一个线程对应一个迁移任务;判断所有迁移任务是否完成;如果所有迁移任务完成,则执行卸载原卷任务。本发明 实施例 的虚拟机存储迁移方法、装置和计算机设备,通过生成虚拟机的迁移任务,并将迁移任务载入至任务队列中,以及利用线程池从任务队列中获取迁移任务,并执行迁移任务,当所有迁移任务完成时,执行卸载原卷任务,解决了当前虚拟机只能单个卷进行迁移的问题,保证了迁移过程的 原子 性、一致性、并发性。,下面是虚拟机存储迁移方法、装置和计算机设备专利的具体信息内容。

1.一种虚拟机存储迁移方法,其特征在于,包括:
生成虚拟机的迁移任务,并将所述迁移任务载入至任务队列中;
利用线程池从所述任务队列中获取所述迁移任务,并执行所述迁移任务,其中,所述线程池中的一个线程对应一个迁移任务;
判断所有所述迁移任务是否完成;
如果所有所述迁移任务完成,则执行卸载原卷任务。
2.如权利要求1所述的方法,其特征在于,所述虚拟机中的每个卷分别对应一个迁移任务。
3.如权利要求1所述的方法,其特征在于,执行所述迁移任务,包括:
获取所述虚拟机中原卷的配置,并根据所述原卷的配置在目标存储中创建新卷;
将所述新卷挂载至所述虚拟机上;
将所述原卷中的数据拷贝到所述新卷中。
4.如权利要求3所述的方法,其特征在于,在根据所述原卷的配置在目标存储中创建新卷的过程失败时,还包括:
生成创建新卷失败信息,并执行创建新卷回滚操作。
5.如权利要求3所述的方法,其特征在于,在将所述新卷挂载至所述虚拟机上的过程失败时,还包括:
生成新卷挂载失败信息,并执行新卷挂载回滚操作。
6.如权利要求3所述的方法,其特征在于,在将所述原卷中的数据拷贝到所述新卷中的过程失败时,还包括:
生成数据拷贝失败信息,并执行数据拷贝回滚操作。
7.如权利要求1所述的方法,其特征在于,执行卸载原卷任务,包括:
卸载所述虚拟机中的所有原卷;
删除所述虚拟机中的所有原卷。
8.一种虚拟机存储迁移装置,其特征在于,包括:
载入模,用于生成虚拟机的迁移任务,并将所述迁移任务载入至任务队列中;
迁移模块,用于利用线程池从所述任务队列中获取所述迁移任务,并执行所述迁移任务,其中,所述线程池中的一个线程对应一个迁移任务;
判断模块,用于判断所有所述迁移任务是否完成;
卸载模块,用于如果所有所述迁移任务完成,则执行卸载原卷任务。
9.如权利要求8所述的装置,其特征在于,所述虚拟机中的每个卷分别对应一个迁移任务。
10.如权利要求8所述的装置,其特征在于,所述迁移模块,用于:
获取所述虚拟机中原卷的配置,并根据所述原卷的配置在目标存储中创建新卷;
将所述新卷挂载至所述虚拟机上;
将所述原卷中的数据拷贝到所述新卷中。
11.如权利要求10所述的装置,其特征在于,所述迁移模块,还用于:
在根据所述原卷的配置在目标存储中创建新卷的过程失败时,生成创建新卷失败信息,并执行创建新卷回滚操作。
12.如权利要求10所述的装置,其特征在于,所述迁移模块,还用于:
在将所述新卷挂载至所述虚拟机上的过程失败时,生成新卷挂载失败信息,并执行新卷挂载回滚操作。
13.如权利要求10所述的装置,其特征在于,所述迁移模块,还用于:
在将所述原卷中的数据拷贝到所述新卷中的过程失败时,生成数据拷贝失败信息,并执行数据拷贝回滚操作。
14.如权利要求8所述的装置,其特征在于,所述卸载模块,用于:
卸载所述虚拟机中的所有原卷;
删除所述虚拟机中的所有原卷。
15.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一所述的虚拟机存储迁移方法。
16.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一所述的虚拟机存储迁移方法。

说明书全文

虚拟机存储迁移方法、装置和计算机设备

技术领域

[0001] 本发明涉及虚拟机存储迁移技术领域,尤其涉及一种虚拟机存储迁移方法、装置和计算机设备。

背景技术

[0002] OpenStack是一个美国国家航空航天局和Rackspace合作研发的,旨在为公共及私有的建设与管理提供软件的开源项目。其中,负责存储资源管理的组件cinder常用的后端存储包含分布式存储,如Ceph、Sheepdog等;NAS(Network Attached Storage,网络附属存储)存储,如NFS(Network File System,网络文件系统)、曙光ParaStor等以及SAN(Storage Area Network,存储区域网络)存储。
[0003] 目前,OpenStack提供一种通用方法实现在NFS、LVM(Logical Volume Manager,逻辑卷管理)、商业存储等存储为载体的卷之间的互相迁移,但是只提供对单个卷的迁移,也即对虚拟机进行存储迁移时,只能通过对虚拟机的每个卷单独进行迁移。然而,现有技术只考虑对单个卷的迁移,是由于cinder存储组件和nova计算组件在社区中相对独立,衔接程度较低,导致对虚拟机的存储迁移功能涉及到的这两个组件之间开发的技术关键点还没有好的解决方案。

发明内容

[0004] 本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
[0005] 为此,本发明的第一个目的在于提出一种虚拟机存储迁移方法,能够解决当前虚拟机只能单个卷进行迁移的问题,保证迁移过程的原子性、一致性、并发性。
[0006] 本发明的第二个目的在于提出一种虚拟机存储迁移装置。
[0007] 本发明的第三个目的在于提出一种计算机设备。
[0008] 本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
[0009] 为了实现上述目的,本发明第一方面实施例提出一种虚拟机存储迁移方法,该方法包括:
[0010] 生成虚拟机的迁移任务,并将所述迁移任务载入至任务队列中;
[0011] 利用线程池从所述任务队列中获取所述迁移任务,并执行所述迁移任务,其中,所述线程池中的一个线程对应一个迁移任务;
[0012] 判断所有所述迁移任务是否完成;
[0013] 如果所有所述迁移任务完成,则执行卸载原卷任务。
[0014] 可选的,所述虚拟机中的每个卷分别对应一个迁移任务。
[0015] 可选的,执行所述迁移任务,包括:
[0016] 获取所述虚拟机中原卷的配置,并根据所述原卷的配置在目标存储中创建新卷;
[0017] 将所述新卷挂载至所述虚拟机上;
[0018] 将所述原卷中的数据拷贝到所述新卷中。
[0019] 可选的,在根据所述原卷的配置在目标存储中创建新卷的过程失败时,还包括:
[0020] 生成创建新卷失败信息,并执行创建新卷回滚操作。
[0021] 可选的,在将所述新卷挂载至所述虚拟机上的过程失败时,还包括:
[0022] 生成新卷挂载失败信息,并执行新卷挂载回滚操作。
[0023] 可选的,在将所述原卷中的数据拷贝到所述新卷中的过程失败时,还包括:
[0024] 生成数据拷贝失败信息,并执行数据拷贝回滚操作。
[0025] 可选的,执行卸载原卷任务,包括:
[0026] 卸载所述虚拟机中的所有原卷;
[0027] 删除所述虚拟机中的所有原卷。
[0028] 本发明实施例的虚拟机存储迁移方法,通过生成虚拟机的迁移任务,并将迁移任务载入至任务队列中,以及利用线程池从任务队列中获取迁移任务,并执行迁移任务,当所有迁移任务完成时,执行卸载原卷任务,解决了当前虚拟机只能单个卷进行迁移的问题,保证了迁移过程的原子性、一致性、并发性。
[0029] 为了实现上述目的,本发明第二方面实施例提出了一种虚拟机存储迁移装置,包括:
[0030] 载入模,用于生成虚拟机的迁移任务,并将所述迁移任务载入至任务队列中;
[0031] 迁移模块,用于利用线程池从所述任务队列中获取所述迁移任务,并执行所述迁移任务,其中,所述线程池中的一个线程对应一个迁移任务;
[0032] 判断模块,用于判断所有所述迁移任务是否完成;
[0033] 卸载模块,用于如果所有所述迁移任务完成,则执行卸载原卷任务。
[0034] 可选的,所述虚拟机中的每个卷分别对应一个迁移任务。
[0035] 可选的,所述迁移模块,用于:
[0036] 获取所述虚拟机中原卷的配置,并根据所述原卷的配置在目标存储中创建新卷;
[0037] 将所述新卷挂载至所述虚拟机上;
[0038] 将所述原卷中的数据拷贝到所述新卷中。
[0039] 可选的,所述迁移模块,还用于:
[0040] 在根据所述原卷的配置在目标存储中创建新卷的过程失败时,生成创建新卷失败信息,并执行创建新卷回滚操作。
[0041] 可选的,所述迁移模块,还用于:
[0042] 在将所述新卷挂载至所述虚拟机上的过程失败时,生成新卷挂载失败信息,并执行新卷挂载回滚操作。
[0043] 可选的,所述迁移模块,还用于:
[0044] 在将所述原卷中的数据拷贝到所述新卷中的过程失败时,生成数据拷贝失败信息,并执行数据拷贝回滚操作。
[0045] 可选的,所述卸载模块,用于:
[0046] 卸载所述虚拟机中的所有原卷;
[0047] 删除所述虚拟机中的所有原卷。
[0048] 本发明实施例的虚拟机存储迁移装置,通过生成虚拟机的迁移任务,并将迁移任务载入至任务队列中,以及利用线程池从任务队列中获取迁移任务,并执行迁移任务,当所有迁移任务完成时,执行卸载原卷任务,解决了当前虚拟机只能单个卷进行迁移的问题,保证了迁移过程的原子性、一致性、并发性。
[0049] 为了实现上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的虚拟机存储迁移方法。
[0050] 为了实现上述目的,本发明第四方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面实施例所述的虚拟机存储迁移方法。
[0051] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明
[0052] 构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0053] 图1是本发明一实施例的虚拟机存储迁移方法的流程图
[0054] 图2是本发明一实施例的执行迁移任务的流程图;
[0055] 图3是本发明一具体实施例的虚拟机存储迁移方法的流程图;
[0056] 图4是本发明一具体实施例的虚拟机存储迁移实现原理图;
[0057] 图5是本发明一具体实施例的线程执行迁移任务流的流程图;
[0058] 图6是本发明一实施例的虚拟机存储迁移装置的结构示意图。

具体实施方式

[0059] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0060] 以下结合具体实施例对本发明作进一步详细描述,这些实施例不能理解为限制本发明所要求保护的范围。
[0061] 下面参考附图描述本发明实施例的虚拟机存储迁移方法、装置和计算机设备。
[0062] 图1是本发明一实施例的虚拟机存储迁移方法的流程图,如图1所示,该方法包括以下步骤:
[0063] S1,生成虚拟机的迁移任务,并将迁移任务载入至任务队列中。
[0064] 其中,虚拟机中的每个卷分别对应一个迁移任务。
[0065] S2,利用线程池从任务队列中获取迁移任务,并执行迁移任务。
[0066] 其中,线程池中的一个线程对应一个迁移任务。
[0067] 在本发明的一个实施例中,执行迁移任务,如图2所示,具体包括以下步骤:
[0068] S21,获取虚拟机中原卷的配置,并根据原卷的配置在目标存储中创建新卷。
[0069] 在根据原卷的配置在目标存储中创建新卷的过程失败时,还包括:
[0070] 生成创建新卷失败信息,并执行创建新卷回滚操作。
[0071] S22,将新卷挂载至虚拟机上。
[0072] 在将新卷挂载至虚拟机上的过程失败时,还包括:
[0073] 生成新卷挂载失败信息,并执行新卷挂载回滚操作。
[0074] S23,将原卷中的数据拷贝到新卷中。
[0075] 在将原卷中的数据拷贝到新卷中的过程失败时,还包括:
[0076] 生成数据拷贝失败信息,并执行数据拷贝回滚操作。
[0077] S3,判断所有迁移任务是否完成。
[0078] S4,如果所有迁移任务完成,则执行卸载原卷任务。
[0079] 具体地,执行卸载原卷任务可包括:卸载虚拟机中的所有原卷;删除虚拟机中的所有原卷。
[0080] 本发明实施例的虚拟机存储迁移方法,通过生成虚拟机的迁移任务,并将迁移任务载入至任务队列中,以及利用线程池从任务队列中获取迁移任务,并执行迁移任务,当所有迁移任务完成时,执行卸载原卷任务,解决了当前虚拟机只能单个卷进行迁移的问题,保证了迁移过程的原子性、一致性、并发性。
[0081] 下面通过一个具体实施例,来对本发明的虚拟机存储迁移方法进行详细阐述。
[0082] 图3是本发明一具体实施例的虚拟机存储迁移方法的流程图。
[0083] 本实施例提出的基于OpenStack虚拟机存储迁移方法,主要为解决虚拟机存储迁移过程中原子性、一致性、并发性问题。该方法要求虚拟机的所有卷必须全部迁移成功,如果有一个卷迁移失败,则全部卷将回滚至迁移前状态。
[0084] 如图3所示,该方法包括以下步骤:
[0085] S31,获取迁移任务。
[0086] 将虚拟机中的每个卷分解为一个迁移任务(Task),将迁移任务载入至任务队列(Queue)中。同时线程池(ThreadPool)中的每个线程获取一个迁移任务,每个迁移任务将由对应的线程完成。
[0087] 具体的虚拟机存储迁移原理,可如图4所示。
[0088] S32,每个线程将执行一个卷迁移任务流(TaskFlow)。
[0089] 如图5所示,任务流中可包含以下步骤:
[0090] S501,创建一个新卷任务。
[0091] 可创建一个新卷任务(CreateNewVolumeTask),再根据原卷(OldVolume)的配置在目标存储中创建一个新卷(NewVolume)。
[0092] S502,判断新卷任务是否创建成功。如果创建成功,则跳转至步骤S503,否则跳转至步骤S507。
[0093] S503,将新卷挂载到虚拟机上。
[0094] S504,判断挂载是否成功。如果挂载成功,则跳转至步骤S505,否则跳转至步骤S507。
[0095] S505,将原卷中的数据拷贝到新卷中。
[0096] S506,判断拷贝是否成功。如果拷贝成功,则跳转至步骤S33,否则跳转至步骤S507。
[0097] S507,执行迁移任务回滚操作。
[0098] 在创建新卷任务、将新卷挂载到虚拟机上、将原卷中的数据拷贝到新卷中,这三个阶段中,均设置有报错机制和超时限制。如果产生错误或超时,则将失败信息(FailMessage)发送给回滚引擎(RevertEngine)执行迁移任务回滚操作。同时,线程之间采用了同步机制。
[0099] 在创建新卷任务过程中失败时的回滚操作,具体如下:
[0100] 清除新卷(NewVolume)操作,更新数据库。通知其他线程暂停所执行的任务流,并执行相应的迁移任务回滚操作。
[0101] 在将新卷挂载到虚拟机上和将原卷中的数据拷贝到新卷中,这两个阶段的迁移任务失败时的回滚操作相同,具体如下:
[0102] 卸载新卷(NewVolume)和清除新卷(NewVolume)操作,更新数据库。通知其他线程暂停所执行的任务流,并执行相应的迁移任务回滚操作。
[0103] S33,执行卸载原卷任务。
[0104] 线程执行完成后,将发送成功消息(TrueMessage)给迁移进程,并阻塞相应线程。迁移进程在收到所有线程的迁移成功消息后(Event=true),将执行接下来的任务流,即卸载所有原卷任务(DetachAllOldVolumeTask);删除所有原卷任务
(DeleteAllOldVolumeTask)。
[0105] 本任务流中无回滚机制,但设置了重试机制,即设置了服务异常状态下的重试次数。
[0106] S34,完成虚拟机存储迁移。
[0107] 本发明通过对虚拟机存储迁移整体架构进行设计,卷迁移任务流(TaskFlow)进行设计,以及采取线程同步机制与回滚引擎机制,实现了基于OpenStack虚拟机的存储迁移,保证了迁移过程的原子性、一致性、并发性。
[0108] 为了实现上述实施例,本发明还提出了一种虚拟机存储迁移装置。
[0109] 图6是本发明一实施例的虚拟机存储迁移装置的结构示意图。
[0110] 如图6所示,该装置包括载入模块61、迁移模块62、判断模块63以及卸载模块64。
[0111] 载入模块61,用于生成虚拟机的迁移任务,并将迁移任务载入至任务队列中。
[0112] 迁移模块62,用于利用线程池从任务队列中获取迁移任务,并执行迁移任务。
[0113] 其中,线程池中的一个线程对应一个迁移任务。
[0114] 判断模块63,用于判断所有迁移任务是否完成。
[0115] 卸载模块64,用于如果所有迁移任务完成,则执行卸载原卷任务。
[0116] 应当理解的是,本实施例的虚拟机存储迁移装置与第一方面实施例的虚拟机存储迁移方法的描述一致,此处不再赘述。
[0117] 本发明实施例的虚拟机存储迁移装置,通过生成虚拟机的迁移任务,并将迁移任务载入至任务队列中,以及利用线程池从任务队列中获取迁移任务,并执行迁移任务,当所有迁移任务完成时,执行卸载原卷任务,解决了当前虚拟机只能单个卷进行迁移的问题,保证了迁移过程的原子性、一致性、并发性。
[0118] 为了实现上述实施例,本发明还提出了一种计算机设备。
[0119] 该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如第一方面实施例的虚拟机存储迁移方法。
[0120] 为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质。
[0121] 该非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面实施例的虚拟机存储迁移方法。
[0122] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0123] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0124] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0125] 需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0126] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈