CN113986473A - 一种虚拟机批量启动方法及计算主机 - Google Patents
一种虚拟机批量启动方法及计算主机 Download PDFInfo
- Publication number
- CN113986473A CN113986473A CN202111334944.9A CN202111334944A CN113986473A CN 113986473 A CN113986473 A CN 113986473A CN 202111334944 A CN202111334944 A CN 202111334944A CN 113986473 A CN113986473 A CN 113986473A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory snapshot
- virtual machines
- unit
- objects
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 13
- 239000011159 matrix material Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种虚拟机批量启动方法及计算主机,涉及虚拟机技术领域,该虚拟机批量启动方法应用于计算主机,包括:创建多个虚拟机,并对多个虚拟机进行初始化;在存储系统中下载多个第一内存快照对象;接收其他主机发送的第二内存快照对象;根据第一内存快照对象和第二内存快照对象生成多个内存快照;控制多个虚拟机读取多个内存快照;多个虚拟机与多个内存快照一一对应。可见,实施这种实施方式,能够通过内存快照对象的应用大幅减少下载的数据量,同时还能够通过双向下载大幅减少网络资源消耗,从而有效的解决了存储系统和网络负载高的问题。
Description
技术领域
本申请涉及虚拟机技术领域,具体而言,涉及一种虚拟机批量启动方法及计算主机。
背景技术
现有的桌面云系统中,桌面虚拟机的启动性能主要还是决定于底层存储设备的性能。而目前的底层存储设备主要采用的还是存储空间大的磁盘。但是,磁盘由于采用机械设备来寻址和读写,所以往往存在读写速度慢的问题,从而严重影响虚拟机的读写性能。更为关键的是,在虚拟机启动时往往需要大量的读请求。当有大量的虚拟机同时启动时,不可避免地会造成存储系统和网络负载特别高的问题,从而严重影响了虚拟机的启动速度。
发明内容
本申请的目的在于提供一种虚拟机批量启动方法及计算主机,能够通过内存快照对象的应用大幅减少下载的数据量,同时还能够通过双向下载大幅减少网络资源消耗,从而有效的解决了存储系统和网络负载高的问题。
本申请实施例第一方面提供了一种虚拟机批量启动方法,所述方法应用于计算主机,所述方法包括:
创建多个虚拟机,并对所述多个虚拟机进行初始化;
在存储系统中下载多个第一内存快照对象;
接收其他主机发送的第二内存快照对象;
根据所述第一内存快照对象和所述第二内存快照对象生成多个内存快照;
控制所述多个虚拟机读取多个内存快照;所述多个虚拟机与所述多个内存快照一一对应。
可见,实施这种实施方式,能够将内存快照划分为多个固定大小的小对象,并从存储系统和其他主机中共同下载,从而能够有效减少内存快照上传和下载的数据量,并减少存储系统的网络资源消耗,进而有效的解决了存储系统和网络负载高的问题。同时,通过该种方式进行的虚拟机批量启动,速度更快,稳定性更高。
进一步地,所述创建多个虚拟机的步骤之前,所述方法还包括:
获取多个内存快照;
根据预设容量对所述多个内存快照进行划分,得到多个小文件;
对所述多个小文件进行去重,得到多个内存快照对象;
发送所述多个内存快照对象至所述存储系统。
进一步地,所述对所述多个小文件进行去重,得到多个内存快照对象的步骤包括:
计算与所述多个小文件一一对应的多个哈希值;
删除所述多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
进一步地,所述在存储系统中下载多个第一内存快照对象的步骤包括:
根据所述多个内存快照对象、所述计算主机和其他主机,生成对象访问矩阵;
根据所述多个内存快照对象的访问次数进行由高到低的排序,得到对象访问顺序;
根据所述对象访问矩阵和所述对象访问顺序进行计算,得到多主机合作下载方案;
根据所述多主机合作下载方案,在存储系统中下载多个第一内存快照对象。
进一步地,所述接收其他主机发送的第二内存快照对象的步骤包括:
根据所述多主机合作下载方案,接收其他主机发送的第二内存快照对象,并发送所述其他主机需要的第三内存快照对象。
本申请实施例第二方面提供了一种计算主机,所述计算主机包括:
创建单元,用于创建多个虚拟机,并对所述多个虚拟机进行初始化;
下载单元,用于在存储系统中下载多个第一内存快照对象;
传输单元,用于接收其他主机发送的第二内存快照对象;
生成单元,用于根据所述第一内存快照对象和所述第二内存快照对象生成多个内存快照;
启动单元,用于控制所述多个虚拟机读取多个内存快照;所述多个虚拟机与所述多个内存快照一一对应。
可见,实施这种实施方式,该计算主机能够创建多个虚拟机,并建立内存快照对象池;具体的,该计算主机从存储系统和其他主机处下载多个内存快照对象,并将对应的内存快照对象发送给各个虚拟机,从而使得每个虚拟机组合出对应的内存快照,进而使得每个虚拟机根据内存快照进行启动。由此可见,该计算主机在运行的过程中不再像以往那样获取每个虚拟机的内存快照,而是多向获取大量的小容量内存快照对象,以使所有虚拟机可以稳定、快速的进行启动。需要注意的是,当存在多个计算主机时,除当前计算主机之外,其他计算主机都将被视为其他主机;在批量计算主机存在时,该类计算主机能够更好的完成虚拟机批量启动的任务。
进一步地,所述计算主机还包括:
获取单元,用于获取多个内存快照;
划分单元,用于根据预设容量对所述多个内存快照进行划分,得到多个小文件;
去重单元,用于对所述多个小文件进行去重,得到多个内存快照对象;
发送单元,用于发送所述多个内存快照对象至所述存储系统。
进一步地,所述去重单元包括:
计算子单元,用于计算与所述多个小文件一一对应的多个哈希值;
去重子单元,用于删除所述多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的虚拟机批量启动方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的虚拟机批量启动方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种虚拟机批量启动方法的流程示意图;
图2为本申请实施例提供的另一种虚拟机批量启动方法的流程示意图;
图3为本申请实施例提供的一种计算主机的结构示意图;
图4为本申请实施例提供的另一种计算主机的结构示意图;
图5为本申请实施例提供的对内存快照进行划分去重得到内存快照对象的举例示意图;
图6为本申请实施例提供的内存快照下载示意图;
图7为本申请实施例提供的内存快照对象池下载推送示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供了一种虚拟机批量启动方法的流程示意图。其中,该虚拟机批量启动方法应用于计算主机,该方法包括:
S101、创建多个虚拟机,并对多个虚拟机进行初始化。
本实施例中,一个计算主机中创建多个虚拟机,每个虚拟机具有一个内存快照。
在本实施例中,初始化为每个虚拟机中的各种模拟设备的初始化。
S102、在存储系统中下载多个第一内存快照对象。
本实施例中,第一内存快照对象是指从存储系统中下载的内存快照对象。
在本实施例中,存储系统可以包括多个存储主机,在哪一个存储主机中进行现在本实施例中不作任何限定。
在本实施例中,内存快照包括多个内存快照对象。可以理解的是,当内存快照为100mb时,一个内存快照对象可以仅为1mb。
举例来说,当存在两个虚拟机时,第一个虚拟机具有50个内存快照对象,第二虚拟机中具有70个内存快照对象,其中,第一个虚拟机和第二个虚拟机之间具有20个重复的内存快照对象。可见,此时计算主机只需要下载70+50-20=100个内存快照对象,而不需要下载120个内存快照对象。这样有利于提高下载速度。
S103、接收其他主机发送的第二内存快照对象。
本实施例中,该方法不仅从存储系统中下载第一内存快照对象,还在其他主机中获取第二内存快照对象。
举例来说,上述计算主机需要下载100个内存快照对象,但是具体来看,计算主机仅在存储系统中下载了60个内存快照对象,而在其他主机中获取了40个内存快照对象。可见,该种方法能够使得存储系统减少传输数量,从而避免带宽的限制,从而提高内存快照对象获取的稳定性和效率。
S104、根据第一内存快照对象和第二内存快照对象生成多个内存快照。
本实施例中,该方法在计算主机中对第一内存快照对象和第二内存快照对象进行了分别组合,得到了符合每个虚拟机的内存快照。
S105、控制多个虚拟机读取多个内存快照;多个虚拟机与多个内存快照一一对应。
本实施例中,计算主机可以控制每个虚拟机加载对应的内存快照,从而实现快速、可靠地批量启动效果。
举例来说,请参阅图6和图7,VM为虚拟机。由于在同个计算主机启动的虚拟机的内存快照所组成的小对象有很多相同的,因此计算主机先把对象下载在内存快照对象池中,然后再通过该内存快照对象池下载小对象给虚拟机,这样很多相同的数据就不用多次下载,一台计算主机只需下载一次就可以给多个虚拟机共同访问,减少了对存储系统的访问次数,减少网络和存储的资源消耗。
同时,为了避免所有对象都是计算主机直接通过存储系统下载,存储系统的网络可能会因为使用率太高成为系统的瓶颈问题。该方法考虑到多个计算主机之前的网络还很空闲,有些对象可能需要多个计算主机访问,这时可以通过一台计算主机来下载该对象,然后推送给其他需要该对象的计算主机,这样该对象只需访问存储系统一次,减少了对存储系统的访问量。对于那些只需被一台计算主机访问的对象,直接由计算主机访问存储系统,此时计算网络消耗为0。对于需要被N(N>1)台计算主机访问的对象,由其中一台计算主机访问存储集群下载该对象然后推送给其他N-1台主机。其中发起下载和推送操作的主机的计算网络消耗为N-1次,其他主机的计算网络消耗为1次。为了使计算网络的消耗较均衡,可以使用贪婪算法来选择下载的主机。
本申请实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
在本申请实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
可见,实施本实施例所描述的虚拟机批量启动方法,能够将内存快照划分为多个固定大小的小对象,并从存储系统和其他主机中共同下载,从而能够有效减少内存快照上传和下载的数据量,并减少存储系统的网络资源消耗,进而有效的解决了存储系统和网络负载高的问题。同时,通过该种方式进行的虚拟机批量启动,速度更快,稳定性更高。
实施例2
请参看图2,图2为本申请实施例提供的一种虚拟机批量启动方法的流程示意图。如图2所示,其中,该虚拟机批量启动方法包括:
S201、获取多个内存快照。
本实施例中,在用户使用完云桌面之后,会保留当前界面,该当前界面通常为用户下次使用的开始界面。因此,可以保存该当前界面的内存快照,有利于下次虚拟机快速启动。
S202、根据预设容量对多个内存快照进行划分,得到多个小文件。
本实施例中,为了能通过内存快照来启动虚拟机,每个虚拟机需要生成并保存一份内存快照在存储系统中。一般内存快照都是几百到几千兆字节的大文件,如果每个虚拟机的内存快照独立存储,那么批量启动虚拟机时将需要下载大量的数据。由于很多虚拟机都是通过模板创建出来的,所以虚拟启动时的内存快照数据是很相似的。因此,该方法通过实行文件的去重压缩来减少内存快照的存储和下载量。
作为一种可选的实施方式,在根据预设容量对多个内存快照进行划分,得到多个小文件的步骤之后,该方法还包括:
对多个小文件进行去重,得到多个内存快照对象。
请参阅图5,在图5中该方法把内存快照切分成多个128KB大小的小文件,然后将多个小文件存储在对象存储中,其中,每个对象都可以是压缩后才存在硬盘上。此时,相同小文件只保存一份数据,不进行重复存储,此时存储下载的便是多个内存快照对象。
本实施例中,每个内存快照对象会有一个引用计数来统计该内存快照对象被多少个内存快照所使用。只有使用该对象的内存快照都删除时,引用计数才会变为0,这时方可删除该内存快照对象。
在本实施例中,由于很多虚拟机都是同个模板克隆出来而导致的内存快照的数据都是相识的,所以很多小文件可以指向多个虚拟机,从而具有较高的可去重率。通过使用上述的去重方法,可以大大减少数据存储的总量,节省了对象存储的空间使用。
作为一种进一步可选的实施方式,对多个小文件进行去重,得到多个内存快照对象的步骤包括步骤S203~S204。
S203、计算与多个小文件一一对应的多个哈希值。
S204、删除多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
本实施例中,该方法可以通过计算每个小文件的哈希值,每种哈希值保留一个小文件。
S205、发送多个内存快照对象至存储系统。
S206、创建多个虚拟机,并对多个虚拟机进行初始化。
S207、根据多个内存快照对象、计算主机和其他主机,生成对象访问矩阵。
举例来说,假设一个内存快照1GB,那么同时启动100台虚拟机需要访问存储系统100GB数据才能启动成功。假设有5台计算主机,每台计算主机分别需要访问20GB数据。通过数据去重,如果每台计算主机的数据访问量减半,那么对于存储集群的访问量就减少一半,只剩50GB。由于很多对象是被多个计算主机访问,通过一台主机访问存储系统,然后通过计算网络推送给其他计算主机,可以使储集群的访问量再大大减少,使得对象存储系统中的对象只会被访问一次。对于那些被多个计算主机访问的对象,通过选择合适的主机来下载推送,可以使计算网络使用率比较均衡。例如,表1示出了一种对象访问矩阵。
表1
对象 | 主机A | 主机B | 主机C | 主机D | 主机E |
a | 0 | 1 | 1 | 0 | 0 |
b | 0 | 0 | 1 | 1 | 1 |
c | 1 | 1 | 1 | 1 | 0 |
d | 0 | 0 | 0 | 1 | 1 |
e | 1 | 1 | 1 | 0 | 1 |
f | 1 | 1 | 0 | 1 | 0 |
g | 1 | 1 | 0 | 0 | 0 |
h | 0 | 1 | 1 | 1 | 1 |
i | 0 | 0 | 1 | 1 | 1 |
j | 1 | 0 | 0 | 1 | 0 |
可见,表1示出了a~j 10个对象的访问矩阵,矩阵值为1表示被列头所对应的主机所访问,0表示不访问。
S208、根据多个内存快照对象的访问次数进行由高到低的排序,得到对象访问顺序。
进一步举例,该方法对所有对象基于访问的计算主机数逆序排序,得出对象的选择顺序,如表2所示。
表2
c | e | h | b | f | i | a | d | g | j |
4 | 4 | 4 | 3 | 3 | 3 | 2 | 2 | 2 | 2 |
S209、根据对象访问矩阵和对象访问顺序进行计算,得到多主机合作下载方案。
进一步举例,根据表2排序的结果依次给对象选择一个合适的下载主机,选择的结果如表3所示。
表3
其中,该方法先为对象c选择主机,在ABCD主机中选一个,因为此时每个主机访问次数都是0,所以随机选一个,假设选A,那么A的访问次数就加上3,BCD主机的访问次数加上1;第二次为对象e选择主机,在ABCE主机中选择一个,此时主机E的访问次数最低,所以选择主机E为下载主机,那么E的访问次数就加上3,ABC主机的访问次数加上1。依次进行其他对象的选择。
本实施例中,根据举例来说,多主机合作下载方案为主机A下载对象c,主机E下载对象e,主机D下载对象h,主机C下载对象b,主机B下载对象f,主机E下载对象i,主机B下载对象a,主机D下载对象d,主机A下载对象g,主机A下载对象j。
本实施例中,多主机合作下载方案的计算规则如下:
①每个计算主机初始时,计算网络消耗为0次,每次选择完一个对象后就加上对应的次数。例如某个对象需要被A,B,C三台主机访问,如果选择A主机来下载,那么A主机计算网络消耗加上2(N-1)次,B,C主机加上1次,其他主机不需要改变;
②对所有对象基于访问的计算主机数逆序排序,也就是对象被更多的主机访问就更优先选择;
③根据排序的结果依次给对象选择一个下载主机;
④选择的规则是选择该对象所有需要访问的主机中当前计算网络消耗最小的主机。
S210、根据多主机合作下载方案,在存储系统中下载多个第一内存快照对象。
S211、根据多主机合作下载方案,接收其他主机发送的第二内存快照对象,并发送其他主机需要的第三内存快照对象。
S212、根据第一内存快照对象和第二内存快照对象生成多个内存快照。
S213、控制多个虚拟机读取多个内存快照;多个虚拟机与多个内存快照一一对应。
可见,实施本实施例所描述的虚拟机批量启动方法,能够通过把虚拟机内存快照拆分成小对象存储在存储系统中,并通过哈希值来实现数据去重,减少了数据上传和下载的数量。并通过选择合适的主机下载,利用计算主机之间的网络来传输相同数据,减少存储系统的带宽消耗。
实施例3
请参看图3,图3为本申请实施例提供的一种计算主机的结构示意图。如图3所示,该计算主机包括:
创建单元310,用于创建多个虚拟机,并对多个虚拟机进行初始化;
下载单元320,用于在存储系统中下载多个第一内存快照对象;
传输单元330,用于接收其他主机发送的第二内存快照对象;
生成单元340,用于根据第一内存快照对象和第二内存快照对象生成多个内存快照;
启动单元350,用于控制多个虚拟机读取多个内存快照;多个虚拟机与多个内存快照一一对应。
本申请实施例中,对于计算主机的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的计算主机,该计算主机能够创建多个虚拟机,并建立内存快照对象池;具体的,该计算主机从存储系统和其他主机处下载多个内存快照对象,并将对应的内存快照对象发送给各个虚拟机,从而使得每个虚拟机组合出对应的内存快照,进而使得每个虚拟机根据内存快照进行启动。由此可见,该计算主机在运行的过程中不再像以往那样获取每个虚拟机的内存快照,而是多向获取大量的小容量内存快照对象,以使所有虚拟机可以稳定、快速的进行启动。需要注意的是,当存在多个计算主机时,除当前计算主机之外,其他计算主机都将被视为其他主机;在批量计算主机存在时,该类计算主机能够更好的完成虚拟机批量启动的任务。
实施例4
请一并参阅图4,图4是本申请实施例提供的一种计算主机的结构示意图。其中,图4所示的计算主机是由图3所示的计算主机进行优化得到的。如图4所示,计算主机还包括:
获取单元360,用于获取多个内存快照;
划分单元370,用于根据预设容量对多个内存快照进行划分,得到多个小文件;
去重单元380,用于对多个小文件进行去重,得到多个内存快照对象;
发送单元390,用于发送多个内存快照对象至存储系统。
作为一种可选的实施方式,去重单元380包括:
计算子单元381,用于计算与多个小文件一一对应的多个哈希值;
去重子单元382,用于删除多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
作为一种可选的实施方式,下载单元320包括:
生成子单元321,用于根据多个内存快照对象、计算主机和其他主机,生成对象访问矩阵;
排序子单元322,用于根据多个内存快照对象的访问次数进行由高到低的排序,得到对象访问顺序;
计算子单元323,用于根据对象访问矩阵和对象访问顺序进行计算,得到多主机合作下载方案;
下载子单元324,用于根据多主机合作下载方案,在存储系统中下载多个第一内存快照对象。
作为一种可选的实施方式,传输单元具体330用于根据多主机合作下载方案,接收其他主机发送的第二内存快照对象,并发送其他主机需要的第三内存快照对象。
本申请实施例中,对于计算主机的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
可见,实施本实施例所描述的计算主机,该计算主机能够减少内存快照上传和下载的数据量;减少存储系统的网络资源消耗。
本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例1或实施例2中任一项虚拟机批量启动方法。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例1或实施例2中任一项虚拟机批量启动方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种虚拟机批量启动方法,其特征在于,所述方法应用于计算主机,所述方法包括:
创建多个虚拟机,并对所述多个虚拟机进行初始化;
在存储系统中下载多个第一内存快照对象;
接收其他主机发送的第二内存快照对象;
根据所述第一内存快照对象和所述第二内存快照对象生成多个内存快照;
控制所述多个虚拟机读取多个内存快照;所述多个虚拟机与所述多个内存快照一一对应。
2.根据权利要求1所述的虚拟机批量启动方法,其特征在于,所述创建多个虚拟机的步骤之前,所述方法还包括:
获取多个内存快照;
根据预设容量对所述多个内存快照进行划分,得到多个小文件;
对所述多个小文件进行去重,得到多个内存快照对象;
发送所述多个内存快照对象至所述存储系统。
3.根据权利要求2所述的虚拟机批量启动方法,其特征在于,所述对所述多个小文件进行去重,得到多个内存快照对象的步骤包括:
计算与所述多个小文件一一对应的多个哈希值;
删除所述多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
4.根据权利要求2所述的虚拟机批量启动方法,其特征在于,所述在存储系统中下载多个第一内存快照对象的步骤包括:
根据所述多个内存快照对象、所述计算主机和其他主机,生成对象访问矩阵;
根据所述多个内存快照对象的访问次数进行由高到低的排序,得到对象访问顺序;
根据所述对象访问矩阵和所述对象访问顺序进行计算,得到多主机合作下载方案;
根据所述多主机合作下载方案,在存储系统中下载多个第一内存快照对象。
5.根据权利要求4所述的虚拟机批量启动方法,其特征在于,所述接收其他主机发送的第二内存快照对象的步骤包括:
根据所述多主机合作下载方案,接收其他主机发送的第二内存快照对象,并发送所述其他主机需要的第三内存快照对象。
6.一种计算主机,其特征在于,所述计算主机包括:
创建单元,用于创建多个虚拟机,并对所述多个虚拟机进行初始化;
下载单元,用于在存储系统中下载多个第一内存快照对象;
传输单元,用于接收其他主机发送的第二内存快照对象;
生成单元,用于根据所述第一内存快照对象和所述第二内存快照对象生成多个内存快照;
启动单元,用于控制所述多个虚拟机读取多个内存快照;所述多个虚拟机与所述多个内存快照一一对应。
7.根据权利要求6所述的计算主机,其特征在于,所述计算主机还包括:
获取单元,用于获取多个内存快照;
划分单元,用于根据预设容量对所述多个内存快照进行划分,得到多个小文件;
去重单元,用于对所述多个小文件进行去重,得到多个内存快照对象;
发送单元,用于发送所述多个内存快照对象至所述存储系统。
8.根据权利要求7所述的计算主机,其特征在于,所述去重单元包括:
计算子单元,用于计算与所述多个小文件一一对应的多个哈希值;
去重子单元,用于删除所述多个哈希值中相同哈希值对应的小文件,得到多个内存快照对象。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至5中任一项所述的虚拟机批量启动方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至5任一项所述的虚拟机批量启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334944.9A CN113986473B (zh) | 2021-11-11 | 2021-11-11 | 一种虚拟机批量启动方法及计算主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334944.9A CN113986473B (zh) | 2021-11-11 | 2021-11-11 | 一种虚拟机批量启动方法及计算主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986473A true CN113986473A (zh) | 2022-01-28 |
CN113986473B CN113986473B (zh) | 2024-08-23 |
Family
ID=79748041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111334944.9A Active CN113986473B (zh) | 2021-11-11 | 2021-11-11 | 一种虚拟机批量启动方法及计算主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986473B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236744A1 (zh) * | 2022-06-08 | 2023-12-14 | 中兴通讯股份有限公司 | 虚拟机创建方法、远端设备、服务器设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387197A (zh) * | 2010-09-30 | 2012-03-21 | 微软公司 | 从服务器到主机的流虚拟机技术 |
CN103019884A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 基于虚拟机快照的内存页去重方法及装置 |
CN107615255A (zh) * | 2015-06-17 | 2018-01-19 | 英特尔公司 | 利用持久存储器的计算装置和方法 |
CN110018878A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据加载方法以及装置 |
US10678651B1 (en) * | 2014-12-30 | 2020-06-09 | Acronis International Gmbh | Backing up a virtual machine using a snapshot with memory |
-
2021
- 2021-11-11 CN CN202111334944.9A patent/CN113986473B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387197A (zh) * | 2010-09-30 | 2012-03-21 | 微软公司 | 从服务器到主机的流虚拟机技术 |
CN103019884A (zh) * | 2012-11-21 | 2013-04-03 | 北京航空航天大学 | 基于虚拟机快照的内存页去重方法及装置 |
US10678651B1 (en) * | 2014-12-30 | 2020-06-09 | Acronis International Gmbh | Backing up a virtual machine using a snapshot with memory |
CN107615255A (zh) * | 2015-06-17 | 2018-01-19 | 英特尔公司 | 利用持久存储器的计算装置和方法 |
CN110018878A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种分布式系统数据加载方法以及装置 |
Non-Patent Citations (2)
Title |
---|
PREETHI P. S. RAO, R. D. KAUSTUBH, MYDHILI K. NAIR , S. KUMARASWAMY: "Virtual Machine Migration in Cloud Computing Performance, Issues and Optimization Methods", 《SPRINGERLINK》, 27 February 2018 (2018-02-27) * |
赵峰: "面向云计算环境的服务器资源管理系统的设计和实现", 《中国优秀硕士学位论文全文数据库》, 15 May 2014 (2014-05-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236744A1 (zh) * | 2022-06-08 | 2023-12-14 | 中兴通讯股份有限公司 | 虚拟机创建方法、远端设备、服务器设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113986473B (zh) | 2024-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10592159B2 (en) | Processing device configured for data integrity testing utilizing replicated test metadata file | |
US10866760B2 (en) | Storage system with efficient detection and clean-up of stale data for sparsely-allocated storage in replication | |
US10592161B1 (en) | Storage system with flexible scanning supporting storage volume addition and/or recovery in asynchronous replication | |
US10817385B2 (en) | Storage system with backup control utilizing content-based signatures | |
US20200225849A1 (en) | Storage system with storage volume pre-copy functionality for increased efficiency in asynchronous replication | |
US10339112B1 (en) | Restoring data in deduplicated storage | |
US20200341641A1 (en) | Storage system with deduplication-aware replication implemented using a standard storage command protocol | |
CN108427539B (zh) | 缓存设备数据的离线去重压缩方法、装置及可读存储介质 | |
JP6026738B2 (ja) | 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法 | |
US8683156B2 (en) | Format-preserving deduplication of data | |
EP3376393B1 (en) | Data storage method and apparatus | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
US11409766B2 (en) | Container reclamation using probabilistic data structures | |
CN109508254B (zh) | 一种数据恢复方法及装置 | |
US10909001B1 (en) | Storage system with snapshot group split functionality | |
US10929239B2 (en) | Storage system with snapshot group merge functionality | |
WO2013165388A1 (en) | Segment combining for deduplication | |
US10996898B2 (en) | Storage system configured for efficient generation of capacity release estimates for deletion of datasets | |
WO2015096847A1 (en) | Method and apparatus for context aware based data de-duplication | |
US9933971B2 (en) | Method and system for implementing high yield de-duplication for computing applications | |
CN113986473B (zh) | 一种虚拟机批量启动方法及计算主机 | |
US20140156607A1 (en) | Index for deduplication | |
Yu et al. | Pdfs: Partially dedupped file system for primary workloads | |
US11086558B2 (en) | Storage system with storage volume undelete functionality | |
US11269855B2 (en) | On-demand remote snapshot creation for a synchronous replication session in automatic recovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |