CN107851062A - 一种主机集群中缓存管理方法及主机 - Google Patents

一种主机集群中缓存管理方法及主机 Download PDF

Info

Publication number
CN107851062A
CN107851062A CN201580002565.6A CN201580002565A CN107851062A CN 107851062 A CN107851062 A CN 107851062A CN 201580002565 A CN201580002565 A CN 201580002565A CN 107851062 A CN107851062 A CN 107851062A
Authority
CN
China
Prior art keywords
data
cache
destination host
request
equipment
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
Application number
CN201580002565.6A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107851062A publication Critical patent/CN107851062A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (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

一种主机集群中缓存管理方法,所述主机集群包括目标主机在内的一台或多台主机的本地缓存设备组成的缓存资源池(301a),所述缓存资源池(301a)包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块,所述目标主机运行有应用;目标主机CPU根据应用的数据请求从缓存资源池(301a)的多个数据块中分配目标数据块用于缓存数据操作请求所操作的数据。

Description

一种主机集群中缓存管理方法及主机 技术领域
本发明涉及信息技术领域,尤其涉及一种主机集群中缓存管理方法及主机。
背景技术
在过去的几十年中,信息技术迅猛发展,计算机的中央处理单元(Centric Processing Unit,CPU)的计算能力依然在按照摩尔定律在发展,但是存储的性能并没有显著的提高,造成存储的性能和计算能力发展的不匹配。为改善这一问题,引入缓存技术。
如图1所示,提供了一种在虚拟化环境下基于缓存技术改善存储性能的方案。虚拟机(Virtual Machine,VM)1、VM 2、VM 3和VM 4运行在图1所示的主机(或称为服务器)上。主机上的每台VM有独立的操作系统。VM 1上运行应用1,VM 2运行应用2,VM 3运行应用3,VM 4运行应用4。由于缓存设备的输入输出(Input/Output,IO)性能要优于外部存储设备的IO性能,因此,为提高VM的IO性能,主机将缓存设备划分为固定的分区作为虚拟缓存设备分配给VM使用。例如,将分区1作为虚拟缓存设备分配给VM 1,分区2作为虚拟缓存设备分配给VM 2,分区3作为虚拟缓存设备分配给VM 3,分区4作为虚拟缓存设备分配给VM 4。
图1所示的方案中,虽然可以通过为VM分配虚拟缓存设备,从而提升VM的IO性能,但是一旦为VM分配虚拟缓存设备,即实际分配了虚拟缓存设备的容量,在VM运行过程中虚拟缓存设备容量即不可调整,造成虚拟缓存设备的缓存空间的浪费。
发明内容
本发明提供了一种主机集群中缓存管理方法,所述主机集群包括目标主机在内的一台或多台主机的本地缓存设备组成的缓存资源池, 所述缓存资源池包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块,所述目标主机运行有应用;所述方法包括:
所述目标主机的中央处理单元CPU接收所述应用发送的数据请求;
所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备;
所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据;
所述目标主机的CPU建立所述目标数据块与所述虚拟缓存设备的对应关系。本发明实施提供的虚拟缓存设备管理方法,可根据应用的数据请求动态分配数据块,提高了虚拟缓存设备的利用率,减少了虚拟缓存设备的缓存空间的浪费。可选的,所述目标主机的CPU建立所述数据请求携带的卷的地址与所述目标数据块的逻辑地址的映射关系,以用于表示虚拟缓存设备中所述目标数据块缓存了所述数据请求所操作的数据。
可选的,所述目标主机存储有所述应用的标识与所述虚拟缓存设备的标识的对应关系,所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备具体包括:所述目标主机的CPU根据所述应用的标识与所述虚拟缓存设备的标识的对应关系确定所述虚拟缓存设备。
可选的,所述目标主机存储有所述应用挂载的卷的标识与所述虚拟缓存设备的标识的对应关系,所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备具体包括:所述目标主机的CPU根据所述应用挂载的卷的标识与所述虚拟缓存设备的标识对应关系确定所述虚拟缓存设备。
可选的,当所述数据请求为写数据请求时,所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据具体为:所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述写数据请求携带的数据。
可选的,当所述数据请求为读取数据请求时,所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据具体为:所述目标主机的CPU从所述应用挂载的卷中读取待读取的数据;所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述取待读取的数据。
可选的,所述缓存资源池中数据块的大小不同,以提供不同粒度的缓存。
可选的,具有相同大小的数据块和物理块建立映射。
可选的,应用是虚拟机、虚拟机中运行的应用或主机上运行的应用。
相应的,本发明还提供了主机用于执行上述方案。相应的,本发明还提供了非易失性计算机可读存储介质和计算机程序产品以实现上述方案。
附图说明
图1为现有技术中应用场景图;
图2为本发明实施例应用场景图;
图3为主机1本地缓存资源池示意图;
图4为虚拟缓存设备与缓存资源池关系示意图;
图5为虚拟缓存设备与缓存资源池关系示意图;
图6为虚拟缓存设备与缓存资源池关系示意图;
图7为虚拟缓存设备与缓存资源池关系示意图;
图8为创建虚拟缓存设备的流程图;
图9为本发明实施例应用场景图;
图10为本发明实施例为主机集群中缓存管理方法示意图;
图11为本发明实施例目标主机的结构示意图。
具体实施例
如图2所示,为本发明实施例的一个应用场景。图2中,主机集群中包括主机1、主机2至主机N,主机之间相互通信,其中N为整数。每个主机上运行多台VM,在本发明实施例中,分别用VM 1、VM 2至VM N表示。本发明中主机的数量以及VM的数量只是示例性的,可根据实际需要确定主机的数量和VM的数量。主机,也称为服务器或者节点,通过使用虚拟化软件运行VM。虚拟化软件可以为(华为技术有限公司计算虚拟化软件)。每台主机的硬件包含本地缓存设备。本发明实施例中,主机的硬件包含本地缓存设备是指本地缓存设备内置于主机或者本地缓存设备与主机连接,以下称为主机的本地缓存设备。而主机需要的永久存储设备也可位于主机外部或内置于主机,对此本发明实施例不作限定。本地缓存设备可以是固态存储硬件(Solid State Disk,SSD)、快速外围组件互连(Peripheral Component Interconnect Express,PCIe)闪存卡或其他设备作为缓存设备,本发明实施例对此不作限定。图2所示的实施例中,主机的硬件还包含CPU,本领域技术人员可知,主机除图2中所示的硬件设备外,还包括其他硬件,如主存储器(Main Memory)等,在此不再列举。
图2所示的实施例中,每台主机将本地缓存设备进行池化,所谓进行池化是将本地缓存设备逻辑上划分成固定大小的数据块,由数据 块组成缓存资源池,数据块对应本地缓存设备上固定大小的物理块,每一个数据块会映射到本地缓存设备上一个物理块,即数据块的逻辑地块映射到本地缓存设备上物理块的物理地址,或者数据块与本地缓存设备上的物理块对应。因此,本发明实施例中数据块是逻辑上的概念。可选的,本地缓存设备可以有不同大小的物理块,相应的,数据块也可以有不同的大小,具有相同大小的数据块和物理块建立映射。在图2中,各主机本地缓存设备可以组成缓存资源池。具体地,每个主机本地缓存设备可以组成一个缓存资源池,或者多个主机的本地缓存设备组成一个缓存资源池,或者所有主机的本地缓存设备组成一个缓存资源池。
如图3所示,主机1的本地缓存设备1形成一个缓存资源池301a,在该缓存资源池中本地缓存设备1被逻辑上划分成固定大小的数据块,如4KB。如前所述,一个4KB大小的数据块映射到本地缓存设备1中一个4KB大小的物理块,即一个4KB大小的数据块的逻辑地址映射到本地缓存设备1中一个4KB大小的物理块。主机2至主机N的本地缓存设备也分别组成类似的缓存资源池。在另一种实施场景下,每台主机的本地缓存设备形成的缓存资源池中的数据块大小可根据实际需求,大小均相同,也可不相同。因为缓存资源池301a的存储资源是以数据块的形式呈现的,因此,缓存资源池301a也称为块设备。主机1根据VM的需求,如图4所示,在缓存资源池中创建不同的虚拟缓存设备Vcache 11至Vcache 1M,其中,M为整数。主机1创建虚拟缓存设备Vcache 11至Vcache 1M,并且分别记录Vcache 11至Vcache 1M的元数据。以Vcache 11为例,Vcache 11为主机1上的VM 11提供缓存,Vcache 11的元数据包括Vcache 11与VM 11挂载的卷V1的对应关系(例如,通过记录Vcache 11的标识与V1的标识的对应关系实现)、Vcache 11的标识以及Vcache 11的大小等,还可以包括Vcache 11与VM 11的对应关系 (具体可通过记录Vcache 11的标识与VM 11的标识的对应关系实现)。在另一种实现方式中,Vcache 11与VM 11挂载的卷V1的对应关系(例如,通过记录Vcache 11的标识与V1的标识的对应关系实现)和Vcache 11与VM 11的对应关系(具体可通过记录Vcache 11的标识与VM  11的标识的对应关系实现)也可不记录在Vcache 11的元数据中,而存储在主机1的特定区域以供VM 11访问Vcache11时查询。因此,Vcache 11、缓存资源池301a与主机1的本地缓存设备1形成如图5所示的关系,Vcache 11中缓存的数据存储在Vcache 11的数据块对应的本地缓存设备1的物理块中。本发明实施例中,创建Vcache,并不需要为Vcache分配数据块。当需要缓存数据时,才建立Vcache和数据块的对应关系,也即为Vcache缓存的数据分配数据块,从而提高了本地缓存设备的利用率,减少本地缓存设备的缓存空间的浪费。
例如,为Vcache 11创建的缓存空间大小为4GB,则Vcache 11用于缓存VM 11写入V1的数据,或者缓存VM 11从V1读取的数据。具体地,以缓存VM 11写入V1的数据为例,主机1的CPU接收VM 11发送的写数据请求,写数据请求携带VM 11的标识,CPU查询VM 11的标识与Vcache 11的标识的对应关系,确定VM 11的虚拟缓存设备Vcache 11(另一种实现,写数据请求携带VM 11挂载的卷V1的标识,CPU查询V1的标识与Vcache 11的标识的对应关系,确定VM 11的虚拟缓存设备Vcache 11),根据Vcache 11的属性从缓存资源池301a中为该写请求分配数据块以缓存写数据请求携带的数据。例如,当Vcache 11的属性包括Vcache 11中数据块的大小,则根据Vcache 11的属性从缓存资源池301a中为该写请求分配数据块包括:根据Vcache 11的中数据块的大小从缓存资源池301a中选择相同大小的数据块,将该写请求携带的数据存储到该数据块对应的本地缓存设备的物理块中(另一种相同含义的表述为将该写请求携带的数据存储到该数据块对应的本地缓 存设备的物理块中)。CPU建立该写请求携带的待写入地址(V1中的地址)与该数据块的逻辑地址的对应关系,以表示该数据块的逻辑地址为该写请求携带的数据的缓存地址。
当Vcache 11的属性还包括透写(write through)模式时,主机1的CPU接收VM 11发送的写数据请求,从缓存资源池301a中为该写请求分配数据块以缓存写请求携带的数据,将写请求携带的数据存储到VM 11的挂载的卷V1,向VM 11发送写成功响应。当Vcache 11的属性还包括回写(write back)模式,主机1的CPU接收VM 11发送的写数据请求,从缓存资源池301a中为该写请求分配数据块以缓存写请求携带的数据,向VM 11返回写成功响应。
无论是透写还是回写模式,从缓存资源池301a中为该写请求分配数据块以缓存写请求携带的数据具体包括,从缓存资源池301a中为写请求分配数据块,将写请求携带的数据存储到分配的数据块对应的本地缓存设备的物理块中。
当VM 11发送读取数据请求时,读取数据请求携带VM 11的标识,CPU查询VM 11的标识与Vcache 11的标识的对应关系,确定VM 11的虚拟缓存设备Vcache 11(另一种实现,读取数据请求携带VM 11挂载的卷V1的标识,CPU查询V1的标识与Vcache 11的标识的对应关系,确定VM 11的虚拟缓存设备Vcache 11),查询Vcache 11是否缓存待读取的数据,当Vcache 11分配的数据块缓存了待读取数据时,则Vcache 11向VM 11返回待读取的数据,具体的,CPU查询Vcache11中是否有数据块的逻辑地址与待读取数据的地址(V1中的地址)的映射关系,当存在该映射关系,则表明Vcache11中该数据块中缓存了待读取数据。当Vcache 11没有缓存待读取数据时,从VM 11挂载的卷V1读取该待读取数据,并且根据Vcache 11的属性从缓存资源池301a中为Vcache 11分配数据块,并将该待读取数据至Vcache 11,即将该待读取的数据 缓存在该数据块对应的本地缓存设备的物理块中,建立该数据块的逻辑地址与与待读取数据的地址(V1中的地址)的映射关系。CPU从VM 11的Vcache 11中该数据块的逻辑地址中读取该待读取的数据,上述几种情况,为Vcache 11从缓存资源池301a中分配数据块后,还包括建立Vcache 11与分配的数据块之间的对应关系,表明该分配的数据块属于Vcache 11,或者表明该分配的数据块用于为Vcache 11提供缓存空间。可选的,Vcache 11的属性包括重复数据删除功能,则为缓存VM 11读取的数据或写入的数据时分配的数据块所在的本地缓存设备要支持重复数据删除功能。可选的,Vcache 11的属性包括缓存淘汰算法,则为缓存VM 11读取的数据或写入的数据时分配的数据块要支持特定的缓存淘汰算法,在此不再赘述。
另一种实现方式,Vcache 11可以为主机1的多个VM提供缓存,则多个VM所需要的Vcache具有相同的属性,Vcache 11的缓存容量满足多个VM的缓存需求。在创建Vcache 11时,Vcache 11的元数据中记录的是多个VM与Vcache 11的对应关系,或者,记录Vcache 11与多个VM挂载的卷的对应关系,而多个VM访问Vcache 11可参考前面VM 11的实现方式,在此不赘述。
另一种实现方式,Vcache 11可以为VM 11中运行的特定应用提供缓存,而不是为VM 11提供缓存,则在创建Vcache 11时,Vcache 11的元数据中记录的是VM 11中特定应用与Vcache 11的对应关系,VM 11中特定的应用访问Vcache 11时,主机1的CPU通过VM 11中特定应用的标识确定Vcache 11,后面的实现方式可参考前面VM 11的实现方式,在此不赘述。
本发明实施例提高了主机本地缓存设备的利用率,减少了本地缓存设备的缓存空间的浪费,同时提高了虚拟缓存设备配置的灵活性。
图5所示的实施方式中,以Vcache 11为VM 11提供缓存为例,当 VM 11迁移至主机2,即成为目标虚拟机VM 22,一种实现方式,
Vcache 11仍然为VM 22提供缓存,则Vcache11的元数据包括Vcache 11与VM 22挂载的卷的对应关系(通过记录Vcache 11的标识与VM 22挂载的卷的标识对应关系实现),或者VM 22与Vcache 11的对应关系(通过记录VM 22的标识与Vcache 11的标识的对应关系实现)。其中,VM 22挂载的卷仍然为V1,则主机2上的VM 22可通过网络访问主机1上的Vcache 11。同理,Vcache 11为主机1上运行的VM 11中的特定应用提供缓存的场景与此类似,不再赘述。另一种实现方式,当VM 11迁移至主机2,即目标虚拟机VM 22,主机2为VM 22创建Vcache 21,为VM 22分配Vcache 21,具体方式可参考前面创建Vcache 11及为VM 11分配Vcache 11的方式,在此不再赘述。其中,Vcache 21与Vcache 11具有相同的属性,关于Vcache 11的属性,请参见前面的描述。当VM 11迁移至主机2,另一种实现方式为将主机2中已经创建的与Vcache 11具有相同属性的虚拟缓存设备分配给VM 22,该虚拟缓存设备还要能够为VM 22提供Vcache 11的缓存容量,该种实现方式下,VM 22与其他虚拟机共享该虚拟缓存设备。
在本发明实施例图2所示的实现场景中,多个主机的本地缓存设备形成一个缓存资源池,如图6所示,主机1的本地缓存设备1和主机2的本地缓存设备2被逻辑上划分成固定大小的数据块,如4KB,组成一个缓存资源池601。同一缓存资源池601中的数据块的大小可相同,也可不相同。数据块与本地缓存设备的物理块建立映射关系,即数据块的逻辑地址与本地缓存设备的物理块的物理地址建立映射关系,数据块中存储的数据实际要存储到该数据块对应的本地缓存设备的物理块中。如图7所示,主机1可以根据主机1上运行的VM 11的需求在缓存资源池601中创建虚拟缓存设备Vcache 611。主机1创建虚拟缓存设备Vcache 611,并且记录Vcache 611的元数据。Vcache 611的元数据 包括Vcache 611的标识、Vcache 611的大小、Vcache 611与VM 11挂载的卷V1的对应关系,还可以包括Vcache 611与VM 11的对应关系等。因此,Vcache 611、缓存资源池601与主机1和主机2的本地缓存设备形成如图8所示的映射关系,Vcache 611的数据块中缓存的数据最终将存储在本地缓存设备1和本地缓存设备2的物理块中,当然本领域技术人员可知,Vcache 611的数据块中缓存的数据最终也可只在存储在本地缓存设备1或本地缓存设备2的物理块中,或者均匀存储在本地缓存设备1和本地缓存设备2的物理块中。本发明实施例中,创建Vcache 611时,并不需要在创建Vcache 611时就分配缓存资源池601中的数据块。而是根据Vcache 611使用状态,为Vcache 611分配数据块,从而提高了本地缓存设备1和本地缓存设备2的利用率,减少了本地缓存设备的缓存空间的浪费。
根据图2至图7所示的实施例,主机创建虚拟缓存设备的流程如图8所示,包括:
801:主机接收虚拟缓存设备Vcache创建请求;
其中,Vcache创建请求携带Vcache的属性,Vcache的属性包括Vcache的大小、Vcache中块的大小等,还可以包括Vcache的性能需求,如每秒钟输入输出(InputOutput per Second,IOPS),Vcache的写模式(如Write back或者Write Through)等。Vcache的属性,还可以包括重复数据删除功能、特定的IO淘汰算法需求等。关于Vcache属性包含的数据块块的大小、写模式以及重复数据删除功能,可参见前面实施例描述。同时,此处描述的Vcache的属性包括的其他信息也可应用于前面实施例。
802:主机根据Vcache创建请求携带的Vcache属性创建Vcache,而不为Vcache从本地缓存设备分配数据块。
主机根据Vcache属性创建Vcache,并记录Vcache的元数据。其中, 元数据包括Vcache与主机运行的虚拟机挂载的卷的对应关系(通过记录Vcache的标识与卷的标识实现)、Vcache的标识、Vcache的大小等。创建Vcache后,还包括记录Vcache与虚拟机的对应关系,具体实现可通过记录Vcache标识与虚拟机标识实现。在Vcache没有缓存数据之前,不为Vcache从本地缓存设备中分配数据块。本发明实施例提供的虚拟缓存创建方法,提高了虚拟缓存创建的灵活性,可根据需要设定虚拟缓存的属性,同时在创建虚拟缓存而没有实际缓存数据之前,不需要分配数据块,提高了虚拟缓存的利用率,减少本地缓存设备的缓存空间的浪费。
在图2至图7所示的实施例场景下,通常需要虚拟化管理平台来实现虚拟机的管理,具体地,包括指令主机创建VM,VM在不同主机之间迁移、VM资源分配等。虚拟化管理平台通常由运行虚拟化管理软件的服务器来实现。
在图2至图5所示的场景中包括不同主机上运行的VM共同运行分布式应用,因此,需要具有相同属性的Vcache。一种实施方式,运行这些VM的主机分别创建相同属性的Vcache为运行分布式应用的VM提供缓存。具体实现方式可参考前面实施例描述,在此不再赘述。另一种实现方式,可创建一个Vcache为这些VM提供缓存,具体实现方式可参考前面实施例关于一个为多个VM提供缓存的描述,在此不再赘述。
如图9所示,为本发明另一实施场景。主机集群中包括主机1、主机2至主机N,主机之间相互通信,其中N为整数。主机,也称为服务器或者节点。每台主机的硬件中包含本地缓存设备。本发明实施例中,主机的硬件中包含本地缓存设备是指本地缓存设备内置于主机或者本地缓存设备与主机连接,以下称为主机的本地缓存设备。而主机需要的永久存储设备也可位于主机外部或内置于主机,对此本发明实施 例不作限定。本地缓存设备可以是SSD、PCIe闪存卡或其他设备作为缓存设备,本发明实施例对此不作限定。图9所示的实施例中,主机的硬件还包含CPU,本领域技术人员可知,主机除图9中所列的硬件设备外,还包括其他硬件,如主存储器,在此不再列举。在图9所示的实施场景中,为主机运行的应用创建Vcache,建立应用与Vcache的对应关系(应用的标识与该虚拟缓存设备的标识的对应关系)或应用挂载的卷与Vcache的对应关系(应用挂载的卷的标识与该Vcache的标识的对应关系),应用访问Vcache的方式可参考图2-8所示的VM访问Vcache的方式,在此不再赘述。
根据图2-9所示的实施方式,如图10所示,在主机集群中缓存管理方法中,步骤1001:目标主机(如图2-9中的主机1)的CPU接收运行在目标主机上的应用发送的数据请求,具体地可以为写数据请求或读取数据请求。步骤1002:目标主机的CPU根据数据请求确定该应用的虚拟缓存,具体地,目标主机保存该应用的标识与该虚拟缓存设备的标该应用的标识与该虚拟缓存设备的标识的对应关系识的对应关系(如在虚拟缓存的元数据或在目标主机特定区域中记录),目标主机的CPU根据该应用的标识与该虚拟缓存设备的标识的对应关系确定该虚拟缓存设备,或者目标主机存储有该应用挂载的卷的标识与该虚拟缓存设备的标识的对应关系(如在虚拟缓存的元数据或在目标主机特定区域中记录该应用挂载的卷的标识与该虚拟缓存设备的标识的对应关系),则目标主机的CPU根据该应用挂载的卷的标识与该虚拟缓存设备的标识对应关系确定该虚拟缓存设备。步骤1003:目标主机的CPU根据该虚拟缓存设备的属性从缓存资源池(如301a)的多个数据块中分配目标数据块以缓存该数据请求操作的数据。当数据请求为写数据请求时,目标主机的CPU根据该虚拟缓存设备的属性从该缓存资源池的多个数据块中分配目标数据块以缓存写数据请求携带的 数据。当数据请求为读取数据请求时,目标主机的CPU从该应用挂载的卷中读取待读取的数据。目标主机的CPU根据该虚拟缓存设备的属性从该缓存资源池的多个数据块中分配目标数据块以缓存该取待读取的数据。步骤1004:目标主机的CPU建立目标数据块与虚拟缓存设备的对应关系。本发明实施例提供的虚拟缓存设备管理方法,可根据应用的数据请求动态分配数据块,提高了虚拟缓存设备的利用率,减少了虚拟缓存设备的缓存空间的浪费。
本发明实施例中,为主机上的应用(包括虚拟机、虚拟机中的应用或主机上的直接运行的应用)分配Vcache,应用在进行数据访问时访问缓存的具体实现,可以参考缓存访问原理,本发明在此不再赘述。
本发明实施例中,Vcache的属性信息在Vcache创建后,可以记录在Vcache的元数据中,则本发明实施例中,根据Vcache的属性与根据Vcache的元数据的表述具有相同的含义,例如CPU根据所述Vcache的属性从缓存资源池的多个数据块中分配目标数据块以缓存数据请求所操作的数据与CPU根据所述Vcache的元数据从缓存资源池的多个数据块中分配目标数据块以缓存数据请求所操作的数据具有相同的含义,只是表述的不同。本发明实施例中,写数据请求和读取数据请求统称为数据请求,写数据请求携带的数据和读取数据请求待读取的数据统称为数据操作请求所操作的数据。写数据请求携带的数据也称为待写入数据或写数据请求中的数据。
如图11所示,本发明实施例提供了一种运行应用的目标主机110,应用于主机集群,所述目标主机110包括本地缓存设备,所述主机集群包括所述目标主机110在内的一台或多台主机的本地缓存设备组成的缓存资源池,所述缓存资源池包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块;所述目标主机110还包括接收单元1101、确定单元1102、分配单元1103和建立单元1104。其中,接收 单元1101,用于接收应用发送的数据请求;确定单元1102,用于根据所述数据请求确定所述应用的虚拟缓存设备;分配单元1103,用于根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据;建立单元1104,用于建立所述目标数据块与所述虚拟缓存设备的对应关系。本发明实施例提供的虚拟缓存设备管理方法,可根据应用的数据请求动态分配数据块,提高了虚拟缓存设备的利用率,减少了虚拟缓存设备的缓存空间的浪费。
可选的,在图11所示的目标主机110中,还包括存储单元,用于存储所述应用的标识与所述虚拟缓存设备的标识的对应关系,所述确定单元1102具体用于:根据所述应用的标识与所述虚拟缓存设备的标识的对应关系确定所述虚拟缓存设备。
可选的,在图11所示的目标主机110中,还包括存储单元,用于存储所述应用挂载的卷的标识与所述虚拟缓存设备的标识的对应关系,所述确定单元1102具体用于:根据所述应用挂载的卷的标识与所述虚拟缓存设备的标识对应关系确定所述虚拟缓存设备。
可选的,在图11所示的目标主机110中,所述分配单元1103,具体用于当所述数据请求为写数据请求时,根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述写数据请求携带的数据。
可选的,在图11所示的目标主机110中,所述分配单元1103,具体用于当所述数据请求为读取数据请求时,从所述应用挂载的卷中读取待读取的数据;根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述待读取的数据。
可选的,在图11所示的目标主机110中,建立单元1104,还用于建立所述数据请求携带的卷的地块与所述目标数据块的逻辑地址的 映射关系,以用于表示虚拟缓存设备中缓存了所述数据请求所操作的数据。
如图11所示的目标主机110,一种实现方式为目标主机110安装有上述单元,上述单元可被加载到目标主机110的主存储器中,由目标主机110的CPU执行主存储器中的指令,实现本发明对应的实施例中的功能;另一种实现,目标主机110中包含的单元可以由硬件来实现,或者由软件与硬件组合实现。上述单元也称为结构单元。
本领域技术人员可知,上述各本发明实施例中,无论是VM,还是VM中运行特定应用,或者是图9所示的主机中的应用,实际上均是运行在主机上的一种应用。本发明实施例在图2-图7的所示的实施例中,虚拟化管理平台指令主机为VM或者特定应用创建Vcache。各主机上运行第一软件组件将本地缓存设备组成资源池,或将几个台主机上的本地缓存设备组成资源池。主机上运行第二软件组件,为主机上的应用提供Vcache,具体过程如前面实施例所述。也就是主机的CPU执行主存储器中的计算机指令以实现前面实施例中描述的技术方案。因此,本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品以实现本发明实施例。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上 分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

Claims (15)

  1. 一种主机集群中缓存管理方法,其特征在于,所述主机集群包括目标主机在内的一台或多台主机的本地缓存设备组成的缓存资源池,所述缓存资源池包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块,所述目标主机运行有应用;所述方法包括:
    所述目标主机的中央处理单元CPU接收所述应用发送的数据请求;
    所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备;
    所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据;
    所述目标主机的CPU建立所述目标数据块与所述虚拟缓存设备的对应关系。
  2. 根据权利要求1所述的方法,其特征在于,所述目标主机存储有所述应用的标识与所述虚拟缓存设备的标识的对应关系,所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备具体包括:所述目标主机的CPU根据所述应用的标识与所述虚拟缓存设备的标识的对应关系确定所述虚拟缓存设备。
  3. 根据权利要求1所述的方法,其特征在于,所述目标主机存储有所述应用挂载的卷的标识与所述虚拟缓存设备的标识的对应关系,所述目标主机的CPU根据所述数据请求确定所述应用的虚拟缓存设备具体包括:所述目标主机的CPU根据所述应用挂载的卷的标识与所述虚拟缓存设备的标识对应关系确定所述虚拟缓存设备。
  4. 根据权利要求1所述的方法,其特征在于,当所述数据请求为 写数据请求时,所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据具体为:所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述写数据请求携带的数据。
  5. 根据权利要求1所述的方法,其特征在于,当所述数据请求为读取数据请求时,所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据具体为:所述目标主机的CPU从所述应用挂载的卷中读取待读取的数据;所述目标主机的CPU根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述取待读取的数据。
  6. 一种运行应用的目标主机,应用于主机集群,其特征在于,所述目标主机包括中央处理单元CPU和本地缓存设备,所述CPU和所述本地缓存设备通信,所述主机集群包括所述目标主机在内的一台或多台主机的本地缓存设备组成的缓存资源池,所述缓存资源池包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块;所述目标主机的CPU用于执行如下步骤:
    接收应用发送的数据请求;
    根据所述数据请求确定所述应用的虚拟缓存设备;
    根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据;
    建立所述目标数据块与所述虚拟缓存设备的对应关系。
  7. 根据权利要求6所述的目标主机,其特征在于,所述目标主机存储有所述应用的标识与所述虚拟缓存设备的标识的对应关系,根据所述数据请求确定所述应用的虚拟缓存设备具体包括:根据所述应用 的标识与所述虚拟缓存设备的标识的对应关系确定所述虚拟缓存设备。
  8. 根据权利要求6所述的目标主机,其特征在于,所述目标主机存储有所述应用挂载的卷的标识与所述虚拟缓存设备的标识的对应关系,根据所述数据请求确定所述应用的虚拟缓存设备具体包括:根据所述应用挂载的卷的标识与所述虚拟缓存设备的标识对应关系确定所述虚拟缓存设备。
  9. 根据权利要求6所述的目标主机,其特征在于,当所述数据请求为写数据请求时,根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述数据请求所操作的数据具体为,根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述写数据请求携带的数据。
  10. 根据权利要求6所述的目标主机,其特征在于,当所述数据请求为读取数据请求时,根据所述虚拟缓存设备的属性从所述缓存资源池中分配数据块以缓存所述数据请求操作的数据具体为,从所述应用挂载的卷中读取待读取的数据;根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述待读取的数据。
  11. 一种运行应用的目标主机,应用于主机集群,其特征在于,所述目标主机包括本地缓存设备,所述主机集群包括所述目标主机在内的一台或多台主机的本地缓存设备组成的缓存资源池,所述缓存资源池包含多个数据块,每一个数据块映射到所述本地缓存设备的一个物理块;所述目标主机还包括:
    接收单元,用于接收应用发送的数据请求;
    确定单元,用于根据所述数据请求确定所述应用的虚拟缓存设备;
    分配单元,用于根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配目标数据块以缓存所述数据请求所操作的数据;
    建立单元,用于建立所述目标数据块与所述虚拟缓存设备的对应关系。
  12. 根据权利要求11所述的目标主机,其特征在于,还包括存储单元,用于存储所述应用的标识与所述虚拟缓存设备的标识的对应关系,所述确定单元具体用于:根据所述应用的标识与所述虚拟缓存设备的标识的对应关系确定所述虚拟缓存设备。
  13. 根据权利要求11所述的目标主机,其特征在于,还包括存储单元,用于存储所述应用挂载的卷的标识与所述虚拟缓存设备的标识的对应关系,所述确定单元具体用于:根据所述应用挂载的卷的标识与所述虚拟缓存设备的标识对应关系确定所述虚拟缓存设备。
  14. 根据权利要求11所述的目标主机,其特征在于,所述分配单元,具体用于当所述数据请求为写数据请求时,根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述写数据请求携带的数据。
  15. 根据权利要求11所述的目标主机,其特征在于,所述分配单元,具体用于当所述数据请求为读取数据请求时,从所述应用挂载的卷中读取待读取的数据;根据所述虚拟缓存设备的属性从所述缓存资源池的所述多个数据块中分配所述目标数据块以缓存所述待读取的数据。
CN201580002565.6A 2015-12-31 2015-12-31 一种主机集群中缓存管理方法及主机 Pending CN107851062A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/100190 WO2017113329A1 (zh) 2015-12-31 2015-12-31 一种主机集群中缓存管理方法及主机

Publications (1)

Publication Number Publication Date
CN107851062A true CN107851062A (zh) 2018-03-27

Family

ID=59224324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580002565.6A Pending CN107851062A (zh) 2015-12-31 2015-12-31 一种主机集群中缓存管理方法及主机

Country Status (2)

Country Link
CN (1) CN107851062A (zh)
WO (1) WO2017113329A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827699A (zh) * 2023-12-27 2024-04-05 中电云计算技术有限公司 并行读cache持久化方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN102880557A (zh) * 2012-09-13 2013-01-16 浙江金大科技有限公司 一种异构数据源的多级分布式高速缓存
US8478931B1 (en) * 2008-07-17 2013-07-02 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
CN103503414A (zh) * 2012-12-31 2014-01-08 华为技术有限公司 一种计算存储融合的集群系统
CN103635969A (zh) * 2011-05-31 2014-03-12 美光科技公司 包含存储器系统控制器的设备和相关方法
CN103823709A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
CN104903872A (zh) * 2012-08-31 2015-09-09 才智知识产权控股公司(2) 用于自适应持久化的系统、方法和接口
CN105007328A (zh) * 2015-07-30 2015-10-28 山东超越数控电子有限公司 一种基于一致性hash的网络cache设计方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478931B1 (en) * 2008-07-17 2013-07-02 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN103635969A (zh) * 2011-05-31 2014-03-12 美光科技公司 包含存储器系统控制器的设备和相关方法
CN104903872A (zh) * 2012-08-31 2015-09-09 才智知识产权控股公司(2) 用于自适应持久化的系统、方法和接口
CN102880557A (zh) * 2012-09-13 2013-01-16 浙江金大科技有限公司 一种异构数据源的多级分布式高速缓存
CN103503414A (zh) * 2012-12-31 2014-01-08 华为技术有限公司 一种计算存储融合的集群系统
CN103823709A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
CN105007328A (zh) * 2015-07-30 2015-10-28 山东超越数控电子有限公司 一种基于一致性hash的网络cache设计方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827699A (zh) * 2023-12-27 2024-04-05 中电云计算技术有限公司 并行读cache持久化方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2017113329A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
US9760497B2 (en) Hierarchy memory management
US10496613B2 (en) Method for processing input/output request, host, server, and virtual machine
US11656775B2 (en) Virtualizing isolation areas of solid-state storage media
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
TWI625674B (zh) 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法
US9582198B2 (en) Compressed block map of densely-populated data structures
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
US9471239B2 (en) Memory power management and data consolidation
JP2014021972A (ja) 複数の仮想マシンとして動作する複数のシステムによって共有されるストレージ・キャッシングでの柔軟性を改善するための方法および構造
CN115413338A (zh) 在计算环境中提供加速器与存储装置之间的直接数据访问
WO2017201984A1 (zh) 一种数据处理的方法、相关设备及存储系统
KR20170085951A (ko) 버저닝 저장 장치 및 방법
US20140082275A1 (en) Server, host and method for reading base image through storage area network
TWI785320B (zh) 裝置內標記資料移動系統、資訊處置系統及用於提供裝置內標記資料移動之方法
CN111367472A (zh) 虚拟化方法和装置
CN107851062A (zh) 一种主机集群中缓存管理方法及主机
US10936219B2 (en) Controller-based inter-device notational data movement system
JP2021536643A (ja) ハイブリッドメモリシステムインタフェース
US11281612B2 (en) Switch-based inter-device notational data movement system
US11422963B2 (en) System and method to handle uncompressible data with a compression accelerator
US11163475B2 (en) Block input/output (I/O) accesses in the presence of a storage class memory
WO2022222977A1 (zh) 用于运行云业务实例的物理服务器的内存管理方法和装置
US20240086103A1 (en) Method and system to process data delete in virtualized computing environment
CN113918283A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180327