CN112486858A - 一种数据预取方法以及装置 - Google Patents
一种数据预取方法以及装置 Download PDFInfo
- Publication number
- CN112486858A CN112486858A CN202011202915.2A CN202011202915A CN112486858A CN 112486858 A CN112486858 A CN 112486858A CN 202011202915 A CN202011202915 A CN 202011202915A CN 112486858 A CN112486858 A CN 112486858A
- Authority
- CN
- China
- Prior art keywords
- prefetching
- host
- data
- data block
- target data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 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/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据预取方法,用于提升***的服务性能。本发明公开的数据预取方法包括:第一预取装置从第一主机处接收数据预取指令;根据数据预取指令,确定一个或多个目标数据块;若第一预取装置中没有保存目标数据块,则从第二预取装置处获取目标预取装置的标识信息;根据目标数据块的标识信息,确定目标数据块的目标存储位置;从目标存储位置处将目标数据块预取到第一预取装置本地。通过这样的方法,使得原本保存在主机缓存中的启动镜像数据被保存在了主机之外的预取装置上,减少了数据的读写次数和带宽的占用,加速了主机业务进程,提升了主机的服务性能。本发明还提供了相关的预取装置。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种数据预取方法以及装置。
背景技术
云计算的飞速发展,其背后离不开虚拟化技术的有力支撑。虚拟化技术一般在主机(英文:host)上部署多个虚拟机(英文:virtual machine,缩写:VM),并使用超级管理器(英文:hypervisor)将主机的资源分配给各VM,使得每个VM都可以独立行使计算功能。
主机中的VM在启动时,需要从主机相连的存储装置中读取VM的启动镜像数据。不同的VM在启动时,其读取的启动镜像数据有部分数据是重复的。因此,现阶段的技术在启动VM集群时,一般先启动一台VM,并将该VM的启动镜像数据写入主机的缓存中。这样在其它VM启动时,可以直接从本地缓存中获取重复的启动镜像数据数据,并从存储装置中读取少量的非重复数据即可。
但是在实际应用中,一台主机中的不同VM可能具有不同的类型,而不同类型的VM对应的启动镜像数据之间存在较大差别。因此,当主机中存在多种类型的VM时,缓存中保存的启动镜像数据与待启动的VM需要的启动镜像数据重复率不高。为了尽量减少从存储装置中读取的数据,需要将不同类型的VM的启动镜像数据都写入主机的缓存中。这就导致主机的缓存占用率高,且缓存命中率低,进而使得主机业务进程缓慢,性能达不到使用要求。
发明内容
本发明提供了一种数据预取方法,用于提升集群***中主机的服务性能。
本发明第一方面提供了一种数据预取方法,适用于集群***。其中,该集群***中包括多个预取装置,每个预取装置都唯一连接有一个主机,并连接有一个或多个磁盘。各预取装置之间也彼此相连。本发明以连接有第一主机和第一磁盘的第一预取装置为例进行说明。第一预取装置在第一主机启动虚拟机之前,从第一主机处接收数据预取指令,该数据预取指令用于指示第一主机启动第一主机内的虚拟机所需要使用到的启动数据。第一预取装置根据数据预取指令,确定一个或多个目标数据块。若第一预取装置中没有保存目标数据块,则第一预取装置从第二预取装置处获取目标预取装置的标识信息,该第二预取装置为与保存了目标数据块的目标存储装置相连的预取装置,且该目标预取装置为集群***的多个预取装置中保存有目标数据块的预取装置。其中,若目标数据块的原始保存位置为集群***中的目标存储装置,则目标预取装置在获取目标数据块时,与目标存储装置相连的第二预取装置会记录各目标预取装置的标识信息。因此第一预取装置可以从第二预取装置处获取目标预取装置的标识信息。第一预取装置根据目标数据块的标识信息,确定目标数据块的目标存储位置,并从目标存储位置处将目标数据块预取到第一预取装置本地。通过这样的方法,使得原本保存在主机缓存中的启动镜像数据被保存在了主机之外的预取装置上,主机中的VM在启动时直接从预取装置上获取启动镜像数据即可。与现有技术中直接从存储装置中读取启动镜像数据相比,本实施例中重复的数据只需要被写入一次预取装置即可,减少了数据的读写次数和带宽的占用。与现有技术中将启动镜像数据保存在主机缓存中相比,本发明提供的方法中启动镜像数据不会大量占用主机的缓存,因此不会产生主机的缓存命中率低或缓存占用率高的问题,加速了主机业务进程,提升了主机的服务性能。
可选的,第一预取装置可以向第二预取装置请求目标预取装置的地址信息,并接收第二预取装置返回的标识信息列表。标识信息列表中可以记录有一个或多个目标预取装置的标识信息。若第二预取装置返回的标识信息列表为空,则说明没有任何预取装置从第二存储装置中读取了目标数据块,目标数据块仅保存在第二存储装置中。在这种情况下,第一预取装置确定目标数据块的目标存储位置为该第二存储装置。
可选的,若第二预取装置返回的标识信息列表不为空,则说明存在从第二存储装置中读取了目标数据块的目标预取装置。目标数据块不仅仅保存在第二存储装置中,还保存在目标预取装置中。在这种情况下,第一预取装置可以根据标识信息列表中记录的目标预取装置的标识信息,确定获取目标数据块的目标存储位置。具体的,第一预取装置根据每个目标预取装置的标识信息,确定访问每个目标预取装置的时延中的最短时延,以及该最短时延对应的目标预取装置。若该最短时延小于第一预取装置访问目标存储装置的时延,则确定目标数据块的目标存储位置为最短时延对应的目标预取装置;若该最短时延大于第一预取装置访问目标存储装置的时延,则确定目标数据块的目标存储位置为目标存储装置。通过这样的方法,可以保证从目标存储位置处获取目标数据块的时延尽可能的短。
可选的,第一预取装置可以根据数据预取指令,对启动镜像数据进行对齐切割,得到一个或多个目标数据块。
可选的,在集群***的初始运行阶段,第一预取装置可以向第一主机中的hypervisor注册虚拟存储盘,以将连接的存储装置以虚拟存储盘的形式呈现给第一主机。第一主机的hypervisor向第一主机中的虚拟存储盘下发数据集管理(英文:data setmanagement,缩写:DSM)命令形式的数据预取命令,第一预取装置接收该数据预取命令。
可选的,当第一主机中的虚拟机启动时,第一主机会向第一预取装置下发数据读取指令,用于指示读取该目标数据块。第一预取装置根据该数据读取指令,将本地保存的目标数据块发送给第一主机。
本发明的第二方面提供了一种预取装置,用于作为集群***中的第一预取装置。该预取装置包括:指令接收模块,用于在第一主机启动虚拟机之前,从第一主机处接收数据预取指令,该数据预取指令用于指示第一主机启动第一主机内的虚拟机所需要使用到的启动数据;数据确定模块,用于根据数据预取指令,确定一个或多个目标数据块;信息获取模块,用于在第一预取装置中没有保存目标数据块时,获取从第二预取装置处获取目标预取装置的标识信息,该第二预取装置为与保存了目标数据块的目标存储装置相连的预取装置,且该目标预取装置为集群***的多个预取装置中保存有目标数据块的预取装置;位置确定模块,用于根据目标数据块的标识信息,确定目标数据块的目标存储位置;数据保存模块,用于从目标存储位置处将目标数据块预取到第一预取装置本地。
可选的,信息获取模块具体用于:向第二预取装置请求目标预取装置的地址信息,并接收第二预取装置返回的标识信息列表。标识信息列表中可以记录有一个或多个目标预取装置的标识信息。位置确定模块具体用于:若目标预取装置的标识信息列表为空,则确定目标存储位置为目标存储装置。
可选的,位置确定模块还用于:若第二预取装置返回的标识信息列表不为空,则根据标识信息列表中记录的目标预取装置的标识信息,确定获取目标数据块的目标存储位置。具体的,根据每个目标预取装置的标识信息,确定访问每个目标预取装置的时延中的最短时延,以及该最短时延对应的目标预取装置。若该最短时延小于第一预取装置访问目标存储装置的时延,则确定目标数据块的目标存储位置为最短时延对应的目标预取装置;若该最短时延大于第一预取装置访问目标存储装置的时延,则确定目标数据块的目标存储位置为目标存储装置。通过这样的方法,可以保证从目标存储位置处获取目标数据块的时延尽可能的短。
可选的,数据确定模块具体用于:根据数据预取指令,对启动镜像数据进行对齐切割,得到一个或多个目标数据块。
可选的,指令接收模块具体用于:在集群***的初始运行阶段,向第一主机中的hypervisor注册虚拟存储盘,以将连接的存储装置以虚拟存储盘的形式呈现给第一主机。第一主机的hypervisor向第一主机中的虚拟存储盘下发DSM命令形式的数据预取命令,第一预取装置接收该数据预取命令。
可选的,当第一主机中的虚拟机启动时,第一主机会向第一预取装置下发数据读取指令,用于指示读取该目标数据块。指令接收模块还用于接收该数据读取指令。数据预取装置还可以包括数据发送模块,用于根据该数据读取指令,将本地保存的目标数据块发送给第一主机。
本发明的第三方面提供了一种计算设备,包括处理器、存储器、通信接口以及总线。其中,通过调用存储器中保存的程序代码,处理器用于执行本发明第一方面所提供的数据预取方法。
附图说明
图1为现阶段技术中集群***的一个架构示意图;
图2为本发明提供的集群***的一个架构示意图;
图3为本发明提供的计算设备的一个实施例结构图;
图4为本发明提供的数据预取方法的一个实施例流程图;
图5为本发明提供的预取装置的一个实施例结构图。
具体实施方式
本发明提供了一种数据预取方法,用于提升集群***的主机在启动虚拟机时的缓存命中率。本发明还提供了相关的预取装置,以下将分别进行描述。
云计算的飞速发展,其背后离不开虚拟化技术的有力支撑。虚拟化技术中集群***的基本架构请参阅图1。在集群***中有多台主机,每台主机中部署有多个VM,还部署有hypervisor用于将主机的资源分配给各VM,使得每个VM都可以独立行使计算功能。每台主机的南向都连接有用于存储数据的存储装置,存储装置具体可以为磁盘、固态硬盘(英文:solid state disk,缩写:SSD)。在启动VM时,主机需要从存储装置中读取VM的启动镜像数据供VM使用。
集群***中,一台主机上往往部署有大量的VM。当集群***启动大量的VM时,会在短时间内产生巨量的数据读写操作。该巨量的数据读写操作会占用大量的网络带宽,影响服务业务甚至导致VM宕机。
经研究发现,不同的VM在启动时,其读取的启动镜像数据有部分数据是重复的。因此,现阶段的技术在启动VM集群时,一般先启动一台VM,并将该VM的启动镜像数据写入主机的缓存中。这样在其它VM启动时,可以直接从本地缓存中获取重复的启动镜像数据,从存储装置中只需要读取少量的非重复数据即可。这样能够减少大量的存储装置读写操作,节省了***带宽、读写资源和VM启动时间。
但是在实际应用中,一台主机中的不同VM可能具有不同的类型,而不同类型的VM对应的启动镜像数据之间存在较大差别。例如,若VM 1为windows***,而VM 2为Linux***,则VM 1和VM 2的启动镜像数据的重复率并不高。此时,为了仍旧达到节省***带宽、读写资源和VM启动时间的效果,主机需要将windows***的启动镜像和Linux***的启动镜像都保存在缓存中。因此,当主机中VM的类型较多时,保存在主机缓存中的启动镜像数据会大大增加。而增大启动镜像数据在缓存中的保存量会引起一系列的问题,如主机的缓存占用率过高、缓存命中率低、主机业务进程缓慢等,严重影响主机的性能。
针对上述问题,本申请在现阶段技术的基础上提供了一种数据预取方法,用于主机性能。其中,本申请在主机和存储装置之间添加了预取装置,得到了与现阶段技术不同的集群***,其架构如图2所示。从图2中可以看出,每个预取装置的北向与主机相连,南向与存储装置相连,且不同的预取装置在东西向彼此相连。预取装置用于将启动镜像数据预取(即在虚拟机启动前预先获取)到预取装置本地,并在主机启动VM时将保存的启动镜像数据上发给主机。这样主机就不需要将启动镜像数据保存到本地缓存中。
图2中的预取装置可以通过图3中的计算设备300来实现。计算设备300的组织结构请参阅图3,包括处理器301、存储器302、通信接口303以及总线304。
其中,通信接口303为计算设备300与主机、存储装置以及其他计算设备进行通信的接口的集合,例如,通信接口303可以包括用于与主机相连的快速外部链接标准(英文:peripheral component interconnect express,缩写:PCIE)接口、快速非易失性存储器(英文:non-volatile memory express,缩写:NVMe)接口、串行连接小型计算机***接口(英文:serial attached SCSI,缩写:SAS)、串行高级技术附件(英文:serial advancedtechnology attachment,缩写:SATA)或其它接口,计算设备300通过该PCIE接口或其它接口接收主机的数据预取指令、数据读取指令或其它指令,并将本地保存的目标数据块发送给主机。通信接口303还可以包括用于与存储装置相连的磁盘控制器或其它接口,计算设备300通过该磁盘控制器或其它接口访问存储装置。此外,通信接口303还可以包括网卡(英文:network interface card,缩写:NIC),用于接入以太网,使得多个计算设备可以通过以太网互相访问。通信接口303还可以为其它形式的接口,此处不做限定。
存储器302可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或SSD;存储器202还可以包括上述种类的存储器的组合。其中,计算设备300用于将目标数据块预取到计算设备300本地,预取到的目标数据块保存在存储器302中。在通过软件来实现本发明提供的技术方案时,用于实现本发明图4提供的数据预取方法的程序代码可以保存在存储器302中,并由处理器301来执行。
处理器301可以为中央处理器(英文:central processing unit,简称:CPU),硬件芯片或CPU和硬件芯片的组合。处理器301在运行时,通过调用存储器302的程序代码,可以执行如下步骤:在第一主机启动虚拟机之前,从第一主机处接收数据预取指令;根据数据预取指令,确定目标数据块;从第二预取装置处获取目标预取装置的标识信息;根据目标数据块的标识信息,确定目标数据块的目标存储位置;根据目标数据块的目标存储位置,获取并保存目标数据块;接收数据读取指令,并根据数据读取指令将目标数据块发送给第一主机。
处理器301、存储器302以及通信接口303可以通过总线304来实现彼此之间的通信连接,也可以通过无线传输等其它手段实现通信。
本发明还提供了一种数据预取方法,图2中的预取装置以及图3中的计算设备300在运行时执行该数据预取方法。下面仅以第一预取装置为例对该数据预取方法进行描述,其基本流程请参阅图4,包括:
401、在第一主机启动虚拟机之前,从第一主机处接收数据预取指令;
第一预取装置接收第一主机下发的数据预取指令,该数据预取指令用于指示第一主机启动第一主机内的虚拟机所需要使用到的启动数据。
可选的,在集群***的初始运行阶段,第一预取装置可以向第一主机中的hypervisor注册虚拟存储盘,以将南向连接的集群***的存储装置以虚拟存储盘的形式呈现给第一主机。其中,虚拟存储盘具体可以为虚拟NVMe盘、虚拟SAS盘、虚拟SATA盘等虚拟磁盘的形式或其它形式。且第一预取装置的存储器中可以保存有映射表,该映射表用于记录集群***中的存储装置和主机中的虚拟存储盘的对应关系。第一主机中的VM以及hypervisor并不感知虚拟存储盘的真实性,将虚拟存储盘当做真实的物理存储器来对待处理。
Hypervisor负责管理主机中的VM,故能够检测到VM的启动。可选的,第一主机的hypervisor在第一主机中的VM启动前,向第一主机中的虚拟存储盘下发DSM命令,该DSM命令用于指示第一主机中的VM启动所需要的数据。下发给虚拟存储盘的DSM指令实际被第一预取装置接收。
402、根据数据预取指令,确定目标数据块。
第一预取装置根据数据预取指令,将待预取的启动镜像数据切割为一个或多个目标数据块。可选的,第一预取装置可以按照集群***的存储粒度,对启动镜像数据进行对齐切割。例如,若集群***的存储粒度为1MB,待预取的启动镜像数据的逻辑地址为2.5M~4.5MB,则第一预取装置可以将启动镜像数据切割为2.5MB~3MB、3MB~4MB、4MB~4.5MB这三个目标数据块。值得指出的是,若对启动镜像数据的切割方式为按照存储粒度进行对齐切割,则得到的单个目标数据块中的数据都存储于同一个存储装置中,不同的目标数据块中的数据可能存储于不同的存储装置中。
第一预取装置确定了目标数据块后,对于每个数据块,都执行本实施例后续403至406的全部步骤。
第一预取装置确定了目标数据块后,判断目标数据块的数据是否已经保存在了第一预取装置的本地。可选的,第一预取装置可以根据目标数据块对应的虚拟存储盘的全局唯一标识符(英文:globally unique identifier,缩写:GUID)、目标数据块在虚拟存储盘中的逻辑地址、以及保存的映射表,查找目标数据块所位于的存储装置以及在存储装置中的逻辑地址。然后通过在本地的逻辑地址表中检索目标数据块在存储装置中的逻辑地址,来判断目标数据块是否保存在第一预取装置本地。
若目标数据块保存在第一预取装置本地,则无需执行步骤403至405的数据预取操作,直接执行步骤406即可。
若目标数据块没有保存在第一预取装置本地,则第一预取装置需要将目标数据块获取到第一预取装置本地。下面将通过步骤403至405详细介绍第一预取装置预取目标数据块的方法。
403、从第二预取装置处获取目标预取装置的标识信息。
若目标数据块没有保存在第一预取装置本地,则第一预取装置需要获取目标预取装置的标识信息。
步骤402中提到,第一预取装置可以查找到目标数据块所处的存储装置。本实施例中仅以目标数据块保存于集群***中的第二存储装置为例进行说明。与第一主机、第一预取装置和第一存储装置的连接方式类似的,第二存储装置的北向连接有第二预取装置,第二预取装置的北向连接有第二主机。可以看出,集群***中其它预取装置在访问第二存储装置时都需要通过第二预取装置。本发明中将保存了目标数据块的预取装置称为目标预取装置,可以理解的,由于第一预取装置中没有保存目标数据块,因此目标预取装置不包括第一预取装置,但可以为存储系中除了第一预取装置以外的任何预取装置(包括第二预取装置)。一般的,目标预取装置通过第二预取装置访问第二存储装置中的目标数据块时,第二预取装置会将目标预取装置的标识信息,如IP地址、设备编号等信息记录下来。因此,第一预取装置可以从第二预取装置处获取目标预取装置的标识信息。
可选的,为了保证每个预取装置的被访问频率不会过高,可以为每个预取装置都设定一个被访问阈值,只有被其它预取装置访问的次数小于被访问阈值且保存有目标数据块的预取装置,才被认为是目标预取装置。
可选的,第一预取装置可以向第二预取装置请求目标预取装置的地址信息,并接收第二预取装置返回的标识信息列表。标识信息列表中可以记录有一个或多个目标预取装置的标识信息。
值得指出的是,本实施例中仅用第二存储装置来指代保存有目标数据块的存储装置,在实际应用中,第二存储装置也可以与第一存储装置是同一个存储装置。在这种情况下,第二预取装置与第一预取装置实际也为同一个预取装置。
404、根据目标数据块的标识信息,确定目标数据块的目标存储位置。
第一预取装置在获取了目标数据块的标识信息后,根据目标数据块的标识信息,确定目标数据块的目标存储位置。其中,目标存储位置为目标数据块在集群***中的一个或多个存储位置中的一个。从目标数据块在集群***中的存储位置内选择目标存储位置的标准有很多,例如可以将目标数据块在集群***中的存储位置中,距第一预取装置的网络距离最近的位置确定为目标存储位置、或将第一预取装置访问时延最短的位置确定为目标存储位置。目标存储位置也可以根据其他的标准确定,此处不做限定。
可选的,若第二预取装置返回的标识信息列表为空,则说明没有任何预取装置从第二存储装置中读取了目标数据块,目标数据块仅保存在第二存储装置中。在这种情况下,第一预取装置确定目标数据块的目标存储位置为该第二存储装置。
可选的,若第二预取装置返回的标识信息列表不为空,则说明存在从第二存储装置中读取了目标数据块的目标预取装置。目标数据块不仅仅保存在第二存储装置中,还保存在目标预取装置中。在这种情况下,第一预取装置可以根据标识信息列表中记录的目标预取装置的标识信息,确定获取目标数据块的目标存储位置。具体可以参考(1)~(3)所示的确定方法:
(1)第一预取装置分别确定访问每个目标预取装置的时延,并确定访问每个目标预取装置的时延中的最短时延t1,以及t1对应的目标预取装置。
(2)第一预取装置确定通过第二预取装置访问第二存储装置的时延t2。
(3)若t1小于t2,则第一预取装置确定t1对应的目标预取装置为目标数据块的目标存储位置;
若t1大于t2,则第一预取装置确定第二存储装置为目标数据块的目标存储位置;
若t1等于t2,则第一预取装置既可以确定t1对应的目标预取装置为目标数据块的目标存储位置,也可以确定第二存储装置为目标数据块的目标存储位置。
第一预取装置也可以通过其它方法确定目标数据块的目标存储位置,此处不做限定。
405、根据目标数据块的目标存储位置,获取并保存目标数据块。
第一预取装置在确定了目标数据块的获取路径后,根据该获取路径,将目标数据块预取到第一预取装置本地。
可选的,在步骤405之后,第二预取装置可以记录下第一预取装置的标识信息,以表示第一预取装置中保存了目标数据块。
本发明提供的数据预取方法在主机和存储装置之间添加了预取装置,用于根据主机的数据预取指令,将主机在启动时需要使用的启动镜像数据预先获取到预取装置本地,以供主机使用。通过这样的方法,使得原本保存在主机缓存中的启动镜像数据被保存在了主机之外的预取装置上,主机中的VM在启动时直接从预取装置上获取启动镜像数据即可。与现有技术中直接从存储装置中读取启动镜像数据相比,本实施例中重复的数据只需要被写入一次预取装置即可,减少了数据的读写次数和带宽的占用。与现有技术中将启动镜像数据保存在主机缓存中相比,本发明提供的方法中启动镜像数据不会大量占用主机的缓存,因此不会产生主机的缓存命中率低或缓存占用率高的问题,加速了主机业务进程,提升了主机的服务性能。
可选的,本发明提供的方法在完成了启动镜像数据的预取之后,还可以执行步骤406:
406、接收数据读取指令,并根据数据读取指令将目标数据块发送给第一主机。
第一预取装置在执行完步骤401至405后,就将目标数据块预取到了本地。当第一主机中的虚拟机启动时,第一主机会向第一预取装置下发数据读取指令,用于指示读取该目标数据块。第一预取装置接收该数据读取指令,并根据该数据读取指令将本地保存的目标数据块发送给第一主机。
图5所示的实施例介绍了本发明提供的数据预取方法,下面将介绍用于实现该方法的预取装置,其基本结构请参阅图5,包括:
指令接收模块501,用于执行图4所示的实施例中步骤401中的操作;
数据确定模块502,用于执行图4所示的实施例中步骤402中的操作;
信息获取模块503,用于执行图4所示的实施例中步骤403中的操作;
位置确定模块504,用于执行图4所示的实施例中步骤404中的操作;
数据保存模块505,用于执行图4所示的实施例中步骤405中的操作。
图5所示的装置的相关描述可以对应参阅图4所示的方法实施例部分的相关描述和效果进行理解,本处不做过多赘述。
可选的,指令接收模块501还可以接收第一主机下发的数据读取指令,该数据读取指令用于指示读取该目标数据块。图5所示的预取装置还可以包括数据发送模块506,用于在指令接收模块501接收到数据读取指令后,将目标数据块发送给第一主机。
图5提供的预取装置位于主机和存储装置之间,其中指令接收模块501接收主机的数据预取指令,数据确定模块502根据主机的数据预取指令确定目标数据块,信息获取模块503获取保存了目标数据块的一个或多个目标预取装置的标识信息;位置确定模块504确定目标数据块的目标存储位置;数据保存模块505从目标存储位置处将目标数据块预取到预取装置本地,以供主机使用。通过这样的方法,使得原本保存在主机缓存中的启动镜像数据被保存在了主机之外的预取装置上,主机中的VM在启动时直接从预取装置上获取启动镜像数据即可。与现有技术中直接从存储装置中读取启动镜像数据相比,本实施例中重复的数据只需要被写入一次预取装置即可,减少了数据的读写次数和带宽的占用。与现有技术中将启动镜像数据保存在主机缓存中相比,本发明提供的方法中启动镜像数据不会大量占用主机的缓存,因此不会产生主机的缓存命中率低或缓存占用率高的问题,加速了主机业务进程,提升了主机的服务性能。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种数据预取的方法,其特征在于,所述方法应用于集群***,所述集群***包括多个相连的预取装置,每个预取装置连接主机和存储装置,所述方法包括:
第一预取装置从第一主机接收数据预取指令,所述第一预取装置为所述多个相连的预取装置中任意一个预取装置,所述第一主机为与所述第一预取装置连接的主机;所述数据预取指令用于指示所述第一主机启动所述第一主机内的虚拟机所需的镜像数据的标识;
所述第一预取装置根据所述数据预取指令获取所述镜像数据;
所述第一预取装置向所述第一主机发送所述数据预取指令的结果,所述数据预取指令的结果用于指示所述镜像数据的预取结果。
2.根据权利要求1所述的方法,其特征在于,所述镜像数据包括至少一个数据块,所述第一预取装置根据所述数据预取指令获取所述镜像数据,包括:
所述第一预取装置判断所述第一预取装置中是否存储目标数据块,所述目标数据块为所述镜像数据部分或全部数据;
所述第一预取装置根据所述第一预取装置是否存储所述目标数据块的结果,向所述第一主机发送所述数据预取指令的结果。
3.根据权利要求2所述的方法,其特征在于,所述第一预取装置判断所述第一预取装置中是否存储目标数据块,包括:
当所述第一预取装置存储有所述目标数据块时,所述第一预取装置向所述第一主机发送所述数据预取指令的结果,所述数据预取指令的结果用于指示所述第一预取装置存储有所述镜像数据,以使得所述第一主机根据所述镜像数据启动所述第一主机内的虚拟机。
4.根据权利要求2所述的方法,其特征在于,所述第一预取装置判断所述第一预取装置中是否存储目标数据块,包括:
当所述第一预取装置未存储所述目标数据块时,所述第一预取装置从第二预取装置获取所述目标数据块的存储位置;
所述第一预取装置根据所述目标数据块的存储位置将所述目标数据块保存至所述第一预取装置。
5.根据权利要求4所述的方法,其特征在于,所述第一预取装置从第二预取装置获取所述目标数据块的存储位置,包括:
所述第一预取装置获取所述第二预取装置返回的标识信息列表,所述标识信息列表用于记录存储所述目标数据块的预取装置的标识;
所述第一预取装置根据所述标识信息列表确定所述目标数据块的存储位置,所述存储位置包括所述目标数据块在所述集群***中至少一个存储位置;
所述第一预取装置根据从所述至少一个存储位置获取所述目标数据块的时延;
所述第一预取装置选择最短时延关联的预取装置为所述目标数据块的存储位置。
6.根据权利要求1至5中任一所述的方法,其特征在于,在所述第一预取装置向所述第一主机发送所述数据预取指令的结果之后,所述方法还包括:
所述第一预取装置接收数据读取指令,所述数据读取指令用于指示读取所述目标数据块;
所述第一预取装置根据所述数据读取指令,将所述第一预取装置中保存的所述目标数据块发送给所述第一主机。
7.一种预取装置,其特征在于,所述装置包括,
指令接收模块,用于从第一主机接收数据预取指令,所述预取装置为集群***中多个相连的预取装置中任意一个预取装置,所述第一主机为与所述第一预取装置连接的主机;所述数据预取指令用于指示所述第一主机启动所述第一主机内的虚拟机所需的镜像数据的标识;
信息获取模块,用于根据所述数据预取指令获取所述镜像数据;
数据发送模块,用于向所述第一主机发送所述数据预取指令的结果,所述数据预取指令的结果用于指示所述镜像数据的预取结果。
8.根据权利要求7所述的预取装置,其特征在于,所述装置还包括数据确定模块,
所述数据确定模块,用于判断所述预取装置中是否存储目标数据块,所述目标数据块为所述镜像数据部分或全部数据;
所述数据发送模块,还用于根据所述第一预取装置是否存储所述目标数据块的结果,向所述第一主机发送所述数据预取指令的结果。
9.根据权利要求8所述的预取装置,其特征在于,
所述数据发送模块,还用于当所述数据确定模块确定所述预取装置存储有所述目标数据块时,向所述第一主机发送所述数据预取指令的结果,所述数据预取指令的结果用于指示预取所述镜像数据的结果。
10.根据权利要求8所述的预取装置,其特征在于,所述预取装置还包括数据存储模块;
所述数据发送模块,还用于当所述第一预取装置未存储所述目标数据块时,从第二预取装置获取所述目标数据块的存储位置;
所述数据存储模块,用于根据所述目标数据块的存储位置存储所述目标数据块。
11.根据权利要求10所述的预取装置,其特征在于,所述预取装置还包括位置确认模块,
所述信息获取模块,还用于获取第二预取装置返回的标识信息列表,所述标识信息列表用于记录存储所述目标数据块的预取装置的标识
所述位置确认模块,用于根据所述标识信息列表确定所述目标数据块的存储位置,所述存储位置包括所述目标数据块在所述集群***中至少一个存储位置;根据从所述至少一个存储位置获取所述目标数据块的时延;选择最短时延关联的预取装置为所述目标数据块的存储位置。
12.根据权利要求7至11中任一所述的预取装置,其特征在于,
所述指令接收模块,还用于在向所述第一主机发送所述数据预取指令的结果之后,接收数据读取指令,所述数据读取指令用于指示读取所述目标数据块;
所述数据发送模块,还用于根据所述数据读取指令,将所述第一预取装置中保存的所述目标数据块发送给所述第一主机。
13.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令以实现如权利要求1至6中任意一项所述方法的操作步骤。
14.一种集群***,其特征在于,所述集群***包括多个相连的预取装置,每个预取装置连接主机和存储装置,所述每个预取装置分别用于实现如权利要求1至6中任意一项所述方法的操作步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法的操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011202915.2A CN112486858A (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011202915.2A CN112486858A (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
CN201610153153.9A CN107203480B (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610153153.9A Division CN107203480B (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486858A true CN112486858A (zh) | 2021-03-12 |
Family
ID=59850734
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011202915.2A Pending CN112486858A (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
CN201610153153.9A Active CN107203480B (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610153153.9A Active CN107203480B (zh) | 2016-03-17 | 2016-03-17 | 一种数据预取方法以及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190037043A1 (zh) |
CN (2) | CN112486858A (zh) |
WO (1) | WO2017157145A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995960A (zh) * | 2022-07-19 | 2022-09-02 | 银河麒麟软件(长沙)有限公司 | 一种虚拟机资源池启动优化方法、***及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552349B1 (en) * | 2018-05-31 | 2020-02-04 | Lightbits Labs Ltd. | System and method for dynamic pipelining of direct memory access (DMA) transactions |
CN109308288B (zh) * | 2018-09-26 | 2020-12-08 | 新华三云计算技术有限公司 | 数据处理方法及装置 |
CN115344197A (zh) * | 2019-06-24 | 2022-11-15 | 华为技术有限公司 | 一种数据访问方法、网卡及服务器 |
CN117348793A (zh) * | 2022-06-28 | 2024-01-05 | 华为技术有限公司 | 一种数据读取方法、数据加载装置及通信*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198780A1 (en) * | 2006-02-17 | 2007-08-23 | Boyd Kenneth W | Apparatus, system, and method for determining prefetch data |
CN102508638A (zh) * | 2011-09-27 | 2012-06-20 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
CN102629941A (zh) * | 2012-03-20 | 2012-08-08 | 武汉邮电科学研究院 | 云计算***中虚拟机镜像缓存的方法 |
US20120284707A1 (en) * | 2011-05-02 | 2012-11-08 | Symantec Corporation | Method and system for migrating a selected set of a virtual machines between volumes |
US20130318194A1 (en) * | 2012-05-25 | 2013-11-28 | Dell Products, Lp | Micro-Staging Device and Method for Micro-Staging |
US20140281055A1 (en) * | 2013-03-15 | 2014-09-18 | Vmware, Inc. | Latency reduction for direct memory access operations involving address translation |
US20150039838A1 (en) * | 2013-07-30 | 2015-02-05 | Vmware, Inc. | Method and system for restoring consumed memory after memory consolidation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4909021B2 (ja) * | 2006-11-20 | 2012-04-04 | 株式会社日立製作所 | コピー制御方法及び記憶装置 |
US8214599B2 (en) * | 2008-11-04 | 2012-07-03 | Gridiron Systems, Inc. | Storage device prefetch system using directed graph clusters |
US8490088B2 (en) * | 2010-09-10 | 2013-07-16 | International Business Machines Corporation | On demand virtual machine image streaming |
CN102148870B (zh) * | 2011-03-07 | 2013-07-10 | 浪潮(北京)电子信息产业有限公司 | 一种云存储***及其实现方法 |
CN103902469B (zh) * | 2012-12-25 | 2017-03-15 | 华为技术有限公司 | 一种数据预取的方法和*** |
CN103559075B (zh) * | 2013-10-30 | 2016-10-05 | 华为技术有限公司 | 一种数据传输方法、装置和***及内存装置 |
CN104933110B (zh) * | 2015-06-03 | 2018-02-09 | 电子科技大学 | 一种基于MapReduce的数据预取方法 |
-
2016
- 2016-03-17 CN CN202011202915.2A patent/CN112486858A/zh active Pending
- 2016-03-17 CN CN201610153153.9A patent/CN107203480B/zh active Active
-
2017
- 2017-02-22 WO PCT/CN2017/074388 patent/WO2017157145A1/zh active Application Filing
-
2018
- 2018-09-17 US US16/133,179 patent/US20190037043A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198780A1 (en) * | 2006-02-17 | 2007-08-23 | Boyd Kenneth W | Apparatus, system, and method for determining prefetch data |
US20120284707A1 (en) * | 2011-05-02 | 2012-11-08 | Symantec Corporation | Method and system for migrating a selected set of a virtual machines between volumes |
CN102508638A (zh) * | 2011-09-27 | 2012-06-20 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
CN102629941A (zh) * | 2012-03-20 | 2012-08-08 | 武汉邮电科学研究院 | 云计算***中虚拟机镜像缓存的方法 |
US20130318194A1 (en) * | 2012-05-25 | 2013-11-28 | Dell Products, Lp | Micro-Staging Device and Method for Micro-Staging |
US20140281055A1 (en) * | 2013-03-15 | 2014-09-18 | Vmware, Inc. | Latency reduction for direct memory access operations involving address translation |
US20150039838A1 (en) * | 2013-07-30 | 2015-02-05 | Vmware, Inc. | Method and system for restoring consumed memory after memory consolidation |
Non-Patent Citations (2)
Title |
---|
陈彬;肖侬;蔡志平;王志英;: "虚拟机环境下软件按需部署中的预取机制", 软件学报, no. 12, 15 December 2010 (2010-12-15) * |
陈阳;怀进鹏;胡春明;: "基于内存混合复制方式的虚拟机在线迁移机制", 计算机学报 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995960A (zh) * | 2022-07-19 | 2022-09-02 | 银河麒麟软件(长沙)有限公司 | 一种虚拟机资源池启动优化方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190037043A1 (en) | 2019-01-31 |
WO2017157145A1 (zh) | 2017-09-21 |
CN107203480B (zh) | 2020-11-17 |
CN107203480A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203480B (zh) | 一种数据预取方法以及装置 | |
US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
US9819739B2 (en) | Systems and methods for supporting hot plugging of remote storage devices accessed over a network via NVME controller | |
US10318325B2 (en) | Host-side cache migration | |
CN103329111B (zh) | 一种基于块存储的数据处理方法、装置及*** | |
US10459652B2 (en) | Evacuating blades in a storage array that includes a plurality of blades | |
US9684532B2 (en) | Virtual machine reboot information persistence into host memory | |
CN108475201B (zh) | 一种虚拟机启动过程中的数据获取方法和云计算*** | |
US9983997B2 (en) | Event based pre-fetch caching storage controller | |
WO2014089967A1 (zh) | 建立虚拟机共享存储缓存的方法及装置 | |
US20140208001A1 (en) | Techniques for Achieving Crash Consistency when Performing Write-Behind Caching Using a Flash Storage-Based Cache | |
US20190087122A1 (en) | Storage system | |
CN109213691B (zh) | 用于缓存管理的方法和设备 | |
CN112015352B (zh) | 存储块设备识别装置、***和存储块设备读写方法 | |
US20160224358A1 (en) | Method and system for performing on-demand data write through based on virtual machine types | |
CN111367472A (zh) | 虚拟化方法和装置 | |
CN111767114A (zh) | 创建云主机的方法和装置、计算机***和可读存储介质 | |
JP6529678B2 (ja) | アプリケーションの実行を加速する方法及びデバイス | |
JP5692590B2 (ja) | リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法 | |
CN113254091B (zh) | 一种基于ceph块设备的无盘***启动方法 | |
CN114860625A (zh) | 数据访问方法、装置、设备及可读存储介质 | |
US10795771B2 (en) | Information handling system with reduced data loss in block mode | |
TW201435579A (zh) | 用於從作業系統安裝映像檔的快照啓動多個伺服器之系統與方法 | |
US10003645B2 (en) | Method and apparatus for logical mirroring to a multi-tier target node | |
CN113704165B (zh) | 一种超融合服务器、数据处理方法及装置 |
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 |