CN107291396A - 分布式块存储系统中的io数据的写入方法和装置 - Google Patents

分布式块存储系统中的io数据的写入方法和装置 Download PDF

Info

Publication number
CN107291396A
CN107291396A CN201710502610.5A CN201710502610A CN107291396A CN 107291396 A CN107291396 A CN 107291396A CN 201710502610 A CN201710502610 A CN 201710502610A CN 107291396 A CN107291396 A CN 107291396A
Authority
CN
China
Prior art keywords
current
data
fragments
data block
chunk
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
Application number
CN201710502610.5A
Other languages
English (en)
Other versions
CN107291396B (zh
Inventor
董冠军
游峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Internet Science And Technology Ltd Of Cloud Of China
Original Assignee
Beijing Internet Science And Technology Ltd Of Cloud Of China
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 Beijing Internet Science And Technology Ltd Of Cloud Of China filed Critical Beijing Internet Science And Technology Ltd Of Cloud Of China
Priority to CN201710502610.5A priority Critical patent/CN107291396B/zh
Publication of CN107291396A publication Critical patent/CN107291396A/zh
Application granted granted Critical
Publication of CN107291396B publication Critical patent/CN107291396B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了分布式块存储系统中的IO数据的写入方法和装置。所述方法包括:接收当前IO数据;获取所述分布式块存储系统中数据卷的当前存储信息,步骤三,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址;步骤四,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。本发明能够加快处理速度。

Description

分布式块存储系统中的IO数据的写入方法和装置
技术领域
本发明涉及计算机存储领域,尤其涉及一种分布式块存储系统中的IO数据的写入方法和装置。
背景技术
现有技术中,IO数据的读写为串行方式,处理效率比较慢。
发明内容
本发明的实施例提供了一种分布式块存储系统中的IO数据的写入方法和装置,本发明能够提高系统的处理速度。
为了实现上述目的,本发明采取了如下技术方案。
一种分布式块存储系统中的IO数据的写入方法,包括:
步骤一,接收当前IO数据;
步骤二,获取所述分布式块存储系统中数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的的下一写入页;
步骤三,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
步骤四,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。
一种分布式块存储系统中的IO数据的写入装置,包括:
接收单元,接收当前IO数据;
获取单元,获取数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的的下一写入页;
生成单元,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
写单元,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,上述实施例中,接收第一IO数据后,可以对第一IO数据进行预分配地址,根据预分配地址,对第一IO数据进行写入;由于对第一IO数据进行了预分配地址,因此,当接收第二IO数据后,可以根据第一IO数据的预分配地址,在数据卷中对第二IO数据进行写操作,不必等第一IO数据写操作完成再进行第二IO数据的写操作,实现了了并行处理,提高了处理速度。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种为本发明所述的一种分布式块存储系统中的IO数据的写入方法的处理流程图;
图2为本发明实施例中数据卷的划分示意图;
图3为本发明实施例提供的一种为本发明所述的一种分布式块存储系统中的IO数据的写入方法的后续加载过程的处理流程图;
图4为本发明实施例提供的一种为本发明所述的一种分布式块存储系统中的IO数据的写入装置的连接示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
如图1所述,为本发明所述的一种分布式块存储系统中的IO数据的写入方法,包括:
步骤11,接收当前IO数据;
步骤12,获取所述分布式块存储系统中数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的的下一写入页;
步骤13,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
步骤14,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。具体为:按照预分配地址,采用fork and join并发模式,并行写入IO片段。
上述步骤为写入过程。
上述实施例中,接收第一IO数据后,可以对第一IO数据进行预分配地址,根据预分配地址,对第一IO数据进行写入;由于对第一IO数据进行了预分配地址,因此,当接收第二IO数据后,可以根据第一IO数据的预分配地址,在数据卷中对第二IO数据进行写操作,不必等第一IO数据写操作完成再进行第二IO数据的写操作,实现了了并行处理,提高了处理速度。
可选的,如图1所示,所述步骤11之前,所述方法还包括:
步骤10,将底层的数据卷划分为至少一个数据块组;每个数据块组包括至少一个数据块;每个数据块包括至少一个页,所述页包括至少一个字节,如图2所示,其中,至少一个可以为固定大小。
所述步骤13包括:
步骤131,预设置所述当前IO片段的描述信息的大小;
步骤132,根据所述当前IO片段的描述信息的大小和所述当前IO数据的大小,确定所述当前IO片段的大小;
步骤133,获取待存储所述当前IO片段的数据块组;
步骤134,判断所述当前IO片段的大小是否大于待存储所述当前IO片段的数据块组的第一当前数据块的剩余空间的大小,生成第一判断结果;注意:此处的待存储所述当前IO片段的数据块组的第一当前数据块中的第一是为了区别于其他位置出现的当前数据块,为了说明当前数据块为待存储所述当前IO片段的数据块组的当前数据块,并不是顺序上的第一。
步骤135,当所述第一判断结果为大于时,将所述第一当前数据块和所述第一当前数据块的至少一个后续数据块作为所述当前IO片段的待存储组;
步骤136,分别从所述第一当前数据块的当前页和至少一个所述后续数据块的当前页开始,为所述当前IO片段预分配存储地址;所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
步骤137,当所述第一判断结果为小于或者等于时,将所述第一当前数据块作为存储所述当前IO片段的数据块;从所述第一当前数据块的当前页开始,为所述当前IO片段预分配存储地址。
上述实施例中,为了保证并行的可能性,在数据卷中对IO数据分配地址时,当第一IO数据分配在第一数据块时,第二数据块分配在第一数据块的下一数据块。
步骤133具体包括:
步骤133A,判断所述当前IO片段的大小是否大于当前数据块组的剩余空间的大小,生成第一判断结果;
步骤133B,如果第一判断结果为大于,将所述当前数据块组的下一数据块组作为存储所述当前IO片段的数据块组;
否则,步骤133C,将所述当前数据块组作为存储所述当前IO片段的数据块组。
上述实施例中,使得当前IO片段不跨组分布,使得后续维护比较简单。
其中,步骤136包括:
步骤1361,根据所述第一当前数据块的当前页,确定所述当前数据块的剩余空间的大小;
步骤1362,根据所述第一当前数据块的剩余空间的大小,对所述当前IO片段进行第一次划片,生成第一分片;所述第一分片包括:所述当前IO片段的描述信息和所述当前IO数据的第一部分数据;从所述第一当前数据块的当前页开始,为所述第一分片预分配存储地址;该步骤中,第一分片的大小可以等于第一当前数据块的剩余空间的大小。
步骤1363,获取所述第一当前数据块后的第一后续数据块;判断除所述第一部分数据外的所述当前IO数据的大小是否大于所述第一后续数据块,生成第二判断结果;
步骤1364,当所述第二判断结果为否时,将除第一部分外的所述当前IO数据作为第二片段;根据所述第一后续数据块的当前页,为所述第二分片预分配存储地址;
步骤1365,当所述第二判断结果为是时,继续对所述当前IO片段分片,在所述第一当前数据块后的第二后续数据块中为后续的分片分配地址,直到所述当前IO分片被划分完毕。该步骤中,第二分片的大小可以等于第一后续数据块的剩余空间的大小。
上述实施例中,分片规则使得第一IO数据的数据尽量分布在同一数据块中。当同一数据块中放不下第一IO数据时,则对第一IO数据进行分片,放在几个数据块中,并且,分片规则可以为:使得第一IO数据尽量分布在最少数量的IO数据块中,当第一数据块的剩余空间被第一IO数据的部分数据占满时,将第一IO数据的其他数据尽量放着第一数据块的下一数据块,当下一数据块放不下时,则继续对第一IO数据进行分片。
例如,在图2中,假设有两个数据块组,其中,数据块组0为当前数据块组,可以看出,第一IO数据存储在数据块0的页0-页2,尽量放在同一数据块中;第二IO数据被分配在数据块0的下一数据块,即数据块1中;第三IO数据被分配在数据块1的下一数据块,即数据块2中;第四IO数据由于数据块0的剩余存储空间不足,被分片,分别放在数据块0和数据块1中;第五IO数据放在数据块1的下一数据块,即数据块2中,形成在组内以螺旋方式写入的方式。
可选的,如图3所示,本发明所述方法还包括:
步骤15,从待加载的所述数据块组的当前数据块的当前页开始,读取待加载IO片段的描述信息;
步骤16,根据所述待加载IO片段的描述信息中携带的IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载所述待加载IO数据。
上述步骤15-步骤16为加载过程。
可选的,当所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数时,所述步骤16包括:
根据所述描述信息中的第一分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载第一分片;
根据所述描述信息中的第二分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载第二分片;
直至加载完各个分片,然后将所述各个分片合并,生成待加载IO数据。
以下描述本发明的应用场景。
在分布式块存储里,写操作在写入日志后即可返回。写入日志的操作是追加在尾部的原子写,难以充分发挥系统的并发性能。
本发明通过预计算空间,并行化写入磁盘操作,另外,分组管理底层卷空间,在组内以螺旋方式写入,采取两阶段锁定和变长RAID磁盘阵列,因此可以提升写入性能。本发明中的IO数据可以为日志IO数据,本发明中的一种分布式块存储系统中的IO数据的写入方法可以用于写入日志数据的方式。
假设底层卷空间包括固定大小的数据块(如1M大小),所有数据块构成逻辑上连续的存储空间,数据块按组组织,录如32个数据块一个组(约等于iscsi队列深度)。
写入过程分两个阶段:预计算和并发写。所以采用预计算存储位置的方式,是因为在协程编程模型的情况下,内存操作不会被中断。把一个写入操作严格划分为内存和磁盘两个阶段,可以做到无锁编程,提高操作的并发度。
所述方法包括:
首先,预计算操作。
任何一个IO,都可以按照数据布局拆分为一个或多个IO片段。每个IO的第一个片段,携带有IO的描述信息,用来描述各个IO片段的位置信息。
每个IO不跨组。首先检查当前组是否有足够的剩余空间。如没有,则切换组指针指向下一组数据块。每个数据块维护着当前的写入位置,可称之为水位线。按环形队列的方式组织各个数据块组,有三级指针:当前组,当前数据块,当前数据块的下一页。
如当前数据块没有足够的空间放下要写入的IO数据,则拆分一次IO为多个IO片段,IO片段依次跨数据块分布。
然后,并发写操作。
按照第一阶段预计算的地址,采用fork and join并发模式,并行写入IO片段。
然后,进行加载操作。加载操作是写入操作的逆过程。该步骤包括:
步骤一,数据块组的每一个数据块的水位线初始化为0。
步骤二,从第一个数据块开始,加载IO的首部,按IO的首部记载的地址信息依次加载每一个IO片段。需要注意的是,需要正确地切换数据块的指针,以满足螺旋式数据布局的基本要求。
如图4所示,为本发明所述的一种分布式块存储系统中的IO数据的写入装置,包括:
接收单元21,接收当前IO数据;
获取单元22,获取数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的下一写入页;
生成单元23,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
写单元24,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。
所述生成单元23包括:
预设置模块,预设置所述当前IO片段的描述信息的大小;
确定模块,根据所述当前IO片段的描述信息的大小和所述当前IO数据的大小,确定所述当前IO片段的大小;
获取模块,获取存储所述当前IO片段的数据块组的当前数据块;
判断模块,判断所述当前IO片段的大小是否大于所述当前数据块的剩余空间的大小,生成第一判断结果;
第一分配模块,当所述第一判断结果为大于时,将所述当前数据块和所述当前数据块的至少一个后续数据块作为所述当前IO片段的待存储组;分别从所述当前数据块的当前页和至少一个所述后续数据块的当前页开始,为所述当前IO片段预分配存储地址;所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
第二分配模块,当所述第一判断结果为小于或者等于时,将所述当前数据块作为存储所述当前IO片段的数据块;从所述当前数据块的当前页开始,为所述当前IO片段预分配存储地址。
所述的装置,还包括:
读取单元45,从待加载的所述数据块组的当前数据块的当前页开始,读取待加载IO片段的描述信息;
加载单元46,根据所述待加载IO片段的描述信息中携带的IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载所述待加载IO数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种分布式块存储系统中的IO数据的写入方法,其特征在于,包括:
步骤一,接收当前IO数据;
步骤二,获取所述分布式块存储系统中数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的的下一写入页;
步骤三,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
步骤四,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。
2.根据权利要求1所述的方法,其特征在于,所述步骤三包括:
预设置所述当前IO片段的描述信息的大小;
根据所述当前IO片段的描述信息的大小和所述当前IO数据的大小,确定所述当前IO片段的大小;
获取待存储所述当前IO片段的数据块组;
判断所述当前IO片段的大小是否大于所述待存储所述当前IO片段的数据块组的第一当前数据块的剩余空间的大小,生成第一判断结果;
当所述第一判断结果为大于时,将所述第一当前数据块和所述第一当前数据块的至少一个后续数据块作为所述当前IO片段的待存储组;分别从所述第一当前数据块的当前页和至少一个所述后续数据块的当前页开始,为所述当前IO片段预分配存储地址;所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
当所述第一判断结果为小于或者等于时,将所述第一当前数据块作为存储所述当前IO片段的数据块;从所述第一当前数据块的当前页开始,为所述当前IO片段预分配存储地址。
3.根据权利要求2所述的方法,其特征在于,所述分别从所述第一当前数据块的当前页和至少一个所述后续数据块的当前页开始,为所述当前IO片段预分配存储地址的步骤包括:
根据所述第一当前数据块的当前页,确定所述当前数据块的剩余空间的大小;
根据所述第一当前数据块的剩余空间的大小,对所述当前IO片段进行第一次划片,生成第一分片;所述第一分片包括:所述当前IO片段的描述信息和所述当前IO数据的第一部分数据;从所述第一当前数据块的当前页开始,为所述第一分片预分配存储地址;
获取所述第一当前数据块后的第一后续数据块;判断除所述第一部分数据外的所述当前IO数据的大小是否大于所述第一后续数据块,生成第二判断结果;
当所述第二判断结果为否时,将除第一部分外的所述当前IO数据作为第二片段;根据所述第一后续数据块的当前页,为所述第二分片预分配存储地址;
当所述第二判断结果为是时,继续对所述当前IO片段分片,在所述第一当前数据块后的第二后续数据块中为后续的分片分配地址,直到所述当前IO分片被划分完毕。
4.根据权利要求2所述的方法,其特征在于,所述获取待存储所述当前IO片段的数据块组的步骤之前,所述方法还包括:
判断所述当前IO片段的大小是否大于当前数据块组的剩余空间的大小,生成第一判断结果;
如果第一判断结果为大于,将所述当前数据块组的下一数据块组作为存储所述当前IO片段的数据块组;
否则,将所述当前数据块组作为存储所述当前IO片段的数据块组。
5.根据权利要求1所述的方法,其特征在于,所述步骤一之前,所述方法还包括:
将底层的数据卷划分为至少一个数据块组;每个数据块组包括至少一个数据块;每个数据块包括至少一个页,所述页包括至少一个字节。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
步骤五,从待加载的所述数据块组的当前数据块的当前页开始,读取待加载IO片段的描述信息;
步骤六,根据所述待加载IO片段的描述信息中携带的IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载所述待加载IO数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数时,所述步骤六包括:
根据所述描述信息中的第一分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载第一分片;
根据所述描述信息中的第二分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载第二分片;
直至加载完各个分片,然后将所述各个分片合并,生成待加载IO数据。
8.一种分布式块存储系统中的IO数据的写入装置,其特征在于,包括:
接收单元,接收当前IO数据;
获取单元,获取数据卷的当前存储信息,所述当前存储信息包括:所述当前IO数据的上一IO数据被预分配地址后的当前数据块组、各个数据块组的当前数据块、当前数据块组的各个数据块的当前页;其中,所述当前数据块组为所述上一IO数据被预分配的数据块组;所述各个数据块组的当前数据块为所述上一IO数据的片段被预分配数据块后各个数据块组的下一写入数据块;所述当前数据块组的各个数据块的当前页为所述上一IO数据被预分配页地址后各个数据块的的下一写入页;
生成单元,根据所述当前IO数据的大小和所述数据卷中的当前存储信息,生成当前IO片段以及所述当前IO片段的在数据卷中的预分配地址;所述当前IO片段包括:当前IO片段的描述信息和所述当前IO数据:所述当前IO片段的描述信息包括:所述当前IO片段的预分配地址,所述预分配地址包括:存储所述当前IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
写单元,根据所述预分配地址,在所述数据块组内,对所述当前IO片段进行写操作。
9.根据权利要求8所述的装置,其特征在于,所述生成单元包括:
预设置模块,预设置所述当前IO片段的描述信息的大小;
确定模块,根据所述当前IO片段的描述信息的大小和所述当前IO数据的大小,确定所述当前IO片段的大小;
获取模块,获取待存储所述当前IO片段的数据块组;
判断模块,判断所述当前IO片段的大小是否大于所述当前IO片段的数据块组的第一当前数据块的剩余空间的大小,生成第一判断结果;
第一分配模块,当所述第一判断结果为大于时,将所述第一当前数据块和所述第一当前数据块的至少一个后续数据块作为所述当前IO片段的待存储组;分别从所述第一当前数据块的当前页和至少一个所述后续数据块的当前页开始,为所述当前IO片段预分配存储地址;所述当前IO片段的描述信息包括:存储所述当前IO片段的各个分片的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数;
第二分配模块,当所述第一判断结果为小于或者等于时,将所述第一当前数据块作为存储所述当前IO片段的数据块;从所述第一当前数据块的当前页开始,为所述当前IO片段预分配存储地址。
10.根据权利要求8所述的装置,其特征在于,还包括:
读取单元,从待加载的所述数据块组的当前数据块的当前页开始,读取待加载IO片段的描述信息;
加载单元,根据所述待加载IO片段的描述信息中携带的IO数据的数据块组、数据块组中的至少一个数据块以及在至少一个数据块中的页偏移量和页数,加载所述待加载IO数据。
CN201710502610.5A 2017-06-27 2017-06-27 分布式块存储系统中的io数据的写入方法和装置 Expired - Fee Related CN107291396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710502610.5A CN107291396B (zh) 2017-06-27 2017-06-27 分布式块存储系统中的io数据的写入方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710502610.5A CN107291396B (zh) 2017-06-27 2017-06-27 分布式块存储系统中的io数据的写入方法和装置

Publications (2)

Publication Number Publication Date
CN107291396A true CN107291396A (zh) 2017-10-24
CN107291396B CN107291396B (zh) 2018-04-13

Family

ID=60099403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710502610.5A Expired - Fee Related CN107291396B (zh) 2017-06-27 2017-06-27 分布式块存储系统中的io数据的写入方法和装置

Country Status (1)

Country Link
CN (1) CN107291396B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543463A (zh) * 2019-09-16 2019-12-06 南方电网科学研究院有限责任公司 一种日志存储方法、装置、设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241420A (zh) * 2008-03-20 2008-08-13 杭州华三通信技术有限公司 用于提高写地址非连续的数据存储效率的方法和存储设备
US20150149666A1 (en) * 2011-07-22 2015-05-28 Mcorelab, Inc. Event System and Methods for Using Same
CN105159842A (zh) * 2015-08-31 2015-12-16 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
US9460017B1 (en) * 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
CN106445413A (zh) * 2012-12-12 2017-02-22 华为技术有限公司 集群系统中数据处理方法及装置
US20170102896A1 (en) * 2015-10-12 2017-04-13 Sandisk Technologies Inc. Systems and methods of storing data
CN106776032A (zh) * 2016-12-22 2017-05-31 北京华云网际科技有限公司 分布式块存储的io请求的处理方法和装置
CN106814972A (zh) * 2016-12-22 2017-06-09 北京华云网际科技有限公司 分布式块存储的快照节点的回滚方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241420A (zh) * 2008-03-20 2008-08-13 杭州华三通信技术有限公司 用于提高写地址非连续的数据存储效率的方法和存储设备
US20150149666A1 (en) * 2011-07-22 2015-05-28 Mcorelab, Inc. Event System and Methods for Using Same
CN106445413A (zh) * 2012-12-12 2017-02-22 华为技术有限公司 集群系统中数据处理方法及装置
US9460017B1 (en) * 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
CN105159842A (zh) * 2015-08-31 2015-12-16 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
US20170102896A1 (en) * 2015-10-12 2017-04-13 Sandisk Technologies Inc. Systems and methods of storing data
CN106776032A (zh) * 2016-12-22 2017-05-31 北京华云网际科技有限公司 分布式块存储的io请求的处理方法和装置
CN106814972A (zh) * 2016-12-22 2017-06-09 北京华云网际科技有限公司 分布式块存储的快照节点的回滚方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110543463A (zh) * 2019-09-16 2019-12-06 南方电网科学研究院有限责任公司 一种日志存储方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN107291396B (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN102326154B (zh) 用于管理型非易失性存储器的地址映射的体系结构
US8437190B2 (en) Interleaved flash storage system and method
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
CN109783004A (zh) 数据储存装置与存储器装置的数据处理方法
US6173238B1 (en) Memory testing apparatus
CN104699413B (zh) 数据管理方法、存储器存储装置及存储器控制电路单元
CN101510445B (zh) 存储器坏块表的保存方法以及装置
CN102053914B (zh) 记忆装置以及存储器的数据存取方法
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
CN103413569B (zh) 一读且一写静态随机存储器
US10275306B1 (en) System and method for memory control having adaptively split addressing of error-protected data words in memory transactions for inline storage configurations
CN103150273A (zh) 位级内存控制器及控制方法
CN101770438B (zh) 存储器存取的控制系统和方法
CN107291396B (zh) 分布式块存储系统中的io数据的写入方法和装置
CN106649137B (zh) 一种Nand Flash坏块管理方法、装置及存储器
CN113157512B (zh) 实现大容量ssd在小内存机器上进行数据校验测试的方法
JP4947395B2 (ja) 半導体試験装置
US20060095707A1 (en) Bidirectional data storing method
CN101510168A (zh) 一种快闪记忆体的存取方法和记忆体装置
CN108008919A (zh) 一种高速数据处理ssd
CN105739919B (zh) 资料存取系统及方法
CN104169864B (zh) 重定向写入方法及装置
US20100162040A1 (en) Memory system and computer system
CN107273051B (zh) Io数据的读写方法和装置
CN110377443A (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
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20181115

Granted publication date: 20180413

PP01 Preservation of patent right
PD01 Discharge of preservation of patent

Date of cancellation: 20211115

Granted publication date: 20180413

PD01 Discharge of preservation of patent
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180413

Termination date: 20190627

CF01 Termination of patent right due to non-payment of annual fee