CN114741342A - 一种映射关系更新的方法以及相关装置 - Google Patents

一种映射关系更新的方法以及相关装置 Download PDF

Info

Publication number
CN114741342A
CN114741342A CN202110018186.3A CN202110018186A CN114741342A CN 114741342 A CN114741342 A CN 114741342A CN 202110018186 A CN202110018186 A CN 202110018186A CN 114741342 A CN114741342 A CN 114741342A
Authority
CN
China
Prior art keywords
gva
target partition
lva
mapping relationship
mapping
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
CN202110018186.3A
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
Priority to CN202110018186.3A priority Critical patent/CN114741342A/zh
Publication of CN114741342A publication Critical patent/CN114741342A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

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

本申请实施例公开了一种映射关系更新的方法以及相关装置,用于通信领域,由于仅需要对目标分区部分GVA与本地虚拟地址LVA的映射关系进行更新,无需对其他分区中映射关系进行更新,从而提升映射关系更新的效率。本申请实施例方法中,首先从全局虚拟地址GVA的多个分区中确定目标分区,且多个分区中的每一个分区包含部分GVA,然后更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。

Description

一种映射关系更新的方法以及相关装置
技术领域
本申请实施例涉及通信领域,尤其涉及一种映射关系更新的方法以及相关装置。
背景技术
在支持远程直接数据存取(remote direct memory access,RDMA)网络的分布式***中,一个节点可以通过RDMA协议对其他节点的内存进行远程读写,基于这种技术可以实现一个分布式共享内存***,而基于这个***,用户进程可以充分利用所有节点内的内存资源。具体地,在分布式共享内存***中,可以建立两层映射,对于一段内存的全局虚拟地址(global virtual address,GVA)会映射到固定节点的一段本地虚拟地址(localvirtual address,LVA),LVA会继续映射到一段本地物理地址(physical address,PA)。因此,当用户申请一段全局内存空间时,分布式***需要在选择的节点上申请出物理空间作为PA,将PA向网卡注册存储区域(memory region,MR),并生成远端可以访问的LVA,然后将LVA至PA的映射记录在本地地址映射表中,在全局地址映射表中建立GVA至LVA的映射,从而完成整个全局内存的申请。
基于上述机制,变更内存物理地址,需要修改本地地址映射表中的LVA到PA的映射关系。但是在分布式***中,本地地址映射表存储在网卡中,网卡不支持修改LVA到PA的映射,因此只能通过修改本地地址映射表中的GVA到LVA的映射关系实现内存地址的变更。在进行上述修改操作之前,需要通知所有节点删除缓存的需要修改的映射缓存,等待所有节点删除成功后修改本地地址映射表中的GVA到LVA的映射,导致映射关系更新效率低。
发明内容
本申请实施例提供了一种映射关系更新的方法以及相关装置,由于仅需要对目标分区部分GVA与本地虚拟地址LVA的映射关系进行更新,无需对其他分区中映射关系进行更新,从而提升映射关系更新的效率。
本申请实施例的第一方面提供了一种映射关系更新的方法,在该方法中,首先从全局虚拟地址GVA的多个分区中确定目标分区,且多个分区中的每一个分区包含部分GVA,然后更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
在该实施方式中,由于仅需要对目标分区部分GVA与本地虚拟地址LVA的映射关系进行更新,无需对其他分区中映射关系进行更新,从而提升映射关系更新的效率。
在本申请的一种可选实施方式中,具体通过比较多个分区的版本号,确定目标分区,该目标分区的版本号与多个分区中的其他分区的版本号不同。
在该实施方式中,通过对多个分区的版本号进行比较,确定不同于其他分区的版本号的分区需要对映射关系进行更新,因此可以确定该分区为目标分区,由此提升本方案的可行性。
在本申请的一种可选实施方式中,在更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系前,还需要冻结对目标分区的内存访问。
在该实施方式中,通过冻结对目标分区的内存访问,以降低在更新映射关系时,对内存访问的影响,由此提升服务质量。
在本申请的一种可选实施方式中,具体通过为目标分区设置禁止访问标识,以达到冻结对目标分区的内存访问的目的。
在该实施方式中,通过禁止访问标识生效,停止对目标分区的内存访问,由此提升本方案的可行性。
在本申请的一种可选实施方式中,由于在对映射关系进行更新前,冻结对目标分区的内存访问,因此在完成更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系后,需要恢复对目标分区的内存访问。
在该实施方式中,通过恢复对目标分区的内存访问,以保证更新映射关系后,及时恢复对目标内存的内存访问的服务,进一步地提升服务质量。
在本申请的一种可选实施方式中,具体通过清除为目标分区设置的禁止访问标识,以达到恢复对目标分区的内存访问的目的。
在该实施方式中,通过清除禁止访问标识,恢复对目标分区的内存访问,由此提升本方案的可行性。
在本申请的一种可选实施方式中,具体通过删除目标分区中的部分GVA和LVA的映射关系的映射缓存,并且将更新后的目标分区中的部分GVA和LVA的映射关系加载至映射缓存,以完成对目标分区中的部分GVA与本地虚拟地址LVA的映射关系进行更新。
在该实施方式中,通过删除未更新映射关系的映射缓存,保证在进行内存访问时不会采用该映射缓存通过未更新的映射关系进行地址的确定,其次,再将更新后的标分区中的部分GVA和LVA的映射关系加载至映射缓存,因此能够保证更新后恢复对目标分区的内存访问时,能够通过最新的GVA和LVA的映射关系确定地址,在提升本方案的可行性的基础上,还可以提升地址确定的准确度以及可靠性。
在本申请的一种可选实施方式中,其特征在于,多个分区是基于打散算法对GVA进行打散得到的。
在该实施方式中,对GVA进行打散以得到多个分区,并且每个分区包括至少一个LVA与PA的映射关系,因此在进行内存访问时,通过多个分区能够准确确定所需的PA,由此提升本方案的可行性以及可靠性。
本申请实施例的第二方面提供了一种映射关系更新装置,该映射关系更新装置包括:
确定模块,用于从全局虚拟地址GVA的多个分区中确定目标分区,其中,每一个分区包含部分GVA;
更新模块,用于更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
在本申请的一种可选实施方式中,确定模块,确定模块,具体用于比较多个分区的版本号,确定目标分区,其中,目标分区的版本号与多个分区中的其他分区的版本号不同。
在本申请的另一种可选实施方式中,映射关系更新装置还包括冻结模块;
冻结模块,用于在更新模块更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系前,冻结对目标分区的内存访问。
在本申请的另一种可选实施方式中,冻结模块,具体用于为目标分区设置禁止访问标识。
在本申请的另一种可选实施方式中,映射关系更新装置还包括恢复模块;
恢复模块,用于在更新模块完成更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系后,恢复对目标分区的内存访问。
在本申请的另一种可选实施方式中,恢复模块,具体用于清除禁止访问标识。
在本申请的另一种可选实施方式中,更新模块,具体用于:
删除目标分区中的部分GVA和LVA的映射关系的映射缓存;
将更新后的目标分区中的部分GVA和LVA的映射关系加载至映射缓存。
在本申请的另一种可选实施方式中,多个分区是基于打散算法对GVA进行打散得到的。
本申请实施例的第三方面,提供一种终端设备,该终端设备可以为上述方法设计中的映射关系更新装置,或者,为设置在映射关系更新装置中的芯片。该终端设备包括:处理器,与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面及其任意一种可能的实施方式中映射关系更新装置所执行的方法。可选地,该终端设备还包括存储器。可选地,该终端设备还包括通信接口,处理器与通信接口耦合。
当终端设备为映射关系更新装置时,该通信接口可以是收发器,或,输入/输出接口。
当终端设备为设置于映射关系更新装置中的芯片时,该通信接口可以是输入/输出接口。
可选地,该收发器可以为收发电路。可选地,该输入/输出接口可以为输入/输出电路。
本申请实施例的第四方面,提供一种节点,其特征在于,所述节点包括处理器和网卡,所述处理器和所述网卡通信连接,所述网卡执行上述第一方面或第一方面任意一种可能实施方式中的方法。
本申请实施例的第五方面,提供了一种程序,该程序在被处理器执行时,用于执行上述第一方面或第一方面任意一种可能实施方式中的方法。
本申请实施例的第六方面,提供了一种存储一个或多个计算机的计算机程序产品(或称计算机程序),当计算机程序产品被该处理器执行时,该处理器执行上述第一方面或第一方面任意一种可能实施方式中的方法。
本申请实施例的第七方面,提供了一种网卡,其特征在于,所述网卡包括处理器和接口,所述处理器与所述接口连接,所述处理器执行执行上述第一方面或第一方面任意一种可能实施方式中的方法。
本申请实施例的第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得终端设备执行上述第一方面及其可能的实施方式中的任一方法。
需要说明的是,本申请第二方面至第八方面的实施方式所带来的有益效果,以及对各方面的实施方式的说明可以参照第一方面的实施方式进行理解,因此没有重复赘述。
附图说明
图1为本申请实施例中存储***的一个架构示意图;
图2为本申请实施例中存储***的另一架构示意图;
图3为本申请实施例中存储设备的一个架构示意图;
图4为本申请实施例中网卡的一个架构示意图;
图5为本申请实施例中分布式共享内存***一个结构示意图;
图6为本申请实施例中映射关系更新的方法一个实施例示意图;
图7为本申请实施例中映射关系更新装置一个实施例示意图。
具体实施方式
为了使本申请的上述目的、技术方案和优点更易于理解,下文提供了详细的描述。所述详细的描述通过使用方框图、流程图和/或示例提出了设备和/或过程的各种实施例。由于这些方框图、流程图和/或示例包含一个或多个功能和/或操作,所以本领域内人员将理解可以通过许多硬件、软件、固件或它们的任意组合单独和/或共同实施这些方框图、流程图或示例内的每个功能和/或操作。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例的提供的存储***的架构如图1,图1为本申请实施例中存储***的一个架构示意图,如图所示,存储节点120与客户机130通过网络110连接,客户机130通过网络110与存储节点120进行数据传输。为了方便描述,本申请实施例仅以一个客户机130与一个存储节点120为例说明客户机与存储节点的数据传输。在实际应用中,还可以为多个客户机130与多个存储节点120,客户机130与存储节点120数量不应理解为本申请实施例的限定。
进一步地,图2为本申请实施例中存储***的另一架构示意图,如图2所示,存储节点120包括通过总线123连接的处理器121、内存122,多个存储设备124与网卡125。
处理器121是存储节点120的控制中心。可选地,处理器121包括一个或多个中央处理器(Central Processing Unit,CPU),CPU都可以是单核或多核CPU。本文所使用的术语“处理器”指一个或多个用于处理程序指令的设备、电路和/或处理内核。
内存122用于存储程序指令,处理器121从所述内存122中获取程序指令并执行。示例性的,内存122可以是随机存取存储器(Random Access Memory,RAM)。
总线123用于在处理器121,存储设备124与网卡125之间传输数据。示例性的,总线123可以是高速***组件互连标准(Peripheral component interconnection express,PCIe)总线。
存储设备124用于永久存储来自客户机130的数据。存储设备124可以为多种类型的硬盘,例如,固态硬盘(Solid State Drive,SSD)或者机械盘。硬盘的接口可以为串行连接SCSI(Serial Attached SCSI,SAS)接口、光纤通道(Fiber Channel,FC)接口或者PCIe接口等,其中,SCSI(Small Computer System Interface)为小型机***接口等。存储设备124的结构如图3所示。
存储节点120与客户机130通过存储节点的网卡125与客户机的网卡135传输数据。可选的,客户机130的结构可以参考存储节点120,客户机130还可以为服务器,计算设备等本领域可以作为主机的设备。
图3为本申请实施例中存储设备的一个架构示意图,如图3所示,存储设备124包括与处理器301连接的内存302与持久性存储介质303。处理器301是存储设备124的控制中心。处理器301包括寄存器,寄存器用来暂存处理器301的指令,数据和地址。内存302用于存储程序指令,处理器301执行内存302中的程序指令,以实现所述程序指令对应的功能。持久性存储介质303可以为闪存、磁盘等用于持久性存储数据的设备。可选的,存储设备的内存302可以是存储设备处理器301的一部分,即图3中的存储设备可以包括处理器301和持久性存储介质303,由存储器缓存实现图3中内存302的功能。
图4为本申请实施例中网卡的一个架构示意图,如图4所示,网卡125包括处理器401和接口402,处理器401和接口402相互连接。处理器401是网络的控制中心,接口402用于将网卡接收的数据进行发送。此外,网卡还可以包括缓存用于存储程序指令,处理器401执行缓存中的程序指令,以实现所述程序指令对应的功能。
上述存储节点120可为企业级存储设备或服务器或具有如图2中120所示类似结构的任何其它设备。
在本申请实施例中,网卡125中存储有全局GVA到LVA的映射关系以及本存储节点中LVA到PA的映射关系,而每个存储设备124的内存122中存储有全局GVA到LVA的映射关系,以及存储设备124对应的LVA到PA的映射关系。
为了进一步理解本申请实施例,下面对本申请实施例涉及到的一些术语或概念进行解释,以便于本领域技术人员理解。
一、远程直接数据存取(remote direct memory access,RDMA)
RDMA是一种使一台计算机可以直接将数据从内存通过网络传送到另一台计算机内存中的技术,首先将数据通过直接存储器访问(direct memory access,DMA)方式拷贝到NIC(网卡),再通过网络传输到远端NIC,然后直接到达远端内存,而无需操作***多次在缓冲区指间拷贝数据和中央处理器(central processing unit,CPU)参与,减少对带宽和处理器开销的需要,能够降低时延。
二、交换(SWAP)
SWAP指在高速介质和低速介质间进行数据交换,将访问频率低的数据置换到低速介质中,再次访问前加载回高速介质中,以达到扩大高速介质空间的目的。
三、垃圾回收(garbage collection,GC)
当部分数据失效时,存储空间中会存在较多碎片,通过垃圾回收将其中的有效数据搬移到新的存储空间,达到释放碎片空间的目的。
四、分层存储(Tier)
将存储介质按照性能和容量划分为不同的层级,按访问热度将数据在不同层级间进行迁移。
基于此,在支持RDMA网络的分布式***中,一个客户机可以通过RDMA协议对其他存储节点的内存进行远程读写,基于这种技术可以实现一个分布式共享内存***,进而基于分布式共享内存***。为了便于理解,请参阅图5,图5为本申请实施例中分布式共享内存***一个结构示意图,如图5所示,分布式共享内存***可以对所有客户机和存储节点的内存进行全局统一编址(图5中仅仅示出1个客户机与2个存储节点的情况,实际上在分布式共享内存***中,客户机与存储节点多对多的),所有在分布式共享内存***中的节点(包括客户机和存储节点)都可以通过RDMA访问全局内存地址,达到全局内存共享的目的,因此用户进程可以充分利用所有分布式共享内存***中所有节点内的内存资源。本申请内存访问对应的操作包括但不限于申请分配(Alloc)操作,申请释放(Free)操作,申请数据读取(Read)操作或申请数据写入(Write)操作等。
在分布式共享内存***中,可以建立两层映射,第一层映射为全局地址映射表,在全局地址映射表中,GVA会映射到多个节点的一段LVA,第二层映射为本地地址映射表,每个节点的LVA会继续映射到一段本地PA。因此,当用户申请一段全局内存空间时,需要在选择的节点上申请出物理空间作为PA,将PA向网卡注册,并生成远端可以访问的LVA,然后将LVA至PA的映射记录在本地地址映射表中,在全局地址映射表中申请创建GVA至LVA的映射并在全网的节点内进行广播,从而完成整个全局内存的申请。其次,当一个节点需要访问某个全局内存地址时,首先查询全局地址映射表中的GVA至LVA的映射关系,然后通过LVA与被访问的节点进行RDMA访问,被访问节点的网卡在本地映射表中找到的LVA至PA的映射关系,对物理地址进行访问。为了提高访问效率,通常会在发起全局内存访问的节点缓存全局映射表即GVA到LVA的映射关系,然而在SWAP,GC,Tier等场景下需要将逻辑地址重映射到其他物理地址,此时需要保证全局的映射信息有效性和一致性,避免对不正确的内存地址进行读写。
在分布式***中,各个存储节点的地址映射表包括全局映射表,具体为,全局的GVA到各个节点的LVA的映射关系以及本地映射表,具体为本地节点的LVA到PA的映射关系,并且地址映射表存储在网卡中,而网卡不支持动态注册,即不支持修改本地映射表中LVA到PA的映射,因此只能通过修改节点的地址映射表中GVA到LVA的映射关系实现内存地址的变更。进一步地,当需要修改地址映射表中全局的GVA到LVA的映射关系时,由于需要向集群内所有节点广播删除需要修改的映射缓存,等待所有节点删除成功后,再更新所有节点上需要修改的映射关系,由此降低映射关系更新的效率。
为了解决上述问题,本申请实施例提供了一种映射关系更新的方法,通过将GVA打散成多个分区,并确定需要修改GVA到LVA的映射关系对应的目标分区,然后仅需要对目标分区中GVA到LVA的映射关系进行更新,无需对其他分区中映射关系进行更新,由此提升映射关系更新的效率。可以理解的是,本申请实施例所提供的方法不仅限于映射关系更新,在分布式***中需要全局广播更新数据等场景也可以使用本申请实施例所提供的方法,也可以提升更新数据的效率。
为了便于理解,下面对本申请实施例使用的映射关系更新的方法进行详细描述,请参阅图6,图6为本申请实施例中映射关系更新的方法一个实施例示意图,如图6所示,映射关系更新的方法包括如下步骤。
S601、客户机确定全局虚拟地址GVA的多个分区;
本实施例中,客户机对全局虚拟地址GVA进行统一分区,以确定多个分区,且统一分区的过程可以由管理员进行配置。在此基础上,每一个分区包含全局虚拟地址GVA部分GVA,即在全局地址映射表中,每个GVA分区与至少一个LVA空间对应,即GVA分区中GVA空间与LVA空间是一对多的。
具体地,多个分区是基于打散算法对全局地址映射表中GVA进行打散得到的。
进一步地,客户机还可以获取第一消息,且第一消息用于指示更新多个分区的版本号。由此客户机根据第一消息对多个分区的版本号进行更新后,客户机能够确定更新后的多个分区的版本号。例如,未更新前多个分区的版本号为“1.2.2”,更新后的多个分区的版本号为“1.2.4”。
S602、存储节点从全局虚拟地址GVA的多个分区中确定目标分区;
本实施例中,存储节点需要从全局虚拟地址GVA的多个分区中确定目标分区。
进一步地,存储节点首先需要获取第二消息,第二消息用于指示对多个分区中待更新分区进行内存访问。其中,内存访问包括申请分配(Alloc),申请释放(Free),申请数据读取(Read)或申请数据写入(Write)等,此处不对内存访问的具体类型进行限定。第二消息中可以对分区中部分GVA进行访问,具体的第二消息中携带部分GVA的地址信息,通过在多个分区中查询,将部分GVA对应的GVA分区确定为目标分区。
进一步地,由于存储节点获取的第二消息指示对多个分区中待更新分区进行内存访问,为了保证能够顺利进行内存访问,存储节点需要确定待更新分区的版本号。例如,待更新分区的版本号为“1.2.0”。
具体地,由于在步骤S601中客户机能够确定更新后的多个分区的版本号,因此存储节点还需要从客户机获取更新后的多个分区的版本号,然后将所确定的待更新分区的版本号与更新后的多个分区的版本号进行对比,当待更新分区的版本号与更新后的多个分区的版本号不同时,即确定待更新分区为目标分区。例如,更新后的多个分区的版本号为“1.2.4”,而待更新分区的版本号为“1.2.0”,则存储节点可以确定待更新分区为目标分区。
再进一步地,在客户机更新目标分区中GVA与LVA的映射关系前,存储节点还可以删除目标分区中GVA和LVA的映射关系的映射缓存。如果更新的是目标分区中部分的GVA与LVA的对应关系,可以对目标分区中部分的GVA与LVA进行删除,进一步提高更新效率。
S603、客户机获取更新信息,其中,更新信息指示对目标分区中GVA与本地虚拟地址LVA的映射关系进行更新;
本实施例中,客户机获取存储节点发送的更新信息,且该更新信息指示客户机对目标分区中GVA与LVA的映射关系进行更新。如果存储节点更新的是部分GVA与LVA的映射关系,客户机可以从存储节点获取部分GVA与LVA的映射关系的信息。
可以理解的是,步骤S602中所描述的存储节点删除目标分区中GVA和LVA的映射关系的映射缓存与步骤S603之间无时序限定,即步骤S602中所描述的存储节点删除目标分区中GVA和LVA的映射关系的映射缓存与步骤S603可以同时进行,步骤S602中所描述的存储节点删除目标分区中GVA和LVA的映射关系的映射缓存与步骤S603也可以具有先后顺序进行,具体时序不应理解为本申请的限定。
其次,由于在客户机进行内存访问时进行映射关系的更新时,可能会对内存访问造成影响,因此存储节点需要在客户机更新映射关系时暂时冻结内存访问,在客户机完成更新映射关系后再恢复内存访问。具体地,本实施例中每个GVA分区均携带禁止访问标识,在客户机更新目标分区中GVA与LVA的映射关系之前,目标分区携带的禁止访问标识生效,此时存储节点冻结对目标分区的内存访问,并且触发执行步骤S604。
S604、客户机更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
本实施例中,由于客户机通过步骤S603获取的更新信息指示对目标分区中GVA与LVA的映射关系进行更新,因此客户机中可以根据更新信息更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系,从而得到更新后的GVA与LVA的映射关系。如果客户机可以从存储节点获取部分GVA与LVA的映射关系的信息,客户机可以根据该更新信息对目标分区进行更新。具体地,由于地址映射表存储在网卡中,而网卡不支持修改本地映射表中LVA到PA的映射,因此内存访问对应内存地址的进行变更时,即需要更新的是节点的地址映射表中内存访问对应的GVA与本地虚拟地址LVA的映射关系,因此本实施例中更新的为部分映射关系。
进一步地,由于在步骤S603中,可以在更新目标分区中GVA与LVA的映射关系前,存储节点可以删除目标分区中GVA和LVA的映射关系的映射缓存。因此在客户机得到更新后的GVA与LVA的映射关系之后,存储节点需要清除目标分区携带的禁止访问标识,以恢复对目标分区的内存访问。并且将更新后的目标分区中GVA和LVA的映射关系加载至存储节点的映射缓存,以确保映射缓存为最新的目标分区中GVA和LVA的映射关系,从而保证能够不对目标分区的内存访问造成影响。
进一步地,如果将本申请实施例所提供的映射关系更新的方法应用于副本或其他冗余***,在GVA与LVA的映射关系更新时可以通过访问其他冗余的地址保证***对应数据的可访问性,从而不影响***对外提供的服务。由于仅需要对目标分区中的映射关系进行更新,无需对其他分区中映射关系进行更新,从而提升映射关系更新的效率。
上述主要以方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是,映射关系更新装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以基于上述方法示例对映射关系更新装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
由此,下面对本申请中的映射关系更新装置进行详细描述,请参阅图7,图7为本申请实施例中映射关系更新装置一个实施例示意图,如图7所示,映射关系更新装置700包括:
确定模块701,用于从全局虚拟地址GVA的多个分区中确定目标分区,其中,每一个分区包含部分GVA;
更新模块702,用于更新目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
在本申请的一些可选实施例中,确定模块701,具体用于比较多个分区的版本号,确定目标分区,其中,目标分区的版本号与多个分区中的其他分区的版本号不同。
在本申请的一些可选实施例中,映射关系更新装置700还包括冻结模块703;
冻结模块703,用于在更新模块702更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系前,冻结对目标分区的内存访问。
在本申请的一些可选实施例中,冻结模块703,具体用于为目标分区设置禁止访问标识。
在本申请的一些可选实施例中,映射关系更新装置700还包括恢复模块704;
恢复模块704,用于在更新模块702完成更新目标分区中的部分GVA与本地虚拟地址LVA的映射关系后,恢复对目标分区的内存访问。
在本申请的一些可选实施例中,恢复模块704,具体用于清除禁止访问标识。
在本申请的一些可选实施例中,更新模块702,具体用于:
删除目标分区中的部分GVA和LVA的映射关系的映射缓存;
将更新后的目标分区中的部分GVA和LVA的映射关系加载至映射缓存。
在本申请的一些可选实施例中,多个分区是基于打散算法对GVA进行打散得到的。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
根据本申请实施例提供的方法,本申请还提供一种网卡,其特征在于,所述网卡包括处理器和接口,所述处理器与所述接口连接,所述处理器上述第一方面或第一方面任意一种可能实施方式中的方法。
根据本申请实施例提供的方法,本申请还提供一种节点,其特征在于,所述节点包括处理器和网卡,所述处理器和所述网卡通信连接,所述网卡执行图6所示实施例中的客户机以及存储节点执行的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图6所示实施例中的客户机以及存储节点执行的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图6所示实施例中的客户机以及存储节点执行的方法。
在本说明书中使用的术语“部件”、“模块”、“***”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地***、分布式***和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它***交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种映射关系更新的方法,其特征在于,包括:
从全局虚拟地址GVA的多个分区中确定目标分区,其中,每一个分区包含部分所述GVA;
更新所述目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述从全局虚拟地址GVA的多个分区中确定目标分区,包括:
比较所述多个分区的版本号,确定所述目标分区,其中,所述目标分区的版本号与所述多个分区中的其他分区的版本号不同。
3.根据权利要求1所述的方法,其特征在于,在所述更新所述目标分区中的部分GVA与本地虚拟地址LVA的映射关系前,所述方法还包括:
冻结对所述目标分区的内存访问。
4.根据权利要求3所述的方法,其特征在于,所述冻结对所述目标分区的内存访问,包括:
为所述目标分区设置禁止访问标识。
5.根据权利要求4所述的方法,其特征在于,在完成更新所述目标分区中的部分GVA与本地虚拟地址LVA的映射关系后,所述方法还包括:
恢复对所述目标分区的内存访问。
6.根据权利要求5所述的方法,其特征在于,所述恢复对所述目标分区的内存访问,包括:
清除所述禁止访问标识。
7.根据权利要求1所述的方法,其特征在于,所述更新所述目标分区中的部分GVA与本地虚拟地址LVA的映射关系,包括:
删除所述目标分区中的部分GVA和LVA的映射关系的映射缓存;
将更新后的所述目标分区中的部分GVA和LVA的映射关系加载至所述映射缓存。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述多个分区是基于打散算法对所述GVA进行打散得到的。
9.一种映射关系更新装置,其特征在于,包括:
确定模块,用于从全局虚拟地址GVA的多个分区中确定目标分区,其中,每一个分区包含部分所述GVA;
更新模块,用于更新所述目标分区中包含的部分GVA与本地虚拟地址LVA的映射关系。
10.根据权利要求9所述的映射关系更新装置,其特征在于,所述确定模块,具体用于比较所述多个分区的版本号,确定所述目标分区,其中,所述目标分区的版本号与所述多个分区中的其他分区的版本号不同。
11.根据权利要求10所述的映射关系更新装置,其特征在于,所述映射关系更新装置还包括冻结模块;
所述冻结模块,用于在所述更新模块更新所述目标分区中的部分GVA与本地虚拟地址LVA的映射关系前,冻结对所述目标分区的内存访问。
12.根据权利要求11所述的映射关系更新装置,其特征在于,所述冻结模块,具体用于为所述目标分区设置禁止访问标识。
13.根据权利要求12所述的映射关系更新装置,其特征在于,所述映射关系更新装置还包括恢复模块;
所述恢复模块,用于在所述更新模块完成更新所述目标分区中的部分GVA与本地虚拟地址LVA的映射关系后,恢复对所述目标分区的内存访问。
14.根据权利要求13所述的映射关系更新装置,其特征在于,所述恢复模块,具体用于清除所述禁止访问标识。
15.根据权利要求9所述的映射关系更新装置,其特征在于,所述更新模块,具体用于:
删除所述目标分区中的部分GVA和LVA的映射关系的映射缓存;
将更新后的所述目标分区中的部分GVA和LVA的映射关系加载至所述映射缓存。
16.根据权利要求9至15任一项所述的映射关系更新装置,其特征在于,所述多个分区是基于打散算法对所述GVA进行打散得到的。
17.一种节点,其特征在于,所述节点包括处理器和网卡,所述处理器和所述网卡通信连接,所述网卡执行权利要求1至8任一所述的方法。
18.一种网卡,其特征在于,所述网卡包括处理器和接口,所述处理器与所述接口连接,所述处理器执行权利要求1至8任一所述的方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品在计算机上执行时,使得所述计算机执行如权利要求1至8中任一项所述的方法。
20.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
CN202110018186.3A 2021-01-07 2021-01-07 一种映射关系更新的方法以及相关装置 Pending CN114741342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110018186.3A CN114741342A (zh) 2021-01-07 2021-01-07 一种映射关系更新的方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110018186.3A CN114741342A (zh) 2021-01-07 2021-01-07 一种映射关系更新的方法以及相关装置

Publications (1)

Publication Number Publication Date
CN114741342A true CN114741342A (zh) 2022-07-12

Family

ID=82274192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110018186.3A Pending CN114741342A (zh) 2021-01-07 2021-01-07 一种映射关系更新的方法以及相关装置

Country Status (1)

Country Link
CN (1) CN114741342A (zh)

Similar Documents

Publication Publication Date Title
US10019364B2 (en) Access-based eviction of blocks from solid state drive cache memory
US9619389B1 (en) System for a backward and forward application environment compatible distributed shared coherent storage
US20190129840A1 (en) Memory system and method for controlling nonvolatile memory
US9274956B1 (en) Intelligent cache eviction at storage gateways
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
US8433888B2 (en) Network boot system
JP2017151982A (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
EP2711841A1 (en) Data processing method, device and system based on block storage
CN107329704B (zh) 一种缓存镜像方法及控制器
US9836223B2 (en) Changing storage volume ownership using cache memory
KR102412978B1 (ko) 이중 쓰기를 수행하는 스토리지 시스템 및 그것의 이중 쓰기 방법
US11644978B2 (en) Read and write load sharing in a storage array via partitioned ownership of data blocks
US9946485B1 (en) Efficient data marker representation
US20160019128A1 (en) Systems and methods providing mount catalogs for rapid volume mount
US20180307427A1 (en) Storage control apparatus and storage control method
US9563363B2 (en) Flexible storage block for a solid state drive (SSD)-based file system
CN114741342A (zh) 一种映射关系更新的方法以及相关装置
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium
CN114327248A (zh) 存储节点、存储设备及网络芯片
US9501290B1 (en) Techniques for generating unique identifiers
US11966590B2 (en) Persistent memory with cache coherent interconnect interface
CN112988034B (zh) 一种分布式***数据写入方法及装置
US20230376238A1 (en) Computing system for managing distributed storage devices, and method of operating the same
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
US20230359567A1 (en) Storage device, computing device including storage device and memory device, and operating method of computing device

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