CN102521038B - 基于分布式文件系统的虚拟机迁移方法和装置 - Google Patents
基于分布式文件系统的虚拟机迁移方法和装置 Download PDFInfo
- Publication number
- CN102521038B CN102521038B CN201110402083.3A CN201110402083A CN102521038B CN 102521038 B CN102521038 B CN 102521038B CN 201110402083 A CN201110402083 A CN 201110402083A CN 102521038 B CN102521038 B CN 102521038B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- migration
- data
- host
- source host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于分布式文件系统的虚拟机迁移方法和装置。该方法包括:根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机。本发明技术方案可通过设置在主机的缓存,以便虚拟机通过缓存进行分布式文件系统的访问,这样在进行虚拟机迁移时,可通过缓存来控制主机的网络带宽资源占用,确保迁移虚拟机时有足够的带宽资源,可有效确保迁移成功。
Description
技术领域
本发明涉及技术虚拟机迁移技术,尤其涉及一种基于分布式文件系统的虚拟机迁移方法和装置。
背景技术
针对大规模计算处理平台,为了解决其广域分布的物理资源层的动态性和异构性,聚合并组织各种各样的计算资源、数据资源及软件资源,多采用虚拟机技术来屏蔽硬件的异构性对上层软件的影响;同时采用虚拟机还具有隔离软件的作用,部署在同一个物理主机上不同虚拟机里的软件可以相互没有影响地运行。同时,现有数据中心平台中,为了统一管理、维护及共享的需求,虚拟机的镜像由分布式文件系统管理,存放于分布式文件系统的一个或多个存储设备中,虚拟机的内存则运行于一台服务器即主机中。虚拟机启动后对其镜像文件的访问,需要通过调用分布式文件系统的接口来远程请求数据。
其中,在分布式文件系统下,维护者可以任意添加文件服务器或修改文件位置,用户可以在多个不同的点上访问数据;同时,分布式文件系统可以进行文件的垃圾回收或者重新组织文件的分布以改善系统的负载均衡,能根据数据量的增长提供无缝的、不停机的容量扩充。相比传统文件系统,分布式文件系统有良好的性能、可伸缩性、可靠性以及可用性。其中,分布式文件系统GFS、HDFS等均采用主机(master)、从机(slave)的设计,主机用来做集中式的文件管理,维护文件系统所有的元数据,包括名字空间、访问控制信息和文件到数据块的映射信息,以及数据块当前所在的位置;从机真正作为数据的存储服务器,负责处理客户端对文件的读写访问。而虚拟机技术的实现,为上层应用程序提供了很好的透明性支持,优化了资源利用率,提高了资源使用的灵活性和可扩展性,增强了系统的安全性和可用性,例如当前常见的虚拟机软件有威睿虚拟系统软件VMWare、基于内核的虚拟机kvm以及虚拟机监控器xen等。此外,为了应对硬件或软件资源的故障、设备停机维修,或资源的负载均衡等问题,虚拟机的在线迁移技术变得非常重要。虚拟机在线迁移主要是指,当服务器或数据中心发生异常时,其工作负载可以自动转移到正常运行的服务器上;当服务器需要维护时,可以把运行其上的虚拟机迁移到有空闲计算资源的服务器上,维护结束服务器恢复运行后把虚拟机迁移回原服务器,整个过程不会中断,从而保持了业务连续性;在线迁移还可以支持IT管理在数据中心服务器之间实现负载均衡,避免出现部分过载情况,实现服务器的整合;在线迁移还可以用于实现灾难恢复,因为虚拟机可以在不同站点间自由移动,在主本虚拟机因故障宕机后,远程站点的副本虚拟机接管业务来实现容灾。
目前在线迁移机制都要求宿主机之间采用存储区域网络(storage areanetwork,SAN),网络接入存储(network-attached storage,NAS)等集中式共享外存设备,因而在迁移时只需要考虑操作系统内存执行状态的迁移。虚拟内存在线迁移都采用预拷贝(pre-copy)的策略,基本机制如下:迁移开始之后,源主机的虚拟机仍在运行,目的主机的虚拟机尚未启动。迁移通过一个循环,将源主机的虚拟机的内存数据发送至目的主机。循环第一轮发送所有内存页数据,接下来的每一轮循环发送上一轮预拷贝过程中被源主机的虚拟机写过的脏页内存(dirty pages),直到脏页内存减少到一定值,预拷贝循环结束,进入停机拷贝阶段,源主机被挂起,不再有内存更新。最后一轮循环中的脏页内存被传输至目的主机,虚拟机内存迁移完成,目的主机就可以启动虚拟机。预拷贝机制极大的减少了停机拷贝阶段需要传输的内存数据量,从而将停机时间大大缩小。
但是,当单位时间内虚拟机新增长的内存量大于当前可用的网络带宽时,虚拟机无法将该部分内存传输到目的主机上;若该条件在一段时间内持续发生,则虚拟机因待迁移的内存无法收敛导致迁移失败。在密集型的数据处理场景中,该条件由于网络资源的大量占用会时常发生:同一服务器上的多个虚拟机同时进行数据的读写操作,这导致网络资源的长时间大量占用,当前可用的网络带宽过低,如果此时有虚拟机迁移的需要,则会因迁移条件无法满足造成虚拟机的迁移无法完成。
现有系统中为解决迁移无法完成,通常采用以下方法:
(1)数据传输与任务执行使用不同的网络,使得密集的数据传输不会影响任务的正常执行。这种解决方案带来了环境建设的开销,特别是平台为了高可用需求而采用网络冗余机制,需要额外2套网络。
(2)先将虚拟机停机再迁移,这种机制无需迁移内存,只需在目的主机配置并重新启动该虚拟机即可。这种机制带来了一定的宕机时间,特别是在虚拟机应用于服务或进行数据传输时,无法满足用户需要。
综上,现有虚拟机迁移时,会因网络带宽资源不足而导致迁移失败,通过建立网络进行迁移时会浪费大量网络资源,成本高,通过停机迁移会造成宕机,无法满足用户实际需要。
发明内容
本发明提供一种基于分布式文件系统的虚拟机迁移方法和装置,可有效克服现有技术存在的问题。
本发明提供一种基于分布式文件系统的虚拟机迁移方法,包括:
根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;
将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机。
本发明还提供一种基于分布式文件系统的虚拟机迁移装置,包括:
速度调整模块,用于根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;
迁移模块,用于将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机。
本发明提供的基于分布式文件系统的虚拟机迁移方法和装置,可通过调整设置在源主机的本地缓存的读写速度,进而调整源主机可利用的带宽资源,可有效确保虚拟机迁移所需的网络宽带资源,避免出现因网络宽带资源不足而导致的虚拟机迁移失败问题,基于本发明技术方案不需要新增额外的网络,成本较低,且不会出现宕机现象,可有效满足用户的实际需要。
附图说明
图1为本发明实施例一提供的基于分布式文件系统的虚拟机迁移方法流程示意图;
图2为本发明实施例二提供的基于分布式文件系统的虚拟机迁移方法中对缓存的读写速度进行调整的流程示意图;
图3为本发明实施例三中对虚拟机内存和缓存中的数据进行迁移的流程示意图;
图4为本发明实施例四中对虚拟机内存和缓存中的数据进行迁移的流程示意图;
图5为本发明实施例五提供的基于分布式文件系统的虚拟机迁移装置结构示意图;
图6为本发明实施例六提供的基于分布式文件系统的虚拟机迁移装置结构示意图;
图7为本发明实施例七提供的基于分布式文件系统的虚拟机迁移装置结构示意图;
图8为本发明实施例八提供的基于分布式文件系统的虚拟机迁移装置结构示意图。
具体实施方式
图1为本发明实施例一提供的基于分布式文件系统的虚拟机迁移方法流程示意图。本实施例可应用于虚拟机的迁移中,当需要将运行在源主机的虚拟机迁移到目的主机时,可基于当前的迁移环境信息来调整本地缓存的读写速度,以节省当前环境的带宽资源,确保迁移成功,具体地,如图1所示,本实施例虚拟机迁移方法可包括以下步骤:
步骤101、源主机根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,该源主机本地缓存为虚拟机部署时创建,用于缓存虚拟机访问分布式文件系统的数据;
步骤102、源主机将该虚拟机的虚拟机内存,以及源主机本地缓存中缓存的数据迁移至目的主机。
本实施例中,源主机可部署有作为虚拟机访问分布式文件系统的缓存,这样,虚拟机在向分布式文件系统读写数据时均通过缓存进行,对于最近访问的数据或者经常访问的数据可存储在缓存中,从而可节省源主机的宽带资源利用率。
本实施例中,在对虚拟机进行迁移时,可根据当前迁移环境,例如当前网络宽带资源,以及待迁移的虚拟机的虚拟内存的大小,来调整源主机当地缓存的读写速度,确保源主机可使用的宽带资源可满足虚拟机迁移需要,避免因宽带资源不足而导致虚拟机迁移失败。
本领域技术人员可以理解,虚拟机迁移时,还需要对虚拟机运行的环境参数进行迁移,由于虚拟机运行的环境参数仅需迁移一次,且数据量较小,因此,在虚拟机迁移时仅需要考虑虚拟机的虚拟内存来调整缓存的读写速度即可。
综上,本实施例提供的基于分布式文件系统的虚拟机迁移方法,通过对源主机本地缓存的读写速度进行调整,可有效确保虚拟机迁移所需的网络宽带资源,避免出现因网络宽带资源不足而导致的虚拟机迁移失败问题。
图2为本发明实施例二提供的基于分布式文件系统的虚拟机迁移方法中对缓存的读写速度进行调整的流程示意图。如图2所示,本实施例虚拟机迁移方法中,对源主机的本地缓存的读写速度进行调整具体可包括以下步骤:
步骤1011、源主机获取源主机和目的主机的迁移环境信息,迁移环境信息包括当前网络传输速度、虚拟机迁移的持续时间以及缓存当前设定的读写速度;
步骤1012、源主机根据迁移环境信息,通过动态限速算法计算得到源主机与目的主机之间对所述虚拟机进行迁移所需的读写速度;
步骤1013、源主机根据计算得到的读写速度,调整源主机的本地缓存的读写速度,使源主机的当前网络带宽满足虚拟机迁移所需的网络带宽。
上述步骤1011中,所述的迁移环境信息还可包括当前的输入输出IO速度、主机所连网络的可用带宽等,从而可根据这些迁移环境信息得到成功迁移虚拟机时所需的网络带宽,以对缓存速度进行限制,确保源主机可具有对虚拟机进行迁移所需的网络带宽。
上述步骤1012中,计算得到源主机与目的主机之间所需的读写速度后,还可将该读写速度发送至目的主机,由目的主机来调整目的主机本地缓存的读写速度,使得源主机和目的主机均有足够的网络带宽,以确保虚拟机迁移的可达性。其中,所述的动态限速算法时为了保证虚拟机迁移时有足够的可用带宽而实时调整缓存读写速率而设计的启发式算法,该算法通过实时地探测网络可用带宽,虚拟机迁移持续时间,以及迁移双方的读写速率来调整缓存的读写速率。
具体地,缓存的读写速率通过单次可读写的块大小以及允许的间隔时间来控制,如果单次读写的块较小,且间隔时间长,则读写速率低。读写速率默认的初始值一般为经验值。若要降低读速率,则可以将读间隔时间设定为t,t=初始间隔时间*默认速率/目的速率。
在进行动态限速算法进行计算时,需要定期检测当前可用带宽,当网络可用带宽小于某个阈值(可取值为网络总带宽/该主机迁移中的虚拟机vm的数目)时,降低读写速率,一般降低后的速率为v,v=默认速率*当前带宽/阈值;若可用带宽大于阈值,则不作处理。
检测虚拟机迁移持续时间,当时间大于理论值(虚拟机内存/阈值网速)时,则降低读写速率,降低后的速率为(默认速率*理论时间/当前迁移时间);若当前时间小于理论值,则不作处理。
检测对方缓存的读写速率,若对方速率降低,则按比例降低自己的速率,降低后的速率为(默认速率*对方当前速率/对方默认速率)。
最终的缓存读写速率为上面三种速率的加权和。
可以看出,通过动态限速算法可获得保证虚拟机迁移所需的缓存的读写速率,从而可根据该读写速率对缓存的读写速度进行调整。
本实施例的源主机中部署的缓存,可作为虚拟机访问分布式文件系统的存储空间,这样,源主机的虚拟机访问分布式文件系统的存储器中的数据时,均需要通过缓存来进行,由于缓存可存储虚拟机经常访问的数据以及最近访问的数据,使得虚拟机的大部分的读操作均可以在本地主机上完成,可有效降低虚拟机运行时的占用网络带宽资源;同时,还可通过对本地缓存的读写速度进行调整,以调节源主机当前占用的网络带宽资源,以便在虚拟机迁移时可为虚拟机迁移提供足够的带宽,确保虚拟机成功迁移。
具体地,本实施例源主机本地缓存可包括存在位图模块、脏位图模块、hash偏移表模块、size最小堆模块、异步写入模块、限速模块和缓存文件模块,各模块功能分别说明如下:
存在位图模块,用于存放存在位图,以记录当前访问的数据是否已经存在于缓冲中,主要用于虚拟机读数据操作时。如果存在位图对应的bit位为1,则表明虚拟机要访问的数据块存在于缓存中,否则不存在。其中存在位图对应的数据就是存在数据,表示分布式文件系统的存储器中在缓存中存在的数据。
下面对缓存中的位图与数据之间的关系进行说明,具体地,以存在位图位列,存在位图可用来标识要读取的数据是否在缓存中,其中存在位图的大小为a,a=虚拟机镜像文件大小/4K/8,其中,(镜像大小/4k表明了要表示镜像页数目需要的位数目,除8表明位图占用的字节大小。因此存在位图可用标识虚拟机镜像文件的所有页。
如果虚拟机要访问的某一页在缓存中,则存在位图标识为1,则可通过哈希表来定位该数据在缓存中的位置。
同理,下面提到的脏位图跟存在位图的大小相同,可用来标识新写入缓存中且尚未同步到分布式文件系统的存储器中的数据,其对数据的寻址亦采用哈希表的方式。其具体存储方式与传统缓存具有类似的方式,在此不再具体说明。
脏位图模块,用于存放脏位图,以可标记虚拟机新写入缓存且未同步到分布式文件系统的存储设备中的数据,用于虚拟机写数据操作。如果脏位图对应的bit为1,则为脏数据,应该将缓存中的数据同步到分布式文件系统的文件中,写入完成后将脏位图的bit置为0。其中脏位图对应的数据就是脏数据,表示虚拟机写入缓存而未同步到分布式文件系统时的数据。
hash偏移表模块,用于查询虚拟机访问的数据段在缓存中的位置。为了提高查询效率,引入哈希(Hash)算法,通过hash表来找到读写数据时的偏移值(offset),并通过遍历该散列值对应的链表,来定位数据块在缓存中的对应位置。
size最小堆模块,用于实施缓存旧数据的替换算法。通过对每个数据段大小(4K、8K、...、64K)设置相应的堆,并根据最近使用次数为节点值来组织最小堆,利用最小堆算法和最近最少使用(Least Recently Used,LRU)算法来替换旧数据。
异步写入模块,用于将缓存中的脏数据同步到分布式文件系统的存储设备的镜像文件中,以保持虚拟机内存数据与分布式文件系统中镜像文件一致。该模块遍历脏位图中bit为1的数据,根据bit位定位到缓存中的数据,将其写入到存储系统的文件中。
限速模块,该模块用来控制源主机对分布式文件系统的存储设备的访问次数,从而控制源主机占用网络带宽的资源量。该模块通过遍历周期或限制写入数据段的数目来限制写入速度。
缓存文件模块,用于通过设计文件格式,来存储位图信息、缓存的元信息及缓存数据段。根据统计,虚拟机运行时,操作的数据段大小次数略现正态分布,16K大小的数据最多,8K和32K的其次,因此在设计缓存文件格式时对缓存数据段进行优化,不同大小的数据块在缓存中的数目不同。这种设计方案可简化对缓存数据的寻址操作,提高读写效率。
通过上述各模块,使得源主机本地缓存可实现虚拟机访问分布式系统时的缓存,可存储虚拟机最近访问的数据以及经常访问的数据,使得虚拟机读取数据时可以直接从缓存中读取,从而避免占用过量的网络带宽;并且可通过缓存进行异步的后台写入机制,可通过控制缓存的写入分布式文件系统的速度,来提高主机可用的网络带宽。
本实施例中,部署在源主机中的虚拟机访问分布式系统时,通过缓存来进行,其中,读数据时,首先会查询缓存,确认缓存中存在所需要读得数据时,直接将缓存中的数据提供给虚拟机,否则再通过缓存从分布式文件系统的存储设备中读取数据,并存储在缓存中;写数据时,首先将数据写入缓存,然后由缓存在后台将写入的数据同步到分布式文件系统的存储设备中。
本领域技术人员可以理解,目的主机同样部署有缓存,以便目的主机在运行虚拟机时,同样可利用缓存来访问分布式文件系统,并可对源主机缓存发送来的数据进行存储。
图3为本发明实施例三中对虚拟机内存和缓存中的数据进行迁移的流程示意图。本实施例中,虚拟机内存的迁移与缓存中信息的迁移是同步进行的,在迁移过程中,虚拟机还继续在源主机运行,当虚拟机内存迁移完成后,目的主机就可以运行虚拟机,而源主机则停止虚拟机的运行,此时源主机的缓存中的信息可能没有完全迁移到目的主机的缓存,因此为确保在目的主机运行的虚拟机可正常访问源主机中未同步到分布式系统且未迁移到目的主机的缓存中的数据,本实施例迁移虚拟机内存以及缓存中的位图和数据时,需要确保迁移的完整性,为此,本发明实施例可对虚拟机在目的主机运行时的读操作进行处理,以确保迁移数据的完整性。具体地,如图3所示,本实施例虚拟机内存和缓存中的数据迁移可包括以下步骤:
步骤201、源主机向目的主机迁移虚拟机内存,并将源主机本地缓存中的脏位图、存在位图,以及缓存数据传输至目的主机;
步骤202、目的主机将接收的脏位图、存在位图以及缓存数据存储在其本地缓存;
步骤203、虚拟机内存迁移完成后,源主机停止虚拟机运行;
步骤204、目的主机启动虚拟机并运行;
步骤205、目的主机读数据时,从本地缓存中查询,判断本地缓存是否存在需要读取的数据,是则从本地缓存读取数据,结束,否则,执行步骤206;
步骤206、查询从目的主机接收的存在位图和脏位图,判断所请求的数据是否同步到分布式文件系统的存储设备中,是则执行步骤207,否则,执行步骤208;
步骤207、从分布式文件系统的存储设备中读取数据,结束;
步骤208、向源主机发送数据请求信息,该数据请求信息为源主机中未同步到分布式文件系统中的数据信息;
步骤209、源主机接收目的主机发送的数据请求信息;
步骤210、源主机从缓存中读取与数据请求信息对应的数据,并发送至目的主机,结束。
本实施例中,源主机本地缓存中的数据全部同步到目的主机或者全部同步到分布式文件系统的存储设备后,即可发送迁移结束标志给目的主机,这样目的主机根据该迁移结束标示就不会再向源主机请求数据。
本实施例中,源主机在虚拟机内存迁移完成后,可根据目的主机的请求,将未同步到分布式文件系统中的数据传输至目的主机,从而可确保虚拟机迁移的完整性。
图4为本发明实施例四中对虚拟机内存和缓存中的数据进行迁移的流程示意图。本实施例中,为确保数据迁移的一致性,在目的主机已经启动虚拟机,防止源主机新写入本地缓存且未同步到存储设备中的数据覆盖目的主机写入相同位置的数据,即防止新数据被旧数据覆盖,在目的主机写数据时可进行数据的一致性操作处理,具体地,如图4所示,本实施例中对虚拟机内存和缓存中的数据进行迁移可包括以下步骤:
步骤301、源主机向目的主机迁移虚拟机内存,并将缓存中的脏位图、存在位图,以及缓存数据传输至目的主机;
步骤302、目的主机将接收的脏位图、存在位图以及缓存数据存储在其本地缓存;
步骤303、虚拟机内存迁移完成后,源主机停止虚拟机运行;
步骤304、目的主机运行虚拟机;
步骤305、目的主机写数据时,将数据写入本地缓存,并将数据对应的脏位图发送至源主机;
步骤306、源主机接收到目的主机发送的脏位图;
步骤307、源主机判断本地缓存中的脏位图是否与从目的主机接收到的脏位图不一致,是则将源主机的本地缓存中的脏位图对应的数据同步到分布式文件系统,否则,不同步源主机的本地缓存中的脏位图对应的数据;
步骤308、目的主机将新写入本地缓存中的脏位图与从目的主机接收过来的脏位图进行比较,若脏位图不一致,暂不将本地缓存中脏位图对应数据同步到分布式文件系统,直到源主机中缓存中的数据全部同步到目的主机后再同步。
本实施例中,源主机本地缓存中的数据全部同步到目的主机或者全部同步到分布式文件系统的存储设备后,即可发送迁移结束标志给目的主机,这样目的主机根据该迁移结束标示就不会再向源主机请求数据。
本实施例中,在虚拟机内存迁移完成而源主机的缓存中的数据还未完全同步到目的主机时,对于目的主机新写入的数据,可首先通知源主机,以确定源主机中未同步到目的主机的数据是否需要同步到分布式文件系统,避免出现同步到分布式文件系统中出现数据错误。具体地,在虚拟机迁移到目的主机后,目的主机的虚拟机开始运行,因此在目的主机的缓存中有新写入数据;同时在源主机,存在一部分虚拟机迁移完成前写入但未同步的数据。如果这两部分数据不处理或处理顺序有误则会导致数据不一致。特别是目的主机同步到分布式文件系统的存储器后,源主机在相同的存储位置也写入缓存数据,致使数据丢失,本实施例通过上述步骤可有效避免数据丢失的问题。
本领域技术人员可以理解,上述步骤307和步骤308中,判断脏位图是否一致,即是对脏位图是否相同进行判断,脏位图为0时表示相应的数据已经同步至分布式文件系统的存储器中,脏位图为1时表示相应的数据还没有同步到分布式文件系统的存储器中,通过对脏位图一致性判定,可避免同步到分布式文件系统的存储器中数据错误或丢失的问题,确保虚拟机迁移过程中数据的一致性。
本领域技术人员可以理解,上述对图3中进行的数据完整性操作和图4中进行数据一致性操作也可在一个实施例中同步进行,这样可有效确保整个虚拟机迁移过程中数据的一致性和完整性。
图5为本发明实施例五提供的基于分布式文件系统的虚拟机迁移装置结构示意图。如图5所示,本实施例虚拟装置包括速度调整模块1和迁移模块2,其中:
速度调整模块1,用于根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;
迁移模块2,用于将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机。
本实施例中,在进行虚拟机迁移时,可通过调整缓存的读写速度来调整源主机的带宽资源,从而可确保虚拟机迁移所需的带宽资源,确保虚拟机迁移成功,其具体实现方法可参见上述本发明方法实施例的说明,在此不再赘述。
图6为本发明实施例六提供的基于分布式文件系统的虚拟机迁移装置结构示意图。如图6所示,本实施例中,速度调整模块1具体可包括迁移环境信息获取单元11、速度计算单元12和速度调整单元13,其中:
迁移环境信息获取单元11,用于获取所述源主机和目的主机的迁移环境信息,所述迁移环境信息包括当前网络传输速度、虚拟机迁移的持续时间以及缓存当前设定的读写速度;
速度计算单元12,用于根据所述迁移环境信息,通过动态限速算法计算得到所述源主机与目的主机之间对所述虚拟机进行迁移所需的读写速度;
速度调整单元13,用于根据计算得到的读写速度,调整所述源主机的本地缓存的读写速度,使所述源主机的当前网络带宽满足所述虚拟机迁移所需的网络带宽。
本实施例中,可通过迁移环境信息获取单元11、速度计算单元12和速度调整单元13对源主机本地缓存中的读写速度进行调整,确保源主机可具有足够的带宽资源进行虚拟机的迁移操作。
图7为本发明实施例七提供的基于分布式文件系统的虚拟机迁移装置结构示意图。本实施例中,迁移模块2具体可用于将虚拟机的虚拟内存,以及源主机本地缓存中的脏位图、存在位图和缓存数据发送至目的主机,此外,该装置还可包括数据请求接收模块3和数据发送模块4,其中:
数据请求接收模块3,用于接收所述目的主机发送的数据请求信息,所述数据请求信息为所述源主机中未同步到分布式文件系统中的数据信息;
数据发送模块4,用于将与所述数据请求信息对应的缓存数据发送至目的主机。
图8为本发明实施例八提供的基于分布式文件系统的虚拟机迁移装置结构示意图。本实施例中,如图8所示,该装置还可包括位图接收模块5和数据同步模块6,其中:
位图接收模块5,用于所述源主机接收所述目的主机写入目的主机的本地缓存中的脏位图;
数据同步模块6,用于判断所述源主机的本地缓存中的脏位图与所述写入目的主机的本地缓存中的脏位图是否不一致,是将将所述源主机的本地缓存中的脏位图对应的数据同步到分布式文件系统,否则,不同步所述源主机的本地缓存中的脏位图对应的数据。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于分布式文件系统的虚拟机迁移方法,其特征在于,包括:
根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;
将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机;
其中,所述根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度包括:
获取所述源主机和目的主机的迁移环境信息,所述迁移环境信息包括当前网络传输速度、虚拟机迁移的持续时间以及缓存当前设定的读写速度;
根据所述迁移环境信息,通过动态限速算法计算得到所述源主机与目的主机之间对所述虚拟机进行迁移所需的读写速度;
根据计算得到的读写速度,调整所述源主机的本地缓存的读写速度,使所述源主机的当前网络带宽满足所述虚拟机迁移所需的网络带宽。
2.根据权利要求1所述的基于分布式文件系统的虚拟机迁移方法,其特征在于,所述将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机具体为:
将所述虚拟机的虚拟内存,以及源主机本地缓存中的脏位图、存在位图和缓存数据发送至目的主机;
所述虚拟机的虚拟内存迁移完成后,还包括:
接收所述目的主机发送的数据请求信息,所述数据请求信息为所述源主机中未同步到分布式文件系统中的数据信息;
将与所述数据请求信息对应的缓存数据发送至目的主机。
3.根据权利要求1或2所述的基于分布式文件系统的虚拟机迁移方法,其特征在于,还包括:
所述源主机接收所述目的主机写入目的主机的本地缓存中的脏位图;
判断所述源主机的本地缓存中的脏位图与所述写入目的主机的本地缓存中的脏位图是否不一致,是将将所述源主机的本地缓存中的脏位图对应的数据同步到分布式文件系统,否则,不同步所述源主机的本地缓存中的脏位图对应的数据。
4.一种基于分布式文件系统的虚拟机迁移装置,其特征在于,包括:
速度调整模块,用于根据源主机和目的主机的迁移环境,调整源主机本地缓存的读写速度,所述源主机本地缓存为虚拟机部署时创建,用于缓存所述虚拟机访问分布式文件系统的数据;
迁移模块,用于将所述虚拟机的虚拟内存,以及所述源主机本地缓存中的数据迁移至目的主机;
其中,所述速度调整模块包括:
迁移环境信息获取单元,用于获取所述源主机和目的主机的迁移环境信息,所述迁移环境信息包括当前网络传输速度、虚拟机迁移的持续时间以及缓存当前设定的读写速度;
速度计算单元,用于根据所述迁移环境信息,通过动态限速算法计算得到所述源主机与目的主机之间对所述虚拟机进行迁移所需的读写速度;
速度调整单元,用于根据计算得到的读写速度,调整所述源主机的本地缓存的读写速度,使所述源主机的当前网络带宽满足所述虚拟机迁移所需的网络带宽。
5.根据权利要求4所述的基于分布式文件系统的虚拟机迁移装置,其特征在于,所述迁移模块,具体用于将所述虚拟机的虚拟内存,以及源主机本地缓存中的脏位图、存在位图和缓存数据发送至目的主机;
所述装置还包括:
数据请求接收模块,用于接收所述目的主机发送的数据请求信息,所述数据请求信息为所述源主机中未同步到分布式文件系统中的数据信息;
数据发送模块,用于将与所述数据请求信息对应的缓存数据发送至目的主机。
6.根据权利要求4或5所述的基于分布式文件系统的虚拟机迁移装置,其特征在于,还包括:
位图接收模块,用于所述源主机接收所述目的主机写入目的主机的本地缓存中的脏位图;
数据同步模块,用于判断所述源主机的本地缓存中的脏位图与所述写入目的主机的本地缓存中的脏位图是否不一致,是将将所述源主机的本地缓存中的脏位图对应的数据同步到分布式文件系统,否则,不同步所述源主机的本地缓存中的脏位图对应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110402083.3A CN102521038B (zh) | 2011-12-06 | 2011-12-06 | 基于分布式文件系统的虚拟机迁移方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110402083.3A CN102521038B (zh) | 2011-12-06 | 2011-12-06 | 基于分布式文件系统的虚拟机迁移方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521038A CN102521038A (zh) | 2012-06-27 |
CN102521038B true CN102521038B (zh) | 2014-04-09 |
Family
ID=46291973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110402083.3A Expired - Fee Related CN102521038B (zh) | 2011-12-06 | 2011-12-06 | 基于分布式文件系统的虚拟机迁移方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521038B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631633B (zh) * | 2012-08-20 | 2017-04-12 | 中国电信股份有限公司 | 虚拟机全系统在线迁移方法、装置与系统 |
CN103631652B (zh) * | 2012-08-28 | 2018-09-28 | 中兴通讯股份有限公司 | 虚拟机迁移的实现方法及系统 |
CN103440160B (zh) * | 2013-08-15 | 2016-12-28 | 华为技术有限公司 | 虚拟机恢复方法和虚拟机迁移方法以及装置与系统 |
US9436751B1 (en) | 2013-12-18 | 2016-09-06 | Google Inc. | System and method for live migration of guest |
CN104852789B (zh) * | 2014-02-17 | 2019-06-25 | 中国移动通信集团公司 | 一种载波迁移方法、数字前端、基带池及载波迁移系统 |
CN103885815A (zh) * | 2014-03-24 | 2014-06-25 | 北京大学 | 一种基于热页迁移的虚拟机动态缓存方法 |
CN105446790B (zh) * | 2014-07-15 | 2019-10-18 | 华为技术有限公司 | 一种虚拟机迁移方法及装置 |
EP3350713B1 (en) * | 2015-10-21 | 2022-05-04 | Huawei Technologies Co., Ltd. | Distributed cache live migration |
CN106997306B (zh) * | 2016-01-26 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 物理机数据迁移至云端的方法、装置和系统 |
CN105740052A (zh) * | 2016-01-28 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 非共享存储的虚拟机在线迁移的方法、装置及系统 |
CN107479942A (zh) * | 2016-06-08 | 2017-12-15 | 深圳市深信服电子科技有限公司 | 虚拟机的客户操作系统启动方法及装置 |
CN107566319B (zh) * | 2016-06-30 | 2021-01-26 | 中央大学 | 虚拟机器即时转移方法 |
CN107729119B (zh) * | 2017-09-26 | 2021-04-13 | 联想(北京)有限公司 | 虚拟机迁移方法及其系统 |
CN109753226A (zh) * | 2017-11-07 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 数据处理系统、方法及电子设备 |
CN107832118A (zh) * | 2017-11-18 | 2018-03-23 | 浙江网新恒天软件有限公司 | 一种降低vcpu热度的kvm虚拟机热迁移优化方法 |
CN108255575A (zh) * | 2017-12-06 | 2018-07-06 | 顺丰科技有限公司 | 一种虚拟机迁移方法及装置 |
CN108037980B (zh) * | 2018-01-02 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 控制执行虚拟机热迁移的方法、装置和可读存储介质 |
CN109525432A (zh) * | 2018-12-10 | 2019-03-26 | 浙江大华技术股份有限公司 | 一种室内电力巡检方法、装置及系统 |
CN111459687B (zh) * | 2020-04-02 | 2023-06-16 | 北京明朝万达科技股份有限公司 | 一种监控宿主机向虚拟机传递文件的方法及系统 |
CN111581175B (zh) * | 2020-04-29 | 2023-11-17 | 上海爱数信息技术股份有限公司 | 一种文件存储网关系统及其数据迁移方法 |
CN112988077B (zh) * | 2021-04-27 | 2021-07-23 | 云宏信息科技股份有限公司 | 一种虚拟磁盘复制方法和计算机可读存储介质 |
CN114327745B (zh) * | 2021-11-25 | 2022-10-25 | 北京志凌海纳科技有限公司 | 一种跨主机虚拟机存储热迁移的方法及系统 |
CN115827788B (zh) * | 2023-02-16 | 2023-06-23 | 天翼云科技有限公司 | 一种数据迁移方法、装置、电子设备及可读存储介质 |
CN117193641B (zh) * | 2023-09-08 | 2024-07-30 | 中电云计算技术有限公司 | 镜像缓存写入速率控制方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739282A (zh) * | 2008-11-18 | 2010-06-16 | 华为技术有限公司 | 一种虚拟机的管理方法、装置和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
-
2011
- 2011-12-06 CN CN201110402083.3A patent/CN102521038B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739282A (zh) * | 2008-11-18 | 2010-06-16 | 华为技术有限公司 | 一种虚拟机的管理方法、装置和系统 |
Non-Patent Citations (2)
Title |
---|
刘鹏程 等.面向云计算的虚拟机动态迁移框架.《计算机工程》.2010,第36卷(第5期),第37-39页. |
面向云计算的虚拟机动态迁移框架;刘鹏程 等;《计算机工程》;20100331;第36卷(第5期);第37-39页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102521038A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521038B (zh) | 基于分布式文件系统的虚拟机迁移方法和装置 | |
JP6791834B2 (ja) | 記憶システム及び制御ソフトウェア配置方法 | |
CN102629941B (zh) | 云计算系统中虚拟机镜像缓存的方法 | |
CN103067425B (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
CN106469085B (zh) | 虚拟机在线迁移方法、装置及系统 | |
CN103379159B (zh) | 一种分布式Web站点数据同步的方法 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
CN103929500A (zh) | 一种分布式存储系统的数据分片方法 | |
CN109299056B (zh) | 一种基于分布式文件系统的数据同步方法和装置 | |
CN109933312B (zh) | 一种有效降低容器化关系型数据库i/o消耗的方法 | |
CN102455942A (zh) | 一种广域网虚拟机动态迁移方法及系统 | |
CN107832423B (zh) | 一种用于分布式文件系统的文件读写方法 | |
CN110727709A (zh) | 一种集群数据库系统 | |
CN104361030A (zh) | 一种具有任务分发功能的分布式缓存架构及缓存方法 | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
CN103516549B (zh) | 一种基于共享对象存储的文件系统元数据日志机制 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
CN105468296A (zh) | 基于虚拟化平台的无共享存储管理方法 | |
CN104168323A (zh) | 一种云服务系统及方法 | |
CN112148430A (zh) | 一种虚拟网络功能的虚拟机在线安全迁移的方法 | |
US20150046394A1 (en) | Storage system, storage control device, and storage medium storing control program | |
JPWO2012063334A1 (ja) | 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ | |
CN110807039A (zh) | 一种云计算环境下数据一致性维护系统及方法 | |
CN103428288B (zh) | 基于分区状态表和协调节点的副本同步方法 | |
CN105007328A (zh) | 一种基于一致性hash的网络cache设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140409 Termination date: 20171206 |
|
CF01 | Termination of patent right due to non-payment of annual fee |