CN112115521A - 数据访问方法及装置 - Google Patents
数据访问方法及装置 Download PDFInfo
- Publication number
- CN112115521A CN112115521A CN201910533925.5A CN201910533925A CN112115521A CN 112115521 A CN112115521 A CN 112115521A CN 201910533925 A CN201910533925 A CN 201910533925A CN 112115521 A CN112115521 A CN 112115521A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- read
- memory area
- write
- 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.)
- Granted
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据访问方法及装置,属于存储领域。在本申请中,接收写请求,根据写请求包括的地址指示信息获得待写入数据对应的内存区域的目标地址,以追加写的方式将待写入数据写入该目标地址所指示的内存区域中。在将待写入数据写入该内存区域之后,设置目标地址对应的读写属性,使得内存区域中的数据不能被修改,从而有效避免对内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
Description
技术领域
本申请涉及存储领域,特别涉及一种数据访问方法及装置。
背景技术
存储级内存(storage class memory,SCM)介质是当前业界关注的一种新介质形态,通常也被称为持久化内存介质或者是非易失性存储介质。SCM介质具备非易失性、访问速度快等特点。
相关技术中,中央处理器(central processing unit,CPU)在访问SCM介质时,通常会采用本地更新的方式进行访问。也即,对于SCM介质中已分配且还未回收的内存区域,CPU可以多次更新该内存区域中存储的数据。在这种情况下,SCM介质中的数据很容易遭到非法篡改,从而使得SCM介质中存储的数据遭到破坏。
发明内容
本申请提供了一种数据访问方法及装置。所述技术方案如下:
第一方面,提供了一种数据访问方法,所述方法包括:接收写请求,所述写请求包括待写入数据和地址指示信息;根据所述地址指示信息获得所述待写入数据对应的内存区域的目标地址,所述内存区域是指存储级内存SCM中的空间;以追加写的方式将所述待写入数据写入所述目标地址指示的内存区域中;在将所述待写入数据写入所述内存区域之后,设置所述目标地址对应的读写属性,使得所述内存区域中的数据不能被修改。
在本申请实施例中,接收写请求,根据写请求包括的地址指示信息获得待写入数据对应的内存区域的目标地址,以追加写的方式将待写入数据写入该内存区域中。在将待写入数据写入该内存区域之后,设置目标地址对应的读写属性,使得内存区域中的数据不能被修改,从而有效避免对内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
可选地,所述设置所述目标地址对应的读写属性包括:将所述目标地址对应的页表项的读写属性设置为只读属性。
可选地,在所述将所述待写入数据写入所述内存区域之前,所述方法还包括:确定所述目标地址对应的页表项的读写属性不为只读属性。当目标地址对应的页表项的读写属性不为只读属性时,说明该目标地址所指示的内存区域不为只读区域,允许写入数据。在这种情况下,可以将待写入数据写入该内存区域。
可选地,所述页表项的读写属性保存在内存管理单元MMU中。
可选地,所述页表项的读写属性保存在输入输出内存管理单元IOMMU中。
其中,在访问SCM的内存区域时,可以通过CPU核和MMU访问,也可以通过IO设备和IOMMU来访问。其中,MMU和IOMMU中均存储有用于将逻辑地址转换为物理地址的页表。
第二方面,提供了一种数据访问装置,所述数据访问装置具有实现上述第一方面中数据访问方法行为的功能。所述数据访问装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的数据访问方法。
第三方面,提供了一种数据访问装置,所述数据访问装置的结构中包括处理器和存储器,所述存储器用于存储支持数据访问装置执行上述第一方面所提供的数据访问方法的程序,以及存储用于实现上述第一方面所提供的数据访问方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据访问方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据访问方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案带来的有益效果至少包括:
在本申请实施例中,接收写请求,根据写请求包括的地址指示信息获得待写入数据对应的内存区域的目标地址,以追加写的方式将待写入数据写入该内存区域中。在将待写入数据写入该内存区域之后,设置目标地址对应的读写属性,使得内存区域中的数据不能被修改,从而有效避免对内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
附图说明
图1是本申请实施例提供的数据访问方法所涉及的分布式存储系统的示意图;
图2是本申请实施例提供的一种存储节点的结构示意图;
图3是本申请实施例提供的一种数据访问方法的流程图;
图4是本申请实施例示出的一种在已分配的内存区域中写入数据之后,该内存区域包括的已写入数据的区域和未写入数据的区域的示意图;
图5是本申请实施例提供的另一种数据访问方法的流程图;
图6是本申请实施例提供的一种数据访问装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的实施环境进行介绍。
图1是本申请实施例提供的数据访问方法所涉及的一种分布式存储系统的示意图。如图1所示,该系统中包括客户端节点101、集群管理节点102和多个存储节点103。
其中,客户端节点101可以分别与集群管理节点102、多个存储节点103进行通信,集群管理节点102也可以与多个存储节点103进行通信。
需要说明的是,集群管理节点102用于管理多个存储节点103。其中,为了保证数据均匀存储在多个存储节点103中,通常在选择存储节点时采用分布式哈希表方式进行路由。按照分布式哈希表方式,可以将哈希环均匀的划分为若干部分,每个部分称为一个分区,每个分区对应一个或多个存储节点103。该集群管理节点102中可以维护有该系统中每个分区的分区信息,并且,该集群管理节点102可以用于管理该系统中多个分区的分配。示例性地,在接收到客户端节点101发送的用于申请分区的分区信息的请求之后,该集群管理节点102可以根据维护的每个分区的负载,为该客户端节点101分配合适的分区,将分配的分区的分区信息反馈至客户点节点101,以便客户端节点101可以根据该分区信息实现数据的访问。
客户端节点101可以是客户端服务器。当进行数据访问时,客户端节点101可以与集群管理节点102进行交互,以获取分区信息,进而根据获取的分区信息与对应的分区所对应的存储节点103进行通信,以实现数据的读写。例如,当写入数据时,该客户端节点101可以向集群管理节点102发送用于申请分区的分区信息的请求。集群管理节点102可以向客户端节点101反馈为其分配的分区的分区信息。客户端节点101在接收到该分区信息之后,可以将数据写入该分区信息对应的分区所对应的存储节点中。
每个存储节点103可以接收客户端节点101发送的数据访问请求,并通过本申请实施例提供的数据访问方法来对客户端节点101的数据访问请求进行响应。其中,该数据访问请求可以是追加写请求,所谓追加写是指写入的数据按照写入的时间先后顺序组织。并且,当某个程序的进程通过该种方式写入数据之后,后续该进程将不会再对该数据所在的区域执行写操作,只会进行读操作。
图2是本申请实施例提供的一种存储节点的结构示意图。图1中的分布式存储系统中的存储节点即可以通过图2所示的存储节点来实现。参见图2,该存储节点包括至少一个处理器201,通信总线202,存储器203、输入输出(Input Output,IO)设备204和输入输出内存管理单元205(Input Output Memory Management Unit,IOMMU)。
处理器201可以是一个通用中央处理器(Central Processing Unit,CPU)。该处理器201可以包括一个或多个CPU核(core)2011以及一个或多个内存管理单元(MemoryManagement Unit,MMU)2012。
可选地,在一种可能的实现方式中,MMU2012也可以独立于CPU。
通信总线202可包括一通路,在上述组件之间传送信息。
存储器203可以为诸如相变存储器(Phase-change memory,PCM)、阻抗随机存取存储器(resistive random access memory,ReRAM))、磁性随机存取存储器(magneticrandom access memory,MRAM)等SCM介质。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。其中,存储器203用于实现持久化数据的存储。
需要说明的是,CPU核2011可以通过MMU2012访问存储器203。示例性地,CPU核2011可以将要访问的逻辑地址传输至MMU2012,MMU2012可以根据存储的第一页表将逻辑地址转换为物理地址,进而通过该物理地址访问存储器203。其中,第一页表中存储有CUP可访问的逻辑地址与物理地址之间的映射关系。
输入输出设备204可以通过IOMMU205访问存储器203,以从存储器203中读取数据。
需要说明的是,IO设备204可以将要访问的逻辑地址发送至IOMMU205,IOMMU205可以根据存储的第二页表将接收到的逻辑地址转换为物理地址,进而通过该物理地址访问存储器203。其中,第二页表中存储有输入设备和输出设备能够访问的逻辑地址与物理地址之间的映射关系。需要说明的是,该IO设备204可以是远程直接数据存取(Remote DirectMemory Access,RDMA)网卡。
在具体实现中,作为一种实施例,该存储节点可以包括多个处理器,例如图2中所示的处理器201和处理器206。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指用于处理数据(例如计算机程序指令)的处理核。
上述的存储节点可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,该存储节点可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal DigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备或者嵌入式设备。本发明实施例不限定计算机设备的类型。
其中,存储器203还用于存储执行本申请方案的程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的程序代码。程序代码中可以包括一个或多个软件模块。图1中所示的分布式存储系统中的存储节点可以通过处理器201以及存储器203中的程序代码中的一个或多个软件模块,来实现数据的访问。
接下来对本申请实施例提供的数据访问方法进行介绍。
图3是本申请实施例提供的一种数据访问方法的流程图。该方法可以应用于图1所示的分布式存储场景下,由图2所示存储节点来执行,参见图3,该方法包括以下步骤:
步骤301:接收写请求,该写请求中包括待写入数据和地址指示信息。
在本申请实施例中,存储节点接收客户端节点发送的写请求。其中,该写请求中可以携带待写入数据,该待写入数据即为请求写入到该存储节点中的数据。
需要说明的是,根据客户端节点的不同,该写请求可以是通过该存储节点的IO设备接收的写请求,也可以不为IO设备接收的写请求。
另外,追加写请求是指按照追加(append only)方式发送的写请求。所谓追加方式是指写入的数据按照写入的时间先后顺序组织。并且,当某个程序的进程通过该种方式写入数据之后,后续该进程将不会再对该数据所在的区域执行写操作,只会进行读操作。
步骤302:根据地址指示信息获得待写入数据对应的内存区域的目标地址,并检测该内存区域是否允许写入数据。
在接收到写请求之后,该存储节点可以根据写请求包括的地址指示信息确定待写入数据对应的内存区域的目标地址;确定该目标地址对应的页表项的读写属性;如果该目标地址对应的页表项的读写属性不为只读属性,则确定该内存区域允许写入数据。
在本申请实施例中,地址指示信息可以包括偏移(offset)量和待写入数据的数据长度。其中,偏移量用于指示在为待写入数据所对应的程序分配的内存区域内当前已写入数据的区域的长度信息。该存储节点可以根据偏移量确定待写入数据对应的内存区域的起始逻辑地址,之后,该存储节点可以根据内存区域的起始逻辑地址和待写入数据的数据长度确定内存区域的结束逻辑地址。将该内存区域的起始逻辑地址到结束逻辑地址的所有逻辑地址作为该内存区域的目标地址。
在确定该内存区域的目标地址之后,如果该写请求不是通过IO设备接收的写请求,则说明该写请求是需要通过CPU核和MMU来访问SCM介质的写请求。在这种情况下,该存储节点可以将该内存区域的目标地址发送至MMU。MMU可以根据该内存区域的目标地址,从存储的第一页表中获取该目标地址对应的页表项的读写属性。如果该第一页表中该目标地址对应的页表项的读写属性不为只读属性,则说明该该内存区域内允许写入数据。否则,则可以确定该该内存区域不允许写入数据。
其中,第一页表中存储有CPU的地址空间中的逻辑地址与SCM中已分配区域的物理地址之间的映射关系。当存储节点中的CPU核访问SCM介质时,CPU核可以将要访问的内存区域的逻辑地址传输至MMU,MMU可以通过第一页表将要访问的逻辑地址转换为对应的物理地址。
示例性地,MMU中存储的第一页表可以如表1中所示,其中,该第一页表以页号作为索引,且页号根据逻辑地址确定得到。例如,对于16位的逻辑地址,可以将所有可能的16位逻辑地址的高四位作为该第一页表中的页号,每个页号可以用于指示一个逻辑地址范围。每个页号对应一个页表项,且每个页号对应的页表项中包括页框号以及保护位。该页框号可以用于指示一个物理地址范围。该保护位可以用于指示相应物理地址的访问形式。其中,当该保护位为第一数值时,用于指示对应的页框号所指示的物理地址范围对应的内存区域的读写属性为只读属性,当该保护位为第二数值时,用于指示对应的页框号所指示的物理地址范围对应的内存区域的读写属性为非只读属性,也即,既可以读取数据,也可以写入数据。其中,第一数值和第二数值不同,如表1中所示,第一数值可以为1,第二数值可以为0。
表1
页号 | 页框号 | 保护位 |
0 | 010 | 0 |
1 | 001 | 1 |
2 | 110 | 0 |
3 | 000 | 0 |
… | … | … |
可选地,如果该写请求是通过IO设备接收的写请求,则说明针对该写请求,可以通过IO设备来访问SCM介质。在这种情况下,该存储节点可以将该该内存区域的目标地址发送至该存储节点的IOMMU。IOMMU可以根据该目标地址,从存储的第二页表中获取该目标地址对应的页表项的读写属性。如果该第二页表中该目标地址对应的页表项的读写属性不为只读属性,则说明该内存区域允许写入数据。否则,可以说明该内存区域只允许读而不允许写,也即,存储节点不能再在该内存区域内写入数据,该内存区域不允许写入数据。
需要说明的是,第二页表中存储有IO设备的地址空间中的逻辑地址与SCM介质中已分配区域的物理地址之间的映射关系。当存储节点中的IO设备访问SCM介质时,IO设备可以将要访问的内存区域的逻辑地址传输至IOMMU,IOMMU可以通过的第二页表将该逻辑地址转换为对应的物理地址。
可选地,在一种可能的情况中,该存储节点可能还没有从SCM介质中为待写入数据所对应的程序分配内存区域。在这种情况下,客户端节点发送的写请求中携带的地址指示信息中可以仅包括待写入数据的数据量。基于此,存储节点在接收到客户端节点的写请求之后,还可以根据该写请求检测SCM介质中是否存在为待写入数据分配的内存区域。如果SCM介质中不存在为待写入数据分配的内存区域,则在执行本步骤之前,该存储节点可以首先为该待写入数据分配一个内存区域。其中,在为待写入数据分配内存区域时,可以根据该待写入数据所对应的应用程序,为该应用程序分配对应的内存区域。此时,分配的内存区域的空间将大于待写入数据占用的空间。在分配内存区域之后,该存储节点可以获取分配的内存区域中已写入数据的区域的长度信息。也即偏移量。由于分配的内存区域是刚分配的,并未写入数据,因此,该长度信息为0。根据该长度信息,该存储节点可以将分配的内存区域的起始逻辑地址作为待写入数据对应的内存区域的起始逻辑地址。之后,根据该起始逻辑地址和待写入数据的数据长度,来确定待写入数据对应的内存区域的结束逻辑地址。将该起始逻辑地址到结束逻辑地址之间的全部逻辑地址作为该内存区域的目标地址。由于该内存区域是在接收到该写请求时才分配的,因此,该内存区域之前并未写入过数据,在这种情况下,该内存区域的读写属性将不为只读属性,因此,该存储节点可以不必再检测获得的目标地址对应的页表项的读写属性是否为只读属性,而是可以直接将待写入数据写入到该内存区域中。
步骤303:如果该内存区域允许写入数据,则以追加写方式将待写入数据写入该内存区域。
如果确定待写入数据对应的内存区域内允许写入数据,则存储节点可以将该写请求包括的待写入数据通过追加方式写入到该内存区域中。
示例性地,如果该写请求为需要通过IO设备访问SCM介质的写请求,则存储节点可以将前述步骤中确定的内存区域的目标地址发送至IOMMU,IOMMU可以将该内存区域的目标地址转换为对应的物理地址,进而根据该物理地址,按照追加写方式将待写入数据写入到该内存区域中。需要说明的是,基于前述描述可知,IOMMU中存储有第二页表,该第二页表中存储有输入输出设备所能访问的逻辑地址与物理地址之间的映射关系。基于此,IOMMU可以从第二页表中查找内存区域的目标地址对应的物理地址。
可选地,如果该写请求为需要通过CPU访问SCM介质的写请求,则存储节点可以将前述步骤中确定的目标地址发送至MMU。MMU可以将目标地址转换为对应的物理地址,进而根据该物理地址,按照追加写方式将待写入数据写入到该内存区域中。需要说明的是,基于前述描述可知,MMU中存储有第一页表,该第一页表中存储有CPU核所能访问的逻辑地址与物理地址之间的映射关系。基于此,MMU可以从第一页表中查找该目标地址对应的物理地址。
在将待写入数据写入到内存区域之后,该存储节点可以对写入的数据进行持久化。示例性地,该存储节点可以从该内存区域中读取写入的数据,并对读取到的数据进行循环冗余校验(Cyclic Redundancy Check,CRC)。若校验成功,则表明完成了数据持久化。
需要说明的是,由于本申请实施例中将待写入数据按照追加写方式写入内存区域中,因此,对于写入该待写入数据的进程而言,后续,该进程再次写入数据时,会将数据写入到该内存区域之外的其他未写入过数据的区域中,而不会再对该内存区域执行写操作。但是,该进程可以对该该内存区域执行读操作。也即,该进程可以读取该内存区域中的数据。由此可见,通过该种方式将待写入数据写入到内存区域之后,该内存区域自然的成为了一个对于相应进程而言只读的区域。
图4是本申请实施例示出的一种在已分配的内存区域中写入数据之后,这个已分配的内存区域包括的已写入数据的区域和未写入数据的区域的示意图。如图4中所示,内存区域R1-R7为通过追加写方式已写入数据的区域,由于已按照追加写方式写入了数据,因此,后续,内存区域R1-R7不会再写入数据,从而形成了只读区域。而W8-W10是未写入数据的区域,后续将会继续在这部分区域内写入数据。
步骤304:设置写入数据后的内存区域的目标地址对应的读写属性,使得该内存区域中的数据不能被修改。
按照追加写方式将待写入数据写入到该内存区域之后,对于该待写入数据所对应的进程而言,该进程将不会再对该内存区域进行数据写入。但是,若该存储节点的硬件出现故障或者是存在出错的程序,则其他进程有可能对该该内存区域进行写操作。在这种情况下,为了避免写入该内存区域的数据被出错的程序意外改写,本申请实施例可以将写入数据后的内存区域的目标地址对应的页表项设置为只读属性,以使该内存区域中的数据无法被修改。
其中,在一种可能的实现方式中,如果待写入数据是通过CPU核和MMU写入到该内存区域的,则存储节点可以将该目标地址在MMU存储的第一页表中对应的页表项设置为只读属性。具体地,存储节点可以通过系统调用syscall将MMU存储的第一页表中该目标地址对应的页表项的读写属性设置为只读属性。
在本申请实施例中,基于前述表1中示出的第一页表,存储节点可以通过系统调用获取MMU中存储的该第一页表。之后,该存储节点可以根据该目标地址确定得到至少一个页号。从第一页表中查找确定的每个页号对应的页表项,并将相应页表项中用于指示该页表项的读写属性的保护位设置为第一数值。其中,第一数值用于指示相应页表项中页框号所指示的物理地址范围对应的内存区域为只读属性。
值得注意的是,正是由于本申请实施例通过追加写方式将待写入数据写入该内存区域,使得该内存区域对于待写入数据所对应的进程而言形成了一个只读区域,因此,存储节点可以将该目标地址在第一页表中对应的页表项设置为只读属性。而对于相关技术,由于CPU是通过本地更新方式来访问SCM介质的,所以,在将数据写入某个区域之后,无法将这个区域的逻辑地址在第一页表对应的页表项设置为只读属性,因而也就无法实现对该区域内的数据的保护。
在将第一页表中的目标地址对应的页表项设置为只读属性之后,当后续存储节点再次接收到通过CPU访问该内存区域的写请求时,可以通过MMU检测接收到的写请求所要访问的逻辑地址在第一页表中对应的页表项的读写属性是否为只读属性。如果是只读属性,则可以生成第一异常信息。其中,第一异常信息用于指示写请求为异常请求。
需要说明的是,对于通过前述方式写入数据的内存区域,由于写入数据之后的内存区域的逻辑地址在第一页表中对应的页表项已经设置为只读属性,因此,如果后续该存储节点再次接收到针对这些已设置为只读的区域的写请求,且需要通过CPU写入数据时,存储节点可以将该写请求中携带的逻辑地址发送至MMU。MMU根据第一页表中这些区域的逻辑地址对应的页表项的读写属性判断出这些区域为只读区域。在这种情况下,MMU将会产生一个异常信号。该存储节点可以根据该异常信号判定该写请求为异常请求。也即,通过CPU对已经写入数据的只读内存区域的访问是非法访问。此时,该存储节点可以拒绝响应该写请求,并根据MMU产生的异常信号生成异常信息,以此来指示该写请求为异常请求。由此可见,通过将写入数据后的内存区域在第一页表中对应的页表项设置为只读属性,避免了这些内存区域中的数据被其他程序意外改写,从而实现了对这些内存区域中的数据的只读保护。
另外,第一异常信息中可以包括用于指示写请求为异常请求的信息,除此之外,还可以包括写请求的进程信息,该进程信息是指用于指示写请求所对应的程序的信息,这样,后续根据该第一异常信息即可以确定出是哪段程序试图对已经写入数据的只读内存区域进行改写,从而方便用户对出错的程序进行定位。
可选地,在另一种可能的实现方式中,如果待写入数据是通过IO设备写入到该内存区域的,则该存储节点可以将该目标地址在IOMMU中存储的第二页表中所对应的页表项设置为只读属性。具体地,该存储节点可以通过syscall将IOMMU存储的第二页表中该目标地址对应的页表项的读写属性设置为只读属性。
在将目标地址在第二页表中对应的页表项设置为只读属性之后,当后续存储节点再次接收到通过IO设备访问内存区域的写请求时,可以通过IOMMU检测再次接收到的写请求所要访问的区域的逻辑地址在第二页表中对应的页表项的读写属性是否为只读属性;如果为只读属性,则生成第二异常信息,第二异常信息用于指示写请求为异常请求,且该第二异常信息包括写请求的进程信息。
需要说明的是,对于通过前述方式写入数据的内存区域,由于写入数据之后的内存区域的逻辑地址在第二页表中对应的页表项已经设置为只读属性,因此,如果后续再次接收到针对这些已设置为只读的区域的写请求,且需要通过IO设备写入数据时,存储节点可以将该写请求所针对的这些区域的逻辑地址发送至IOMMU,IOMMU根据第二页表将会检测到该逻辑地址对应的页表项的读写属性为只读属性。在这种情况下,IOMMU将会产生一个异常信号,该存储节点根据该异常信号即可以判定写请求为异常请求。也即,通过该IO设备对已经写入数据的只读内存区域进行的访问是非法访问。此时,该存储节点可以拒绝响应该写请求,并根据IOMMU的异常信号生成第二异常信息,以此来指示该写请求为异常请求。由此可见,通过将写入数据后的内存区域在第二页表中对应的页表项设置为只读属性,避免了这些内存区域中的数据被IO设备再次改写,从而实现了对这些内存区域中的数据的只读保护。这样,即使IO设备出现故障,也不会导致对上述这些内存区域中的数据的破坏,并且,相较于相关技术中IO设备通过直接存储器访问(Direct Memory Access,DMA)方式使用物理地址访问SCM,可以避免DMA的恶意攻击。
值得说明的是,在本申请实施例中,该存储节点在将待写入数据写入内存区域之后,可以将第一页表中目标地址对应的页表项设置为只读属性,或者,将第二页表中目标地址对应的页表项设置为只读属性,或者,可以同时将第一页表和第二页表中目标地址对应的页表项设置为只读属性。
在本申请实施例中,接收写请求,根据写请求包括的地址指示信息获得待写入数据对应的内存区域的目标地址,以追加写的方式将待写入数据写入该内存区域中。在将待写入数据写入该内存区域之后,设置目标地址对应的读写属性,使得内存区域中的数据不能被修改,从而有效避免对内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
上述实施例主要介绍了存储节点进行数据访问的具体实现方式。由上述实施例可知,客户端节点在写入数据时,可以通过存储节点的CPU对SCM介质进行访问,也可以通过存储节点中的IO设备对SCM介质进行访问。接下来,将结合图5来介绍在图1所示的分布式存储系统中,客户端节点向存储节点中写入数据的实现过程。
图5是本申请实施例提供的一种数据访问方法的流程图。该方法可以应用于图1所示的分布式存储系统中。参见图5,该方法包括以下步骤:
步骤501:客户端节点向集群管理节点发送分区申请请求,该分区申请请求用于向集群管理节点申请用于存储多个副本数据的分区。
需要说明的是,在分布式存储系统中,通常采用副本机制来保证存储数据的可靠性。其中,当客户端节点要将数据存入存储节点中时,该客户端节点可以生成多副本数据,其中,各副本数据相同。之后,该客户端节点可以向集群管理节点发送用于申请分区的分区申请请求。在本申请实施例中,以3个副本数据为例来进行说明。
步骤502:集群管理节点向客户端节点反馈分区信息。
集群管理节点在接收到分区申请请求之后,可以根据当前系统中各个分区的负载情况确定一个合适的分区,并从该分区包括的存储节点中为客户端节点的多副本数据分配与副本数据相同数量的存储节点。将确定的该分区的分区信息反馈至客户端节点。其中,该分区信息可以包括确定的分区的分区标识以及为客户端节点分配的该分区内的存储节点的节点标识。
可选地,在一种可能的实现方式中,该集群管理节点在确定合适的分区之后,可以直接将该分区包括的全部存储节点的标识均发送至客户端节点。在这种情况下,可以由客户端节点从中选择与其副本数据的数量相同数量的存储节点。
示例性地,当副本数据为3个时,从确定的分区中选择的存储节点的数量即为3。
步骤503:客户端节点根据分区信息确定每个副本数据对应的存储节点的路由信息。
客户端节点在接收到该分区信息之后,可以根据该分区信息中包含的分区标识以及确定的每个副本数据对应的存储节点的标识,确定每个副本数据对应的存储节点的路由信息。
步骤504:客户端节点根据每个副本数据对应的存储节点的路由信息,向每个副本数据对应的存储节点发送写请求,该写请求中包括对应的副本数据和地址指示信息。
该写请求可以为append_replica_data请求。且该追加请求的具体介绍可以参考前述实施例中的相关内容。
另外,在本申请实施例中,客户端节点向每个副本数据对应的存储节点发送写请求的操作可以并发执行。
步骤505:每个存储节点根据接收到的写请求包括的地址指示信息获得副本数据对应的内存区域的目标地址,并检测内存区域是否允许写入数据。
对于每个副本数据对应的存储节点,该存储节点均可以参照前述实施例中步骤302中介绍的实现方式,根据地址指示信息获得副本数据对应的内存区域,并检测该内存区域是否允许写入数据。
步骤506:如果每个存储节点上的内存区域允许写入数据,则以追加写方式将对应的副本数据写入内存区域。
对于每个副本数据对应的存储节点,如果该存储节点确定内存区域允许写入数据,则存储节点可以参考前述实施例中的步骤303将自身接收到的写请求包括的副本数据写入到对应的内存区域中。本申请实施例在此不再赘述。
步骤507:每个存储节点设置写入数据后的内存区域的目标地址的读写属性,以使内存区域中的数据不能被修改。
对于每个副本数据对应的存储节点而言,在将副本数据写入到对应的内存区域之后,可以参考前述实施例中步骤303中介绍的相关实现方式,将写入数据后的内存区域的逻辑地址对应的页表项设置为只读属性。
步骤508:每个存储节点向客户端节点发送写入成功通知消息。
对于每个副本数据对应的存储节点而言,在将写入数据后的内存区域的逻辑地址对应的页表项设置为只读属性之后,该存储节点可以向客户端节点反馈写入成功通知消息,以此来提示客户端节点相应地副本数据存储成功。
在本申请实施例中,客户端节点可以向存储节点发送写请求,存储节点在接收到写请求之后,根据写请求包括的地址指示信息获取待写入数据对应的内存区域的目标地址,并以追加写的方式将待写入数据写入该内存区域内。在写入数据之后,可以设置目标地址对应的读写属性,以使该内存区域中的数据不能被修改,从而有效避免了对该内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
接下来对本申请实施例提供的数据访问装置进行介绍。
参见图6,本申请实施例提供了一种数据访问装置600,该装置600包括:
接收模块601,用于执行上述实施例中的步骤301;其中,该接收模块601可以由图2所示的存储节点中的IO设备或者是处理器来执行。
获取模块602,用于执行上述实施例中的步骤302;其中,该获取模块602可以由图2所示的存储节点中的处理器来执行。
写入模块603,用于执行上述实施例中的步骤303或步骤506;其中,该写入模块603可以由图2所示的CPU和MMU来执行,或者是该写入模块603可以由图2所示的IO设备和IOMMU来执行。
设置模块604,用于执行上述实施例中的步骤304或步骤507;其中,该设置模块604可以图2所示的处理器来执行。
可选地,设置模块604具体用于:将目标地址对应的页表项的读写属性设置为只读属性。
可选地,该装置还包括:
确定模块,用于在写入模块将待写入数据写入内存区域之前,确定目标地址对应的页表项的读写属性不为只读属性。其中,该确定模块可以由图2所示的处理器来执行。
可选地,页表项的读写属性保存在内存管理单元MMU中。
可选地,页表项的读写属性保存在输入输出内存管理单元IOMMU中。
综上所述,在本申请实施例中,接收写请求,根据写请求包括的地址指示信息获得待写入数据对应的内存区域的目标地址,以追加写的方式将待写入数据写入该内存区域中。在将待写入数据写入该内存区域之后,设置目标地址对应的读写属性,使得内存区域中的数据不能被修改,从而有效避免对内存区域内存储的数据的非法篡改,实现了对SCM介质中的数据的只读保护。
需要说明的是:上述实施例提供的数据访问装置在进行数据访问时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据访问装置与数据访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据访问方法,其特征在于,所述方法包括:
接收写请求,所述写请求包括待写入数据和地址指示信息;
根据所述地址指示信息获得所述待写入数据对应的内存区域的目标地址,所述内存区域是指存储级内存SCM中的空间;
以追加写的方式将所述待写入数据写入所述目标地址指示的所述内存区域中;
在将所述待写入数据写入所述内存区域之后,设置所述目标地址对应的读写属性,使得所述内存区域中的数据不能被修改。
2.如权利要求1所述的方法,其特征在于,所述设置所述目标地址对应的读写属性包括:
将所述目标地址对应的页表项的读写属性设置为只读属性。
3.如权利要求2所述的方法,其特征在于,在所述将所述待写入数据写入所述内存区域之前,所述方法还包括:
确定所述目标地址对应的页表项的读写属性不为只读属性。
4.如权利要求2所述的方法,其特征在于,所述页表项的读写属性保存在内存管理单元MMU中。
5.如权利要求2所述的方法,其特征在于,所述页表项的读写属性保存在输入输出内存管理单元IOMMU中。
6.一种数据访问装置,其特征在于,所述装置包括:
接收模块,用于接收写请求,所述写请求包括待写入数据和地址指示信息;
获取模块,用于根据所述地址指示信息获得所述待写入数据对应的内存区域的目标地址,所述内存区域是指存储级内存SCM中的空间;
写入模块,用于以追加写的方式将所述待写入数据写入所述目标地址指示的所述内存区域中;
设置模块,用于在将所述待写入数据写入所述内存区域之后,设置所述目标地址对应的读写属性,使得所述内存区域中的数据不能被修改。
7.如权利要求6所述的装置,其特征在于,所述设置模块具体用于:
将所述目标地址对应的页表项的读写属性设置为只读属性。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
确定模块,用于在所述写入模块将所述待写入数据写入所述内存区域之前,确定所述目标地址对应的页表项的读写属性不为只读属性。
9.如权利要求7所述的装置,其特征在于,所述页表项的读写属性保存在内存管理单元MMU中。
10.如权利要求7所述的装置,其特征在于,所述页表项的读写属性保存在输入输出内存管理单元IOMMU中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533925.5A CN112115521B (zh) | 2019-06-19 | 2019-06-19 | 数据访问方法及装置 |
EP20825480.5A EP3964996A4 (en) | 2019-06-19 | 2020-06-02 | Database access method and device |
PCT/CN2020/094027 WO2020253523A1 (zh) | 2019-06-19 | 2020-06-02 | 数据访问方法及装置 |
US17/554,843 US20220107752A1 (en) | 2019-06-19 | 2021-12-17 | Data access method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533925.5A CN112115521B (zh) | 2019-06-19 | 2019-06-19 | 数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115521A true CN112115521A (zh) | 2020-12-22 |
CN112115521B CN112115521B (zh) | 2023-02-07 |
Family
ID=73795665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910533925.5A Active CN112115521B (zh) | 2019-06-19 | 2019-06-19 | 数据访问方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220107752A1 (zh) |
EP (1) | EP3964996A4 (zh) |
CN (1) | CN112115521B (zh) |
WO (1) | WO2020253523A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948863A (zh) * | 2021-03-15 | 2021-06-11 | 清华大学 | 敏感数据的读取方法、装置、电子设备及存储介质 |
CN115525933A (zh) * | 2022-08-26 | 2022-12-27 | 杭州杰峰科技有限公司 | 数据防篡改方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404596A (zh) * | 2015-10-30 | 2016-03-16 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
US20170103234A1 (en) * | 2014-12-31 | 2017-04-13 | Google Inc. | Trusted computing |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN108628542A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件合并方法及控制器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7493454B2 (en) * | 2004-10-29 | 2009-02-17 | International Business Machines Corporation | Method for achieving reliable worm storage using WMRM storage |
US8275927B2 (en) * | 2007-12-31 | 2012-09-25 | Sandisk 3D Llc | Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method |
US20130318268A1 (en) * | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US9502102B1 (en) * | 2014-07-25 | 2016-11-22 | Crossbar, Inc. | MLC OTP operation with diode behavior in ZnO RRAM devices for 3D memory |
US11016905B1 (en) * | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
-
2019
- 2019-06-19 CN CN201910533925.5A patent/CN112115521B/zh active Active
-
2020
- 2020-06-02 EP EP20825480.5A patent/EP3964996A4/en active Pending
- 2020-06-02 WO PCT/CN2020/094027 patent/WO2020253523A1/zh unknown
-
2021
- 2021-12-17 US US17/554,843 patent/US20220107752A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103234A1 (en) * | 2014-12-31 | 2017-04-13 | Google Inc. | Trusted computing |
CN105404596A (zh) * | 2015-10-30 | 2016-03-16 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN107203330A (zh) * | 2016-03-17 | 2017-09-26 | 北京忆恒创源科技有限公司 | 一种面向读写数据流的闪存数据分布方法 |
CN108628542A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种文件合并方法及控制器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948863A (zh) * | 2021-03-15 | 2021-06-11 | 清华大学 | 敏感数据的读取方法、装置、电子设备及存储介质 |
CN112948863B (zh) * | 2021-03-15 | 2022-07-29 | 清华大学 | 敏感数据的读取方法、装置、电子设备及存储介质 |
CN115525933A (zh) * | 2022-08-26 | 2022-12-27 | 杭州杰峰科技有限公司 | 数据防篡改方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112115521B (zh) | 2023-02-07 |
EP3964996A1 (en) | 2022-03-09 |
WO2020253523A1 (zh) | 2020-12-24 |
EP3964996A4 (en) | 2022-06-29 |
US20220107752A1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8850158B2 (en) | Apparatus for processing remote page fault and method thereof | |
US8996611B2 (en) | Parallel serialization of request processing | |
CN110018998B (zh) | 一种文件管理方法、系统及电子设备和存储介质 | |
US20120005557A1 (en) | Virtual copy and virtual write of data in a storage device | |
US20190087130A1 (en) | Key-value storage device supporting snapshot function and operating method thereof | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
US10789011B2 (en) | Performance enhancement of a storage device using an integrated controller-buffer | |
US20220107752A1 (en) | Data access method and apparatus | |
CN110554911A (zh) | 内存访问与分配方法、存储控制器及系统 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN113157487A (zh) | 数据恢复方法及其设备 | |
WO2019140885A1 (zh) | 一种目录处理方法、装置及存储系统 | |
CN108664482B (zh) | Flash存储器及存储文件管理方法 | |
CN110825309B (zh) | 数据读取方法、装置及系统、分布式系统 | |
US11972110B2 (en) | Storage device and storage system | |
CN107844360B (zh) | 一种硬盘执行应用代码的方法及装置 | |
CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
CN115576863A (zh) | 一种数据读写方法、存储设备及存储介质 | |
CN115712581A (zh) | 数据访问方法、存储系统及存储节点 | |
CN107305582B (zh) | 一种元数据处理方法及装置 | |
CN114443598A (zh) | 写数据方法、装置、计算机设备及存储介质 | |
CN113742253A (zh) | 存储介质管理方法、装置、设备以及计算机可读存储介质 | |
CN111209304A (zh) | 数据处理方法、装置及系统 | |
WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
US20230045119A1 (en) | Data access method and apparatus |
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 |