CN112783804A - 数据访问方法、装置及存储介质 - Google Patents

数据访问方法、装置及存储介质 Download PDF

Info

Publication number
CN112783804A
CN112783804A CN202010117250.9A CN202010117250A CN112783804A CN 112783804 A CN112783804 A CN 112783804A CN 202010117250 A CN202010117250 A CN 202010117250A CN 112783804 A CN112783804 A CN 112783804A
Authority
CN
China
Prior art keywords
hard disk
space
data
address
target
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
CN202010117250.9A
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 EP20885263.2A priority Critical patent/EP4044039A4/en
Priority to PCT/CN2020/119935 priority patent/WO2021088587A1/zh
Publication of CN112783804A publication Critical patent/CN112783804A/zh
Priority to US17/662,267 priority patent/US20220261354A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/10Address translation
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple 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)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据访问方法、装置及存储介质,属于数据存储技术领域。在本申请中,存储设备可以按照客户端发送的第一数据写请求中携带的业务逻辑空间的地址,确定目标硬盘,以及与业务逻辑空间对应的硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址,将目标数据写入目标硬盘中。也即是,客户端通过业务逻辑空间的地址来访问存储设备,在存储设备内部,将业务逻辑空间的地址转换为硬盘逻辑空间的地址,硬盘根据所述硬盘逻辑空间的地址写入数据,由此可见,只需要进行一次地址转换,节省了开销,也提高了数据读写效率。

Description

