CN110221779B - 分布式持久性内存存储***的构建方法 - Google Patents
分布式持久性内存存储***的构建方法 Download PDFInfo
- Publication number
- CN110221779B CN110221779B CN201910455259.8A CN201910455259A CN110221779B CN 110221779 B CN110221779 B CN 110221779B CN 201910455259 A CN201910455259 A CN 201910455259A CN 110221779 B CN110221779 B CN 110221779B
- Authority
- CN
- China
- Prior art keywords
- persistent
- distributed
- persistent memory
- memory
- storage system
- 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
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 136
- 230000005055 memory storage Effects 0.000 title claims abstract description 30
- 238000010276 construction Methods 0.000 title abstract description 8
- 230000015654 memory Effects 0.000 claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 230000010076 replication Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000012423 maintenance Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 3
- 230000007547 defect Effects 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 35
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式持久性内存存储***的构建方法,该方法包括以下步骤:通过RDMA网络将配备持久性内存的存储服务器互连,并编址为全局统一的虚拟地址空间;将存储***中各子***的共性功能模块进行统一抽象,在全局虚拟地址空间之上构建统一的分布式持久性共享内存框架;根据分布式持久性共享内存框架提供的基本功能模块实现各存储子***,以构建分布式持久性内存存储***;通过集群监听管理模块实时反馈集群信息,并协助分布式持久性内存存储***进行工作。该构建方法具有软件层次简洁、软件***开销低、访问接口安全、性能高、易管理等特点,消除了传统***架构复杂、功能冗余的缺陷。
Description
技术领域
本发明涉及分布式存储***技术领域,特别涉及一种分布式持久性内存存储***的构建方法。
背景技术
远程直接内存访问(Remote Direct Memory Access,RDMA)能够在双方操作***不介入的情况下直接将数据传输到应用程序内存或从应用程序内存读取数据。基于RDMA的数据传输无需在应用程序内存和操作***中的数据缓冲区之间拷贝数据,从而实现了零拷贝数据传输。最新的RDMA网卡已经支持100Gbps的网络传输带宽和亚微妙级的传输延迟。
新型持久性内存(PersistentMemory,PM)具有以下特性:1)数据掉电不丢失;2)相比于传统DRAM(DynamicRandom Access Memory,动态随机存取存储器),其存储密度更大;3)在读写性能方面,比传统闪存和磁盘要高出若干数量级,读写性能接近DRAM;4)相比于闪存,其具有更高的寿命。
RDMA和PM分别在网络和存储上提供了极高的性能,因此结合RDMA和PM构建高效的存储***充满前景。然而,RDMA和PM也展现出与传统以太网和外存设备完全不同的硬件特性:RDMA可以在远端CPU不参与情况下直接访问远端内存,这与传统的基于套接字的数据收发模式完全不同,同时RDMA提供了丰富的传输原语,他们在语义、性能等方面各不相同;持久性内存则在读写延迟不对称性、一致性管理方法等方面与传统外存设备不同,持久性内存直接通过内存总线接入到CPU,因此持久性-易失性边界从传统的内外存上移到CPU缓存和主存之间,数据是否到达PM完全由硬件决定,数据持久化过程软件不可控,这为PM上的数据一致性管理带来新的挑战。
目前,为充分发挥RDMA的硬件特性,降低PM数据一致性管理的开销,现有的工作针对不同的存储子***提出了不同的方案,然而,将这些技术分别应用到分布式持久性内存存储***的不同子***,将导致功能冗余,架构复杂,甚至彼此冲突等情况。
综上,目前还没有一种有效的途径能够将RDMA和PM有机结合,构建高性能、可靠、易管理的大型存储***是十分必要的。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明目的在于提出一种分布式持久性内存存储***的构建方法,该方法具有软件层次简洁、软件***开销低、访问接口安全、性能高、易管理等特点,消除了传统***架构复杂、功能冗余的缺陷。
为达到上述目的,本发明面提出了分布式持久性内存存储***的构建方法,包括以下步骤:S1:通过RDMA网络将配备持久性内存的存储服务器互连,并编址为全局统一的虚拟地址空间;S2:将存储***中各子***的共性功能模块进行统一抽象,在所述全局虚拟地址空间之上构建统一的分布式持久性共享内存框架;S3:根据所述分布式持久性共享内存框架提供的基本功能模块实现各存储子***,以构建分布式持久性内存存储***;S4:通过集群监听管理模块实时反馈集群信息,并协助所述分布式持久性内存存储***进行工作。
本发明实施例的分布式持久性内存存储***的构建方法,分布式持久性内存存储***打破了各子***彼此独立的架构模式,将各子***的共性功能统一集成到分布式持久性共享内存框架中,消除了传统***架构复杂、功能冗余的缺陷。
另外,根据本发明上述实施例的分布式持久性内存存储***的构建方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述步骤S1包括:接受客户端服务器发送的指令,使得所述客户端服务器通过所述全局虚拟地址透明地定位到目标存储服务器的持久性内存特定偏移位置,并通过所述RDMA网络直接读/写远端持久性内存。
进一步地,在本发明的一个实施例中,所述步骤S2包括:将所述各子***的持久性内存空间管理模块集成至所述分布式共享内存框架,构建分布式持久性内存分配器,即持久性内存堆,完成细粒度的持久性内存空间分配、释放和碎片管理功能;在所述分布式共享内存框架中,基于持久性内存和RDMA的分布式事务机制统一接管所述各子***的并发多操作请求;在所述分布式共享内存框架中,基于所述持久性内存和RDMA的分布式复制协议统一接管所述各子***的多副本容灾功能。
进一步地,在本发明的一个实施例中,还包括:基于所述分布式持久性共享内存框架提供基于持久性内存的持久性对象管理模式,使得子***将粗粒度的文件数据或数据库条目以对象格式进行存储。
进一步地,在本发明的一个实施例中,所述持久性对象管理模块和所述持久性内存堆基于所述全局虚拟地址管理持久性内存,且二者使用的全局虚拟地址空间彼此不交叠。
进一步地,在本发明的一个实施例中,所述分布式复制协议与所述全局虚拟地址协同工作,使得复制功能对上层应用透明。
进一步地,在本发明的一个实施例中,所述分布式复制协议采用复制状态机对所述粗粒度的对象管理进行一致性的多副本管理,以通过维护跨节点的远端日志对所述细粒度的持久性堆实现容灾管理。
可选地,在本发明的一个实施例中,所述分布式持久性共享内存框架包括内存式访问接口、对象式访问接口、事务式访问接口和复制式访问接口中的一项或多项。
进一步地,在本发明的一个实施例中,所述步骤S3包括:通过分布式事务机制对子***的元数据管理或索引结构维护。
进一步地,在本发明的一个实施例中,所述步骤S4包括:通过所述集群监听管理模块存储集群成员列表和所述全局虚拟地址与物理地址的映射表,其中,若所述成员列表或所述映射表发生变化,通过一致性协调模块将相应修改信息通知给集群内所有节点,以实现统一的全局视图。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例的分布式持久性内存存储***的构建方法流程图;
图2是本发明一个实施例的全局虚拟地址空间与物理内存之间的映射关系示意图;
图3是本发明一个实施例的是本发明一个实施例的全局虚拟地址与复制***协同示意图;
图4是本发明一个实施例的是本发明一个实施例的分布式持久性共享内存框架接口依赖关系图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的分布式持久性内存存储***的构建方法。
首先,本发明实施例基于的分布式持久性内存存储***向应用程序提供持久性内存堆、文件存储、键值存储和关系型数据库等多种存储服务,分布式持久性内存存储***包括多个存储服务器和多个客户端服务器,其中,存储服务器配备持久性内存存储器件,存储服务器和客户端服务器配备RDMA网卡,并通过RDMA交换机互连。
图1是本发明一个实施例的分布式持久性内存存储***的构建方法流程图。
如图1所示,该分布式持久性内存存储***的构建方法包括以下步骤:
在步骤S1中,通过RDMA网络将配备持久性内存的存储服务器互连,并编址为全局统一的虚拟地址空间。
进一步地,在本发明的一个实施例中,步骤S1包括:接受客户端服务器发送的指令,使得客户端服务器通过全局虚拟地址透明地定位到目标存储服务器的持久性内存特定偏移位置,并通过RDMA网络直接读/写远端持久性内存。
也就是说,通过查询映射表,客户端服务器可通过全局虚拟地址透明地定位到特定存储服务器的持久性内存特定偏移位置,并通过RDMA网络直接读/写远端持久性内存。
也可以理解为,本发明的实施例首先需要进行步骤S1:持久性内存与网络初始化。例如,步骤S1可以包括以下步骤:
步骤S101,根据单节点存储服务器的存储容量以及应用程序需求量确定持久性内存预留空间大小;
步骤S102,从操作***预留持久性内存空间;
步骤S103,存储服务器之间建立RDMA网络链路,同时将预留的持久性内存空间注册到RDMA网卡。
具体而言,步骤S102可有多种途径预留持久性内存空间,例如:通过Linux操作***的nvdimm驱动将持久性内存空间抽象为字符设备,然后挂载文件***,最后以mmap的方式导入到用户态。又例如:通过Intel提供的ndctl工具动态改变字符设备容量,然后直接mmap到用户空间。步骤S1.3的注册流程是为了促使持久性内存可以被远端CPU直接访问,通过RDMA的原语ibv_reg_mr完成。
作为具体示例,编制的方法如图2所示,将各节点的持久性内存空间切割为固定大小的内存块(例如块大小为2GB),然后将这些内存块顺序或乱序地映射到全局地址空间上。应理解,另一种途径是直接将单个节点的全部持久性内存连续地映射到全局地址空间上。以上两种方案在实现难度、负载均衡等方面具有不同的效果,可按照实际需求设定。
本发明实施例在步骤S1之后,可以将各存储服务器的持久性内存编址为全局统一的虚拟地址空间。
在步骤S2中,将存储***中各子***的共性功能模块进行统一抽象,在全局虚拟地址空间之上构建统一的分布式持久性共享内存框架。
其中,共性功能模块可以包括空间管理、并发控制、容灾管理等。
进一步地,在本发明的一个实施例中,步骤S2包括:将各子***的持久性内存空间管理模块集成至分布式共享内存框架,构建分布式持久性内存分配器,即持久性内存堆,完成细粒度的持久性内存空间分配、释放和碎片管理功能;在分布式共享内存框架中,基于持久性内存和RDMA的分布式事务机制统一接管各子***的并发多操作请求;在分布式共享内存框架中,实现基于持久性内存和RDMA的分布式事务机制,统一接管各子***的并发多操作请求;在分布式共享内存框架中实现基于持久性内存和RDMA的分布式复制协议,统一接管各子***的多副本容灾功能。
具体而言,1)文件存储子***中基于位图的元数据/数据管理、键值存储子***中索引结构空间管理等集成至分布式共享内存框架,统一由持久性内存分配器接管。本发明实施例不限制持久性内存分配器的具体构建方案,可行的方案包括基于位图的多粒度的slab内存分配器、追加写的日志式分配器等。2)文件存储子***中对文件的修改将涉及到同时对数据页、文件元数据以及父目录元数据修改。同样地,键值存储子***中的增删操作需同时对记录条目、索引结构等多个地方进行修改。为保证操作的正确性,这些子***各自会引入事务机制实现ACID(Atomicity,Consistency,Isolation,Durability)特性。本发明实施例不限制事务机制的具体构建方案,可行的并发控制方案包括两阶段锁和乐观并发控制等,可行的一致性提交协议包括两阶段提交协议等。3)为保证在集群中存储节点发生故障后存储***继续可用,各子***均需引入多副本技术进行灾备。本发明实施例不限制多副本技术的具体构建方案,可行的方案包括主从备份、去中心化的多副本技术等。
进一步地,基于分布式持久性共享内存框架提供基于持久性内存的持久性对象管理模式,文件存储、键值存储等子***可直接将粗粒度的文件数据或数据库条目以对象格式进行存储,使得子***将粗粒度的文件数据或数据库条目以对象格式进行存储。
具体地,对象管理模式将持久性内存空间以对象模式进行管理,客户端服务器可直接通过对象标识符索引对象数据。一般地,每个对象的长度有限制,例如64MB等。因此,文件存储子***可将文件切割为多个对象,并通过文件元数据间接索引,键值存储子***则可将多个记录条目拼合成一个对象,存放到对象存储中。
进一步地,在本发明的一个实施例中,持久性对象管理模块和持久性内存堆基于全局虚拟地址管理持久性内存,且二者使用的全局虚拟地址空间彼此不交叠。
举例而言,在全局虚拟地址空间之上,持久性内存堆从低地址到高地址开始分配空间,而持久性对象存储则从高地址到低地址分配空间。为防止地址空间在长期运行后交叠,可将虚拟地址长度设置为16字节或者更高。方案将二者从逻辑空间隔离,可对持久性堆和对象存储实施不同的各自最优的空间分配策略以及容灾策略。
进一步地,在本发明的一个实施例中,分布式复制协议与全局虚拟地址协同工作,使得复制功能对上层应用透明。
具体而言,全局虚拟地址在编制过程中,自动将备份空间隐藏起来,上层***无法直接访问备份空间。例如,参考图3所示,复制***采用三备份策略,则全局虚拟地址Va对应到三处物理空间P1,P2,P3,且P1为主备份空间,另两处为副备份空间。其中,两处副备份空间对上层***不可见。一旦某备份空间发生事故,如断电等,全局虚拟地址的映射表则更新相应的表项。复制***选取新的备份位置,进行数据迁移。此过程对上层应用完全透明。
进一步地,在本发明的一个实施例中,分布式复制协议采用复制状态机对粗粒度的对象管理进行一致性的多副本管理,以通过维护跨节点的远端日志对细粒度的持久性堆实现容灾管理。
可以理解为,对象空间用于存放粗粒度的文件数据、键值条目等。在备份粗粒度的更新数据时,网络带宽可以很好地被利用起来,因此,可以直接采用复制状态机(如Paxos,Raft等)将任何一次对象修改扩散到所有备份空间。然而,持久性堆空间用于存放文件***元数据、键值存储***索引结构等细粒度数据。此外,文件***、键值存储***的单次更新操作往往涉及到对持久性堆的多次修改。因此,如果用上述复制状态机进行灾备,则每一次小粒度的更新都需要发送到备份节点,这样会极大限制网络传输效率和处理器处理效率。为此,本发明实施例提出通过基于跨节点的远端日志进行灾备。例如,文件***或键值存储***在更新元数据或索引结构时,可以将相应的修改先缓存住,等到操作提交时,一次性将缓存住的更新内容扩散到备份节点。通过方法,可以极大地降低网络传输次数,更加有效利用网络带宽,降低处理器开销。
进一步地,在本发明的一个实施例中,分布式持久性共享内存框架可以包括内存式访问接口、对象式访问接口、事务式访问接口和复制式访问接口中的一项或多项。上述只提出了的四个接口,但本发明实施例不做具体限定。
具体而言,如图4所示,复制接口作为透明服务,与全局地址空间在持久性共享内存框架的软件栈最底层协同工作;紧接着,持久性内存堆和对象存储分别基于全局地址空间管理各自的持久性内存,并向上层提供内存式和对象式访问接口;最后基于持久性堆的内存式接口,构建具有ACID特性的分布式事务***,并向上层提供事务接口。
在步骤S3中,根据分布式持久性共享内存框架提供的基本功能模块实现各存储子***,以构建分布式持久性内存存储***。
进一步地,在本发明的一个实施例中,步骤S3包括:通过分布式事务机制对子***的元数据管理或索引结构维护。
可以理解的是,文件***、键值存储***、数据库***等元数据管理相对复杂,文件***中创建一个文件的具体流程涉及到分配inode(修改对应位图)、初始化inode、修改父目录dentry,修改父目录inode等一系列操作。同时,文件***还需保证文件创建操作的ACID特性,因此,通过持久性共享内存框架的分布式事务***进行一致性的元数据更新,在保证高性能的同时,还能大大降低文件***本身维护的复杂性。同理,键值存储***的索引结构更新也采用事务处理***统一接管。
在步骤S4中,通过集群监听管理模块实时反馈集群信息,并协助分布式持久性内存存储***进行工作。
可以理解为,通过集群监听管理模块实时反馈集群信息,协助分布式持久性内存存储***进行成员管理、存储监控、信息采集和在线测试。
进一步地,在本发明的一个实施例中,通过集群监听管理模块存储集群成员列表和全局虚拟地址与物理地址的映射表,其中,一旦成员列表或映射表发生变化,通过一致性协调模块将相应修改信息通知给集群内所有节点,以实现统一的全局视图。
举例而言,成员列表和映射表存储在每一台存储服务器上。一旦成员列表或映射表发生修改,相应的修改内容将通过共识协议传播到所有的存储服务器和客户端服务器上。共识协议通过Paxos及其变种进一步实现。可理解为,成员列表和映射表需持久化存储,以保证在集群重启后可以沿用上一轮的运行状态。为降低持久化存储开销,一种可行的方法是,仅在存储服务器中的一台上进行持久化存储,而其他服务器则直接将内容存放在内存中。一旦持久化存储服务器发生故障,则立即选举新的存储服务器进行持久化存储。在集群正常关闭之前,所有机器均将存储信息转移到持久性内存中进行持久化存储。
根据本发明实施例提出的分布式持久性内存存储***的构建方法,分布式持久性内存存储***打破了各子***彼此独立的架构模式,将各子***的共性功能统一集成到分布式持久性共享内存框架中,具有软件层次简洁、软件***开销低、访问接口安全、性能高、易管理等特点,消除了传统***架构复杂、功能冗余的缺陷。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (9)
1.一种分布式持久性内存存储***的构建方法,其特征在于,包括以下步骤:
S1:通过RDMA网络将配备持久性内存的存储服务器互连,并编址为全局统一的虚拟地址空间;
S2:将存储***中各子***的共性功能模块进行统一抽象,在所述全局虚拟地址空间之上构建统一的分布式持久性共享内存框架,具体包括:将所述各子***的持久性内存空间管理模块集成至所述分布式共享内存框架,构建分布式持久性内存分配器,即持久性内存堆,完成细粒度的持久性内存空间分配、释放和碎片管理功能;在所述分布式共享内存框架中,基于持久性内存和RDMA的分布式事务机制统一接管所述各子***的并发多操作请求;在所述分布式共享内存框架中,基于所述持久性内存和RDMA的分布式复制协议统一接管所述各子***的多副本容灾功能;
S3:根据所述分布式持久性共享内存框架提供的基本功能模块实现各存储子***,以构建分布式持久性内存存储***;以及
S4:通过集群监听管理模块实时反馈集群信息,并协助所述分布式持久性内存存储***进行工作。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
接受客户端服务器发送的指令,使得所述客户端服务器通过所述全局虚拟地址透明地定位到目标存储服务器的持久性内存特定偏移位置,并通过所述RDMA网络直接读/写远端持久性内存。
3.根据权利要求1所述的方法,其特征在于,还包括:
基于所述分布式持久性共享内存框架提供基于持久性内存的持久性对象管理模式,使得子***将粗粒度的文件数据或数据库条目以对象格式进行存储。
4.根据权利要求3所述的方法,其特征在于,所述持久性对象管理模块和所述持久性内存堆基于所述全局虚拟地址管理持久性内存,且二者使用的全局虚拟地址空间彼此不交叠。
5.根据权利要求3所述的方法,其特征在于,所述分布式复制协议与所述全局虚拟地址协同工作,使得复制功能对上层应用透明。
6.根据权利要求3所述的方法,其特征在于,所述分布式复制协议采用复制状态机对所述粗粒度的对象管理进行一致性的多副本管理,以通过维护跨节点的远端日志对所述细粒度的持久性堆实现容灾管理。
7.根据权利要求1所述的方法,其特征在于,所述分布式持久性共享内存框架包括内存式访问接口、对象式访问接口、事务式访问接口和复制式访问接口中的一项或多项。
8.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
通过分布式事务机制对子***的元数据管理或索引结构维护。
9.根据权利要求1所述的方法,其特征在于,所述步骤S4包括:
通过所述集群监听管理模块存储集群成员列表和所述全局虚拟地址与物理地址的映射表,其中,若所述成员列表或所述映射表发生变化,通过一致性协调模块将相应修改信息通知给集群内所有节点,以实现统一的全局视图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455259.8A CN110221779B (zh) | 2019-05-29 | 2019-05-29 | 分布式持久性内存存储***的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455259.8A CN110221779B (zh) | 2019-05-29 | 2019-05-29 | 分布式持久性内存存储***的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110221779A CN110221779A (zh) | 2019-09-10 |
CN110221779B true CN110221779B (zh) | 2020-06-19 |
Family
ID=67818748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910455259.8A Active CN110221779B (zh) | 2019-05-29 | 2019-05-29 | 分布式持久性内存存储***的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221779B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240588B (zh) * | 2019-12-31 | 2021-09-24 | 清华大学 | 一种持久性内存对象存储*** |
CN111241011B (zh) * | 2019-12-31 | 2022-04-15 | 清华大学 | 一种分布式持久性内存的全局地址空间管理方法 |
CN112286889B (zh) * | 2020-09-22 | 2022-07-26 | 北京航空航天大学 | 一种面向广域网的分布式文件***元数据副本同步方法 |
CN114817232A (zh) * | 2021-01-21 | 2022-07-29 | 华为技术有限公司 | 访问数据的方法及装置 |
CN113238856B (zh) * | 2021-03-09 | 2022-07-26 | 西安奥卡云数据科技有限公司 | 一种基于rdma的内存管理方法及装置 |
CN113254198B (zh) * | 2021-04-30 | 2022-08-05 | 南开大学 | 融合Linux虚拟内存***和文件***的持久性内存统一管理方法 |
CN113778949A (zh) * | 2021-09-27 | 2021-12-10 | 武汉英仕达信息技术有限公司 | 一种面向物联网的数据中间件*** |
CN114756388B (zh) * | 2022-03-28 | 2024-05-31 | 北京航空航天大学 | 一种基于rdma的集群***节点间按需共享内存的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477495A (zh) * | 2008-10-28 | 2009-07-08 | 北京航空航天大学 | 分布式内存虚拟化技术的实现方法 |
CN101859317A (zh) * | 2010-05-10 | 2010-10-13 | 浪潮电子信息产业股份有限公司 | 一种利用虚拟化构建数据库集群的方法 |
CN108037978A (zh) * | 2017-12-22 | 2018-05-15 | 天津津航计算技术研究所 | 一种基于虚拟化技术的计算资源管理方法 |
CN109063103A (zh) * | 2018-07-27 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式非易失文件*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944712B2 (en) * | 2002-12-10 | 2005-09-13 | Lsi Logic Corporation | Method and apparatus for mapping storage partitions of storage elements for host systems |
CN104270416B (zh) * | 2014-09-12 | 2018-03-13 | 杭州华为数字技术有限公司 | 负载均衡控制方法及管理节点 |
CN108268208B (zh) * | 2016-12-30 | 2020-01-17 | 清华大学 | 一种基于rdma的分布式内存文件*** |
CN109327539A (zh) * | 2018-11-15 | 2019-02-12 | 上海天玑数据技术有限公司 | 一种分布式块存储***及其数据路由方法 |
-
2019
- 2019-05-29 CN CN201910455259.8A patent/CN110221779B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477495A (zh) * | 2008-10-28 | 2009-07-08 | 北京航空航天大学 | 分布式内存虚拟化技术的实现方法 |
CN101859317A (zh) * | 2010-05-10 | 2010-10-13 | 浪潮电子信息产业股份有限公司 | 一种利用虚拟化构建数据库集群的方法 |
CN108037978A (zh) * | 2017-12-22 | 2018-05-15 | 天津津航计算技术研究所 | 一种基于虚拟化技术的计算资源管理方法 |
CN109063103A (zh) * | 2018-07-27 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式非易失文件*** |
Also Published As
Publication number | Publication date |
---|---|
CN110221779A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221779B (zh) | 分布式持久性内存存储***的构建方法 | |
KR101923334B1 (ko) | 데이터베이스 엔진 및 개별 분산 저장 서비스를 갖는 데이터베이스 시스템 | |
US10747673B2 (en) | System and method for facilitating cluster-level cache and memory space | |
MacCormick et al. | Boxwood: Abstractions as the Foundation for Storage Infrastructure. | |
US9507843B1 (en) | Efficient replication of distributed storage changes for read-only nodes of a distributed database | |
US8667001B2 (en) | Scalable database management software on a cluster of nodes using a shared-distributed flash memory | |
US6148377A (en) | Shared memory computer networks | |
EP1008047B1 (en) | System for providing highly available data storage using globally addressable memory | |
US9552242B1 (en) | Log-structured distributed storage using a single log sequence number space | |
US8700842B2 (en) | Minimizing write operations to a flash memory-based object store | |
US7707381B2 (en) | Storage system for processing access request from host and method for doing the same | |
US8131969B2 (en) | Updating system configuration information | |
US9251003B1 (en) | Database cache survivability across database failures | |
US20120017037A1 (en) | Cluster of processing nodes with distributed global flash memory using commodity server technology | |
KR20150129839A (ko) | 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피 | |
US11709780B2 (en) | Methods for managing storage systems with dual-port solid-state disks accessible by multiple hosts and devices thereof | |
US10802972B2 (en) | Distributed memory object apparatus and method enabling memory-speed data access for memory and storage semantics | |
US10803012B1 (en) | Variable data replication for storage systems implementing quorum-based durability schemes | |
US12050540B2 (en) | Methods for managing storage systems with dual-port solid-state disks accessible by multiple hosts and devices thereof | |
CN113590309B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20230185822A1 (en) | Distributed storage system | |
US20200042239A1 (en) | Distributed Memory Object Architecture | |
KR20230163238A (ko) | 분산된 스토리지 장치들을 관리하는 컴퓨팅 시스템, 및 그것의 동작하는 방법 | |
Skousen et al. | Implementing a Very Large Single Address Space Across Multiple Nodes: Memory Partitioning, Protection Domain Migration, Kernel Replication, Consistency and Fault Tolerance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |