CN113312009A - 分布式存储系统及分布式存储系统的读写方法 - Google Patents
分布式存储系统及分布式存储系统的读写方法 Download PDFInfo
- Publication number
- CN113312009A CN113312009A CN202110860604.3A CN202110860604A CN113312009A CN 113312009 A CN113312009 A CN 113312009A CN 202110860604 A CN202110860604 A CN 202110860604A CN 113312009 A CN113312009 A CN 113312009A
- Authority
- CN
- China
- Prior art keywords
- user request
- volume
- read
- stripe
- 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.)
- Pending
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/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]
-
- 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
-
- 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
本发明公开了一种分布式存储系统,包括若干存储节点,还包括条带化处理模块、条带分发模块,所述条带化处理模块用于将用户请求划分为条带读写块,条带分发模块用于将所述条带读写块分发到各个存储节点的不同数据磁盘中。本发明还提供一种分布式存储系统的读写方法,能够通过对用户请求进行条带化处理,然后将处理后的条带读写块分发到不同的数据磁盘中,从而使用户请求不管是随机读写还是顺序读写都能够在不同的磁盘上同时进行,提高分布式存储系统的磁盘性能。
Description
技术领域
本发明属于分布式存储技术领域,更具体地说,涉及一种分布式存储系统及分布式存储系统的读写方法。
背景技术
在目前的分布式存储系统中,条带化技术被广泛应用,所谓条带化技术,就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去,这样能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O(Input/Output,磁盘的输入和输出或磁盘的读写)并行能力,从而获得非常好的性能。
当对数据做条带化时,数据被切成一块块的小数据块,各小数据块分布存储在不同的硬盘上。一般来说,影响条带化效果的因素有两个,一是条带大小(stripesize),即数据被切成的小数据块的大小,另一个条带宽度(stripe width),即数据被存储到多少块硬盘上。
条带宽度(stripewidth)是指同时可以并发读或写的条带数量。这个数量等于RAID中的物理硬盘数量。例如一个经过条带化的,具有4块物理硬盘的阵列的条带宽度就是4。增加条带宽度,可以增加阵列的读写性能。因为增加更多的硬盘,也就增加了可以同时并发读或写的条带数量。在其他条件一样的前提下,一个由8块18G硬盘组成的阵列相比一个由4块36G硬盘组成的阵列具有更高的传输性能。
条带大小(stripesize),有时也被叫做block size, chunk size, stripelength或者granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大),其数值是2的次方,如2KB、4KB、8KB、16KB等等。
如申请公布日为2015年5月20日,申请公布号为CN104639661A,专利名称为分布式存储系统及文件存储和读取方法的中国专利公开了一种技术方案,该分布式存储系统包括:存储池,其网络连接外接客户端,通过网络接收外接客户端上传的被存储文件;文件分块模块,其通信连接存储池,将被存储文件条带化处理成若干个文件块;若干存储节点,其分别通信连接所述文件分块模块,被存储文件分块产生的若干文件块分别存储于各个存储节点。该技术方案将被存储文件分成若干文件块并分别存储于若干不同的存储节点中,多个存储节点共同进行读写操作,分散原来一个存储节点的压力,以提高读写性能。
但实际使用中,由于条带大小对性能的影响较大,如果减小条带大小,则文件被分成了更多个、更小的数据块。这些数据块会被分散到更多的硬盘上存储,因此提高了传输的性能,但是由于要多次寻找不同的数据块,磁盘定位的性能就下降了。如果增加条带大小,则与减小条带大小相反,会降低传输性能,提高定位性能。
因此,针对不同的性能需求,不同驱动器的不同特点, "最佳条带大小"可能不是普遍适用的。为此,业内开始针对固定条带大小进行改进,如申请公布日为2019年10月8日,申请公布号为CN110308875A,专利名称为数据读写方法、装置、设备及计算机可读存储介质的中国专利公开了另一种技术方案,包括:获取分布式存储系统当前的各物理节点包含的硬盘数量;获取上层应用在预设时长内下发的数据读写请求所请求读写的单位数据流的大小;根据所述硬盘数量调整与所述上层应用对应的条带宽度;根据所述单位数据流的大小调整与所述上层应用对应的条带深度;根据调整后的所述条带宽度和所述条带深度执行对所述各物理节点的数据读写操作。该发明能够实现条带深度和条带宽度的自适应调整,以提高分布式存储系统的读写性能。
但是该专利存在的问题在于需要对每个文件记录条带宽度及条带深度等元数据信息,从而导致增加I/O路径上的延迟及对系统元数据存储压力增加,进而导致分布式存储系统的读写性能降低,同时,该专利还要基于归纳I/O业务模型,在实际使用中并不能完全贴近生产环境中I/O业务模型。
发明内容
1. 要解决的问题
针对现有技术中存在的无法有效提高分布式存储的读写性能的问题,本发明提供一种分布式存储系统及分布式存储系统的读写方法。
2. 技术方案
为了解决上述问题,本发明所采用的技术方案如下:一种分布式存储系统,包括若干存储节点,还包括条带化处理模块、条带分发模块,所述条带化处理模块用于将用户请求划分为条带读写块,条带分发模块用于将所述条带读写块分发到各个存储节点的不同数据磁盘中。本技术方案通过对用户请求进行条带化处理,然后将处理后的条带读写块分发到不同的数据磁盘中,从而使用户请求不管是随机读写还是顺序读写都能够在不同的磁盘上同时进行,提高分布式存储系统的磁盘性能。
进一步地,还包括判断模块、拆分模块和拼合模块,所述判断模块用于在条带化处理模块进行条带化处理之前根据用户请求的起始位置和长度判断用户请求是否跨不同的卷,如果所述用户请求跨不同的卷,则拆分模块对该用户的请求进行拆分得到系统内子请求,系统内子请求被执行完毕后再由拼合模块对每一个系统内子请求的响应进行拼合形成一个完整的响应作为对用户请求的响应;若判断模块判断用户请求是同一个卷,则直接执行用户请求。在原有的卷不能满足存储空间的情况下,会出现扩展卷的情况,在本技术方案中,用户在访问的时候不会感受到扩展的卷和原有的卷的区别,即对用户来说,其访问的方式并无不同。但在接收用户请求时,如果根据用户请求的起始位置和长度发现用户请求跨原有的卷和扩展的卷,则需要对该用户请求进行拆分得到多个系统内子请求,然后分别执行各个系统内子请求,得到针对各个系统内子请求的响应,并将各个系统内子请求的响应拼合,得到一个完整的响应作为对用户请求的响应,从而确保扩展的卷和原有的卷均能够有效处理用户的请求,进一步提高磁盘性能。
进一步地,所述条带读写块的大小为页长的n倍,其中n为正整数。
本发明还包括一种分布式存储系统的读写方法,包括以下步骤:
条带化处理模块将接收到的用户请求进行条带化处理,分成若干条带读写块;
条带分发模块用于将条带读写块分发到存储节点不同的数据磁盘中。本技术方案是对用户请求进行条带化处理,不同于现有技术中的对存储文件进行条带化处理,能够解决现有技术中不管存储文件的大小都需要进行条带化处理从而影响磁盘性能的问题。
进一步地,还包括:在条带化处理模块对用户请求进行条带化处理之前,先创建卷,具体为:判断待创建卷的段单元是否属于同一个卷,如果是,则将所述段单元进行排序,同时将待创建卷的数据磁盘排序,并将段单元与数据磁盘一一对应;如果否,则先将所述段单元拆分成不同的卷,然后再对各个卷中的段单元和数据磁盘进行如上的排序和对应。
进一步地,如果原有的卷存储空间不足,则按照上述的创建卷的方式扩展新的卷。即在扩展新的卷的时候也需要判断该扩展的卷中的段单元是否属于同一个卷,如果是,则将该卷中的段单元和数据磁盘分别进行排序,并将段单元与数据磁盘一一对应;如果该扩展的卷中的段单元不属于同一个卷,则将这些段单元拆分,分别对应各个不同的卷,然后在对各个卷中的段单元和数据磁盘分别进行排序,并将段单元与数据磁盘一一对应。
进一步地,在条带化处理模块对用户请求进行条带化处理之前、创建卷之后,如果用户请求跨原有的卷和扩展的卷,则将用户请求按照不同的卷进行切分得到系统内子请求,根据系统内子请求分别访问不同的卷得到各个系统内子请求的响应后对各个系统内子请求的响应进行拼合形成一个完整的响应作为对用户请求的响应。
进一步地,所述切分用户请求按照用户请求的起始位置和长度来进行切分。
进一步地,如果用户请求针对同一个卷,则直接执行用户请求。
进一步地,所述条带读写块为页长的n倍,其中n为正整数。
3. 有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明能够实现多个存储节点共同进行读写操作,分散原来一个存储节点的压力,从而提高读写性能;
(2)本发明在出现新增卷的情况下,能够保持新增卷和原有卷的一致性,不影响用户的使用。
附图说明
图1为本发明中将用户请求的逻辑位置转换为物理位置的示意图;
图2为本发明将物理位置转换为用户请求的逻辑位置的示意图;
图3为本发明在针对扩展卷时的进行分布式任务处理的示意图。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。首先,为了更好地说明,在此定义了一些概念,并分别给出概念的英文、中文及说明,如表一所示,在表一中一些概念的中文和英文之间在本专利中具有对应性:
表一
英文 | 中文 | 说明 |
volume | 卷或逻辑卷 | 分布式存储系统中的存储区域,作为块设备直接提供给用户使用,用户可以直接对该卷进行任意大小读写,其包括一个segment或多个segment。 |
segment | 数据段或段 | 是组成volume的基本逻辑单元,一个卷有n个段(n≥1),一个卷内段的数量=卷的大小/段的大小, |
segmentunit | 段单元或数据段单元或物理存储单元 | 其对应物理磁盘上的某一段连续空间,用来存放用户数据,是组成segment的物理单元或基本单元;其有多种分工不同的segment unit。 |
page | 页 | 组成segment unit的最小物理存储单元,将一个segment unit划分为若干个page,用来支持用户小块I/O时的性能。 |
pagesize | 页长或页的大小 | 由用户场景定义具体大小,本发明中一般推荐配置为8KB |
segmentunitsize | 段单元或数据段单元或物理存储单元的大小 | 用户场景定义具体大小,本发明中一般推荐配置为1GB以上,为page size整数倍。 |
segmentsize | 段的大小 | 用户定义segment unit size之后,该项与segment unit size相同。 |
volumesize | 卷或逻辑卷的大小 | 用户创建volume时指定,为segment整数倍。 |
segmentindex | 段单元或数据段单元或物理存储单元序号 | 创建volume时由系统自动创建segment,并按照逻辑顺序为每个segment标记序列号 |
SATAindex | 物理磁盘序列号 | 管理物理磁盘时,对每块磁盘标记唯一序列号 |
I/O | Input/Output | 输入/输出或读写 |
另外,还需要明确一些概念:
存储节点:存储节点和数据磁盘一样都属于物理上的概念,存储节点用于管理若干数据磁盘,在同一时刻,同一数据磁盘只属于某一个存储节点管理;
卷:卷是逻辑上的概念,某一数据磁盘上可以划分不同的存储块空间组成不同的卷,即同一个卷的段单元可以分布在不同的数据磁盘上。
一般的分布式存储系统使用分布式服务管理整个集群中所有节点的存储资源(包括HDD(机械硬盘)、SSD(固态硬盘)、PCIE(PCIE(peripheral component interconnectexpress,外部设备互联总线)接口的高速固态硬盘)、内存等)。为了实现有效组织管理集群中所有存储资源,主要可从两个层面:一个是集群层面,一个是节点层面,本发明重点针对节点层面进行讨论,在整个存储集群中,一个节点可以包括一个或多个数据磁盘,但一个数据磁盘只属于一个节点。本实施例中以该集群中有3个节点,分别是节点A、节点B、节点C,并且所有节点硬件配置相同为例来进行说明。以其中一个节点A举例,假设这个节点A有128GB内存,2块1TB大小的固态硬盘,20块8TB大小的机械硬盘,其中。内存和固态硬盘用作缓存,用作数据高速临时存储功能,但不承担数据持久化存储功能,机械硬盘做存储用,所以将segment unit分配在机械硬盘上。
本实施例中在部署集群时将segment size设置为16GB,page size设置为8KB,当然也可以根据具体情况进行其他大小的划分,在本实施例中将segment size设置为16GB,page size设置为8KB并不应当构成对本发明的限制,在划分segment size和page size之后,需要创建一个副本数量为3、大小为2TB的volume,由于segment size设置为16GB, 2TB/ 16GB = 128,则该volume一共应该包含128个segments。由于创建volume时指定副本数量为3,每个segment包含3个segment unit,则一共128 * 3 = 384个segment unit,将这些segment unit分配到集群中3个节点上(节点A、节点B和节点C),每个节点需分配128个segment unit。本实施例以集群中存在3个节点为例来进行说明,具体实施时,集群中的节点数量不做限制。需要说明的是:在分布式存储集群中,为了保证数据的安全性,一份数据存在多个副本,每个副本的数据是一致的,但是不同副本数据读写过程中承担的任务不同,通常分为主副本(Primary,简称P)和从副本(Secondary,简称S),主副本相对从副本承担更多的I/O负载。
需要说明的是,所谓的集群或集群存储指的是通过将数据分布到集群中各节点的存储方式,提供单一的使用接口与界面,使用户可以方便地对所有数据进行统一使用与管理。集群中所有磁盘设备整合到单一的共享存储池中提供给前端的应用服务器,极大提高了磁盘利用率。
下面来具体说明本发明的过程:
首先,要进行volume的创建。当节点A在接收到创建128个segment unit的请求时,如果该128个segment unit都属于同一个volume,该volume管理20块机械硬盘,则会将这些segment unit按照其自身携带的segment index进行排序处理,并将内部20块机械硬盘标记上序列号(如SATA index [0]- SATA index [19]),接下来按照segment index从0开始,依次将第0个segment unit放入SATA index 为0的机械硬盘创建队列中,第1个segmentunit放入SATA index为1的机械硬盘创建队列中,当第19个segment unit放入到SATAindex为19的机械硬盘创建队列后,第20个segment unit再放入到SATA index为0的机械硬盘创建队列中,以此类推,直至创建完成。即对segment unit和机械硬盘分别进行排序,并将segment unit和机械硬盘进行一一对应。如果该128个segment unit属于不同的volume,则将分别属于同一个volume中的segment unit进行上述处理,具体为:如果该128个segment unit中的64个segment unit属于一个volume,该volume管理10块机械硬盘;64个segment unit属于另一个volume,该volume管理10块机械硬盘,则两个volume中的segmentunit进行分别排序。即针对第一个volume中的10块机械硬盘标记上序列号(如SATA index[0]- SATA index [9]),按照segment index从0开始,依次将第0个segment unit放入SATAindex 为0的机械硬盘创建队列中,直到将第9个segment unit放入SATA index 为9的机械硬盘创建队列中,第10个segment unit放入SATA index 为0的机械硬盘创建队列中;同样的,针对第二个volume也进行上述处理。
节点这样分配segment unit的好处如下:
1、在随机I/O的时候,IO会随机落到不同磁盘,每时每刻每个磁盘都在运转,即相当于同时使用了所有机械硬盘的读写性能;
2、在顺序I/O的时候,同样可以将I/O按照之前定义的SATA index顺序,以条带大小依次落入这些机械硬盘,除了同时使用到所有机械硬盘的读写性能。
当完成volume的创建后,用户即可进行读写请求,需要说明的是,此时用户的读写请求只能针对同一个volume,而不会跨不同的volume。
具体步骤如图1和图2所示,其中图1展示的是逻辑写转换,所谓的逻辑写转换是将逻辑上的volume的概念转换为物理上的磁盘,图1中的左侧包括128个segment,在这128个segment中包括了2TB的空间,这属于逻辑上的概念,进行逻辑写转换即为将逻辑上的2TB的存储空间转换到物理空间上的磁盘的存储空间,此时的用户请求是对磁盘进行写入。图2展示的是逻辑读转换,与图1相反,图2中的右侧包括128个segment,在这128个segment中包括了2TB的空间,这属于逻辑上的概念,进行逻辑读转换即为将物理空间上磁盘的存储空间转换为逻辑上的2TB的存储空间,此时用户的请求是读磁盘数据。
下面具体对用户请求进行详细说明:条带化处理模块收到用户的顺序读写请求(顺序I/O请求)后,先将用户的读写请求进行条带化处理,即按照预先设定的条带大小对用户顺序I/O请求进行切分,将顺序I/O请求转换为一个个小块I/O(也称为条带读写块),同时刻并发地将这些小块I/O按照上述创建volume时segment的顺序分发到不同的机械硬盘上,由这些机械硬盘同时进行读写,则可以实现在分布式存储系统中,顺序I/O请求可以使用多个节点中的多个机械硬盘的性能。即,条带化处理模块将用户发过来的顺序I/O请求(包括起始位置offset和长度length)按照条带进行切分,具体的条带大小可由用户自行定义,例如可以为1MB等等,对用户发送的顺序I/O请求进行条带化处理后得到一个个小块的条带读写块,然后将切分好的条带读写块填入如图1、图2所示的volume中的segment中。具体实施时,每个条带大小可自定义,定义好条带大小之后,对用户的I/O请求进行切片,也就是通常所说的“条带化处理”,使用户的I/O请求条带化。
具体实施时,每个volume独立拥有自己的固定条带大小,条带的大小为页长pagesize的n倍,其中n为正整数。具体实施时,n可以根据用户业务场景指定。根据用户I/O请求起始位置进行换算,如用户请求访问3.9TB到4.1TB,则用户请求访问的起始地址是3.9TB,长度是0.2TB,根据其起始位置计算出该起始位置应该落在哪个segment的哪个位置,计算完一个条带后如果还有请求数据,则继续计算下一个条带对应的segment以及位置,以此类推。
以上述volume为例,假设该volume配置条带的大小为:128*8KB(page size) =1MB,volume大小为2TB。假设用户发起一个写请求,写请求起始位置为0,大小为5MB,经过条带换算后,则会有5个小块写请求,分别为[0,1MB)、[1MB,2MB)、[2MB,3MB)、[3MB,4MB)、[4MB,5MB),写入顺序如下:
1,[0,1MB)会从第0个segment的0位置开始写入,长度为一个条带大小:1MB;
2,[1MB,2MB)会从第1个segment的0位置开始写入,长度为一个条带大小:1MB;
3,[2MB,3MB)会从第2个segment的0位置开始写入,长度为一个条带大小:1MB;
4,[3MB,4MB)会从第3个segment的0位置开始写入,长度为一个条带大小:1MB;
5,[4MB,5MB)会从第4个segment的0位置开始写入,长度为一个条带大小:1MB。
假设用户再发起一个读请求,读请求起始位置为128MB,大小为3.5MB,经过条带换算后,则会有4个小块读请求,分别为[0,1MB)、[1MB,2MB)、[2MB,3MB)、[3MB,3.5MB),读取顺序如下:
1,[0,1MB)会从第0个segment的1MB位置开始读取,长度为一个条带大小:1MB;
2,[1MB,2MB)会从第1个segment的1MB位置开始读取,长度为一个条带大小:1MB;
3,[2MB,3MB)会从第2个segment的1MB位置开始读取,长度为一个条带大小:1MB;
4,[3MB,4MB)会从第3个segment的1MB位置开始读取,长度不足一个条带大小:0.5MB。
采用上述方式可确保用户的读写能够分发到不同的机械硬盘上,由多个不同的机械硬盘同时进行读写,从而使得顺序I/O可以使用多个节点中的多个机械硬盘的性能,提高硬盘的读写性能。
此外,本发明还解决了volume扩展功能中存在的I/O性能问题。所谓volume扩展功能,即用户创建一个固定大小的volume,随着时间推移,在使用过程中发现volume大小不能现有需求,需要对该volume进行扩展一定大小。如图3所示,原来的volume为2TB大小,扩展出两个新的volume,分别为volume扩展1和volume扩展2,这两个扩展的volume大小均为2TB,具体实施时,新的扩展的volume的大小可以相同也可以不同,如原来的volume为2TB大小,也可以扩展出两个新的volume,其中volume扩展1的大小为2TB,volume扩展2的大小为3TB。扩展volume会带来条带算法参数(segment count)的改变,参数改变意味着原有数据不能正常读取,因此需要对volume进行分块处理,每次扩展volume相当于创建一个新的volume追加到原有的volume后面,这样在用户进行I/O请求时,最先判断该I/O是否跨volume,如果不跨volume,则该I/O只落到其中一个volume上,则只需要先进行条带化处理,再将条带化处理后的条带读写块分发到不同的数据磁盘中即可。
由于扩展之后,对用户来说,虽然扩展后的volume和原有的volume可形成一个新的空间更大的volume,即对用户来说,其读写请求是正常请求,并不会体验到扩展volume和原有volume的区别;因此,用户的读写请求可能是跨不同的volume的。针对这种情况,首先按照逻辑空间切分该I/O请求,即将该I/O请求切分到不同的volume上,得到若干个系统内子请求,然后分别对各个系统内子请求进行处理,然后得到针对各个系统内子请求的响应,再将针对各个系统内子请求的响应拼合起来形成一个完整的响应,再将该完整的响应作为对用户请求的响应反馈给用户。在对系统内子请求进行处理的时候需要使用条带转换算法单独处理每个切分后的系统内子请求,即如果用户请求是跨不同的volume,需要先对用户请求进行拆分得到系统内子请求,然后再对该子请求进行条带化处理,得到针对各子请求的响应。举例说明如下:针对图3中所示的1个原生卷和两个扩展卷的大小均为2TB的情况,如果用户请求读3.9TB-4.1TB,条带读写策略处理模块根据用户请求的起始位置和长度判断出该用户请求是跨volume的,该用户请求的起始位置是3.9TB,长度是0.2TB,则该用户请求是跨volume扩展1和volume扩展2,那么条带读写策略处理模块会从volume扩展1读[3.9TB,4.0TB),再从volume扩展2读[4.0TB,4.1TB),再将两个拼合起来,得到满足用户请求的数据。如果用户请求读3.8TB-4.0TB,根据用户请求的起始位置和长度判断出该用户请求是不跨volume的,则直接从volume扩展1中读取3.8TB-4.0TB即可。
与现有技术相比,本发明中扩展的volume和原有的volume是一体的,用户在进行I/O请求时,不需要区分原有的volume和扩展的volume,也不需要用户对原有的volume和扩展的volume进行管理,保证了硬盘读写的性能。
Claims (10)
1.一种分布式存储系统,包括若干存储节点,其特征在于:还包括条带化处理模块、条带分发模块,所述条带化处理模块用于将用户请求划分为条带读写块,条带分发模块用于将所述条带读写块分发到各个存储节点的不同数据磁盘中。
2.根据权利要求1所述的分布式存储系统,其特征在于:还包括判断模块、拆分模块和拼合模块,所述判断模块用于在条带化处理模块进行条带化处理之前根据用户请求的起始位置和长度判断用户请求是否跨不同的卷,如果所述用户请求跨不同的卷,则拆分模块对该用户的请求进行拆分得到系统内子请求,系统内子请求被执行完毕后再由拼合模块对每一个系统内子请求的响应进行拼合形成一个完整的响应作为对用户请求的响应;若判断模块判断用户请求是同一个卷,则直接执行用户请求。
3.根据权利要求1-3中任一权利要求所述的分布式存储系统,其特征在于:所述条带读写块的大小为页长的n倍,其中n为正整数。
4.一种分布式存储系统的读写方法,其特征在于:包括以下步骤:
条带化处理模块将接收到的用户请求进行条带化处理,分成若干条带读写块;
条带分发模块用于将条带读写块分发到存储节点不同的数据磁盘中。
5.根据权利要求4所述的分布式存储系统的读写方法,其特征在于:还包括:在条带化处理模块对用户请求进行条带化处理之前,先创建卷,具体为:判断待创建卷的段单元是否属于同一个卷,如果是,则将所述段单元进行排序,同时将待创建卷的数据磁盘排序,并将段单元与数据磁盘一一对应;如果否,则先将所述段单元拆分成不同的卷,然后再对各个卷中的段单元和数据磁盘进行如上的排序和对应。
6.根据权利要求5所述的分布式存储系统的读写方法,其特征在于:如果原有的卷存储空间不足,则按照如权5所述的创建卷的方式扩展新的卷。
7.根据权利要求6所述的分布式存储系统的读写方法,其特征在于:在条带化处理模块对用户请求进行条带化处理之前、创建卷之后,如果用户请求跨原有的卷和扩展的卷,则将用户请求按照不同的卷进行切分得到系统内子请求,根据系统内子请求分别访问不同的卷得到各个系统内子请求的响应后对各个系统内子请求的响应进行拼合形成一个完整的响应作为对用户请求的响应。
8.根据权利要求7所述的分布式存储系统的读写方法,其特征在于:所述切分用户请求按照用户请求的起始位置和长度来进行切分。
9.根据权利要求6所述的分布式存储系统的读写方法,其特征在于:如果用户请求针对同一个卷,则直接执行用户请求。
10.根据权利要求4-9中任一权利要求所述的分布式存储系统的读写方法,其特征在于:所述条带读写块为页长的n倍,其中n为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860604.3A CN113312009A (zh) | 2021-07-29 | 2021-07-29 | 分布式存储系统及分布式存储系统的读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860604.3A CN113312009A (zh) | 2021-07-29 | 2021-07-29 | 分布式存储系统及分布式存储系统的读写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312009A true CN113312009A (zh) | 2021-08-27 |
Family
ID=77381919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110860604.3A Pending CN113312009A (zh) | 2021-07-29 | 2021-07-29 | 分布式存储系统及分布式存储系统的读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312009A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484130A (zh) * | 2014-12-04 | 2015-04-01 | 北京同有飞骥科技股份有限公司 | 一种横向扩展存储系统的构建方法 |
CN104639661A (zh) * | 2015-03-13 | 2015-05-20 | 华存数据信息技术有限公司 | 分布式存储系统及文件存储和读取方法 |
CN107632780A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于分布式存储系统的条带卷实现方法及其存储架构 |
CN110308875A (zh) * | 2019-06-27 | 2019-10-08 | 深信服科技股份有限公司 | 数据读写方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-07-29 CN CN202110860604.3A patent/CN113312009A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484130A (zh) * | 2014-12-04 | 2015-04-01 | 北京同有飞骥科技股份有限公司 | 一种横向扩展存储系统的构建方法 |
CN104639661A (zh) * | 2015-03-13 | 2015-05-20 | 华存数据信息技术有限公司 | 分布式存储系统及文件存储和读取方法 |
CN107632780A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于分布式存储系统的条带卷实现方法及其存储架构 |
CN110308875A (zh) * | 2019-06-27 | 2019-10-08 | 深信服科技股份有限公司 | 数据读写方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10782882B1 (en) | Data fingerprint distribution on a data storage system | |
US20180349030A1 (en) | Storage control device, storage control program, and storage system | |
US8732217B2 (en) | Using a per file activity ratio to optimally relocate data between volumes | |
US20220091739A1 (en) | Write type based crediting for block level write throttling to control impact to read input/output operations | |
US20230013281A1 (en) | Storage space optimization in a system with varying data redundancy schemes | |
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
US9110919B2 (en) | Method for quickly identifying data residing on a volume in a multivolume file system | |
US8423739B2 (en) | Apparatus, system, and method for relocating logical array hot spots | |
CN102369506B (zh) | 存储系统及存储系统的利用率管理方法 | |
CN110858124B (zh) | 数据迁移方法及装置 | |
CN103761053B (zh) | 一种数据处理方法和装置 | |
WO2011045831A1 (en) | Storage apparatus and its control method | |
US8650381B2 (en) | Storage system using real data storage area dynamic allocation method | |
WO2013018132A1 (en) | Computer system with thin-provisioning and data management method thereof for dynamic tiering | |
US10552056B2 (en) | Data storage system tiering accounting for limited write endurance | |
US11042324B2 (en) | Managing a raid group that uses storage devices of different types that provide different data storage characteristics | |
US8572338B1 (en) | Systems and methods for creating space-saving snapshots | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
US20190243758A1 (en) | Storage control device and storage control method | |
US11100008B2 (en) | Efficient memory usage for snapshots | |
WO2020134143A1 (zh) | 存储系统中分条重组的方法及分条服务器 | |
US10242053B2 (en) | Computer and data read method | |
US11347641B2 (en) | Efficient memory usage for snapshots based on past memory usage | |
CN112748848A (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN113312009A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210827 |
|
RJ01 | Rejection of invention patent application after publication |