CN116560796B - 数据加载方法、装置、设备及介质 - Google Patents

数据加载方法、装置、设备及介质 Download PDF

Info

Publication number
CN116560796B
CN116560796B CN202310541267.0A CN202310541267A CN116560796B CN 116560796 B CN116560796 B CN 116560796B CN 202310541267 A CN202310541267 A CN 202310541267A CN 116560796 B CN116560796 B CN 116560796B
Authority
CN
China
Prior art keywords
virtual machine
target
data
virtual machines
data block
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.)
Active
Application number
CN202310541267.0A
Other languages
English (en)
Other versions
CN116560796A (zh
Inventor
张朝潞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tianrongxin Innovation Technology Co ltd
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Shenzhen Tianrongxin Innovation Technology Co ltd
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tianrongxin Innovation Technology Co ltd, Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Shenzhen Tianrongxin Innovation Technology Co ltd
Priority to CN202310541267.0A priority Critical patent/CN116560796B/zh
Publication of CN116560796A publication Critical patent/CN116560796A/zh
Application granted granted Critical
Publication of CN116560796B publication Critical patent/CN116560796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例涉及一种数据加载方法、装置、设备及介质,该方法包括:确定预设服务器中具备相同操作***的多个候选虚拟机;分别多次选取多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;根据各中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定多个中间虚拟机组中的目标虚拟机组;将目标虚拟机组的目标数据块加载至预设缓存区,以使目标虚拟机组中的目标虚拟机通过预设缓存区获取所述目标数据块。本公开实施例,将该目标虚拟机组的相同数据块加载至缓存区,后续该目标虚拟机组中的目标虚拟机能够从该缓存区中读取该相同数据块,降低了分布式存储的负载,提高了分布式存储的响应速度,使得虚拟机的启动速度变快。

Description

数据加载方法、装置、设备及介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据加载方法、装置、设备及介质。
背景技术
随着服务器内中央处理器(Central Processing Unit,CPU)数量的增加,服务器的计算能力相应提高,一台服务器能够承载的虚拟机的数量也相应增加。
相关技术中,虚拟机在启动的过程中,需要从分布式存储***读取数据。但是,在开启服务器等应用场景中,该服务器内的多台虚拟机需要同时启动,多台虚拟机需要同时从分布式存储***中进行数据加载,使得分布式存储***的负载较大,虚拟机的启动速度较慢。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据加载方法、装置、设备及介质。
本公开实施例提供了一种数据加载方法,包括:
确定预设服务器中具备相同操作***的多个候选虚拟机;
分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;
根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组;其中,所述目标数据块为所述中间虚拟机组中各中间虚拟机均具备的数据块;
在所述目标虚拟机组启动的情况下,将所述目标虚拟机组的目标数据块加载至预设缓存区,以使所述目标虚拟机组中的目标虚拟机通过所述预设缓存区获取所述目标数据块。
本公开实施例还提供了一种数据加载装置,包括:
第一确定模块,用于确定预设服务器中具备相同操作***的多个候选虚拟机;
组合模块,用于分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;
第二确定模块,用于根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组;其中,所述目标数据块为所述中间虚拟机组中各中间虚拟机均具备的数据块;
加载模块,用于在所述目标虚拟机组启动的情况下,将所述目标虚拟机组的目标数据块加载至预设缓存区,以使所述目标虚拟机组中的目标虚拟机通过所述预设缓存区获取所述目标数据块。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的数据加载方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的数据加载方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例中提供的数据加载方案,包括:确定预设服务器中具备相同操作***的多个候选虚拟机;分别多次选取多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;根据各中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定多个中间虚拟机组中的目标虚拟机组;其中,目标数据块为中间虚拟机组中各中间虚拟机均具备的数据块;在目标虚拟机组启动的情况下,将目标虚拟机组的目标数据块加载至预设缓存区,以使目标虚拟机组中的目标虚拟机通过预设缓存区获取所述目标数据块。采用上述技术方案,确定了具备相同操作***的候选虚拟机,并基于该候选虚拟机从虚拟机数量和相同数据块量两个维度确定了目标虚拟机组,将该目标虚拟机组的相同数据块加载至缓存区,后续该目标虚拟机组中的目标虚拟机能够从该缓存区中读取该相同数据块,避免了多台虚拟机同时从分布式存储***中读取该相同数据块,降低了分布式存储的负载,提高了分布式存储的响应速度,使得虚拟机的启动速度变快。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据加载方法的流程示意图;
图2为本公开实施例提供的另一种数据加载方法的流程示意图;
图3为本公开实施例提供的一种区间标识的示意图;
图4为本公开实施例提供的又一种数据加载方法的流程示意图;
图5为本公开实施例提供的一种预设服务器和源服务器的示意图;
图6为本公开实施例提供的一种虚拟机分组的示意图;
图7为本公开实施例提供的一种虚拟机的服务器内分组的流程示意图;
图8为本公开实施例提供的一种数据块索引的示意图;
图9为本公开实施例提供的一种虚拟机的服务器间分组的流程示意图;
图10为本公开实施例提供的一种数据加载装置的结构示意图;
图11为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
服务器可以根据中央处理器的个数,分为单路服务器、双路服务器、四路服务器、八路服务器等等,通常而言,多路服务器是指四路及以上路数的服务器。服务器中的中央处理器个数越多,计算能力越强,相应的,运行该服务器所需要的网络资源量、内存量、存储资源量也越多。
在超融合架构中,将服务器的计算能力(例如,中央处理器、内存等)、存储资源量、网络资源量通过软件进行统一管理,提供虚拟化、分布式的存储能力。在多路服务器中,中央处理器的个数越多,该服务器能够承载的虚拟机越多。基于超融合架构搭建的超融合***是一种分布式集群***,在超融合***中,通过传输控制协议/网际协议(TransmissionControl Protocol/Internet Protocol,TCP/IP)网络将集群内服务器连接起来。
相关技术中,在虚拟机的启动过程中,需要从分布式存储***读取数据。但是,随着服务器承载的虚拟机的数量的提升,从分布式存储***中读取的总数量也相应增多,这使得TCP/IP网络和分布式存储***的负载变高,导致虚拟机启动过程变慢。
尤其在一些应用场景,一个服务器中的多个虚拟机安装相同的操作***,在多个相同操作***的虚拟机批量启动的情况下,需要多次从分布式存储***中读取相同的操作***数据,造成了TCP/IP网络资源和分布式存储***资源的浪费。
为了解决上述问题,本公开实施例提供了一种数据加载方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种数据加载方法的流程示意图,该方法可以由数据加载装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中,如图1所示,该数据加载方法包括:
步骤101,确定预设服务器中具备相同操作***的多个候选虚拟机。
其中,预设服务器可以为超融合架构的服务器集群中的服务器,本实施例对该预设服务器的路数不做限制,例如,该预设服务器可以为八路服务器。操作***可以为虚拟机的操作***,本实施例对该操作***不做限制,例如该操作***包括但不限于以下至少一种:Windows 10、Windows 7、CentOS、Ubuntu。相同操作***可以为类型相同的操作***,也可以为类型和版本均相同的操作***,本实施例不做限制。举例而言,类型相同的操作***可以为同为Windows 7,类型和版本均相同的操作***可以为同为Windows 7专业版。多个候选虚拟机可以为预设服务器中具备相同操作***的候选虚拟机组成的虚拟机组,预设服务器中该虚拟机组的数量可以为一个或多个,例如,预设服务器中可以包括操作***为Windows 10的多个候选虚拟机、操作***为Windows 7的多个候选虚拟机、操作***为CentOS的多个候选虚拟机。
一种可选的实施方式中,候选虚拟机可以为基于超融合架构的虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)***中的桌面虚拟机。
在本实施例中,数据加载装置可以根据操作***对预设服务器中的虚拟机进行分类,将具备相同操作***的多个虚拟机确定为多个候选虚拟机。
在本公开一些实施例中,确定预设服务器中具备相同操作***的多个候选虚拟机,包括:确定预设服务器内承载的多个预设虚拟机;针对多个预设虚拟机,根据操作***标识将多个预设虚拟机划分为多个候选虚拟机组;其中,候选虚拟机组与操作***标识一一对应,一个候选虚拟机组包括多个候选虚拟机。
其中,预设虚拟机可以为预设服务器中的任一虚拟机。操作***标识可以为表征虚拟机所搭载操作***的标识,该操作***标识可以与操作***的类型一一对应,该操作***标识也可以与操作***的类型及版本一一对应。
在本实施例中,数据加载装置可以将预设服务器中的虚拟机整体划分为一个预设虚拟机组,将该预设虚拟机组中具备相同操作***标识的预设虚拟机划分至相同的候选虚拟机组中,得到至少一个候选虚拟机组。
步骤102,分别多次选取多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组。
其中,中间虚拟机组可以为从多个候选虚拟机中选取预设数量的候选虚拟机组成的虚拟机组。
在本实施例中,数据加载装置可以对多个候选虚拟机进行有放回的组合,每次选取至少两个候选虚拟机,得到多个中间虚拟机组。需要说明的是,分别多次用于表征至少两个候选虚拟机的选取是有放回的组合,并不对选取至少两个候选虚拟机的执行顺序进行限制。该至少两个候选虚拟机的选取可以为并行同时选取的,该至少两个候选虚拟机的选取也可以为串行依次选取的。
在本公开一些实施例中,分别多次选取多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组,包括:根据多个不同的预设数量对多个候选虚拟机中的候选虚拟机进行遍历组合,得到多个中间虚拟机组;其中,预设数量的最小值为2,预设数量的最大值与多个候选虚拟机的候选虚拟机数量相同。
其中,预设数量可以为预先设置的中间虚拟机组内中间虚拟机的数量。候选虚拟机数量可以为候选虚拟机的总数量。
在本实施例,数据加载装置可以将预设数量依次设置为2至候选虚拟机数量中的整数,针对每个预设数量,遍历选取数量为预设数量的候选虚拟机,组合为中间虚拟机组,举例而言,若多个候选虚拟机包括虚拟机A、虚拟机B、虚拟机C、虚拟机D,则预设数量可以为2、3、4。以预设数量为3举例,中间虚拟机组可以包括虚拟机B、虚拟机C、虚拟机D,或者,虚拟机A、虚拟机C、虚拟机D,或者,虚拟机A、虚拟机B、虚拟机D,或者,虚拟机A、虚拟机B、虚拟机C。
上述方案中,通过基于预设数量对多个候选虚拟机进行有放回的组合,遍历确定了各中间虚拟机组,提高了中间虚拟机组的覆盖全面性。
步骤103,根据各中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定多个中间虚拟机组中的目标虚拟机组;其中,目标数据块为中间虚拟机组中各中间虚拟机均具备的数据块。
其中,中间虚拟机数量可以为一个中间虚拟机组中的虚拟机数量。数据块可以为虚拟机对应的虚拟硬盘数据中,大小为预设单元量的连续数据片段,预设单元量可以根据用户需求、虚拟机的算力等进行设置,本实施例不做限制,例如该预设单元量可以为512千字节(KiloByte,KB)。目标数据量可以为表征目标数据块多少的数据,该目标数据量有多种,本实施例对该目标数据量不做限制,例如该目标数据量可以为数据块数量或者数据块的数据量。目标虚拟机组可以为多个中间虚拟机中向分布式存储***读取减少量最大的虚拟机组。
在本实施例中,数据加载装置可以读取各中间虚拟机对应的虚拟硬盘数据,并将每个虚拟硬盘数据划分为多个数据块,得到每个中间虚拟机对应的多个数据块,进一步地,将在每个中间虚拟机的虚拟硬盘数据中均具备的数据块确定为目标数据块。在确定了中间虚拟机组及其目标数据块之后,数据加载装置可以针对每个中间虚拟机组,将该中间虚拟机组中包括中间虚拟机的数量作为中间虚拟机数量,将该中间虚拟机组对应的目标数据块的总数量或者总数据量作为目标数据量。进而,根据每个中间虚拟机组的中间虚拟机数量以及目标数据块进行计算,根据计算结果确定多个中间虚拟机组中的目标虚拟机组。
在本公开一些实施例中,根据各中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定多个中间虚拟机组中的目标虚拟机组,包括:基于各中间虚拟机组的中间虚拟机数量与目标数据量的乘积减去目标数据量得到的差,确定多个中间虚拟机组对应的读取减少量的减少量最大值;将减少量最大值对应的中间虚拟机组确定为目标虚拟机组。
其中,读取减少量可以为表征第一读取量与第二读取量之间差异的参数。第一读取量可以为中间虚拟机组包括的中间虚拟机分别从分布式存储***读取数据的数据读取量。第二读取量可以为以中间虚拟机组整体为单位,从分布式存储***读取数据的数据读取量。需要说明的是以中间虚拟机组整体为单位,则首先启动的中间虚拟机从分布式存储***中读取目标数据块,之后启动的中间虚拟机并不从分布式存储***中读取目标数据块,而是从预设缓存区中读取目标数据块。减少量最大值可以为多个读取减少量中数据量最大的值。
在本实施例中,针对每个中间虚拟机组,可以计算该中间虚拟机组对应的中间虚拟机数量和目标数据量的乘积,并计算该乘积与目标数据量的差值,该差值能够定性的表征读取减少量的大小。具体地,该差值越小,则读取减少量越小,该差值越大,则读取减少量越大。根据该差值之间的大小关系确定读取减少量之间的大小关系,并将最大的差值对应的读取减少量确定为减少量最大值。进一步地,将该减少量最大值对应的中间虚拟机组确定为目标虚拟机组。
具体地,假设中间虚拟机组内的中间虚拟机数量为n,数据块的数量为k,目标数据块的数据大小(即,预设单元量)为s,目标数据块的数量为m。第一读取量为Tbefore和第二读取量为Tafter,则:
Tbefore=n×k×s;
Tafter=[k+(n-1)×(k-m)]×s;
其中,n×k表示中间虚拟机分别从分布式存储***中读取的数据块的总数量。k+(n-1)×(k-m)表示以中间虚拟机组为单位从分布式存储***中读取数据块总数量,k-m表示目标数据块之外其他数据块的数量。可以确定读取减少量为Tbefore–Tafter
Tbefore–Tafter=[n×k-k-(n-1)×(k-m)]×s;
即,Tbefore–Tafter=(n-1)×m×s。可见在预设单元量(即,s)一定的情况下,中间虚拟机数量减1与目标数据量的乘积越大,则对应的读取减少量越大。
上述方案中,分析了以中间虚拟机组为单位进行数据读取的情况下,从分布式存储***中读取数据的减少量,使得基于最终确定的目标虚拟机组能够更好的降低从分布式存储***中的数据读取。
步骤104,在目标虚拟机组启动的情况下,将目标虚拟机组的目标数据块加载至预设缓存区,以使目标虚拟机组中的目标虚拟机通过预设缓存区获取目标数据块。
其中,预设缓存区可以为预先设置的服务器内虚拟监视器(Hypervisor)中的缓存区域。
在本公开实施例中,在目标虚拟机组中的首台目标虚拟机启动的情况下,数据加载装置可以从分布式存储***中读取目标数据块,并将该目标数据块加载至预设缓存区。该目标虚拟机组中除该首台目标虚拟机之外的其他目标虚拟机启动之后,若在运行过程中需要读取目标数据块,则读取该预设缓存区中的目标数据块,避免了读取分布式存储***中的目标数据块,从而降低了分布式存储***的负载。
本公开实施例提供的数据加载方法,包括:确定预设服务器中具备相同操作***的多个候选虚拟机;分别多次选取多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;根据各中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定多个中间虚拟机组中的目标虚拟机组;其中,目标数据块为中间虚拟机组中各中间虚拟机均具备的数据块;在目标虚拟机组启动的情况下,将目标虚拟机组的目标数据块加载至预设缓存区,以使目标虚拟机组中的目标虚拟机通过预设缓存区获取目标数据块。采用上述技术方案,确定了具备相同操作***的候选虚拟机,并基于该候选虚拟机从虚拟机数量和相同数据块量两个维度确定了目标虚拟机组,将该目标虚拟机组的相同数据块加载至缓存区,后续该目标虚拟机组中的目标虚拟机能够从该缓存区中读取该相同数据块,避免了多台虚拟机同时从分布式存储***中读取该相同数据块,降低了分布式存储的负载,提高了分布式存储的响应速度,使得虚拟机的启动速度变快。
此外,通过数据加载方法,还能够降低TCP/IP网络的负载。
图2为本公开实施例提供的另一种数据加载方法的流程示意图,如图2所示,在确定多个中间虚拟机组中的目标虚拟机组之前,方法还包括:
步骤201,根据多个中间虚拟机的操作***标识,确定多个中间虚拟机的***数据量。
其中,操作***标识可以为与操作***一一对应的标识,该操作***标识可以与操作***的类型一一对应,可以与操作***的版本一一对应,本实施例不做限制。***数据量可以表征***分区中用于存储操作***的***数据的大小,该***数据量可以理解为有效***分区的大小,该***数据存储在***分区的头部位置。对于相同的操作***,该***数据的相似度较高。
在本实施例中,数据加载装置可以获取每个中间虚拟机的操作***标识,在预先设置的操作***与***数据量的数据量对应关系中,对该操作***标识进行检索,确定该操作***标识对应的***数据量。
举例而言,一种可选的实施方式中,数据量对应关系可以包括:Windows XP、Windows 7对应的***数据量为15吉字节(GigaByte,GB),Windows 10、11对应的***数据量为20GB,Linux桌面版对应的***数据量为15GB,Linux服务器半对应的***数据量为10GB。
步骤202,针对每个中间虚拟机,根据***数据量获取该中间虚拟机的***数据,将***数据根据预设单元量划分为多个***数据块,计算各***数据块的数据块标识;其中,数据块标识与***数据块一一对应。
其中,数据块标识可以为用于表征***数据块的标识,该数据块标识可以为通过加密算法对***数据块进行加密获得的字符串,该数据块标识可以理解为***数据块的校验值。例如,该数据块标识可以为对***数据块进行信息摘要算法(Message-DigestAlgorithm,MD5)获得32为字节长度的字符串。
预设单元量可以为预先设置的数据块的数据量,该预设单元量可以根据用户需求和/或虚拟机的算力等进行设置,本实施例不做限制。例如,虚拟机的算力越多,则表征该虚拟机能够同时处理的数据块的数量越多,则该预设单元量可以越小;虚拟机的算力越少,则表征该虚拟机能够同时处理的数据块的数量越少,则该预设单元量可以越大。具体而言,该预设单元量可以为512KB。
在本实施例中,针对每个中间虚拟机,数据加载装置可以将该中间虚拟机的***分区头部的大小为***数据量的数据,作为该中间虚拟机的***数据。针对每个***数据,根据预设单元量将该***数据划分为大小为预设单元量的多个***数据块,通过加密算法对每个***数据块进行计算,得到该中间虚拟机的***数据对应的多个数据块标识。
步骤203,将各中间虚拟机均具备的数据块标识对应的***数据块确定为目标数据块。
在本实施例中,在确定各中间虚拟机对应的多个数据块标识之后,将每个中间虚拟机均对应有的数据块标识确定为目标数据块标识,将该数据块标识对应的***数据块确定为目标数据块。
上述方案中,通过***数据量将对***分区中全部数据的计算,转换为了对***分区中部分相似度较高的数据的计算,提高了后续确定目标数据块的计算效率和计算效果。
在本公开一些实施例中,目标数据块具备一一对应的块位置标识,块位置标识用于表征目标数据块在***数据中的位置,在将目标虚拟机组的目标数据块加载至预设缓存区之后,该方法还包括:确定目标虚拟机的待获取数据对应的索引位置标识;若块位置标识中包括索引位置标识,则确定块位置标识中包括索引位置标识的目标位置标识,则根据目标位置标识获取预设缓存区中的待获取数据。
其中,块位置标识可以为表征目标数据块在***分区中偏移位置的标识。待获取数据可以为目标虚拟机需要读取的部分***数据。索引位置标识可以为表征待获取数据在***分数中偏移位置的标识。
在本实施例中,在目标虚拟机需要读取待获取数据的情况下,数据加载装置可以根据待获取数据在***数据中的位置,确定该待获取数据的索引位置标识。进一步的,判断该待获取数据的索引位置标识是否在目标数据块的块位置标识内,若是,则说明目标数据块包括该待获取数据,确定块位置标识中包括该索引位置标识的目标位置标识,获取预设缓存区中与该目标位置标识对应的目标数据块中的待获取数据。若索引位置标识不在目标数据块的块位置标识内,则说明目标数据块不包括该待获取数据,则从分布式存储***中获取该待获取数据。一种可选的实施方式中,图3为本公开实施例提供的一种区间标识的示意图,如图3所示,预先确定各目标数据块对应的目标位置区间,将该目标位置区间对应的区间标识设置为“1”,将目标数据块之外***数据的其他数据块对应的位置区间的区间标识设置为“0”。数据加载装置确定待获取数据对应的位置区间,若该位置区间对应的区间标识为“1”,则说明该待获取数据对应的位置区间为目标位置区间,说明块位置标识中包括索引位置标识。若该位置区间对应的区间标识为“0”,则说明该待获取数据对应的位置区间不为目标位置区间,说明块位置标识中不包括索引位置标识。
上述方案中,通过索引位置标识与块位置标识之间的关系,确定了待获取数据是否包括在目标数据块中,进而确定了是否能够通过预设缓存区获取该待获取数据。
图4为本公开实施例提供的又一种数据加载方法的流程示意图,如图4所示,该数据加载方法还包括:
步骤401,确定目标虚拟机组的第一读取减少量。
其中,第一读取减少量可以为表征以目标虚拟机组为单位进行数据读取相对应于每个目标虚拟机分别进行数据读取,减少的直接从分布式存储***中读取的数据量。该第一读取减少量可以为目标虚拟机数量与目标虚拟机组对应的目标数据量的乘积减去目标数据量得到的差。
在本实施例中,数据加载装置可以确定目标虚拟机组的目标数据量,以及该目标虚拟机组的目标虚拟机数量,将目标数据量减1乘以目标虚拟机数量,得到第一读取减少量。
一种可选的实施方式中,进行服务器之间的虚拟机迁移时,该预设服务器可以为超融合***中负载最低的服务器,可以理解地,负载最低的服务器具备资源承接更多的虚拟机。相应的该目标虚拟机组可以为预设服务器中虚拟机数量最多的目标虚拟机组。
步骤402,确定源服务器内与目标虚拟机组具备相同***标识的源虚拟机。
其中,源服务器可以为超融合***中预设服务器之外的其他服务器,可选的,该源服务器可以与预设服务器共用一个分布式存储***,图5为本公开实施例提供的一种预设服务器和源服务器的示意图,如图5所示,每个服务器中存在对应的目标虚拟机组以及对应的预设缓存区(即,数据块缓存),并且该两个服务器共用同一个分布式存储***。源虚拟机可以为源服务器中具备目标虚拟机组对应的操作***的虚拟机。
在本实施例中,将源服务器内与该目标虚拟机组具备相同操作***的虚拟机确定为源虚拟机。
步骤403,确定结合虚拟机组的第二读取减少量;其中,结合虚拟机组包括源虚拟机和目标虚拟机。
其中,第二读取减少量可以为表征以结合虚拟机组为单位进行数据读取相对应于结合虚拟机组中的每个虚拟机分别进行数据读取,减少的直接从分布式存储***中读取的数据量。该第二读取减少量可以为结合虚拟机组中的虚拟机数量与该结合虚拟机组对应的目标数据量的乘积减去该结合虚拟机组对应的目标数据量得到的差。
在本实施例中,数据加载装置可以将源虚拟机和目标虚拟机组中的目标虚拟机模拟结合为结合虚拟机组,确定该结合虚拟机组的目标数据量,以及该结合虚拟机组的虚拟机数量,若源虚拟机的数量为1,则该结合虚拟机组的虚拟机数量为目标虚拟机数量加1。进一步地,将结合虚拟机的目标数据量减1乘以结合虚拟机的虚拟机数量,得到第二读取减少量。
需要说明的是,在计算第二读取减少量的过程中,根据目标虚拟机的数据以及源虚拟机的数据进行计算,无需将源虚拟机迁移至目标虚拟机所在的目标虚拟机组。
步骤404,若第一读取减少量小于第二读取减少量,则向源服务器发送源迁移指令,以使源虚拟机迁移至预设服务器,并将源虚拟机添加入目标虚拟机组。
其中,源迁移指令可以为指示将源虚拟机迁移至预设服务器的指令,该源迁移指令可以包括源虚拟机的虚拟机标识以及预设服务器的服务器标识。
在本实施例中,若第一读取减少量小于第二读取减少量,则说明若将源虚拟机合并入目标虚拟机组之后,从分布式存储***读取的数据量降低,则根据源虚拟机的虚拟机标识和预设服务器的服务器标识生成源迁移指令,并将该源迁移指令发送至源服务器。源服务器在接收到该源迁移指令之后,根据源迁移指令中的虚拟机标识确定源虚拟机,并将源虚拟机迁移至源迁移指令中的服务器标识对应的预设服务器。在源虚拟机迁移入预设服务器之后,数据加载装置可以将该源虚拟机添加入目标虚拟机组中。
若第一读取减少量大于或等于第二读取减少量,则说明若将源虚拟机合并入目标虚拟机组之后,从分布式存储***读取的数据量增多或不变,即,数据的传输效率没有提升,则将源服务器中与目标虚拟机组的操作***相同的其他虚拟机确定为新的源虚拟机,返回根据该新的源虚拟机和目标虚拟机确定新的结合虚拟机组,直至遍历源服务器中与目标虚拟机组的操作***相同的全部虚拟机。
在遍历源服务器中与目标虚拟机组的操作***相同的全部虚拟机之后,将超融合***中的其他服务器确定为新的源服务器,返回确定该新的源服务器的源虚拟机,直至遍历超融合***中的全部服务器。
上述方案中,通过服务器之间的虚拟机迁移,降低了整体***从分布式存储***中读取的数据量,提高了数据传输的效率。
接下来通过一个具体的示例对本公开实施例中的数据加载方法,进行进一步说明。图6为本公开实施例提供的一种虚拟机分组的示意图,由于安装了相同操作***的虚拟机的***分区具有大量相同数据的特性,为了减少多路服务器内多台虚拟机同时启动过程中的资源开销,如图6所示,可以对虚拟机进行服务器内分组以及服务器间分组。具体地,服务器内分组包括:根据服务器内部的虚拟机的操作***数据,将虚拟机分为多个目标虚拟机组。服务器间分组包括:根据不同服务器的虚拟机组之间***数据,将一个服务器内的虚拟机迁移至另一个服务器内。
首先,对虚拟机的服务器内分组进行说明,图7为本公开实施例提供的一种虚拟机的服务器内分组的流程示意图,如图7所示,包括:
步骤701,将运行在预设服务器内的预设虚拟机划分为一个虚拟机大组。
相应的,将分布式存储***中,与预设虚拟机一一对应的预设虚拟硬盘也划分为一个虚拟硬盘大组,并且后续对虚拟硬盘的分组操作与对虚拟机的分组操作一一对应,后续不再赘述。
步骤702,将虚拟机大组中的预设虚拟机根据操作***的类型和版本划分为多个候选虚拟机组,每个候选虚拟机组包括多个候选虚拟机。
步骤703,针对每个候选虚拟机组,根据该候选虚拟机组对应的操作***,确定对应的***数据量,根据***数据量确定候选虚拟机的***数据。
步骤704,针对每个候选虚拟机组,将该候选虚拟机组中每个候选虚拟机的***数据划分为***数据块,并计算每个***数据块的数据块标识,将该数据块标识存储在数据块索引中。
图8为本公开实施例提供的一种数据块索引的示意图,如图8所示,对***数据中的每个***数据块进行计算得到数据块标识,存放在数据块索引中。
具体地,分区可以为对硬盘的分区,***分区可以为安装操作***的分区,为了判断不同候选虚拟机***数据的相似度,将***数据切割为固定大小的***数据块。该***数据块的大小可以为512KB,也可以根据服务器或者虚拟机配置的高低,调整该***数据块的大小。将每个***数据块进行MD5计算得到32位字节长度的数据块标识,将该数据块标识记录到数据块索引中。
步骤705,确定每个候选虚拟机组对应的目标虚拟机组。
具体地,可以通过枚举法,将候选虚拟机组中的候选虚拟机分为多个中间虚拟机组,分别计算分成中间虚拟机组对应的读取减少量。将读取减少量最大的中间虚拟机组确定为目标虚拟机组。其中,读取减少量的计算方法此处不再赘述。
确定目标虚拟机组之后,当目标虚拟机组中的首台目标虚拟机启动时,从分布式存储***中读取***数据时,构建该目标虚拟机组对应的目标***数据块的缓存以及区间标识,其中,所述区间标识用于表征数据区间内的部分***数据是否为目标***数据块,若区间标识为肯定标识(例如,1)则说明对应的数据区间内的部分***数据为目标***数据块,表明预设缓存区已加载该数据区间内的部分***数据,后续的目标虚拟机从该预设缓存去中能够读取该部分***数据。若区间标识为否定标识(例如,0)则说明对应的数据区间内的部分***数据不为目标***数据块,后续的目标虚拟机仍需从分布式存储***中读取相应的***数据。
上述方案中,降低了分布式存储***的IO负载,使得分布式存储***能够过较低性能的硬盘进行搭建,节省了硬件成本。并且,较大幅度的降低了虚拟机同时启动时的启动时长,降低了虚拟机同时启动是对虚拟机中运行的业务的影响。
对虚拟机的服务器间分组进行说明,图9为本公开实施例提供的一种虚拟机的服务器间分组的流程示意图,如图9所示,包括:
步骤901,将超融合***中负载排名低于预设排名阈值的服务器确定为预设服务器。
步骤902,确定预设服务器中虚拟机数量最多候选虚拟机组,确定该候选虚拟机组对应的数据块索引。
步骤903,确定超融合***中的源服务器,确定该源服务器内具备候选操作***的源虚拟机,计算该源虚拟机加入候选虚拟机组后的第二数据减少量;其中,候选操作***为候选虚拟机组对应的操作***。
步骤904,若候选虚拟机组的第一数据减少量小于上述第二数据减少量,则将该源虚拟机热迁移至预设服务器,并将该源虚拟机加入候选虚拟机组。
步骤905,若第一数据减少量大于或等于上述第二数据减少量,则更新源虚拟机,返回确定新的第二数据减少量。
步骤906,若源服务器中具备候选操作***的虚拟机完成遍历,则更新源服务器,返回确定该新的源服务器的源虚拟机。
上述方案中,将同一个超融合***中服务器之间的虚拟机根据读取减少量进行迁移,降低了超融合***整体对分布式存储***的数据读取量,提高了超融合***整体的数据读取效率。
图10为本公开实施例提供的一种数据加载装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中,如图10所示,该装置,包括:
第一确定模块1001,用于确定预设服务器中具备相同操作***的多个候选虚拟机;
组合模块1002,用于分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;
第二确定模块1003,用于根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组;其中,所述目标数据块为所述中间虚拟机组中各中间虚拟机均具备的数据块;
加载模块1004,用于在所述目标虚拟机组启动的情况下,将所述目标虚拟机组的目标数据块加载至预设缓存区,以使所述目标虚拟机组中的目标虚拟机通过所述预设缓存区获取所述目标数据块。
可选地,所述第一确定模块1001,用于:
确定预设服务器内承载的多个预设虚拟机;
针对所述多个预设虚拟机,根据操作***标识将所述多个预设虚拟机划分为多个候选虚拟机组;其中,所述候选虚拟机组与所述操作***标识一一对应,一个所述候选虚拟机组包括所述多个候选虚拟机。
可选地,所述组合模块1002,用于:
根据多个不同的预设数量对所述多个候选虚拟机中的候选虚拟机进行遍历组合,得到多个中间虚拟机组;其中,所述预设数量的最小值为2,所述预设数量的最大值与所述多个候选虚拟机的候选虚拟机数量相同。
可选地,所述第二确定模块1003,用于:
基于各所述中间虚拟机组的所述中间虚拟机数量与所述目标数据量的乘积减去所述目标数据量得到的差,确定所述多个中间虚拟机组对应的读取减少量的减少量最大值;
将所述减少量最大值对应的中间虚拟机组确定为所述目标虚拟机组。
可选地,所述方法还包括:
第三确定模块,用于在所述确定所述多个中间虚拟机组中的目标虚拟机组之前,根据所述多个中间虚拟机的操作***标识,确定所述多个中间虚拟机的***数据量;
划分模块,用于针对每个所述中间虚拟机,根据所述***数据量获取该中间虚拟机的***数据,将所述***数据根据预设单元量划分为多个***数据块,计算各所述***数据块的数据块标识;其中,所述数据块标识与所述***数据块一一对应;
第四确定模块,用于将各所述中间虚拟机均具备的数据块标识对应的***数据块确定为所述目标数据块。
可选地,所述目标数据块具备一一对应的块位置标识,所述块位置标识用于表征所述目标数据块在***数据中的位置,在所述将所述目标虚拟机组的目标数据块加载至预设缓存区之后,所述装置还包括:
第五确定模块,用于确定所述目标虚拟机的待获取数据对应的索引位置标识;
第六确定模块,用于若所述块位置标识中包括所述索引位置标识,则确定所述块位置标识中包括索引位置标识的目标位置标识,则根据所述目标位置标识获取所述预设缓存区中的待获取数据。
可选地,所述装置还包括:
第七确定模块,用于确定所述目标虚拟机组的第一读取减少量;
第八确定模块,用于确定源服务器内与所述目标虚拟机组具备相同***标识的源虚拟机;
第九确定模块,用于确定结合虚拟机组的第二读取减少量;其中,所述结合虚拟机组包括所述源虚拟机和所述目标虚拟机;
发送模块,用于若所述第一读取减少量小于所述第二读取减少量,则向所述源服务器发送源迁移指令,以使所述源虚拟机迁移至所述预设服务器,并将所述源虚拟机添加入所述目标虚拟机组。
本公开实施例所提供的数据加载装置可执行本公开任意实施例所提供的数据加载方法,具备执行方法相应的功能模块和有益效果。
图11为本公开实施例提供的一种电子设备的结构示意图。如图11所示,电子设备1100包括一个或多个处理器1101和存储器1102。
处理器1101可以是中央处理单元(CPU)或者具有数据加载能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1100中的其他组件以执行期望的功能。
存储器1102可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1101可以运行所述程序指令,以实现上文所述的本公开的实施例的数据加载方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备1100还可以包括:输入装置1103和输出装置1104,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
此外,该输入装置1103还可以包括例如键盘、鼠标等等。
该输出装置1104可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置1104可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图11中仅示出了该电子设备1100中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1100还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据加载方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据加载方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种数据加载方法,其特征在于,包括:
确定预设服务器中具备相同操作***的多个候选虚拟机;
分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;
根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组;其中,所述目标数据块为所述中间虚拟机组中各中间虚拟机均具备的数据块;
在所述目标虚拟机组启动的情况下,将所述目标虚拟机组的目标数据块加载至预设缓存区,以使所述目标虚拟机组中的目标虚拟机通过所述预设缓存区获取所述目标数据块;
其中,所述根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组,包括:
基于各所述中间虚拟机组的所述中间虚拟机数量与所述目标数据量的乘积减去所述目标数据量得到的差,确定所述多个中间虚拟机组对应的读取减少量的减少量最大值;
将所述减少量最大值对应的中间虚拟机组确定为所述目标虚拟机组。
2.根据权利要求1所述的方法,其特征在于,所述确定预设服务器中具备相同操作***的多个候选虚拟机,包括:
确定预设服务器内承载的多个预设虚拟机;
针对所述多个预设虚拟机,根据操作***标识将所述多个预设虚拟机划分为多个候选虚拟机组;其中,所述候选虚拟机组与所述操作***标识一一对应,一个所述候选虚拟机组包括所述多个候选虚拟机。
3.根据权利要求1所述的方法,其特征在于,所述分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组,包括:
根据多个不同的预设数量对所述多个候选虚拟机中的候选虚拟机进行遍历组合,得到多个中间虚拟机组;其中,所述预设数量的最小值为2,所述预设数量的最大值与所述多个候选虚拟机的候选虚拟机数量相同。
4.根据权利要求1所述的方法,其特征在于,在所述确定所述多个中间虚拟机组中的目标虚拟机组之前,所述方法还包括:
根据所述多个中间虚拟机的操作***标识,确定所述多个中间虚拟机的***数据量;
针对每个所述中间虚拟机,根据所述***数据量获取该中间虚拟机的***数据,将所述***数据根据预设单元量划分为多个***数据块,计算各所述***数据块的数据块标识;其中,所述数据块标识与所述***数据块一一对应;
将各所述中间虚拟机均具备的数据块标识对应的***数据块确定为所述目标数据块。
5.根据权利要求1所述的方法,其特征在于,所述目标数据块具备一一对应的块位置标识,所述块位置标识用于表征所述目标数据块在***数据中的位置,在所述将所述目标虚拟机组的目标数据块加载至预设缓存区之后,所述方法还包括:
确定所述目标虚拟机的待获取数据对应的索引位置标识;
若所述块位置标识中包括所述索引位置标识,则确定所述块位置标识中包括索引位置标识的目标位置标识,则根据所述目标位置标识获取所述预设缓存区中的待获取数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述目标虚拟机组的第一读取减少量;
确定源服务器内与所述目标虚拟机组具备相同***标识的源虚拟机;
确定结合虚拟机组的第二读取减少量;其中,所述结合虚拟机组包括所述源虚拟机和所述目标虚拟机;
若所述第一读取减少量小于所述第二读取减少量,则向所述源服务器发送源迁移指令,以使所述源虚拟机迁移至所述预设服务器,并将所述源虚拟机添加入所述目标虚拟机组。
7.一种数据加载装置,其特征在于,包括:
第一确定模块,用于确定预设服务器中具备相同操作***的多个候选虚拟机;
组合模块,用于分别多次选取所述多个候选虚拟机中的至少两个候选虚拟机,组合得到多个中间虚拟机组;
第二确定模块,用于根据各所述中间虚拟机组的中间虚拟机数量和目标数据块的目标数据量,确定所述多个中间虚拟机组中的目标虚拟机组;其中,所述目标数据块为所述中间虚拟机组中各中间虚拟机均具备的数据块;
加载模块,用于在所述目标虚拟机组启动的情况下,将所述目标虚拟机组的目标数据块加载至预设缓存区,以使所述目标虚拟机组中的目标虚拟机通过所述预设缓存区获取所述目标数据块;
其中,所述第二确定模块,用于:
基于各所述中间虚拟机组的所述中间虚拟机数量与所述目标数据量的乘积减去所述目标数据量得到的差,确定所述多个中间虚拟机组对应的读取减少量的减少量最大值;
将所述减少量最大值对应的中间虚拟机组确定为所述目标虚拟机组。
8.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6中任一所述的数据加载方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6中任一所述的数据加载方法。
CN202310541267.0A 2023-05-12 2023-05-12 数据加载方法、装置、设备及介质 Active CN116560796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310541267.0A CN116560796B (zh) 2023-05-12 2023-05-12 数据加载方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310541267.0A CN116560796B (zh) 2023-05-12 2023-05-12 数据加载方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN116560796A CN116560796A (zh) 2023-08-08
CN116560796B true CN116560796B (zh) 2024-02-02

Family

ID=87497815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310541267.0A Active CN116560796B (zh) 2023-05-12 2023-05-12 数据加载方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116560796B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2019358A1 (en) * 2007-07-25 2009-01-28 Deutsche Telekom AG A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US9390116B1 (en) * 2013-09-26 2016-07-12 Emc Corporation Insertion and eviction schemes for deduplicated cache system of a storage system
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及***
WO2018094649A1 (zh) * 2016-11-24 2018-05-31 华为技术有限公司 一种虚拟机启动过程中的数据获取方法和云计算***
KR101900727B1 (ko) * 2018-06-14 2018-09-20 김상순 가상 서버 관리 장치
CN108664523A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
WO2023000670A1 (zh) * 2021-07-19 2023-01-26 华为技术有限公司 数据写入方法、数据读取方法、装置、设备、***及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970903B2 (en) * 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US8069362B2 (en) * 2008-02-26 2011-11-29 Sap Ag Automated electrical power savings in virtualization environments
US9565129B2 (en) * 2014-09-30 2017-02-07 International Business Machines Corporation Resource provisioning planning for enterprise migration and automated application discovery
US9715346B2 (en) * 2014-11-04 2017-07-25 Rubrik, Inc. Cluster-based network file server
US9612967B1 (en) * 2015-09-25 2017-04-04 Dell Products, L.P. Cache load balancing by reclaimable block migration
US10678659B2 (en) * 2017-12-12 2020-06-09 Rubrik, Inc. Array integration for virtual machine backup
US10977072B2 (en) * 2019-04-25 2021-04-13 At&T Intellectual Property I, L.P. Dedicated distribution of computing resources in virtualized environments
US11226873B2 (en) * 2019-10-28 2022-01-18 Rubrik, Inc. Scaling single file snapshot performance across clustered system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
EP2019358A1 (en) * 2007-07-25 2009-01-28 Deutsche Telekom AG A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers
US9390116B1 (en) * 2013-09-26 2016-07-12 Emc Corporation Insertion and eviction schemes for deduplicated cache system of a storage system
CN106469085A (zh) * 2016-08-31 2017-03-01 北京航空航天大学 虚拟机在线迁移方法、装置及***
WO2018094649A1 (zh) * 2016-11-24 2018-05-31 华为技术有限公司 一种虚拟机启动过程中的数据获取方法和云计算***
CN108475201A (zh) * 2016-11-24 2018-08-31 华为技术有限公司 一种虚拟机启动过程中的数据获取方法和云计算***
CN108664523A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
KR101900727B1 (ko) * 2018-06-14 2018-09-20 김상순 가상 서버 관리 장치
WO2023000670A1 (zh) * 2021-07-19 2023-01-26 华为技术有限公司 数据写入方法、数据读取方法、装置、设备、***及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hadoop中改进的共享式存储设备设计;覃伟荣;;计算机工程与设计(第05期);全文 *

Also Published As

Publication number Publication date
CN116560796A (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US9870270B2 (en) Realizing graph processing based on the mapreduce architecture
US10684832B2 (en) Code placement using a dynamic call graph
US10169413B2 (en) Scalable acceleration of database query operations
US9201698B2 (en) System and method to reduce memory usage by optimally placing VMS in a virtualized data center
US9372706B2 (en) Host selection for virtual machine placement
US8402469B2 (en) Allocating resources for parallel execution of query plans
US20160328266A1 (en) Process grouping for improved cache and memory affinity
US10025503B2 (en) Autonomous dynamic optimization of platform resources
US9477601B2 (en) Apparatus and method for determining a sector division ratio of a shared cache memory
US9270539B2 (en) Predicting resource provisioning times in a computing environment
US20040098544A1 (en) Method and apparatus for managing a memory system
Ramanathan et al. Towards optimal resource provisioning for Hadoop-MapReduce jobs using scale-out strategy and its performance analysis in private cloud environment
US20140337342A1 (en) Data management device, data management method, data management program, and information processing device
JP2011039800A (ja) データベース管理方法およびシステム並びにその処理プログラム
Wang et al. Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform
EP3282370A1 (en) Batch data query method and device
Kim et al. A parallel migration scheme for fast virtual machine relocation on a cloud cluster
US20170180503A1 (en) Network Cache Deduplication Analytics Based Compute Cluster Load Balancer
CN116560796B (zh) 数据加载方法、装置、设备及介质
CN112631994A (zh) 数据迁移方法及***
EP4028884A1 (en) Optimization of workloads based on constraints
Wang et al. Addressing skewness in iterative ml jobs with parameter partition
US11200070B2 (en) Dynamic-link library usage based on memory size
CN113407114B (zh) 一种基于热数据和删除重复操作的在线扩容io调度方法
US11467748B2 (en) Control apparatus and computer-readable recording medium having stored therein control program

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