数据访问方法、装置及存储介质
本申请要求于2019年11月08日提交的申请号为201911085845.4、发明名称为“一种硬盘及数据处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据访问方法、装置及存储介质。
背景技术
随着大数据的应用,流式计算引擎逐渐成为主流。对流式计算来说,计算过程中数据持续到来,对处理的实时性要求非常高,因此对数据进行顺序读写操作是更加高效的方式。目前,对数据进行读写操作时,需要先经过存储设备的处理,然后才能从硬盘中读写数据。但是当前的存储设备一般用于对块、文件、对象等组织方式的数据进行处理,不能对流式数据进行处理,流式数据是指随着时间的延续而连续到达的数据序列。因此,通过存储设备对数据进行处理之前需要对数据的组织方式进行转换。而且当前大多数硬盘都是采用逻辑块地址(Logical Block Address,LBA)的访问方式,待数据经过存储设备的处理后,需要写入硬盘时,又要进行存储设备内数据的组织方式到硬盘上数据的组织方式的转换。也即是,目前的数据访问过程中,需要将客户端访问的逻辑地址转换为访问存储设备的逻辑地址,以及将访问存储设备的逻辑地址转换为访问硬盘的逻辑地址,这样就会带来两次转换,开销比较大。
发明内容
本申请提供了一种数据访问方法、装置及存储介质,可以节省开销,提高数据读写效率。
所述技术方案如下:
第一方面,提供了一种数据方法方法,该方法应用于存储设备中,存储设备包括多个硬盘,该方法包括:存储设备接收来自客户端的第一数据写请求,第一数据写请求携带待写入的目标数据、以及目标数据对应的业务逻辑空间的地址;根据业务逻辑空间的地址,确定该多个硬盘中的目标硬盘、以及确定与业务逻辑空间对应的硬盘逻辑空间的地址;根据确定的硬盘逻辑空间的地址,以追加写的方式将目标数据写入目标硬盘中硬盘逻辑空间所对应的物理空间内。
在本申请中,业务逻辑空间是客户端需要存储数据时,请求存储设备创建的。业务逻辑空间的地址可以包括该业务逻辑空间的标识以及偏移量。其中,该业务逻辑空间的标识用于唯一标识该业务逻辑空间,偏移量用于指示为该业务逻辑空间分配的物理空间中当前已写入数据的区域的长度信息。硬盘逻辑空间的地址也可以包括硬盘逻辑空间的标识以及偏移量。硬盘逻辑空间的地址所包括的偏移量可以为业务逻辑空间的地址中所包括的偏移量。
所谓追加写可以理解为以追加的方式来写入数据,也即是,追加写的方式是指写入的数据按照写入的时间先后顺序组织。并且,当某个程序的进程通过该种方式写入数据之后,后续该进程将不会再对该数据所在的区域执行写操作,只会进行读操作。
按照上述的描述,偏移量用于指示为该业务逻辑空间分配的物理空间中当前已写入数据的区域的长度信息,硬盘逻辑空间的地址包括硬盘逻辑空间的标识和偏移量,因此,存储设备可以根据该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间中,确定一个起始地址,进而从该起始地址开始写入目标数据。
在本申请中,客户端通过业务逻辑空间的地址来访问存储设备,存储设备通过业务逻辑空间的地址确定硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址来访问目标硬盘。基于上述描述,业务逻辑空间是针对于客户端而言的,硬盘逻辑空间是针对于目标硬盘而言的,两者都是逻辑空间,只不过为了便于区分,加了不同的限定。因此可以看出,客户端访问存储设备,以及存储设备访问目标硬盘的方式都是相同的,所以以追加写的方式将目标数据写入目标硬盘中该硬盘逻辑空间所对应的物理空间内时,不进行硬盘内的地址转换。这样就会节省开销,提高数据写入速率。
由于业务逻辑空间是针对于客户端而言的,硬盘逻辑空间是针对于硬盘而言的,客户端请求存储设备创建的业务逻辑空间是为了便于后续的数据访问,且通常情况下,存储设备可以包括多个硬盘,因此,为了保证后续数据访问的可靠性,存储设备创建业务逻辑空间和硬盘逻辑空间之后,可以获取业务逻辑空间的标识和硬盘逻辑空间的标识,并存储该业务逻辑空间的标识与硬盘逻辑空间的标识之间的对应关系。也即是,创建该业务逻辑空间与该硬盘逻辑空间的对应关系。
对一些硬盘来说,当某个擦除块内的数据写满之后,必须擦除整个擦除块内的所有数据,才可以写入新的数据。比如,NAND介质的硬盘,当某个擦除块内的数据写满之后,必须擦除整个擦除块内的所有数据,才可以写入新的数据。这样,当目标硬盘进行垃圾回收时,如果一个擦除块内的所有数据都是无效数据,那么可以直接擦除这个擦除块。如果一个擦除块内的部分数据为无效数据,剩余部分数据为有效数据,那么就需要将有效数据进行搬移。由于这部分有效数据原本就写入一次了,这次搬移又写入了一次,这种现象就是所谓的写放大。为了避免垃圾回收过程中的写放大,目标硬盘中创建的硬盘逻辑空间对应一个或多个擦除块,该一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同。
也即是,目标硬盘为创建的硬盘逻辑空间分配的物理空间的大小为一个擦除块的大小的整数倍。当这一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同时,同一擦除块内的数据就会大概率地同时都变成无效数据,或者同时都是有效数据,相对较少出现一部分为无效数据,另一部分为有效数据的情况,这样,在垃圾回收时,就会减少数据搬移的情况,进而减少写放大。
在本申请实施例中,不仅可以通过上述方法来减少垃圾回收过程中的写放大,还可以通过其他的方法来减少。比如,在目标硬盘中创建硬盘逻辑空间的过程中,调整目标硬盘中该硬盘逻辑空间的大小,使得该硬盘逻辑空间的大小等于一个擦除块的大小的整数倍。
第二方面,提供了一种数据访问装置,所述数据访问装置具有实现上述第一方面中数据访问方法行为的功能。所述数据访问装置包括一个或模块,该一个或多个模块用于实现上述第一方面所提供的数据访问方法。
第三方面,提供了一种存储设备,所述存储设备包括处理器和存储器,所述存储器用于存储执行上述第一方面所提供的数据访问方法的程序,以及存储用于实现上述第一方面所提供的数据访问方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据访问方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据访问方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案至少可以带来以下有益效果:
在本申请实施例中,存储设备可以按照客户端发送的第一数据写请求中携带的业务逻辑空间的地址,确定目标硬盘,以及与业务逻辑空间对应的硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址,将目标数据写入目标硬盘中。也即是,客户端通过业务逻辑空间的地址来访问存储设备,在存储设备内部,将业务逻辑空间的地址转换为硬盘逻辑空间的地址,硬盘根据所述硬盘逻辑空间的地址写入数据,由此可见,只需要进行一次地址转换,节省了开销,也提高了数据读写效率。
附图说明
图1是本申请实施例提供的一种存储系统的架构图;
图2是本申请实施例提供的一种数据擦除过程的示意图;
图3是本申请实施例提供的另一种数据擦除过程的示意图;
图4是本申请实施例提供的一种数据访问方法的流程图;
图5是本申请实施例提供的另一种存储系统的架构图;
图6是本申请实施例提供的一种数据访问装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据访问方法进行详细的解释说明之前,先对本申请实施例涉及的实施环境进行介绍。
请参考图1,图1是根据本申请实施例提供的数据访问方法所示出的一种存储系统架构图。如图1所示,该系统中包括客户端01和存储设备02,客户端01与存储设备02之间建立有通信连接。
客户端01可以向存储设备02发送数据读请求或数据写请求。
存储设备02可以包括处理器021、存储器022和硬盘023。
处理器021可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
在具体实现中,作为一种实施例,存储设备可以包括多个处理器021。这些处理器中的每一个处理器可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或包括有用于处理数据(例如计算机程序指令)的处理核的设备。
存储器022上安装有操作系统,处理器021可以通过运行该操作系统来实现对数据的读写。除此之外,该存储器022中还可以存储有本申请方案的程序代码,并由处理器021来控制执行。也即是,存储器022用于存储执行本申请方案的程序代码,处理器021可以执行存储器022中存储的程序代码,来实现下文图4实施例提供的数据访问方法。
其中,该存储器022可以是只读存储器(read-only memory,ROM),也可以是随机存取存储器(random access memory,RAM),也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、光盘(包括只读光盘(compact disc read-only memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器022可以是独立存在,并与处理器021相连接。存储器022也可以和处理器021集成在一起。
存储设备02可以是一个存储阵列,也可以是一个服务器。当存储设备02是存储阵列时,它包括控制器和若干个硬盘,处理器021和存储器022可以位于存储阵列的控制器中,控制器与若干个硬盘通过后端接口卡连接。当存储设备02是服务器时,处理器021、存储器022和若干个硬盘均位于服务器内部。本实施例并没有限定存储设备02的产品形态,图1仅仅是该设备所包含的部分组件的示意图。
除此之外,存储设备02中还可以包括通信总线和通信接口(图1中未示出)。其中,通信总线用于存储设备02包括的各个组件之间传送信息。
通信接口,用于与其它设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
接下来对本申请实施例提供的数据访问方法进行详细解释说明。本申请实施例提供的方法应用于存储设备中,该存储设备包括多个硬盘。由于本申请实施例主要是通过逻辑空间实现数据访问的,也即是,客户端是通过逻辑空间来访问存储设备中的数据的。因此,为了便于理解,首先对客户端请求创建逻辑空间的过程进行说明。
存储设备接收来自客户端的第一逻辑空间创建请求,第一逻辑空间创建请求携带第一逻辑空间大小。存储设备创建业务逻辑空间,并为该业务逻辑空间分配一个标识,将该业务逻辑空间的标识发送给客户端。之后,存储设备还可以根据第一逻辑空间大小,从包括的多个硬盘中确定目标硬盘,并在目标硬盘中创建硬盘逻辑空间,为创建的硬盘逻辑空间分配一个标识,从目标硬盘中为创建的硬盘逻辑空间分配对应的物理空间,该物理空间的大小与第一逻辑空间大小相同。
在存储设备包括存储器、处理器和硬盘的情况下,存储设备在目标硬盘中创建硬盘逻辑空间,且从目标硬盘中为创建的硬盘逻辑空间分配对应的物理空间的实现过程可以为:处理器运行存储器上安装的操作系统,以向目标硬盘发送第二逻辑空间创建请求,第二逻辑空间创建请求携带第一逻辑空间大小。这样,当目标硬盘接收到第二逻辑空间创建请求之后,可以创建硬盘逻辑空间,为创建的硬盘逻辑空间分配一个标识,以及为创建的硬盘逻辑空间对应的物理空间,该物理空间的大小与第一逻辑空间大小相等。之后,目标硬盘可以将创建的硬盘逻辑空间的标识发送给处理器。
由于存储设备包括的多个硬盘中,不同硬盘当前已存储的数据大小可能不同,也即是,该多个硬盘剩余的存储空间(或者物理空间)大小可能不同,因此,在存储设备根据第一逻辑空间大小,从包括的多个硬盘中确定目标硬盘时,可以确定该多个硬盘中每个硬盘的剩余存储空间的大小,从该多个硬盘中选择剩余存储空间的大小大于或等于第一逻辑空间大小的硬盘作为目标硬盘。
进一步地,由于剩余存储空间的大小大于或等于第一逻辑空间大小的硬盘可能为一个,也可能为多个。如果是多个,那么,存储设备还可以按照负载均衡的算法,从该多个硬盘中选择剩余存储空间的大小大于或等于第一逻辑空间大小的硬盘作为目标硬盘。
对一些硬盘来说,当某个擦除块内的数据写满之后,必须擦除整个擦除块内的所有数据,才可以写入新的数据。比如,NAND介质的硬盘,当某个擦除块内的数据写满之后,必须擦除整个擦除块内的所有数据,才可以写入新的数据。这样,当目标硬盘进行垃圾回收时,如果一个擦除块内的所有数据都是无效数据,那么可以直接擦除这个擦除块。如果一个擦除块内的部分数据为无效数据,剩余部分数据为有效数据,那么就需要将有效数据进行搬移。由于这部分有效数据原本就写入一次了,这次搬移又写入了一次,这种现象就是所谓的写放大。为了避免垃圾回收过程中的写放大,目标硬盘中创建的硬盘逻辑空间对应一个或多个擦除块,该一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同。也即是,目标硬盘为创建的硬盘逻辑空间分配的物理空间的大小为一个擦除块的大小的整数倍。当这一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同时,同一擦除块内的数据就会大概率地同时都变成无效数据,或者同时都是有效数据,相对较少出现一部分为无效数据,另一部分为有效数据的情况,这样,在垃圾回收时,就会减少数据搬移的情况,进而减少写放大。
需要说明的是,目标硬盘中创建的硬盘逻辑空间的大小可能并不是一个擦除块的大小的整数倍。在这种情况下,某个擦除块可能对应两个硬盘逻辑空间,为了减少垃圾回收过程中数据搬移的情况,进而减少写放大,这个擦除块中存储的数据的冷热程度也可以相同,或者生命周期相同。也即是,这两个硬盘逻辑空间对应的数据的冷热程度也可以相同,或者生命周期相同。换句话说,目标硬盘为这两个硬盘逻辑空间分配对应的物理空间时,这两个硬盘逻辑空间对应的物理空间是连续的。当然,在某些情况下,这个擦除块中存储的数据的冷热程度之间的差值小于一定的阈值,或者生命周期之间的差值小于一定的阈值。
比如,如图2所示,对于一个擦除块,如果这个擦除块中写入同一个业务逻辑空间对应的数据,也即是,这个擦除块中写入的数据的冷热程度相同,那么,在后续释放掉这个业务逻辑空间对应的物理空间之后,可以直接对这个擦除块进行擦除。但是,如图3所示,对于一个擦除块,如果这个擦除块中写入两个业务逻辑空间对应的数据,如果这两个业务逻辑空间对应的数据的冷热程度不同,那么,在后续释放掉一个业务逻辑空间对应的物理空间之后,另一个业务逻辑空间对应的数据还是有效的,那么,此时不能直接对这个擦除块进行擦除。如果想要擦除这个擦除块,就需要将有效数据进行搬移。所以,在本申请实施例中,设置同一擦除块中存储的数据的冷热程度相同或者相近,可以减少垃圾回收过程中的写放大。
在本申请实施例中,不仅可以通过上述方法来减少垃圾回收过程中的写放大,还可以通过其他的方法来减少。比如,在目标硬盘中创建硬盘逻辑空间的过程中,调整目标硬盘中该硬盘逻辑空间的大小,使得该硬盘逻辑空间的大小等于一个擦除块的大小的整数倍。
接下来对调整目标硬盘中该硬盘逻辑空间的大小的两种实现方式进行介绍。
第一种实现方式、当存储设备在目标硬盘中创建硬盘逻辑空间之前,存储设备可以判断第一逻辑空间大小是否为一个擦除块的大小的整数倍。如果不是,那么存储设备可以确定第二逻辑空间大小,第二逻辑空间大小等于一个擦除块的大小的整数倍。之后,按照第二逻辑空间大小,从该多个硬盘中确定目标硬盘,进而在目标硬盘中创建硬盘逻辑空间,并从目标硬盘中为创建的硬盘逻辑空间分配对应的物理空间。也即是,物理空间的大小与第二逻辑空间大小相同。
第二种实现方式、当存储设备在目标硬盘中创建硬盘逻辑空间之前,存储设备可以判断第一逻辑空间大小是否为一个擦除块的大小的整数倍。如果不是,那么存储设备可以向客户端发送配置推荐消息,配置推荐消息中携带待推荐的第二逻辑空间大小,第二推荐逻辑空间大小为一个擦除块的大小的整数倍。如果存储设备接收到客户端发送的同意推荐响应,则根据第二逻辑空间大小,从该多个硬盘中确定目标硬盘,进而在目标硬盘中创建硬盘逻辑空间,并从目标硬盘中为创建的硬盘逻辑空间分配对应的物理空间。也即是,物理空间的大小与第二逻辑空间大小相同。
在上述两种实现方式中,第二逻辑空间大小可以大于第一逻辑空间大小,且与第一逻辑空间大小之间的差值小于一个擦除块的大小。
需要说明的是,上述两种实现方式中,存储设备根据第二逻辑空间大小选择目标硬盘的实现方式,与上述根据第一逻辑空间大小选择目标硬盘的实现方式相同。而且,存储设备根据第一逻辑空间大小在目标硬盘中创建硬盘逻辑空间,以及为硬盘逻辑空间分配对应的物理空间的实现方式,与上述根据第一逻辑空间大小在目标硬盘中创建硬盘逻辑空间,以及为硬盘逻辑空间分配对应的物理空间的实现方式相同,本申请实施例对此不再赘述。
另外,对于上述第二种实现方式,如果客户端不同意按照第二逻辑空间大小来创建硬盘逻辑空间,那么,存储设备可以按照将冷热程度相同或相近的,或者生命周期相同或相近的数据存储在同一擦除块上的方式来实现写放大的减少。
通常情况下,硬盘中都会有预留空间,这个预留空间可以在垃圾回收的过程中用于放置搬移过来的有效数据。但是,如果按照上述方法处理的话,可以避免垃圾回收过程中的有效数据的搬移,这样就可以减少预留空间的大小,从而通过硬盘可以存放更多的数据,降低成本。
基于上述逻辑空间的创建过程可知,业务逻辑空间是针对于客户端而言的,硬盘逻辑空间是针对于硬盘而言的,客户端请求存储设备创建的业务逻辑空间是为了便于后续的数据访问,且通常情况下,存储设备可以包括多个硬盘,因此,为了保证后续数据访问的可靠性,在存储设备获取到业务逻辑空间的标识和硬盘逻辑空间的标识之后,存储设备可以存储该业务逻辑空间的标识与硬盘逻辑空间的标识之间的对应关系。也即是,创建该业务逻辑空间与该硬盘逻辑空间的对应关系。而且在存储设备从该多个硬盘中确定出目标硬盘之后,存储设备还可以存储目标硬盘的标识和该业务逻辑空间的标识的对应关系。或者,可选地,存储设备可以存储业务逻辑空间的标识、目标硬盘的标识与硬盘逻辑空间的标识的对应关系。而且,对于目标硬盘来说,目标硬盘可以存储该硬盘逻辑空间与为该硬盘逻辑空间分配的物理空间的映射关系。也即是,存储该硬盘逻辑空间的标识与为该硬盘逻辑空间分配的物理空间的地址范围的映射关系。
可选地,在客户端请求创建的逻辑空间还存在数据保护属性时,第一逻辑空间创建请求除了携带第一逻辑空间大小之外,还需要携带数据保护属性,该数据保护属性可以包括多副本、纠删码(Erasure Code,EC)等等。以多副本为例,在存储设备按照上述方法创建逻辑空间的过程中,选择出的目标硬盘可以为多个,也即是,选择出的多个目标硬盘与多副本一一对应。之后,可以按照上述相同的方法,在该多个目标硬盘中的每个目标硬盘上创建硬盘逻辑空间。进而存储业务逻辑空间的标识、目标硬盘的标识与硬盘逻辑空间的标识的对应关系,以创建该业务逻辑空间与多个目标硬盘中的硬盘逻辑空间的对应关系。
需要说明的是,当数据保护属性为EC或其他的属性时,存储设备创建逻辑空间的过程与上述过程可能有所不同,但是主要思想是相同的,都是在上述过程的基础上,按照不同的数据保护属性的特性进行适当变形得到的。
对客户端请求创建逻辑空间的过程说明之后,接下来对本申请实施例提供的数据访问方法进行说明。请参考图4,图4是本申请实施例提供的一种数据访问方法的流程图。该方法包括如下步骤。
步骤401:存储设备接收来自客户端的第一数据写请求,第一数据写请求携带待写入的目标数据、以及目标数据对应的业务逻辑空间的地址。
基于上述描述,业务逻辑空间是客户端需要存储数据时,请求存储设备创建的。业务逻辑空间的地址可以包括该业务逻辑空间的标识以及偏移量。其中,该业务逻辑空间的标识用于唯一标识该业务逻辑空间,偏移量用于指示为该业务逻辑空间分配的物理空间中当前已写入数据的区域的长度信息。
步骤402:存储设备根据该业务逻辑空间的地址,确定该多个硬盘中的目标硬盘、以及确定与该业务逻辑空间对应的硬盘逻辑空间的地址。
由于存储设备创建逻辑空间的过程中,存储有业务逻辑空间的标识、目标硬盘的标识与硬盘逻辑空间的标识的对应关系,因此,存储设备可以根据该业务逻辑空间的标识,从该对应关系中,确定目标硬盘的标识和硬盘逻辑空间的标识。
需要说明的是,硬盘逻辑空间的地址也可以包括硬盘逻辑空间的标识以及偏移量。硬盘逻辑空间的地址所包括的偏移量可以为业务逻辑空间的地址中所包括的偏移量。
步骤403:存储设备根据确定的硬盘逻辑空间的地址,以追加写的方式将目标数据写入目标硬盘中该硬盘逻辑空间所对应的物理空间内。
所谓追加写可以理解为以追加的方式来写入数据,也即是,追加写的方式是指写入的数据按照写入的时间先后顺序组织。并且,当某个程序的进程通过该种方式写入数据之后,后续该进程将不会再对该数据所在的区域执行写操作,只会进行读操作。
按照上述的描述,偏移量用于指示为该业务逻辑空间分配的物理空间中当前已写入数据的区域的长度信息,硬盘逻辑空间的地址包括硬盘逻辑空间的标识和偏移量,因此,存储设备可以根据该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间中,确定一个起始地址,进而从该起始地址开始写入目标数据。
在存储设备包括存储器、处理器和硬盘的情况下,存储设备根据确定的硬盘逻辑空间的地址,以追加写的方式将目标数据写入目标硬盘中该硬盘逻辑空间所对应的物理空间内的实现过程为:处理器运行存储器上安装的操作系统,以向目标硬盘发送第二数据写请求,第二数据写请求携带目标数据和确定的硬盘逻辑空间的地址。当目标硬盘接收到第二数据写请求之后,根据该硬盘逻辑空间的地址,以追加写的方式将目标数据写入该硬盘逻辑空间所对应的物理空间内。
由于目标硬盘中存储有硬盘逻辑空间的标识与为该硬盘逻辑空间分配的物理空间的地址范围的映射关系,因此,当目标硬盘接收到第二数据写请求之后,可以根据该硬盘逻辑空间的标识,从该映射关系中,确定为该硬盘逻辑空间分配的物理空间的地址范围。进而根据该硬盘逻辑空间的地址包括的偏移量,从该地址范围中确定一个起始地址,并从该起始地址开始写入目标数据。
在本申请实施例中,客户端通过业务逻辑空间的地址来访问存储设备,存储设备通过业务逻辑空间的地址确定硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址来访问目标硬盘。基于上述描述,业务逻辑空间是针对于客户端而言的,硬盘逻辑空间是针对于目标硬盘而言的,两者都是逻辑空间,只不过为了便于区分,加了不同的限定。因此可以看出,客户端访问存储设备,以及存储设备访问目标硬盘的方式都是相同的,所以以追加写的方式将目标数据写入目标硬盘中该硬盘逻辑空间所对应的物理空间内时,不进行硬盘内的地址转换。这样就会节省开销,提高数据写入速率。
在一些实施例中,存储设备还可以将业务逻辑空间对应的元数据写入目标硬盘上,尤其在业务逻辑空间关闭之后,需要将该元数据写入目标硬盘中,从而持久化元数据。该元数据包括硬盘逻辑空间的相关信息,比如,该硬盘逻辑空间的总大小、当前已写入数据的大小、当前已写入数据的结束位置等等。其中,存储设备写入元数据的过程与上述写入目标数据的过程类似,本申请实施例对此不再赘述。
需要说明的是,业务逻辑空间对应的元数据在目标硬盘上对应的物理空间,可以与目标硬盘上该硬盘逻辑空间的地址所对应的物理空间不同。也即是,存储设备可以在目标硬盘中创建一个逻辑空间,这个逻辑空间对应的物理空间与硬盘逻辑空间对应的物理空间不同,且这个逻辑空间对应的物理空间用于存储业务逻辑空间对应的元数据。
上述步骤401-403是存储设备根据逻辑空间写入数据的实现过程。接下来对存储设备根据逻辑空间读取数据的过程进行介绍。
存储设备接收来自客户端的第一数据读请求,第一数据读请求携带待读取的数据的长度、以及待读取的数据对应的业务逻辑空间的地址。根据该业务逻辑空间的地址,确定该多个硬盘中的目标硬盘,以及确定与该业务逻辑空间对应的硬盘逻辑空间的地址。之后,存储设备可以根据待读取的数据的长度和该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间内读取数据。
需要说明的是,在数据读取过程中,该业务逻辑空间的地址也是包括业务逻辑空间的标识和偏移量。但是与数据写入过程不同的是,该偏移量用于指示待读取的数据的起始地址与为该业务逻辑空间分配的物理空间的起始地址之间的长度信息。存储设备根据该业务逻辑空间的地址,确定该多个硬盘中的目标硬盘,以及确定与该业务逻辑空间对应的硬盘逻辑空间的地址的方式,与上述步骤402中的方式相同,本申请实施例对此不再赘述。
其中,存储设备根据待读取的数据的长度和该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间内读取数据的实现过程可以为:存储设备根据该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间中,确定一个起始地址,进而按照待读取的数据的长度,从该起始地址开始读取数据。
在存储设备包括存储器、处理器和硬盘的情况下,存储设备根据该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间中,确定一个起始地址的实现过程为:处理器运行存储器上安装的操作系统,以向目标硬盘发送第二数据读请求,第二数据读请求携带待读取的数据的长度和确定的硬盘逻辑空间的地址。当目标硬盘接收到第二数据读请求之后,根据该硬盘逻辑空间的地址,从目标硬盘中该硬盘逻辑空间所对应的物理空间中,确定一个起始地址。
由于目标硬盘中存储有硬盘逻辑空间的标识与为该硬盘逻辑空间分配的物理空间的地址范围的映射关系,因此,当目标硬盘接收到第二数据读请求之后,可以根据该硬盘逻辑空间的标识,从该映射关系中,确定为该硬盘逻辑空间分配的物理空间的地址范围。进而根据该硬盘逻辑空间的地址包括的偏移量,从该地址范围中确定一个起始地址。
与数据写入过程同理,从目标硬盘中该硬盘逻辑空间所对应的物理空间内读取数据时,也不进行硬盘内的地址转换,从而节省开销,提高数据读取速率。
需要说明的是,当存储设备创建业务逻辑空间和硬盘逻辑空间之后,业务逻辑空间和硬盘逻辑空间的状态默认为打开状态。但是,当后续硬盘逻辑空间对应的物理空间已写满数据、客户端请求关闭业务逻辑空间、或者因异常关闭业务逻辑空间时,存储设备可以设置该业务逻辑空间的状态和目标硬盘上该硬盘逻辑空间的状态均为关闭状态。这样,后续就不能通过该业务逻辑空间和目标硬盘上该硬盘逻辑空间来写入数据,但是还可以正常读取数据。
由于目标硬盘可能会定期维护资源,因此,存储设备不仅将业务逻辑空间的状态设置为关闭状态,还需要将目标硬盘上该硬盘逻辑空间的状态设置为关闭状态。这样,在目标硬盘维护资源时,可以不对处于关闭状态的硬盘逻辑空间对应的物理空间进行维护,从而节省了资源。
如果客户端请求删除业务逻辑空间,则存储设备可以设置该业务逻辑空间的状态和硬盘逻辑空间的状态均为已删除状态,并释放对应的物理空间。这样,当进行垃圾回收时,可以将处于已删除状态的硬盘逻辑空间对应的物理空间进行擦除。
由于本申请实施例提供的这种逻辑空间和日志有一些类似的特性,因此,可以将这种逻辑空间称为持久性日志(persistence log,plog),对这种逻辑空间操作的方法称为plog接口。也即是,存储设备的处理器和硬盘都提供有plog接口。比如,在图5所示的存储系统中,硬盘以固态硬盘(solid state drives,SSD)为例来说明,用户主机上安装有客户端,存储设备为用户主机提供有plog接口,SSD盘也提供有plog接口。这样,当客户端需要访问存储设备中的数据时,客户端可以基于存储设备为用户主机提供的plog接口与存储设备进行交互,且存储设备内部也可以基于plog接口进行数据传输,保证访问方式的统一,从而不需要进行数据组织方式的转换,数据读写效率非常高,而且存储设备可以不需要管理硬盘内的物理空间,更不需要处理垃圾回收等复杂的任务,极大地简化了存储系统。
在一些实施例中,对于图5所示的存储系统,用户主机和存储设备中都可以设置智能网卡,这样,后续可以直接通过智能网卡实现数据的读写,而不需要存储设备中处理器的参与。也即是,当写入数据时,客户端可以通过用户主机中的智能网卡发送数据至存储设备的智能网卡,存储设备的智能网卡可以对接收到的数据进行识别,从而写入硬盘中。读取数据也是同理。这样,在通过智能网卡实现数据读写的过程中,存储设备的处理器还可以并行处理其他的任务。
值得注意的是,虽然数据读写可以通过智能网卡来实现,但是控制层面的操作还需要存储设备的处理器的参与,比如,逻辑空间的创建、删除、关闭等操作还需要存储设备的处理器的参与。
在本申请实施例中,存储设备可以按照客户端发送的第一数据写请求中携带的业务逻辑空间的地址,确定目标硬盘,以及与业务逻辑空间对应的硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址,将目标数据写入目标硬盘中。也即是,客户端通过业务逻辑空间的地址来访问存储设备,在存储设备内部,将业务逻辑空间的地址转换为硬盘逻辑空间的地址,硬盘根据硬盘逻辑空间的地址写入数据,由此可见,只需要进行一次地址转换,节省了开销,也提高了数据读写效率。
图6是本申请实施例提供的一种数据访问装置的结构示意图,该装置位于存储设备中,由处理器021调用存储器022中的程序代码执行。该装置可以由软件、硬件或者两者的结合实现成为存储设备的部分或者全部。该存储设备可以包括多个硬盘。参见图6,该装置包括:接收模块601、确定模块602和写入模块603。
接收模块601,用于接收来自客户端的第一数据写请求,第一数据写请求携带待写入的目标数据、以及目标数据对应的业务逻辑空间的地址;
确定模块602,用于根据业务逻辑空间的地址,确定该多个硬盘中的目标硬盘、以及确定与业务逻辑空间对应的硬盘逻辑空间的地址;
写入模块603,用于根据确定的硬盘逻辑空间的地址,以追加写的方式将目标数据写入目标硬盘中硬盘逻辑空间所对应的物理空间内。
可选地,以追加写的方式将目标数据写入目标硬盘中硬盘逻辑空间所对应的物理空间内时,不进行硬盘内的地址转换。
可选地,该装置还包括:
创建模块,用于创建业务逻辑空间与硬盘逻辑空间的对应关系。
可选地,硬盘逻辑空间对应一个或多个擦除块,一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同。
可选地,该装置还包括:
调整模块,用于调整硬盘逻辑空间的大小,使得硬盘逻辑空间的大小等于一个擦除块的大小的整数倍。
在本申请实施例中,存储设备可以按照客户端发送的第一数据写请求中携带的业务逻辑空间的地址,确定目标硬盘,以及与业务逻辑空间对应的硬盘逻辑空间的地址,进而按照硬盘逻辑空间的地址,将目标数据写入目标硬盘中。也即是,客户端通过业务逻辑空间的地址来访问存储设备,在存储设备内部,将业务逻辑空间的地址转换为硬盘逻辑空间的地址,硬盘根据所述硬盘逻辑空间的地址写入数据,由此可见,只需要进行一次地址转换,节省了开销,也提高了数据读写效率。
需要说明的是:上述实施例提供的数据访问装置在访问数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据访问装置与数据访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))或半导体介质(例如:固态硬盘(solid state disk,SSD))等。值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种数据访问方法,其特征在于,所述方法应用于存储设备中,所述存储设备包括多个硬盘,所述方法包括:
所述存储设备接收来自客户端的第一数据写请求,所述第一数据写请求携带待写入的目标数据、以及所述目标数据对应的业务逻辑空间的地址;
所述存储设备根据所述业务逻辑空间的地址,确定所述多个硬盘中的目标硬盘、以及确定与所述业务逻辑空间对应的硬盘逻辑空间的地址;
所述存储设备根据确定的所述硬盘逻辑空间的地址,以追加写的方式将所述目标数据写入所述目标硬盘中所述硬盘逻辑空间所对应的物理空间内。
2.如权利要求1所述的方法,其特征在于,所述以追加写的方式将所述目标数据写入所述目标硬盘中所述硬盘逻辑空间所对应的物理空间内时,不进行硬盘内的地址转换。
3.如权利要求1所述的方法,其特征在于,所述存储设备接收来自客户端的第一数据写请求之前,还包括:
创建所述业务逻辑空间与所述硬盘逻辑空间的对应关系。
4.如权利要求1-3任一所述的方法,其特征在于,所述硬盘逻辑空间对应一个或多个擦除块,所述一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同。
5.如权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
调整所述硬盘逻辑空间的大小,使得所述硬盘逻辑空间的大小等于一个擦除块的大小的整数倍。
6.一种数据访问装置,其特征在于,所述装置位于存储设备中,所述存储设备包括多个硬盘,所述装置包括:
接收模块,用于接收来自客户端的第一数据写请求,所述第一数据写请求携带待写入的目标数据、以及所述目标数据对应的业务逻辑空间的地址;
确定模块,用于根据所述业务逻辑空间的地址,确定所述多个硬盘中的目标硬盘、以及确定与所述业务逻辑空间对应的硬盘逻辑空间的地址;
写入模块,用于根据确定的所述硬盘逻辑空间的地址,以追加写的方式将所述目标数据写入所述目标硬盘中所述硬盘逻辑空间所对应的物理空间内。
7.如权利要求6所述的装置,其特征在于,所述以追加写的方式将所述目标数据写入所述目标硬盘中所述硬盘逻辑空间所对应的物理空间内时,不进行硬盘内的地址转换。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
创建模块,用于创建所述业务逻辑空间与所述硬盘逻辑空间的对应关系。
9.如权利要求6-8任一所述的装置,其特征在于,所述硬盘逻辑空间对应一个或多个擦除块,所述一个或多个擦除块中存储的数据的冷热程度相同,或者生命周期相同。
10.如权利要求6-8任一所述的装置,其特征在于,所述装置还包括:
调整模块,用于调整所述硬盘逻辑空间的大小,使得所述硬盘逻辑空间的大小等于一个擦除块的大小的整数倍。
11.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法的步骤。
CN202010117250.9A 2019-11-08 2020-02-25 数据访问方法、装置及存储介质 Pending CN112783804A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20885263.2A EP4044039A4 (en) 2019-11-08 2020-10-09 METHOD AND APPARATUS FOR ACCESSING DATA, AND STORAGE MEDIUM
PCT/CN2020/119935 WO2021088587A1 (zh) 2019-11-08 2020-10-09 数据访问方法、装置及存储介质
US17/662,267 US20220261354A1 (en) 2019-11-08 2022-05-06 Data access method and apparatus and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911085845 2019-11-08
CN2019110858454 2019-11-08

Publications (1)

Publication Number Publication Date
CN112783804A true CN112783804A (zh) 2021-05-11

Family

ID=75749982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010117250.9A Pending CN112783804A (zh) 2019-11-08 2020-02-25 数据访问方法、装置及存储介质

Country Status (4)

Country Link
US (1) US20220261354A1 (zh)
EP (1) EP4044039A4 (zh)
CN (1) CN112783804A (zh)
WO (1) WO2021088587A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277640A (zh) * 2022-07-29 2022-11-01 迈普通信技术股份有限公司 数据处理方法、装置、智能网卡及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000040026A (ja) * 1998-07-24 2000-02-08 Nec Corp ディスク共有型クラスタシステムにおける論理ファイル管理システム
CN104156178A (zh) * 2014-08-11 2014-11-19 四川九成信息技术有限公司 一种嵌入式终端数据访问方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675769A (en) * 1995-02-23 1997-10-07 Powerquest Corporation Method for manipulating disk partitions
CN1254748C (zh) * 2003-10-31 2006-05-03 清华大学 存储区域网络中分布式虚拟化存储的方法
US20060069848A1 (en) * 2004-09-30 2006-03-30 Nalawadi Rajeev K Flash emulation using hard disk
CN101604227B (zh) * 2009-07-17 2011-08-31 杭州华三通信技术有限公司 数据存储的方法及设备
US8918619B2 (en) * 2009-10-04 2014-12-23 Infinidat Ltd. Virtualized storage system and method of operating thereof
US20120079229A1 (en) * 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
CN101976223B (zh) * 2010-10-09 2012-12-12 成都市华为赛门铁克科技有限公司 自动精简配置方法和装置
US9251087B2 (en) * 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
US9251086B2 (en) * 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10203876B2 (en) * 2013-11-22 2019-02-12 Nec Corporation Storage medium apparatus, method, and program for storing non-contiguous regions
CA2881206A1 (en) * 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US10423339B2 (en) * 2015-02-02 2019-09-24 Western Digital Technologies, Inc. Logical block address mapping for hard disk drives
CN104820575B (zh) * 2015-04-27 2017-08-15 西北工业大学 实现存储系统自动精简的方法
CN110018966A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 一种存储器、存储系统、主机及数据操作、垃圾回收方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000040026A (ja) * 1998-07-24 2000-02-08 Nec Corp ディスク共有型クラスタシステムにおける論理ファイル管理システム
CN104156178A (zh) * 2014-08-11 2014-11-19 四川九成信息技术有限公司 一种嵌入式终端数据访问方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
郑志翔;贺一峰;: "内存地址转换技术在电子数据取证中的应用", 河南科技, no. 15, 5 August 2014 (2014-08-05) *
陈小文;陈书明;鲁中海;AXEL JANTSCH;: "多核处理器中混合分布式共享存储空间的实时划分技术", 计算机工程与科学, no. 07, 15 July 2012 (2012-07-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277640A (zh) * 2022-07-29 2022-11-01 迈普通信技术股份有限公司 数据处理方法、装置、智能网卡及存储介质
CN115277640B (zh) * 2022-07-29 2023-11-24 迈普通信技术股份有限公司 数据处理方法、装置、智能网卡及存储介质

Also Published As

Publication number Publication date
US20220261354A1 (en) 2022-08-18
EP4044039A4 (en) 2022-12-07
EP4044039A1 (en) 2022-08-17
WO2021088587A1 (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN108519862B (zh) 区块链系统的存储方法、装置、系统和存储介质
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
US10289315B2 (en) Managing I/O operations of large data objects in a cache memory device by dividing into chunks
US11347443B2 (en) Multi-tier storage using multiple file sets
CN107092439B (zh) 一种数据存储的方法及设备
US8904136B2 (en) Optimized shrinking of virtual disks
US20210072923A1 (en) Storage device and computer system
US8521986B2 (en) Allocating storage memory based on future file size or use estimates
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN110109868B (zh) 用于索引文件的方法、装置和计算机程序产品
US20030177330A1 (en) Computer system
CN109918352B (zh) 存储器系统和存储数据的方法
EP3865992A2 (en) Distributed block storage system, method, apparatus and medium
CN110727403A (zh) 元数据管理方法及装置
JP5969122B2 (ja) ホストバスアダプタおよびシステム
CN103595720A (zh) 卸载数据传输方法、装置和客户端
CN114035750A (zh) 文件处理方法、装置、设备、介质及产品
US20220261354A1 (en) Data access method and apparatus and storage medium
US10585592B2 (en) Disk area isolation method and device
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
CN115509437A (zh) 存储系统、网卡、处理器、数据访问方法、装置及系统
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
CN113448877A (zh) 用于数据存储的方法、设备和计算机程序
CN114579062B (zh) 基于分布式存储系统的磁盘优化方法及装置
CN114296639B (zh) 命令处理方法及闪存设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination