CN103858111B - 一种实现聚合虚拟化中内存共享的方法、设备和*** - Google Patents

一种实现聚合虚拟化中内存共享的方法、设备和*** Download PDF

Info

Publication number
CN103858111B
CN103858111B CN201380001624.9A CN201380001624A CN103858111B CN 103858111 B CN103858111 B CN 103858111B CN 201380001624 A CN201380001624 A CN 201380001624A CN 103858111 B CN103858111 B CN 103858111B
Authority
CN
China
Prior art keywords
memory
cache
host
processor
access request
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
CN201380001624.9A
Other languages
English (en)
Other versions
CN103858111A (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.)
XFusion Digital 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 CN103858111A publication Critical patent/CN103858111A/zh
Application granted granted Critical
Publication of CN103858111B publication Critical patent/CN103858111B/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
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种聚合虚拟化中内存共享的方法,包括:缓存一致性处理器接收主机的虚拟机管理器发送的内存处理命令;若该内存处理命令为缓存状态更新信息,该缓存一致性处理器根据该缓存状态更新信息对本地的缓存一致性目录进行更新;或者,若该内存处理命令为该主机上的虚拟机的内存访问请求,该缓存一致性处理器进行缓存一致性处理,访问该内存访问请求中的内存地址信息对应的内存。通过主机的虚拟机管理器将内存处理命令发送给缓存一致性处理器,由缓存一致性处理器进行缓存一致性处理,从而提升***处理性能,缩短内存访问时间。本发明实施例还公开了一种聚合虚拟化中内存共享的设备和***。

Description

一种实现聚合虚拟化中内存共享的方法、设备和***
技术领域
本发明实施例涉及计算机领域,尤其涉及实现聚合虚拟化中内存共享的方法、设备和***。
背景技术
目前,聚合虚拟化技术普遍应用于大型服务器的应用。多***立的服务器通过物理连接互连,运用聚合虚拟化技术,使多台服务器对外呈现为一台服务器。使用聚合虚拟化技术后,可以使多台服务器的中央处理器(CentralProcessingUnit,简称CPU)、内存(Memory,简称Mem)、输出输出(InputOutput,简称IO)设备等资源形成资源池,统一对外呈现,用于做高性能计算以及云计算基础设施等。
在虚拟化应用场景下,每个服务器上都会运行虚拟机管理器(Hypervisor)软件,Hypervisor是虚拟化的基础软件。Domain0为Hypervisor之上的一个特殊虚拟机(VirtualMachine,简称VM),该虚拟机用来完成对各个虚拟机的交互以及一些外设模拟、外设访问等功能。在聚合虚拟化技术方案中,在多台服务器上安装有无限带宽(Infiniband,简称IB)卡或者以太网卡,通过Infiniband交换机或者以太网交换机使得这些服务器互连,同时各服务器运行的Hypervisor中包括聚合虚拟化软件,聚合虚拟化软件通过软件本身实现缓存一致性(CacheCoherent,简称CC)处理,并在完成CC处理后,通过Infiniband交换机或者以太网交换机访问其他服务器上的内存。从而实现各服务器在聚合虚拟化中的内存共享,通过聚合虚拟化软件实现了多个服务器对外呈现一个服务器的内存聚合。
现有聚合虚拟化方案中,使用聚合虚拟化软件进行CC事务处理,解决内存共享带来的缓存一致性冲突,CC事务处理会占用较多处理器资源。如果***规模较大,CC事务处理将成为***性能瓶颈。聚合虚拟化单次的内存互访操作延时约在100微秒(us)级别,甚至在某些时候会是毫秒(ms)级别的,而其中聚合虚拟化软件进行CC处理占用了其中绝大部分时间。所以,现有的聚合虚拟化方案中内存共享的方法导致***性能下降。
发明内容
有鉴于此,本发明实施例提供了一种实现聚合虚拟化中内存共享的方法、设备和***,能够提升***处理性能,从而缩短内存访问时间。
第一方面,本发明实施例提供了一种聚合虚拟化中内存共享的方法,包括:
缓存一致性处理器接收主机的虚拟机管理器发送的内存处理命令;
若所述内存处理命令为缓存状态更新信息,所述缓存一致性处理器根据所述缓存状态更新信息对本地的缓存一致性目录进行更新,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息;
或者,所述内存处理命令为所述主机上的虚拟机的内存访问请求,所述缓存一致性处理器进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存。
在第一方面的第一种可能的实现方式中,所述缓存一致性处理器根据所述缓存状态更新信息对本地的缓存一致性目录进行更新,具体为:
所述缓存一致性处理器根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录;
根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息;
根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述缓存一致性处理器进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
若所述内存地址信息对应的内存是所述主机上的内存,所述缓存一致性处理器进行缓存一致性处理,对所述主机的内存进行访问;
或者所述内存地址信息对应的内存是所述主机以外的其他主机上的内存,则所述缓存一致性处理器进行缓存一致性处理,通过交换网络访问所述内存地址信息对应的所述其他主机上的内存。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述缓存一致性处理器通过交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述缓存一致性处理器通过所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,访问所述内存地址信息对应的所述其他主机上的内存。
结合第一方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中,还包括:
若所述内存访问请求为读内存指令,所述缓存一致性处理器将内存访问结果发送给所述主机的虚拟机管理器。
结合第一方面或第一方面的第一种至第四种任一可能的实现方式,在第五种可能的实现方式中,所述缓存一致性处理器接收主机的虚拟机管理器发送的内存处理命令之前,还包括:
所述主机的虚拟机管理器获得所述虚拟机的所述内存访问请求;
所述主机的虚拟机管理器根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述主机上的内存,如果是所述主机上的内存,则根据所述内存访问请求访问所述主机上的内存,并将所述缓存状态更新信息发送给所述缓存一致性处理器;如果不是所述主机上的内存,则将所述内存访问请求发送给所述缓存一致性处理器。
第二方面,本发明实施例提供了一种聚合虚拟化中内存共享的方法,包括:
主机的虚拟机管理器获得虚拟机的内存访问请求;
所述主机的虚拟机管理器根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述主机上的内存,如果是所述主机上的内存,则根据所述内存访问请求访问所述主机上的内存,并在所述内存访问请求为内存写指令时,发送缓存状态更新信息给缓存一致性处理器,以便所述缓存一致性处理器更新所述缓存一致性处理器本地的缓存一致性目录中进行了写操作的内存块对应的缓存状态信息;如果所述内存访问请求为读指令,则将所述内存访问请求发送给所述缓存一致性处理器,以便所述缓存一致性处理器进行缓存一致性处理并访问所述内存访问请求中的内存地址信息对应的内存;
或者,所述主机的虚拟机管理器将所述内存访问请求发送给所述缓存一致性处理器,以便所述缓存一致性处理器进行缓存一致性处理并访问所述内存访问请求中的内存地址信息对应的内存。
在第二方面的第一种可能的实现方式中,如果是所述内存访问请求为读指令,所述主机的虚拟机管理器将所述内存访问请求发送给所述缓存一致性处理器之后,还包括:
所述主机的虚拟机管理器接收所述缓存一致性处理器返回的内存访问结果。
第三方面,本发明实施例提供了一种缓存一致性处理器,包括:
输入输出单元,用于接收主机的虚拟机管理器发送的内存处理命令;
缓存一致性处理单元,若所述内存处理命令为缓存状态更新信息,用于根据所述缓存状态更新信息,发送缓存一致性目录更新指令给目录管理单元,或者,所述内存处理命令为所述主机上的虚拟机的内存访问请求,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,其中,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息;
所述目录管理单元,用于根据所述缓存一致性目录更新指令更新本地的缓存一致性目录。
在第三方面的第一种可能的实现方式中,所述目录管理单元,用于根据所述缓存一致性目录更新指令更新本地的缓存一致性目录,具体为:
所述目录管理单元,用于根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录,根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息,并根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述缓存一致性处理单元,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
所述缓存一致性处理单元,若所述内存地址信息对应的内存是所述主机上的内存,用于进行缓存一致性处理,对所述主机的内存进行访问,若所述内存地址信息对应的内存是所述主机以外的其他主机上的内存,则所述缓存一致性处理单元用于进行缓存一致性处理,通过网络接口单元经交换网络访问所述内存地址信息对应的所述其他主机上的内存;
则,所述缓存一致性处理器,还包括:
所述网络接口单元,用于提供所述缓存一致性处理单元与所述其他主机间的通信,将所述缓存一致性处理单元的信息通过所述交换网络发送给所述其他主机,将从所述交换网络接收的所述其他主机的信息传递给所述缓存一致性处理单元。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述缓存一致性处理单元用于进行缓存一致性处理,通过网络接口单元经交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述缓存一致性处理单元,用于进行缓存一致性处理,通过所述网络接口单元经所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,访问所述内存地址信息对应的所述其他主机上的内存。
结合第三方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中:
所述缓存一致性处理单元,还用于,若所述内存访问请求为读内存指令,将内存访问结果通过所述输入输出单元发送给所述主机的虚拟机管理器。
结合第三方面的第二种至第四种任一可能的实现方式,在第五种可能的实现方式中,所述缓存一致性处理单元,包括:
预处理子模块,用于与所述输入输出单元、本地代理子模块、远端代理子模块连接,用于负责所述输入输出单元与所述本地代理子模块、所述远端代理子模块之间的报文传递;
所述本地代理子模块,用于处理对所述主机的内存访问请求,进行缓存一致性处理,以及发送所述缓存一致性目录更新指令给所述目录管理单元;
所述远端代理子模块,用于处理对所述主机以外的其他主机的内存访问请求,进行缓存一致性处理,通过所述网络接口单元经所述交换网络访问所述其他主机的内存。
第四方面,本发明实施例还提供了一种计算机***,包括:至少两个主机,至少两个缓存一致性处理器和一个交换网络,其中,所述至少两个主机中的每个主机分别与所述至少两个缓存一致性处理器中的一个缓存一致性处理器相连,所述至少两个缓存一致性处理器通过所述交换网络相连;
所述至少两个主机中的第一主机,用于发送内存处理命令给相连的所述至少两个缓存一致性处理器中的第一缓存一致性处理器;
所述第一缓存一致性处理器,若所述内存处理命令为缓存状态更新信息,所述第一缓存一致性处理器用于根据所述缓存状态更新信息更新本地的缓存一致性目录,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息,或者,所述内存处理命令为所述第一主机上的虚拟机的内存访问请求,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存。
在第四方面的第一种可能的实现方式中,所述第一缓存一致性处理器,用于根据所述缓存状态更新信息更新本地的缓存一致性目录,具体为:
所述第一缓存一致性处理器,用于根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录,根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息,并根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的所述至少两个主机中所述第一主机以外的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一缓存一致性处理器,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
所述第一缓存一致性处理器,若所述内存地址信息对应的内存是所述第一主机上的内存,用于进行缓存一致性处理,对所述第一主机的内存进行访问,或者,所述内存地址信息对应的内存是所述至少两个主机中所述第一主机以外的其他主机上的内存,用于进行缓存一致性处理,通过所述交换网络访问所述内存地址信息对应的所述其他主机上的内存。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一缓存一致性处理器,用于进行缓存一致性处理,通过所述交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述第一缓存一致性处理器,用于进行缓存一致性处理,通过所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,访问所述内存地址信息对应的所述其他主机上的内存。
结合第四方面的第二种或第三种可能的实现方式,在第四种可能的实现方式中:
所述第一缓存一致性处理器,若所述内存访问请求为读内存指令,还用于将内存访问结果发送给所述第一主机的虚拟机管理器。
结合第四方面或第四方面的第一种至第四种任一可能的实现方式,在第五种可能的实现方式中:
所述第一主机的虚拟机管理器,还用于获得所述虚拟机的所述内存访问请求,根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述第一主机上的内存,如果是所述第一主机上的内存,则根据所述内存访问请求对所述第一主机上的内存进行访问,并发送所述缓存状态更新信息给所述第一缓存一致性处理器;如果不是所述第一主机上的内存,则将所述内存访问请求发送给所述第一缓存一致性处理器。
通过上述方案,本发明实施例提供的聚合虚拟化中内存共享的方法、设备和***,通过主机的虚拟机管理器将内存处理命令发送给缓存一致性处理器,由缓存一致性处理器进行缓存一致性处理,避免了聚合虚拟化中在主机上通过软件实现CC处理而造成的占用较多处理器资源,导致***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中聚合虚拟化应用的***架构图;
图2为本发明实施例1的聚合虚拟化中内存共享的方法流程图;
图3为本发明实施例2的聚合虚拟化中内存共享的方法流程图;
图4为本发明实施例3的聚合虚拟化中内存共享的方法流程图;
图5为本发明实施例4的聚合虚拟化中内存共享的方法流程图;
图6为本发明实施例5的缓存一致性处理器的结构图;
图7为本发明实施例6的缓存一致性处理器的结构图;
图8为本发明实施例7的计算机的***图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例中聚合虚拟化应用的***架构图,如图所示,***中包括:多台主机,每台主机上的处理器能够支持内存访问敏感指令截获,实现捕获对各主机中的共享内存的所有访问,并保障内存数据的正确性。每个主机的处理器通过高速***组件互连(PeripheralComponentInterconnectExpress,简称PCIE)接口、快速通道互联(QuickPathInterconnect,简称QPI)接口或超传输(HyperTransport,简称HT)接口等与一个缓存一致性处理器(简称CC处理器)连接;每个主机有各自独立的基本输入输出***(BasicInputOutputSystem,简称BIOS),运行聚合虚拟化软件。在主机上运行的聚合虚拟化软件实现聚合虚拟化,使多个主机对外呈现一个主机,从而在聚合虚拟化的设备资源池上建立并运行大量的虚拟机。本发明实施例中应用的***架构中的主机具体可以为普通的计算机、移动终端、工作站或服务器、专用服务器等,如X86处理器,本发明不作具体限定。
***还包括多个CC处理器,CC处理器能够进行CC处理,每个CC处理器的一端与一个主机的处理器连接,具体可以通过PCIE接口、QPI接口或HT接口等连接,另一端连接交换网络。优选的,CC处理器是独立于主机的物理实体。
交换网络将多个CC处理器互连,使得各主机能够通过CC处理器进行通信,交换网络具体可以为PCIE交换机、Infiniband交换机或者以太网交换机,通过PCIE接口、Infiniband接口或者以太网接口与CC处理器连接。
图2为本发明实施例1的一种聚合虚拟化中内存共享的方法流程图。如图所示,本方法为:
步骤101,缓存一致性处理器接收主机的虚拟机管理器发送的内存处理命令。
聚合虚拟化将各主机上独立的内存对虚拟机呈现为一片连续的内存地址,当主机上的虚拟机进行内存访问时,主机上的虚拟机管理器(Hypervisor)会截获到虚拟机的内存访问事件,即获得虚拟机的内存访问请求,内存访问请求中包含要访问的内存地址信息,可以为内存读指令或内存写指令。优选的,虚拟机管理器中的分布式共享内存(DistributedSharedMemory,简称DSM)接口调用Domain0中的PCIE到内存(PCIEtoMEM)的驱动,根据获得的内存访问请求通过PCIE端口向缓存一致性处理器发送内存处理命令,缓存一致性处理器接收到内存处理命令。这里的PCIE端口指采用PCIE协议进行通信的端口,当然,虚拟机管理器也可能采用PCIE端口以外的其他通信协议端口向缓存一致性处理器发送内存处理命令。PCIE协议作为一种较为通用的国际标准,采用PCIE端口可以避免采用私有协议带来的不兼容升级风险和成本,为便于描述,本发明实施例中采用PCIE端口进行描述,并不对本发明的保护范围造成限制。
优选的,主机的虚拟机管理器获得虚拟机的内存访问请求,可以先根据内存访问请求中的内存地址信息判断该内存访问请求需要访问的内存是否为本主机上的内存,如果是,则根据内存访问请求对本机上的内存进行访问:当为内存写指令时,虚拟机管理器将需要写入的内容写到相应的内存地址,并将缓存(Cache)状态更新信息通过PCIE端口发送给缓存一致性处理器,其中,缓存状态更新信息中包括内存块地址信息和Cache状态信息,Cache状态信息的值表明了Cache写入数据后,Cache是什么状态,可以为:独占、共享、无效等Cache状态中的一种;当为内存读指令时,虚拟机管理器查询缓存一致性处理器中的缓存一致性目录,根据CC目录中相应内存的内存块的Cache状态信息从内存中读取要访问的内容。如果需要访问的内存不是本主机上的内存,则将虚拟机的内存访问请求发送给缓存一致性处理器。也可以按照如下处理,主机的虚拟机管理器获得虚拟机的内存访问请求后,不进行判断,直接通过PCIE端口将虚拟机的内存访问请求发送给缓存一致性处理器。可见,缓存一致性处理器接收到的主机上的虚拟机管理器发送的内存处理命令,可能为虚拟机的内存访问请求,也可能是主机的虚拟机管理器进行内存访问后发送的Cache状态更新信息。
步骤102,缓存一致性处理器根据接收到的内存处理命令进行缓存一致性处理,具体为:
若内存处理命令为主机的虚拟机管理器发送的Cache状态更新信息,缓存一致性处理器根据Cache状态更新信息对本地的缓存一致性目录进行更新。缓存一致性目录中记录了整个***中共享内存的Cache状态,记录着内存的内存块的Cache状态信息和当前拷贝信息,其中,Cache状态信息表示本地的Cache的状态,例如独占、共享、无效等状态。当前拷贝信息指明哪些主机保存有该内存块的拷贝,这些主机对应的缓存一致性处理器的本地的缓存一致性目录中会有该内存块的信息。每个缓存一致性处理器维护自己本地的缓存一致性目录,当内存状态发生改变时,缓存一致性目录的Cache状态信息也需要进行刷新:在对应的主机执行了内存写操作以后,缓存一致性处理器需要更新其本地的缓存一致性目录中进行了写操作的内存的内存块的Cache状态信息,并根据缓存一致性目录中该内存的内存块的当前拷贝信息通知保存了该内存的内存块的拷贝的其他主机对应的CC处理器也进行各自本地的缓存一致性目录的刷新。这里,缓存一致性处理器根据接收到的Cache状态更新信息对本地的缓存一致性目录进行更新,具体可以为根据Cache状态更新信息中携带的内存块地址信息(即进行了写操作的内存块的地址信息)和Cache状态信息,更新缓存一致性目录中进行了写操作的内存块的Cache状态信息。首先,缓存一致性处理器根据缓存状态更新信息中的内存块地址信息,确定本地的缓存一致性目录中该内存块地址信息对应的内存块的记录,然后根据缓存状态更新信息中的缓存状态信息更新该内存块的记录中的缓存状态信息,并进一步的,根据该内存块的记录中的当前拷贝信息,确定保存有该内存块的拷贝的其他主机,通知其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
若内存处理命令为主机上的虚拟机的内存访问请求时,缓存一致性处理器进行缓存一致性处理,访问内存访问请求中的内存地址信息对应的内存。此处的内存地址信息对应的内存是指内存处理请求中的内存地址信息对应的内存资源所在的主机上的内存。具体的,若需要访问的内存地址信息对应的内存是本主机上的内存,缓存一致性处理器进行缓存一致性处理,对该主机的内存进行访问:如果内存访问请求是写内存指令,缓存一致性处理器将内容写入本主机的内存,可以由缓存一致性处理器通知Hypervisor将内容写入本机的内存,或者由缓存一致性处理器直接将内容写入本机的内存,并进一步的,缓存一致性处理器会刷新本地的CC目录中对应进行了写操作的内存块的Cache状态信息;如果内存访问请求是读内存指令,缓存一致性处理器根据缓存一致性目录中相应内存的内存块的Cache状态信息通知主机的虚拟机管理器进行内存读取,并由主机的虚拟机管理器将读取的信息发送给发出内存访问请求的虚拟机。若需要访问的内存是其他主机上的内存,则缓存一致性处理器通过交换网络访问内存处理请求的内存地址信息对应的内存所在主机上的内存。为描述方便,可以将内存地址信息对应的内存所在的其他主机称作远端主机,发出内存访问请求的主机称作本地主机。此处的交换网络可以为PCIE交换机、Infiniband交换机或者以太网交换机,本地主机对应的缓存一致性处理器通过交换网络与远端主机对应的缓存一致性处理器进行通信,从而实现对远端主机上的内存的访问。如果内存访问请求是写内存指令,缓存一致性处理器需要刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息,并通知远端主机对应的CC处理器,由其将需要写入的内容写入远端主机的内存;如果内存访问请求是读内存指令,发出内存访问请求的CC处理器通知远端主机对应的CC处理器进行内存访问,从远端主机对应的缓存一致性处理器接收内存访问结果,并发送给发出内存访问请求的本地主机的虚拟机管理器,由虚拟机管理器将读取的信息送给发出内存访问请求的虚拟机,其中,内存访问结果是远端主机相连的对应缓存一致性处理器根据内存访问请求和其本地的CC目录从内存中读取的。CC处理器进行CC处理的进一步技术细节遵循业界通用的CC处理协议,本处不再赘述。
本发明实施例提供的聚合虚拟化中内存共享的方法,通过缓存一致性处理器接收主机的Hypervisor发送的内存处理命令,由缓存一致性处理器根据内存处理命令进行缓存一致性处理,避免了在主机上通过软件实现聚合虚拟化中的CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
图3为本发明实施例2的一种聚合虚拟化中内存共享的方法流程图。如图所示,本方法为:
步骤201,主机的虚拟机管理器获得虚拟机的内存访问请求。
当主机上的虚拟机进行内存访问时,主机上的Hypervisor会截获到虚拟机的内存访问事件,即获得虚拟机的内存访问请求。
步骤202,主机的虚拟机管理器向缓存一致性处理器发送内存处理命令,以便缓存一致性处理器根据接收到的内存处理命令进行缓存一致性处理。
具体的,主机的虚拟机管理器获得虚拟机的内存访问请求,可以先根据内存访问请求中的内存地址信息判断该内存访问请求需要访问的内存是否为本主机上的本地内存:如果是,则根据内存访问请求对本机上的本地内存进行访问,当为内存写指令时,将需要写入的内容写到相应的内存地址,并将缓存状态更新信息发送给缓存一致性处理器,以便所述缓存一致性处理器根据接收到的缓存状态更新信息对本地的缓存一致性目录进行更新,其中,缓存状态更新信息中包括内存块地址信息和Cache状态信息;当为内存读指令时,虚拟机管理器查询缓存一致性处理器中的缓存一致性目录,根据CC目录中相应内存的内存块的Cache状态信息从缓存中读取要访问的内容。如果需要访问的内存不是本主机上的内存,则将虚拟机的内存访问请求发送给缓存一致性处理器,以便缓存一致性处理器进行缓存一致性处理并访问内存访问请求中的内存地址信息对应的内存。也可以如下处理,主机的虚拟机管理器获得虚拟机的内存访问请求,不进行内存地址信息的判断,直接将虚拟机的内存访问请求发送给缓存一致性处理器,以便缓存一致性处理器进行缓存一致性处理并访问内存访问请求中的内存地址信息对应的内存,具体的,缓存一致性处理器进行缓存一致性处理并访问内存访问请求中的内存地址信息对应的内存的方法与实施例1中类似,本处不再赘述。根据前面的描述,主机的虚拟机管理器发送给缓存一致性处理器的内存处理命令,可能为虚拟机的内存访问请求,也可能是主机的虚拟机管理器进行内存访问后的缓存状态信息。
优选的,主机的虚拟机管理器中的DSM接口调用Domain0中的PCIEtoMEM的驱动,根据获得的内存访问请求通过PCIE端口向缓存一致性处理器发送内存处理命令。主机的虚拟机管理器通过PCIE端口与缓存一致性处理器进行通信,采用PCIE端口可以避免采用私有协议带来的不兼容升级风险和成本,当然也可以采用其他通信协议端口。
进一步的,如果内存访问请求是读内存指令,主机的虚拟机管理器接收缓存一致性处理器返回的内存访问结果,发送给发出内存访问请求的虚拟机。
本发明实施例提供的聚合虚拟化中内存共享的方法,通过主机的Hypervisor将内存处理命令发送给缓存一致性处理器,以便由缓存一致性处理器进行CC处理,避免了聚合虚拟化中在主机上通过软件实现CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
图4为本发明实施例3的一种聚合虚拟化中内存共享的方法流程图。如图所示,该方法具体为:
步骤301,主机上的虚拟机发起内存访问事件。聚合虚拟化将各主机上的独立的内存对虚拟机呈现为一片连续的内存地址,主机上的虚拟机需要进行内存访问时,发起内存访问事件。
步骤302,主机上的虚拟机管理器截获内存访问事件。在聚合虚拟化中,为了保证内存数据的正确性,内存访问敏感指令必须能被捕获。Hypervisor截获虚拟机的内存访问事件,即获得虚拟机的内存访问请求。
步骤303,Hypervisor判断内存访问请求是否是访问本主机上的内存。Hypervisor根据内存访问请求中的内存地址信息判断该内存访问请求需要访问的内存是否为本主机上的内存。具体为,Hypervisor中的DSM接口处理获取的内存访问请求,根据内存访问请求中的内存地址信息判断是否是访问本主机上的内存。
步骤304,若是访问本主机上的内存,主机的Hypervisor根据内存访问请求中的内存地址信息对本主机上的内存进行访问。
步骤305,当为内存写指令时,主机的Hypervisor将缓存状态更新信息发送给本地的缓存一致性处理器,缓存状态更新信息中包括内存块地址信息和Cache状态信息,Cache状态信息的值表明写入数据后,Cache是什么状态,可以为:独占、共享、无效等Cache状态中的一种。本步骤具体为,当为内存写指令时,主机的虚拟机管理器对内存进行写入操作,虚拟机管理器中的DSM接口调用Domain0中的PCIEtoMEM的驱动,通过PCIE端口向本地的缓存一致性处理器发送缓存状态更新信息,本地的缓存一致性处理器中负责与主机侧接口的输入输出(InputOutput,简称IO)接口单元接收缓存状态更新信息。本实施例中为便于区分,将发出内存请求命令的主机所对应的缓存一致性处理器称为本地的缓存一致性处理器,将要访问的内存所在的远端主机所对应的缓存一致性处理器称为远端的缓存一致性处理器
步骤306,本地的缓存一致性处理器根据接收的Cache状态更新信息更新自身的缓存一致性目录。具体为,本地的缓存一致性处理器中的本地代理(LocalProxy,简称LP)子模块负责根据接收的主机的Cache状态更新信息中携带的内存块地址信息和Cache状态信息更新本地的CC目录,即,更新本地的缓存一致性目录中记录的进行了写操作的内存的内存块的Cache状态信息,并进一步根据缓存一致性目录中该内存的内存块的当前拷贝信息通知缓存了该内存的内存块的拷贝的其他主机对应的CC处理器也进行各自本地的缓存一致性目录的刷新。具体的,首先,缓存一致性处理器根据缓存状态更新信息中的内存块地址信息,确定本地的缓存一致性目录中该内存块地址信息对应的内存块的记录,然后根据缓存状态更新信息中的缓存状态信息更新该内存块的记录中的缓存状态信息,并进一步的,根据所该存块的记录中的当前拷贝信息,确定保存有该内存块的拷贝的其他主机,通知其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。执行步骤315。
步骤307,若不是访问本主机上的内存,主机的虚拟机管理器中的DSM接口调用Domain0中的PCIEtoMEM的驱动,通过PCIE端口向本地的缓存一致性处理器发送内存访问请求。缓存一致性处理器中负责与主机侧接口的IO接口单元接收内存访问请求。
步骤308,本地的缓存一致性处理器通过交换网络访问远端的缓存一致性处理器。本地的缓存一致性处理器接收内存访问请求后,将需要访问其他主机上内存的内存访问请求交给缓存一致性处理器中的远端代理(RemoteProxy,简称RP)子模块负责处理,RP子模块通过网络接口单元经过交换网络访问远端的缓存一致性处理器。这里的远端的缓存一致性处理器是指负责管理远端主机的CC处理器,该远端主机就是所要访问的内存所在的主机。
步骤309,远端的缓存一致性处理器接收到内存访问请求后,将内存访问请求交给其中的本地代理子模块进行处理。
步骤310,远端的缓存一致性处理器的本地代理子模块判断其本地的CC目录是否命中。远端的缓存一致性处理器的本地代理子模块根据内存访问请求的内存地址查询其本地的CC目录,判断需要访问的内存的内存块的Cache状态是否为可读状态,若为可读状态,即表明本地Cache目录命中,Cache可用,否则为未命中,Cache不可用。
步骤311,若CC目录没有命中,则远端的缓存一致性处理器中的本地代理子模块通过与主机进行接口的IO接口模块请求远端主机进行内存访问。远端的缓存一致性处理器向远端主机发送请求,访问内存访问请求中内存地址的内存:对于读指令,获取内存访问请求中内存地址的内容,对于写指令,将要写入的内容写入主机内存地址。
步骤312,远端的缓存一致性处理器对其本地的CC目录进行更新。远端的缓存一致性处理器对其本地的CC目录中对应进行了内存读操作或写操作的内存的内存块的Cache状态信息进行更新,即将本次内存读写的内容写入Cache,并更新CC目录,以便后续进行内存访问。
步骤313,若CC目录命中,则对于读指令,远端的缓存一致性处理器直接从Cache中读取相应的内存值,获取内存访问结果。如果是写指令,远端的缓存一致性处理器将要写入的值写入到远端主机的内存中,更新本地Cache。
步骤314,对于读指令,远端的缓存一致性处理器将获取的内存访问结果返回给本地的缓存一致性处理器。远端的缓存一致性处理器将读取到的内存的内容通过网络接口单元经过交换网络返回给本地的缓存一致性处理器,本地的缓存一致性处理器进行CC目录中Cache状态的更新。
步骤315,对于读指令,本地的缓存一致性处理器将内存访问结果返回给发起内存访问事件的虚拟机。本地的缓存一致性处理器接收远端的缓存一致性处理器返回的内存访问结果,通过负责与主机接口的IO接口单元将内存访问结果反馈给主机的Domain0,由Domain0处理后反馈给主机的Hypervisor,并最终返回给发起内存访问事件的VM。
本发明实施例提供的聚合虚拟化中内存共享的方法,通过主机的Hypervisor将内存处理命令发送给缓存一致性处理器,并由缓存一致性处理器进行CC处理,避免了聚合虚拟化中在主机上通过软件实现CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
图5为本发明实施例4的一种聚合虚拟化中内存共享的方法流程图。如图所示,该方法具体为:
步骤401~402,具体的实施技术方案与本发明实施例3的步骤301~302对应相同,此处不再赘述。
步骤403,主机的虚拟机管理器中的DSM接口调用Domain0中的PCIEtoMEM的驱动,通过PCIE端口向本地的缓存一致性处理器发送内存访问请求。缓存一致性处理器中负责与主机接口的IO接口单元接收内存访问请求。
步骤404,本地的缓存一致性处理器判断内存访问请求是否是访问本主机上的内存。本地的缓存一致性处理器接收到内存访问请求,根据内存访问请求中的内存地址信息判断是否是访问本主机上的内存。
步骤405,若是访问本主机上的内存,本地的缓存一致性处理器将内存访问请求交给其中的本地代理子模块进行处理。
步骤406,本地的缓存一致性处理器的本地代理子模块判断其本地的CC目录是否命中。本地代理子模块查询其本地的CC目录,根据内存访问请求的内存地址查询本地的CC目录,判断需要访问的内存的内存块的Cache状态是否为可读状态,若为可读状态,即表明本地Cache目录命中,Cache可用,否则为未命中。
步骤407,若CC目录没有命中,则本地的缓存一致性处理器请求本主机进行内存访问。缓存一致性处理器向主机发送请求,访问内存访问请求中内存地址的内存,获取内存访问结果。
步骤408,本地的缓存一致性处理器根据内存访问结果对其本地的CC目录进行更新。本地的缓存一致性处理器将内容写入到主机的内存中,并且刷新本地的CC目录中对应的内存块的Cache状态信息。
步骤409,若CC目录命中,则本地的缓存一致性处理器直接进行缓存访问,对于读指令,获取内存访问结果,对于写指令,将内容写入到主机的内存中,更新原Cache中的内容。
步骤410,若不是访问本主机上的内存,本地的缓存一致性处理器通过交换网络访问远端的缓存一致性处理器。本地的缓存一致性处理器将需要访问其他主机上内存的内存访问请求交给其中的远端代理子模块负责处理,RP子模块通过网络接口单元经过交换网络访问远端的缓存一致性处理器。这里的远端的缓存一致性处理器是指负责管理远端主机的CC处理器,该远端主机就是内存访问请求要访问的内存所在的主机。本实施例中为便于区分,将发出内存请求命令的主机所对应的缓存一致性处理器称为本地的缓存一致性处理器,将需要访问的内存所在的远端主机所对应的缓存一致性处理器称为远端的缓存一致性处理器。
步骤411~417,具体的实施技术方案与本发明实施例3的步骤309~315对应相同,此处不再赘述。
本发明实施例提供的聚合虚拟化中内存共享的方法,通过主机的Hypervisor将内存处理命令发送给缓存一致性处理器,并由缓存一致性处理器进行CC处理,避免了聚合虚拟化中在主机上通过软件实现CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
图6为本发明实施例5提供的缓存一致性处理器的结构图,如图6所示:缓存一致性处理器50,包括输入输出单元(简称IO单元)51和目录管理单元52,缓存一致性处理单元53。其中,
IO单元51,用于接收主机的虚拟机管理器发送的内存处理命令。IO单元提供了缓存一致性处理单元和主机交互的接口,其主要的功能就是完成缓存一致性处理单元和主机(具体可以是主机中的中央处理器)之间的通信。当主机上的虚拟机进行内存访问时,主机上的Hypervisor会截获到虚拟机的内存访问事件,即获得虚拟机的内存访问请求,内存访问请求中包含要访问的内存地址信息,可以为内存读指令或内存写指令。优选的,虚拟机管理器根据获得的内存访问请求通过PCIE端口向缓存一致性处理器中的IO单元发送内存处理命令,IO单元接收到该内存处理命令。这里的PCIE端口指采用PCIE协议进行通信的端口,当然,虚拟机管理器也可能采用PCIE端口以外的其他通信协议端口向IO单元发送内存处理命令,PCIE协议作为一种较为通用的国际标准,IO单元采用PCIE端口可以避免采用私有协议带来的不兼容升级风险和成本,为便于描述,本发明实施例中采用PCIE端口进行描述,并不对本发明的保护范围造成限制。
缓存一致性处理单元53,用于根据IO单元51接收到的内存处理命令进行缓存一致性处理,若接收到的内存处理命令为主机的虚拟机管理器发送的Cache状态更新信息,则缓存一致性处理单元用于根据Cache状态更新信息,发送缓存一致性目录更新指令给目录管理单元52对本地的缓存一致性目录进行更新;若接收到的内存处理命令为主机上的虚拟机的内存访问请求时,缓存一致性处理单元53用于进行缓存一致性处理,访问内存访问请求中的内存地址信息对应的内存,此处的内存地址信息对应的内存是指内存处理请求中的内存地址信息对应的内存资源所在的主机上的内存。
目录管理单元52,用于根据缓存一致性处理单元53的缓存一致性目录更新指令对本地的缓存一致性目录进行更新。缓存一致性目录中记录了整个***中共享内存的Cache状态,记录着内存的内存块的Cache状态信息和当前拷贝信息,其中,Cache状态信息表示本地的Cache的状态,例如独占、共享、无效等状态。当前拷贝信息指明哪些主机保存有该内存块的拷贝,这些主机对应的缓存一致性处理器的本地的缓存一致性目录中会有该内存块的信息。每个缓存一致性处理器的目录管理单元,用于维护着自己本地的缓存一致性目录,当内存状态发生改变时,缓存一致性目录的Cache状态信息也需要进行刷新,例如,在对应的主机执行了内存写操作以后,目录管理单元用于更新其本地的缓存一致性目录中进行了写操作的内存的内存块的Cache状态信息。这里,目录管理单元用于根据缓存一致性目录更新指令中的内存块地址信息和Cache状态信息,更新缓存一致性目录中进行了该内存块的Cache状态信息。具体的,目录管理单元,用于根据内存块地址信息,确定本地的缓存一致性目录中内存块地址信息对应的内存块的记录,根据缓存状态更新信息中的缓存状态信息更新该内存块的记录中的缓存状态信息,并根据该内存块的记录中的当前拷贝信息,确定保存有该内存块的拷贝的其他主机,通知其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
优选的,当内存处理命令为虚拟机的内存访问请求时,缓存一致性处理单元53用于进行缓存一致性处理,访问内存访问请求中的内存地址信息对应的内存,具体为:若需要访问的内存地址信息对应的内存是本主机上的内存,用于进行缓存一致性处理,对本主机的内存进行访问:如果内存访问请求是写内存指令,缓存一致性处理单元,用于将内容写入本主机上的对应内存,可以由缓存一致性处理单元通过IO单元通知Hypervisor将内容写入本机的内存,或者由缓存一致性处理单元通过IO单元直接将内容写入本主机的内存,并进一步的,缓存一致性处理单元,还用于发送缓存一致性目录更新指令通知目录管理单元刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息。目录管理单元,用于根据接收的缓存一致性目录更新指令通知刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息;如果内存访问请求是读内存指令,缓存一致性处理单元用于根据缓存一致性目录中相应内存的内存块的Cache状态信息通过IO单元通知主机的虚拟机管理器进行内存读取,并由主机的虚拟机管理器将读取的信息发送给发出内存访问请求的虚拟机。若需要访问的内存是其他主机上的内存,则缓存一致性处理单元用于进行缓存一致性处理,通过网络接口单元54经交换网络访问内存处理请求的内存地址信息对应的内存所在主机上的内存。此时,缓存一致性处理器50中,还包含网络接口单元54,用于提供缓存一致性处理单元与其他缓存一致性处理器间的通信,将缓存一致性处理单元的信息通过交换网络发送给其他缓存一致性处理器,将从交换网络接收的其他缓存一致性处理器的信息传递给缓存一致性处理单元。此处的交换网络可以为PCIE交换机、Infiniband交换机或者以太网交换机,缓存一致性处理器50是通过交换网络与内存地址信息对应的内存所在主机连接的缓存一致性处理器进行通信,实现对内存地址信息对应的内存所在主机上的内存的访问,具体为,缓存一致性处理单元,用于进行缓存一致性处理,通过所述网络接口单元经所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,访问所述内存地址信息对应的所述其他主机上的内存。为了描述方便,可以将内存地址信息对应的内存所在的其他主机称作远端主机,发出内存访问请求的主机称作本地主机。如果内存访问请求是写内存指令,缓存一致性处理单元需要通知目录管理单元刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息,并通过IO单元通知远端主机对应的CC处理器将需要写入的内容写入远端主机的内存,如果内存访问请求是读内存指令,发出内存访问请求的缓存一致性处理单元还用于通知远端主机对应的CC处理器进行内存访问,并从与远端主机相连的缓存一致性处理器接收内存访问结果,并发送给发出内存访问请求的主机的虚拟机管理器,由虚拟机管理器将读取的信息送给发出内存访问请求的虚拟机,其中,内存访问结果是远端主机相连的缓存一致性处理根据内存访问请求和其本地的CC目录从内存中读取的。CC处理的进一步技术细节遵循业界通用的CC处理协议,本处不再赘述。
进一步的,目录管理单元用于根据接收到的所述缓存一致性目录更新指令更新其本地的缓存一致性目录中进行了写操作的内存的内存块的Cache状态信息,并根据缓存一致性目录中该内存的内存块的当前拷贝信息通知缓存了该内存的内存块的拷贝的其他主机对应的CC处理器也进行各自本地的缓存一致性目录的刷新,具体可以发送消息给缓存一致性处理单元,经网络接口单元发送相关消息给其他CC处理器。
优选的,主机的虚拟机管理器获得虚拟机的内存访问请求,可以先根据内存访问请求中的内存地址信息判断该内存访问请求需要访问的内存是否为本主机上的内存,如果是,则根据内存访问请求对本机上的内存进行访问:当为内存写指令时,虚拟机管理器将需要写入的内容写到相应的内存地址,并将缓存状态更新信息通过PCIE端口发送给缓存一致性处理器中的IO单元,其中,缓存状态更新信息中包括内存块地址信息和Cache状态信息,Cache状态信息的值表明写入数据后,Cache是什么状态,可以为:独占、共享、无效等Cache状态中的一种;当为内存读指令时,虚拟机管理器通过IO单元、缓存一致性处理单元查询缓存一致性处理器中的目录管理单元中的缓存一致性目录,根据CC目录中相应内存的内存块的Cache状态信息从内存中读取要访问的内容。如果需要访问的内存不是本主机上的内存,则将虚拟机的内存访问请求通过IO单元发送给缓存一致性处理单元。也可以如下处理,主机的虚拟机管理器获得虚拟机的内存访问请求后,不进行判断,直接通过PCIE端口将虚拟机的内存访问请求通过IO单元发送给缓存一致性处理器。可见,缓存一致性处理器的IO单元接收到的主机上的虚拟机管理器发送的内存处理命令,可能为虚拟机的内存访问请求,也可能是主机的虚拟机管理器进行内存访问后的Cache状态更新信息。
本发明实施例提供的缓存一致性处理器,接收主机的Hypervisor发送的内存处理命令,根据内存处理命令进行缓存一致性处理,避免了在主机上通过软件实现聚合虚拟化中的CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
图7为本发明实施例6的缓存一致性处理器的结构图。在图6所示的实施例5的CC处理器的基础上,本发明实施例的缓存一致性处理单元53中包括:
预处理子模块530,用于与IO单元、本地代理子模块531、远端代理子模块532连接,负责IO单元与本地代理子模块、远端代理子模块之间的报文传递,接收IO单元发送的信息并转发给本地代理子模块或远端代理子模块,以及接收本地代理子模块或远端代理子模块发送的信息并转发给IO单元。
本地代理子模块531,用于处理对本主机的内存访问请求。具体为,用于根据预处理子模块接收到的IO单元发送的内存处理命令进行缓存一致性处理,若接收到的内存处理命令为主机的虚拟机管理器发送的Cache状态更新信息,则根据Cache状态更新信息,发送缓存一致性目录更新指令给目录管理单元52对本地的缓存一致性目录进行更新;若接收到的内存处理命令为主机上的虚拟机的内存访问请求,且此处内存访问请求中的内存地址信息对应的内存是本主机上的内存,则本地代理子模块用于进行缓存一致性处理,对本主机的内存进行访问:如果内存访问请求是写内存指令,本地代理子模块用于将内容写入本主机上的对应内存,可以通过预处理子模块经IO单元通知Hypervisor将内容写入本机的内存,或者由本地代理子模块通过预处理子模块经IO单元直接将内容写入本主机的内存,并进一步的,本地代理子模块,还用于发送缓存一致性目录更新指令通知目录管理单元刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息。如果内存访问请求是读内存指令,本地代理子模块用于根据缓存一致性目录中相应内存的内存块的Cache状态信息通过预处理子模块经IO单元通知主机的虚拟机管理器进行内存读取,并由主机的虚拟机管理器将读取的信息发送给发出内存访问请求的虚拟机。当然,本地代理子模块也可以接收网络接口单元54传递的其他主机的内存访问请求,而且内存访问请求中的内存地址信息对应的内存是本主机上的内存,则本地代理子模块用于根据其他主机的内存访问请求进行缓存一致性处理,对本主机的内存进行访问。
远端代理子模块532,用于处理对其他主机的内存访问请求。若接收到的预处理模块转发的IO单元发送的内存处理命令为主机上的虚拟机的内存访问请求,且此处内存访问请求中的内存地址信息对应的内存是其他主机上的内存,则远端代理子模块进行缓存一致性处理,通过网络接口单元54经交换网络访问内存处理请求的内存地址信息对应的内存所在主机上的内存,并将从交换网络接收的其他主机的信息传递给预处理子模块。CC处理的进一步技术细节遵循业界通用的CC处理协议,本处不再赘述。缓存一致性处理器的各部分的功能的实现细节与前面实施例1至实施例5相同的部分,可以参看前面实施例的描述,本处也不再赘述。
本发明实施例提供的缓存一致性处理器,接收主机的Hypervisor发送的内存处理命令,根据内存处理命令进行缓存一致性处理,避免了在主机上通过软件实现聚合虚拟化中的CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间,并通过本地代理子模块和远端代理子模块分别处理本地内存访问和远端内存访问,进一步提升了处理器的处理性能。
图8为本发明实施例7的计算机***图,如图所示,所述计算机***包括:至少两个主机,至少两个缓存一致性处理器和一个交换网络,其中,该至少两个主机中的每个主机分别与该至少两个缓存一致性处理器中的一个缓存一致性处理器相连,该至少两个缓存一致性处理器通过交换网络通信连接。
所述至少两个主机中的第一主机,用于发送内存处理命令给相连的所述至少两个CC处理器中的第一CC处理器。优选的,当第一主机上的虚拟机进行内存访问时,第一主机上的Hypervisor会截获到虚拟机的内存访问事件,即获得虚拟机的内存访问请求,内存访问请求中包含要访问的内存地址信息,可以为内存读指令或内存写指令,第一主机通过PCIE端口向与其相连的第一缓存一致性处理器发送内存处理命令。当然,第一主机也可能采用PCIE端口以外的其他通信协议端口向第一缓存一致性处理器发送内存处理命令,PCIE协议作为一种较为通用的国际标准,采用PCIE端口可以避免采用私有协议带来的不兼容升级风险和成本,为便于描述,本发明实施例中采用PCIE端口进行描述,并不对本发明的保护范围造成限制。需要说明的是,在本发明实施例的描述的“第一主机”和“第一缓存一致性处理器”,仅为了描述上的方便,表示多个主机或多个缓存一致性处理器中的一个非特指的主机或缓存一致性处理器,并非特殊的主机或CC处理器。
所述第一缓存一致性处理器,用于根据接收到的内存处理命令进行缓存一致性处理,具体为:若内存处理命令为第一主机的虚拟机管理器发送的Cache状态更新信息,则第一缓存一致性处理器用于根据Cache状态更新信息对本地的缓存一致性目录进行更新。缓存一致性目录中记录了整个***中共享内存的Cache状态,记录着内存的内存块的Cache状态信息和当前拷贝信息,其中,Cache状态信息表示本地的Cache的状态,例如独占、共享、无效等状态。当前拷贝信息指明哪些主机保存有该内存块的拷贝。第一缓存一致性处理器用于根据接收到的Cache状态更新信息对本地的缓存一致性目录进行更新,具体可以为根据Cache状态更新信息中携带的内存块地址信息(即进行了写操作的内存块)和Cache状态信息,更新缓存一致性目录中内存块的Cache状态信息。进一步的,第一缓存一致性处理器还用于根据缓存一致性目录中该内存的内存块的当前拷贝信息通知所述至少一个主机中缓存了该内存的内存块的拷贝的其他主机的CC处理器也进行各自本地的缓存一致性目录的刷新。具体的,第一缓存一致性处理器,用于根据内存块地址信息,确定本地的缓存一致性目录中该内存块地址信息对应的内存块的记录,根据该缓存状态更新信息中的缓存状态信息更新该内存块的记录中的缓存状态信息,并根据该内存块的记录中的当前拷贝信息,确定保存有该内存块的拷贝的该至少两个主机中第一主机以外的其他主机,通知其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
优选的,第一主机的虚拟机管理器获得虚拟机的内存访问请求,可以先根据内存访问请求中的内存地址信息判断该内存访问请求需要访问的内存是否为本主机上的内存,如果是,则根据内存访问请求对本机上的内存进行访问:当为内存写指令时,第一主机的虚拟机管理器用于将需要写入的内容写到相应的内存地址,并将缓存(Cache)状态更新信息通过PCIE端口发送给第一缓存一致性处理器,其中,缓存状态更新信息中包括内存块地址信息和Cache状态信息,Cache状态信息的值表明写入数据后,Cache是什么状态,可以为:独占、共享、无效等Cache状态中的一种;当为内存读指令时,第一主机的虚拟机管理器查询第一缓存一致性处理器中的缓存一致性目录,根据CC目录中相应内存的内存块的Cache状态信息从内存中读取要访问的内容。如果需要访问的内存不是本主机上的内存,则第一主机用于将虚拟机的内存访问请求发送给第一缓存一致性处理器。也可以如下处理,第一主机的虚拟机管理器获得虚拟机的内存访问请求后,不进行判断,直接通过PCIE端口将虚拟机的内存访问请求发送给第一缓存一致性处理器。
若第一缓存一致性处理器接收的内存处理命令为主机上的虚拟机的内存访问请求时,第一缓存一致性处理器用于进行缓存一致性处理,访问内存访问请求中的内存地址信息对应的内存。此处的内存地址信息对应的内存是指内存处理请求中的内存地址信息对应的内存资源所在的主机上的内存。具体的,若需要访问的内存地址信息对应的内存是第一主机上的内存,第一缓存一致性处理器进行缓存一致性处理,对第一主机上的内存进行访问:如果内存访问请求是写内存指令,第一缓存一致性处理器将内容写入第一主机的内存,可以由第一缓存一致性处理器通知第一主机的Hypervisor将内容写入本机的内存,或者由第一缓存一致性处理器直接将内容写入第一主机的内存,并进一步的,第一缓存一致性处理器会刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息。如果内存访问请求是读内存指令,第一缓存一致性处理器根据缓存一致性目录中相应内存的内存块的Cache状态信息通知第一主机的虚拟机管理器进行内存读取,并由第一主机的虚拟机管理器将读取的信息发送给发出内存访问请求的虚拟机。若需要访问的内存是第一主机以外的其他主机上的内存,则第一缓存一致性处理器通过交换网络访问内存处理请求的内存地址信息对应的内存所在的其他主机上的内存。此处的交换网络可以为PCIE交换机、Infiniband交换机或者以太网交换机,第一缓存一致性处理器通过交换网络与内存地址信息对应的内存所在的其他主机连接的缓存一致性处理器进行通信,实现对内存地址信息对应的内存所在的其他主机上的内存的访问。如果内存访问请求是写内存指令,第一缓存一致性处理器用于刷新本地的CC目录中对应进行了写操作的内存的内存块的Cache状态信息,并通知内存地址信息对应的内存所在的其他主机对应的CC处理器,由其将需要写入的内容写入该其他主机的缓存,如果内存访问请求是读内存指令,发出内存访问请求的第一缓存一致性处理器通知内存地址信息对应的内存所在的其他主机对应的CC处理器进行内存访问,从与该其他主机相连的缓存一致性处理器接收内存访问结果,并发送给发出内存访问请求的第一主机的虚拟机管理器,由虚拟机管理器将读取的信息送给发出内存访问请求的虚拟机,其中,内存访问结果是其他主机相连的缓存一致性处理器根据内存访问请求和其本地的CC目录从内存中读取的。本发明实施例中,CC处理器进行CC处理的进一步技术细节遵循业界通用的CC处理协议,本处不再赘述。本实施例中的缓存一致性处理器,其具体的技术实现可以如本发明实施例5、实施例6中描述的缓存一致性处理器,本处不再赘述。
本发明实施例提供的计算机***,通过主机的Hypervisor将内存处理命令发送给缓存一致性处理器,由缓存一致性处理器根据内存处理命令进行缓存一致性处理,避免了在主机上通过软件实现聚合虚拟化中的CC处理而导致的占用较多处理器资源,引起***性能下降的问题,从而能够提升***处理性能,缩短内存访问时间。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种聚合虚拟化中内存共享的方法,其特征在于,多个缓存一致性处理器通过交换网络通信相连,每个所述缓存一致性处理器对应连接一个主机,所述方法包括:
所述缓存一致性处理器接收所述主机的虚拟机管理器发送的内存处理命令;
若所述内存处理命令为缓存状态更新信息,所述缓存一致性处理器根据所述缓存状态更新信息对本地的缓存一致性目录进行更新,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息;
或者,若所述内存处理命令为所述主机上的虚拟机的内存访问请求,所述缓存一致性处理器进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存。
2.根据权利要求1所述的方法,其特征在于,所述缓存一致性处理器根据所述缓存状态更新信息对本地的缓存一致性目录进行更新,具体为:
所述缓存一致性处理器根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录;
根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息;
根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
3.根据权利要求1所述的方法,其特征在于,所述缓存一致性处理器进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
若所述内存地址信息对应的内存是所述主机上的内存,所述缓存一致性处理器进行缓存一致性处理,对所述主机的内存进行访问;
或者,若所述内存地址信息对应的内存是所述主机以外的其他主机上的内存,则所述缓存一致性处理器进行缓存一致性处理,通过交换网络访问所述内存地址信息对应的所述其他主机上的内存。
4.根据权利要求3所述的方法,其特征在于,所述缓存一致性处理器通过交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述缓存一致性处理器通过所述交换网络与所述其他主机连接的缓存一致性处理器进行通信,通过所述其他主机连接的缓存一致性处理器访问所述内存地址信息对应的所述其他主机上的内存。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
若所述内存访问请求为读内存指令,所述缓存一致性处理器将内存访问结果发送给所述主机的虚拟机管理器。
6.根据权利要求1至5任一所述的方法,其特征在于,所述缓存一致性处理器接收主机的虚拟机管理器发送的内存处理命令之前,还包括:
所述主机的虚拟机管理器获得所述虚拟机的所述内存访问请求;
所述主机的虚拟机管理器根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述主机上的内存,如果是所述主机上的内存,则根据所述内存访问请求访问所述主机上的内存,并将所述缓存状态更新信息发送给所述缓存一致性处理器;如果不是所述主机上的内存,则将所述内存访问请求发送给所述缓存一致性处理器。
7.一种聚合虚拟化中内存共享的方法,其特征在于,多个缓存一致性处理器通过交换网络通信相连,每个所述缓存一致性处理器对应连接一个主机,所述方法包括:
所述主机的虚拟机管理器获得所述虚拟机的内存访问请求;
所述主机的虚拟机管理器根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述主机上的内存,如果是所述主机上的内存,则根据所述内存访问请求访问所述主机上的内存,并在所述内存访问请求为内存写指令时,发送缓存状态更新信息给缓存一致性处理器以便所述缓存一致性处理器更新所述缓存一致性处理器本地的缓存一致性目录中进行了写操作的内存块对应的缓存状态信息;如果所述内存访问请求为读指令,则将所述内存访问请求发送给所述缓存一致性处理器,以便所述缓存一致性处理器进行缓存一致性处理并访问所述内存访问请求中的内存地址信息对应的内存;
或者,所述主机的虚拟机管理器将所述内存访问请求发送给所述缓存一致性处理器,以便所述缓存一致性处理器进行缓存一致性处理并访问所述内存访问请求中的内存地址信息对应的内存。
8.根据权利要求7所述的方法,其特征在于,如果所述内存访问请求为读指令,所述主机的虚拟机管理器将所述内存访问请求发送给所述缓存一致性处理器之后,还包括:
所述主机的虚拟机管理器接收所述缓存一致性处理器返回的内存访问结果。
9.一种缓存一致性处理器,其特征在于,多个所述缓存一致性处理器通过交换网络通信相连,每个所述缓存一致性处理器对应连接一个主机,所述缓存一致性处理器包括:
输入输出单元,用于接收主机的虚拟机管理器发送的内存处理命令;
缓存一致性处理单元,若所述内存处理命令为缓存状态更新信息,用于根据所述缓存状态更新信息,发送缓存一致性目录更新指令给目录管理单元,其中,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息,或者,所述内存处理命令为所述主机上的虚拟机的内存访问请求,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存;
所述目录管理单元,用于根据所述缓存一致性目录更新指令更新本地的缓存一致性目录。
10.根据权利要求9所述的缓存一致性处理器,其特征在于:所述目录管理单元,用于根据所述缓存一致性目录更新指令更新本地的缓存一致性目录,具体为:
所述目录管理单元,用于根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录,根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息,并根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
11.根据权利要求9所述的缓存一致性处理器,其特征在于,所述缓存一致性处理单元,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
所述缓存一致性处理单元,若所述内存地址信息对应的内存是所述主机上的内存,用于进行缓存一致性处理,对所述主机的内存进行访问,若所述内存地址信息对应的内存是所述主机以外的其他主机上的内存,则所述缓存一致性处理单元用于进行缓存一致性处理,通过网络接口单元经交换网络访问所述内存地址信息对应的所述其他主机上的内存;
则,所述缓存一致性处理器,还包括:
所述网络接口单元,用于提供所述缓存一致性处理单元与其他缓存一致性处理器间的通信,将所述缓存一致性处理单元的信息通过所述交换网络发送给所述其他缓存一致性处理器,将从所述交换网络接收的所述其他缓存一致性处理器的信息传递给所述缓存一致性处理单元。
12.根据权利要求11所述的缓存一致性处理器,其特征在于,所述缓存一致性处理单元用于进行缓存一致性处理,通过网络接口单元经交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述缓存一致性处理单元,用于进行缓存一致性处理,通过所述网络接口单元经所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,通过所述其他主机连接的缓存一致性处理器访问所述内存地址信息对应的所述其他主机上的内存。
13.根据权利要求11或12所述的缓存一致性处理器,其特征在于:
所述缓存一致性处理单元,还用于,若所述内存访问请求为读内存指令,将内存访问结果通过所述输入输出单元发送给所述主机的虚拟机管理器。
14.根据权利要求11至13任一所述的缓存一致性处理器,其特征在于,所述缓存一致性处理单元包括:
预处理子模块,用于与所述输入输出单元、本地代理子模块、远端代理子模块连接,用于负责所述输入输出单元与所述本地代理子模块、所述远端代理子模块之间的报文传递;
所述本地代理子模块,用于处理对所述主机的内存访问请求,进行缓存一致性处理,以及发送所述缓存一致性目录更新指令给所述目录管理单元;
所述远端代理子模块,用于处理对所述主机以外的其他主机的内存访问请求,进行缓存一致性处理,通过所述网络接口单元经所述交换网络访问所述其他主机的内存。
15.一种计算机***,包括:至少两个主机,至少两个缓存一致性处理器和一个交换网络,其中,所述至少两个主机中的每个主机分别与所述至少两个缓存一致性处理器中的一个缓存一致性处理器相连,所述至少两个缓存一致性处理器通过所述交换网络通信相连;
所述至少两个主机中的第一主机,用于发送内存处理命令给相连的所述至少两个缓存一致性处理器中的第一缓存一致性处理器,所述内存处理命令由所述主机的虚拟机管理器发送;
所述第一缓存一致性处理器,若所述内存处理命令为缓存状态更新信息,用于根据所述缓存状态更新信息更新本地的缓存一致性目录,所述缓存状态更新信息中包括内存块地址信息和缓存状态信息,或者,所述内存处理命令为所述第一主机上的虚拟机的内存访问请求,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存。
16.根据权利要求15所述的***,其特征在于,所述第一缓存一致性处理器,用于根据所述缓存状态更新信息更新本地的缓存一致性目录,具体为:
所述第一缓存一致性处理器,用于根据所述内存块地址信息,确定所述本地的缓存一致性目录中所述内存块地址信息对应的内存块的记录,根据所述缓存状态更新信息中的缓存状态信息更新所述内存块的记录中的缓存状态信息,并根据所述内存块的记录中的当前拷贝信息,确定保存有所述内存块的拷贝的所述至少两个主机中所述第一主机以外的其他主机,通知所述其他主机对应的缓存一致性处理器更新各自本地的缓存一致性目录。
17.根据权利要求15所述的***,其特征在于,所述第一缓存一致性处理器,用于进行缓存一致性处理,访问所述内存访问请求中的内存地址信息对应的内存,具体为:
所述第一缓存一致性处理器,若所述内存地址信息对应的内存是所述第一主机上的内存,用于进行缓存一致性处理,对所述第一主机的内存进行访问,或者,若所述内存地址信息对应的内存是所述至少两个主机中所述第一主机以外的其他主机上的内存,用于进行缓存一致性处理,通过所述交换网络访问所述内存地址信息对应的所述其他主机上的内存。
18.根据权利要求17所述的***,其特征在于,所述第一缓存一致性处理器,用于进行缓存一致性处理,通过所述交换网络访问所述内存地址信息对应的所述其他主机上的内存,具体为:
所述第一缓存一致性处理器,用于进行缓存一致性处理,通过所述交换网络与所述内存地址信息对应的所述其他主机连接的缓存一致性处理器进行通信,通过所述其他主机连接的缓存一致性处理器访问所述内存地址信息对应的所述其他主机上的内存。
19.根据权利要求17或18所述的***,其特征在于:
所述第一缓存一致性处理器,若所述内存访问请求为读内存指令,还用于将内存访问结果发送给所述第一主机的虚拟机管理器。
20.根据权利要求15至19任一所述的***,其特征在于,
所述第一主机的虚拟机管理器,还用于获得所述虚拟机的所述内存访问请求,根据所述内存访问请求中的内存地址信息判断所述内存访问请求需要访问的内存是否是所述第一主机上的内存,如果是所述第一主机上的内存,则根据所述内存访问请求对所述第一主机上的内存进行访问,并发送所述缓存状态更新信息给所述第一缓存一致性处理器;如果不是所述第一主机上的内存,则将所述内存访问请求发送给所述第一缓存一致性处理器。
CN201380001624.9A 2013-10-08 2013-10-08 一种实现聚合虚拟化中内存共享的方法、设备和*** Active CN103858111B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/084821 WO2015051488A1 (zh) 2013-10-08 2013-10-08 一种实现聚合虚拟化中内存共享的方法、设备和***

Publications (2)

Publication Number Publication Date
CN103858111A CN103858111A (zh) 2014-06-11
CN103858111B true CN103858111B (zh) 2016-03-09

Family

ID=50864334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380001624.9A Active CN103858111B (zh) 2013-10-08 2013-10-08 一种实现聚合虚拟化中内存共享的方法、设备和***

Country Status (2)

Country Link
CN (1) CN103858111B (zh)
WO (1) WO2015051488A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794099A (zh) * 2015-04-28 2015-07-22 浪潮电子信息产业股份有限公司 一种资源融合的方法、***及一种远端代理器
GB2539382B (en) * 2015-06-01 2017-05-24 Advanced Risc Mach Ltd Cache coherency
CN107894914A (zh) * 2016-09-30 2018-04-10 华为技术有限公司 缓存一致性处理方法和装置
CN108268384A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 读取数据的方法及装置
CN106843772A (zh) * 2017-02-14 2017-06-13 郑州云海信息技术有限公司 一种基于一致性总线扩展非易失内存的***及方法
CN107168810A (zh) * 2017-05-10 2017-09-15 郑州云海信息技术有限公司 一种计算节点内存共享***及读、写操作内存共享方法
CN112988370B (zh) * 2019-12-13 2024-05-17 南京品尼科自动化有限公司 一种智能通信管理机
CN112783667B (zh) * 2020-12-10 2023-08-15 中国科学院深圳先进技术研究院 基于虚拟环境的内存共享***及方法
CN115587051B (zh) * 2022-10-28 2023-06-16 海光信息技术股份有限公司 缓存目录更新方法、数据处理方法、相关装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510144A (zh) * 2009-03-24 2009-08-19 中国科学院计算技术研究所 基于分布式虚拟机管理器的分布式cache***及其工作方法
CN101802790A (zh) * 2007-09-21 2010-08-11 美普思科技公司 对多个一致域的支持
CN101207515B (zh) * 2007-12-12 2011-11-30 中兴通讯股份有限公司 一种多机共享内存的处理方法、实现方法和同步方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069587B2 (en) * 2011-10-31 2015-06-30 Stec, Inc. System and method to cache hypervisor data
CN102521330A (zh) * 2011-12-07 2012-06-27 华中科技大学 一种桌面虚拟化环境下的镜像分布式存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101802790A (zh) * 2007-09-21 2010-08-11 美普思科技公司 对多个一致域的支持
CN101207515B (zh) * 2007-12-12 2011-11-30 中兴通讯股份有限公司 一种多机共享内存的处理方法、实现方法和同步方法
CN101510144A (zh) * 2009-03-24 2009-08-19 中国科学院计算技术研究所 基于分布式虚拟机管理器的分布式cache***及其工作方法

Also Published As

Publication number Publication date
WO2015051488A1 (zh) 2015-04-16
CN103858111A (zh) 2014-06-11

Similar Documents

Publication Publication Date Title
CN103858111B (zh) 一种实现聚合虚拟化中内存共享的方法、设备和***
KR101993915B1 (ko) 원격으로 액세스되는 데이터의 효율적인 라이브-이송
TWI621023B (zh) 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
TWI453597B (zh) 經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
TWI793654B (zh) 雲端遊戲系統及操作雲端遊戲系統之方法
US11068397B2 (en) Accelerator sharing
CN104951239B (zh) 高速缓存驱动器、主机总线适配器及其使用的方法
US20190324870A1 (en) Determine whether to rebuild track metadata to determine whether a track format table has a track format code for the track format metadata
KR20220000415A (ko) 서비스로서의 메모리에 기초한 분산 컴퓨팅
CN107544864A (zh) 一种虚拟机数据拷贝方法及虚拟机数据拷贝***
WO2023125524A1 (zh) 数据存储方法、***、存储访问配置方法及相关设备
CN112052291A (zh) 一种用户态访问分布式块存储***的方法及***
CN115129625A (zh) ***设备中的增强的存储协议仿真
CN110442389B (zh) 一种多桌面环境共享使用gpu的方法
US11157191B2 (en) Intra-device notational data movement system
US8838768B2 (en) Computer system and disk sharing method used thereby
WO2024016595A1 (zh) 一种rbd-nbd映射方法及装置
GB2502288A (en) Modifying the order of checking virtual machines for cached disc data
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
US12019894B2 (en) Systems and methods for managing coresident data for containers
WO2017113329A1 (zh) 一种主机集群中缓存管理方法及主机
CN112748857B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US20230229498A1 (en) Systems and methods with integrated memory pooling and direct swap caching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211229

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right