CN107577543A - 数据读写方法、装置、存储系统及计算机可读存储介质 - Google Patents

数据读写方法、装置、存储系统及计算机可读存储介质 Download PDF

Info

Publication number
CN107577543A
CN107577543A CN201710842945.1A CN201710842945A CN107577543A CN 107577543 A CN107577543 A CN 107577543A CN 201710842945 A CN201710842945 A CN 201710842945A CN 107577543 A CN107577543 A CN 107577543A
Authority
CN
China
Prior art keywords
lan
read
write
reading
virtual lan
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
CN201710842945.1A
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710842945.1A priority Critical patent/CN107577543A/zh
Publication of CN107577543A publication Critical patent/CN107577543A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据读写方法、装置、分布式存储系统及计算机可读存储介质,该方法包括:设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求;虚拟LAN根据数据读写请求携带的待读写数据信息,以及虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求通过数据连接通道转发至对应的实体LAN,以使各实体LAN并行处理读写请求。本发明将数据读写请求转发给多个实体LAN并行处理,可以避免大量IO请求在LAN处延迟,加快IO请求处理速度,即虚拟LAN起IO分压作用,将单个LAN IO压力分摊到多个LAN,提高IO性能和存储系统性能。

Description

数据读写方法、装置、存储系统及计算机可读存储介质
技术领域
本发明涉及IO读写技术领域,特别涉及一种数据读写方法、装置、分布式存储系统及计算机可读存储介质。
背景技术
随着数据规模和数据数量的不断增长,分布式存储系统的应用也越来越广泛。
目前,Internet小型计算机系统接口(Internet Small Computer SystemInterface,iSCSI)技术已成熟应用于各分布式存储系统。且iSCSI技术所应用的后端存储结构多是PC架构,即由一台性能高效稳定的普通计算机作为服务器,通过安装iSCSITarget软件向外提供iSCSI服务。而应用这种服务形式的分布式存储系统一般采用的存储架构为存储区域网络(Storage Area Network,SAN)。
分布式存储系统采用SAN存储架构时,可以通过FC光纤通道或IB网络进行存储服务。但是,这样会受限于单个LAN的数据吞吐能力,即在前端iSCSI协议的数据吞吐能力大于单个LAN的数据处理能力时,大量的IO请求在LAN处被延迟。也即,在SAN分布式存储系统中,服务器端的单个LAN处理客户端的所有IO请求,当IO请求压力较大或数量较多,超出服务器端单个LAN的处理能力时,大量的IO请求在LAN处被等待,IO请求延迟较大,进而导致存储系统IO性能下降。
发明内容
本发明的目的是提供一种数据读写方法、装置、分布式存储系统及计算机可读存储介质,以解决现有分布式存储系统的单个LAN处理能力无法满足大量IO请求导致IO延迟较大和存储系统性能下降的问题。
为解决上述技术问题,本发明提供如下技术方案:
一种数据读写方法,应用于分布式存储系统,包括:
设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求;
所述虚拟LAN根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
可选地,所述利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求转发至对应的实体LAN,包括:
根据所述待读写数据信息,判断所述数据读写请求是否大于预设基准值;
若是,根据所述一对多映射关系和所述待读写数据信息,将所述数据读写请求拆分成映射到多个所述实体LAN的子读写请求,将多个所述子读写请求通过所述数据连接通道转发至对应的所述实体LAN;
若否,将所述数据读写请求通过所述数据连接通道转发至对应的所述实体LAN。
可选地,在所述设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求之前,还包括:
所述虚拟LAN读取预存储的配置文件,获取所述一对多映射关系;
所述虚拟LAN接收iSCSI服务层传递的iSCSI连接请求;
所述虚拟LAN根据所述iSCSI连接请求携带的虚拟LAN信息和所述一对多映射关系,判断所述虚拟LAN信息的映射关系是否存在;
当所述虚拟LAN信息的映射关系存在时,所述虚拟LAN分别与所述虚拟LAN信息对应的多个所述实体LAN建立所述数据连接通道;
当所述虚拟LAN信息的映射关系不存在时,所述虚拟LAN向所述iSCSI服务层返回连接失败报错信息。
一种数据读写装置,应用于分布式存储系统,集成于服务器端的设置于服务层与存储系统层之间的虚拟LAN,包括:
接收模块,用于接收数据读写请求;
拆分发送模块,用于根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
可选地,所述拆分转发模块包括:
判断子模块,用于根据所述待读写数据信息,判断所述数据读写请求是否大于预设基准值;
拆分转发子模块,用于若是,根据所述一对多映射关系和所述待读写数据信息,将所述数据读写请求拆分成映射到多个所述实体LAN的子读写请求,将多个所述子读写请求通过所述数据连接通道转发至对应的所述实体LAN;
转发子模块,用于若否,将所述数据读写请求通过所述数据连接通道转发至对应的所述实体LAN。
可选地,还包括:
映射关系获取模块,读取预存储的配置文件,获取所述一对多映射关系;连接请求接收模块,接收iSCSI服务层传递的iSCSI连接请求;
第一判断模块,根据所述iSCSI连接请求携带的虚拟LAN信息和所述一对多映射关系,判断所述虚拟LAN信息的映射关系是否存在;
建立模块,当所述虚拟LAN信息的映射关系存在时,分别与所述虚拟LAN信息对应的多个所述实体LAN建立所述数据连接通道;
报错模块,当所述虚拟LAN信息的映射关系不存在时,向所述iSCSI服务层返回连接失败报错信息。
一种分布式存储系统,包括服务器端和客户端;所述服务器端包括服务层、存储系统层及设置于所述服务层和所述存储系统层之间的虚拟LAN;
所述虚拟LAN用于接收数据读写请求;根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
可选地,所述分布式存储系统的存储架构为存储区域网络;所述服务层为iSCSI服务层。
一种计算机可读存储介质,所述计算机可读存储介质上存储有数据读写程序,所述数据读写程序被处理器执行时实现如权利要求1至3任一项所述数据读写方法的步骤。
本发明所提供的一种数据读写方法,该方法包括:设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求;虚拟LAN根据数据读写请求携带的待读写数据信息,以及虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个实体LAN并行处理读写请求。
可见,该方法在服务层和存储系统层之间增加虚拟LAN,该虚拟LAN将客户端的数据读写请求,通过一个虚拟LAN对应多个实体LAN的映射关系,拆分成映射到多个实体LAN的子读写请求,并将各个子读写请求发送给相应的实体LAN并行处理,亦或者是直接将IO请求转发给多个实体LAN并行处理。这样,当客户端IO请求压力较大时,虚拟LAN可以将数据读写请求拆分后转发或直接转发至多个实体LAN进行并行处理。相较于现有一对一映射关系,其可以避免大量IO请求在LAN处延迟,加快IO请求处理速度,即虚拟LAN起IO分压作用,将单个LAN的IO压力分摊到多个LAN上,提高IO性能和存储系统性能。本发明所提供的一种数据读写装置、一种分布式存储系统及一种计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的数据读写方法的一种具体实施方式的流程示意图;
图2为本发明实施例提供的数据读写方法的另一具体实施方式的流程示意图;
图3为本发明实施例提供的数据读写装置的结构示意框图;
图4为本发明实施例提供的分布式存储系统的结构示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的数据读写方法的一种具体实施方式的流程示意图,该方法可以包括以下步骤:
步骤101:设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求。
需要说明,本实施例所提供的数据读写方法可以具体应用于分布式存储系统,更具体地,该分布式存储系统可以为采用SAN架构的分布式存储系统,也可以为其它采用非SAN架构的分布式存储系统。
上述虚拟LAN具体设置服务器端的服务层和存储系统层之间。该服务层可以具体为iSCSI服务层,即该分布式存储系统的客户端采用iSCSI技术。该存储系统层可以例如为ceph系统等。该虚拟LAN是在服务器端预先创建的,将其发布给客户端使用。该虚拟LAN在底层存储系统中并不存在,是一个逻辑上的LAN。
步骤102:虚拟LAN根据数据读写请求携带的待读写数据信息,以及虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个实体LAN并行处理读写请求。
需要说明,可以将数据读写请求拆分一个或多个子读写请求。当为一个个子读写请求时,子读写请求就是该数据读写请求,即此时可以认为没有对该数据读写请求进行拆分。
数据读写请求拆分成一个还是多个,主要取决于该数据读写请求的大小,而数据读写请求的大小可以通过其所携带的待读写数据信息进行确定。具体可以通过比较数据读写请求与预设基准值的大小来确定是否需要将该数据读写请求进行拆分。
当数据读写请求大于预设基准值时,基于一对多映射关系和待读写数据信息,将该数据读写请求拆分成多个子读写请求,这多个子读写请求分别映射到多个实体LAN。
上述预设拆分算法可以根据数据读写请求和一对多映射关系,将数据读写请求拆分成子读写请求。
在一些具体实施方式中,上述利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求转发至对应的实体LAN的过程可以具体为:根据待读写数据信息,判断数据读写请求是否大于预设基准值;若是,根据一对多映射关系和待读写数据信息,将数据读写请求拆分成映射到多个实体LAN的子读写请求,将多个子读写请求通过数据连接通道转发至对应的实体LAN;若否,将数据读写请求通过数据连接通道转发至对应的实体LAN。
需要说明,上述预设基准值可以由人为设定,其用于限定哪些IO请求需要拆分,哪些IO请求不需要拆分。优选地,该预设基准值应尽可能地大,这样所需拆分的IO请求就比较少。
也就是说,预设基准值的选择应以尽可能地使IO读写性能最佳为好。由于IO拆分对IO读写性能有一定影响,理论上,应使大多数的IO请求不用拆分,少量比较大的IO请求需要被拆分。
例如,可以将预设基准值设定为64k。当客户端发送的IO请求大小为68k时,该IO请求大于64k,此时才将68k请求拆分成64K大小的子读写请求;当客户端发送的IO请求大小为16K时,不进行拆分,而是直接把请求转发给对应的实体LAN。
上述子读写请求可以是指某个实体LAN所处理的请求,其需要包含有该实体LAN所需读写的数据信息,这样,该实体LAN在接收到该子读写请求时,可以根据所包含的读写数据信息,对相应的数据进行读写处理。故在进行IO拆分的时候,需要计算出每一个子读写请求对应的待读写数据信息。
而每一子读写请求所包含的待读写数据信息一般可以通过数据偏移信息和数据长度信息,结合一对多映射关系计算得出。
例如,当1个虚拟LAN映射到4个实体LAN时,假设虚拟LAN读写请求的offset=1024K,length=68K,拆分后的子请求固定大小为64K。offset除以64K:1024K/64K=16,16再按4取模16%4=0,通过两次运算,该次读写请求就映射到了LAN0,length的前64K就从LAN0里面读写,剩余的4K就从LAN1里面读写。该虚拟LAN请求拆分后就得到两个实体LAN请求,一个是offset=(16/4)*64K=256K,length=64K的请求,另一个是offset=((16+1)/4)*64K=256K,length=4k的请求。
计算出各个实体LAN的子读写请求包含的待读写数据信息,也就确定了哪一个实体LAN处理哪一部分数据。故将相应的子读写请求转发至相应的实体LAN后,实体LAN也就可以根据自身所接收的待读写数据信息,来对相应数据进行读写操作。
可以理解,无论是否将数据读写请求进行拆分,本实施例均可以通过虚拟LAN和多个实体LAN间的一对多映射关系,将数据读写请求发送至多个实体LAN进行并行处理,起到IO分压作用。
例如,当1个虚拟LAN对应4个实体LAN,且当前虚拟LAN接收到100个64K大小的IO请求,预设基准值为64K,此时,不需要将这100个64KIO请求进行拆分,而是可以将这100个IO请求均匀分摊至4个实体LAN进行并行处理。相较于现有客户端和服务端间一个LAN对应一个LAN的映射关系,不拆分时也可以提高IO读写性能,避免大量IO在LAN处被延迟。
又如,当1个虚拟LAN对应4个实体LAN,且当前虚拟LAN接收到一个4M大小的IO请求,预设基准值为1M,故需要将这4M的IO请求拆分成4个1M大小的子读写请求,然后再将这4个子读写请求分别发送至4个LAN。
当然,客户端发送的IO请求的大小是不固定的,故虚拟LAN所接收的IO请求中可能即包含有小于基准值的IO请求,也有大于基准值的IO请求。此时,对于大于基准值的IO请求进行拆分,然后再转给相应的实体LAN,而对于小于或等于基准值的IO请求,则可以根据其所携带的待读写数据信息定位出相应的实体LAN后转发对应的实体LAN。
需要说明,将多个IO请求分摊至多个实体LAN上,可以是均匀分摊,也可以是不均匀分摊。这多个IO请求可以是拆分后得到的IO请求,也可以是没有拆分的IO请求,亦或者是即有拆分后的IO请求,又有没有拆分的IO请求。至于是否均匀分摊,以及不均匀分摊时每个实体LAN所分摊的IO请求个数,则依赖于客户端请求的IO信息,该IO信息具体可以指客户端请求的offset和length。即虚拟LAN根据IO请求的offset,利用拆分算法,可以确定出该IO请求应该转发至哪一个实体LAN上。这样,可能出现多个IO请求均匀分摊至多个实体LAN上的情况,也可能出现多个IO请求不均匀分摊至实体LAN上的情况。
如果客户端所有的IO请求的offset信息不变,那么这些IO请求都会只转到一个实体LAN。但是,如果客户端的数据读写为随机读写,相应地,每个IO请求的offset也是随机的,这时理论上拆分后各个IO请求是均摊至多个实体LAN上的。同理,顺序读写时,offset也是顺序变化的,最终拆分后IO请求是均摊至多个实体LAN上的。
例如,当前接收到100个IO请求,虚拟LAN根据这100个IO请求的offset信息可以确定出其中的25个IO请求转发至LAN1,25个IO请求转发至LAN2,25个IO请求转发至LAN3,25个IO请求转发至LAN4,此时,相当于将这100个IO请求均匀分摊至4个实体LAN上。
又如,当前接收到100个IO请求,虚拟LAN根据这100个IO请求的offset信息可以确定出其中的30个IO请求转发至LAN1,30个IO请求转发至LAN2,30个IO请求转发至LAN3,10个IO请求转发至LAN4,此时,相当于这100个IO请求没有均匀分摊至4个LAN上。
需要说明,数据读写有随机读写和顺序读写之分,随机读写时,当读写的数据落入实体LAN的边界,也需要对该IO请求进行拆分。
多个实体LAN间并行处理数据读写请求,且每个实体LAN会根据所接收到的子读写请求包含的待读写数据信息(例如数据偏移和数据长度)对相应数据进行读写。这样可以提高服务器端资源的利用率,例如,带宽、CPU及磁盘等资源,以降低存储系统的平均使用成本。
本实施例中,在服务层和存储系统层之间增加虚拟LAN,该虚拟LAN将客户端的数据读写请求,通过一个虚拟LAN对应多个实体LAN的映射关系,拆分成映射到多个实体LAN的子读写请求,并将各个子读写请求发送给相应的实体LAN并行处理,亦或者是直接将IO请求转发给多个实体LAN并行处理。这样,当客户端IO请求压力较大时,虚拟LAN可以将数据读写请求拆分后转发或直接转发至多个实体LAN进行并行处理。相较于现有一对一映射关系,其可以避免大量IO请求在LAN处延迟,加快IO请求处理速度,即虚拟LAN起IO分压作用,将单个LAN的IO压力分摊到多个LAN上,提高IO性能和存储系统性能。
客户端在连接至服务器端LAN进行数据业务之前,需要通过与存储系统间建立的数据连接通道。该数据连接通道可以是预先建立好的;也可以不是预先建立好的,此时,虚拟LAN需要根据客户端的连接请求,建立数据连接通道。
请参见图2,图2为本发明实施例提供的数据读写方法的另一具体实施方式的流程示意图。
基于上述实施例,本实施例所提供的数据读写方法在上述设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求之前还可以包括以下步骤:
步骤201:虚拟LAN读取预存储的配置文件,获取一对多映射关系;
上述配置文件有预先配置的虚拟LAN和实体LAN间的映射关系,通过读取配置文件,可以获取所需的映射关系。该一对多映射关系可以具体表现为虚拟LAN卷名与多个实体LAN卷名的对应关系。
可以理解,该一对多映射关系是指一个虚拟LAN对应多个实体LAN,被映射的实体LAN在底层存储系统中也有对应的存在,例如,一个实体LAN对应ceph分布式存储系统中的一个RBD块。理论上,一个虚拟LAN映射到N个实体LAN,且多个实体LAN间并行处理读写请求,通过N个实体LAN的并行处理,可以将分布式存储系统的IO性能提升N倍。
步骤202:虚拟LAN接收iSCSI服务层传递的iSCSI连接请求。
可以理解,上述iSCSI连接请求可以包括建立连接的目标虚拟LAN的相关信息,例如,虚拟LAN的名称等。
步骤203:虚拟LAN根据iSCSI连接请求携带的虚拟LAN信息和一对多映射关系,判断虚拟LAN信息的映射关系是否存在;
具体地,根据虚拟LAN信息,通过判断是否查找到该虚拟LAN信息对应的映射关系,当查找到该虚拟LAN信息对应的映射关系时,则进入步骤204,当查找不到该虚拟LAN信息对应的映射关系时,则进入步骤205。
步骤204:当虚拟LAN信息的映射关系存在时,虚拟LAN分别与虚拟LAN信息对应的多个实体LAN建立数据连接通道;
具体地,根据虚拟LAN信息,查找到相应虚拟LAN映射关系;根据虚拟LAN与实体LAN的一对多映射关系,可以得出多个实体LAN的信息;然后根据多个实体LAN信息,分别请求与这多个实体LAN建立连接,进而与各个实体LAN均建立独立的多个数据连接通道。
步骤205:当虚拟LAN信息的映射关系不存在时,虚拟LAN向iSCSI服务层返回连接失败报错信息。
可以理解,上述报错信息可以具体为错误码,其主要表征所请求建立连接的实体LAN不存在或请求异常等。
当建立连接通道时,若映射关系不存在,默认表示不支持虚拟LAN方案,此时直接根据虚拟LAN信息,建立连接通道,失败就报错返回;若映射关系存在,则逐一与各个实体LAN建立连接,其中若任意一个连接失败,则关闭已经建立的连接,然后返回连接错误信息。
需要说明,本实施例的数据连接通道的建立为虚拟LAN的Open操作过程。
本实施例中,通过建立的数据连接通道,将IO请求转发给多个实体LAN并行处理,即虚拟LAN起IO分压作用,将单个LAN的IO压力分摊到多个LAN上,提高IO性能和存储系统性能。
下面对本发明实施例提供的数据读写装置进行介绍,下文描述的数据读写装置与上文描述的数据读写方法可相互对应参照。
请参考图3,图3为本发明实施例提供的数据读写装置的结构示意框图,该装置具体应用于分布式存储系统,集成于服务器端的设置于服务层与存储系统层之间的虚拟LAN,包括:
接收模块31,用于接收数据读写请求;
拆分发送模块32,用于根据数据读写请求携带的待读写数据信息,以及虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个实体LAN并行处理读写请求。
在一些具体实施方式中,拆分转发模块可以包括:
判断子模块,用于根据待读写数据信息,判断数据读写请求是否大于预设基准值;
拆分转发子模块,用于若是,根据一对多映射关系和待读写数据信息,将数据读写请求拆分成映射到多个实体LAN的子读写请求,将多个子读写请求通过数据连接通道转发至对应的实体LAN;
转发子模块,用于若否,将数据读写请求通过数据连接通道转发至对应的实体LAN。
在一些具体实施方式中,该装置还可以包括:
映射关系获取模块,读取预存储的配置文件,获取一对多映射关系;连接请求接收模块,接收iSCSI服务层传递的iSCSI连接请求;
第一判断模块,根据iSCSI连接请求携带的虚拟LAN信息和一对多映射关系,判断虚拟LAN信息的映射关系是否存在;
建立模块,当虚拟LAN信息的映射关系存在时,分别与虚拟LAN信息对应的多个实体LAN建立数据连接通道;
报错模块,当虚拟LAN信息的映射关系不存在时,向iSCSI服务层返回连接失败报错信息。
本实施例中,在服务层和存储系统层之间增加虚拟LAN,该虚拟LAN将客户端的数据读写请求,通过一个虚拟LAN对应多个实体LAN的映射关系,拆分成映射到多个实体LAN的子读写请求,并将各个子读写请求发送给相应的实体LAN并行处理,亦或者是直接将IO请求转发给各个实体LAN并行处理。这样,当客户端IO请求压力较大时,虚拟LAN可以将数据读写请求拆分映射到多个实体LAN进行并行处理。相较于现有一对一映射关系,其可以避免大量IO请求在LAN处延迟,加快IO请求处理速度,即虚拟LAN起IO分压作用,将单个LAN的IO压力分摊到多个LAN上,提高IO性能和存储系统性能。
下面将对本实施例提供的一种分布式存储系统进行介绍,参见图4本发明实施例提供的分布式存储系统的结构示意框图,该系统包括服务器端41和客户端42;服务器端包括服务层、存储系统层及设置于服务层和存储系统层之间的虚拟LAN;
虚拟LAN用于接收数据读写请求;以及虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将数据读写请求拆分成至少一个子读写请求,并将子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个实体LAN并行处理读写请求。
优选地,分布式存储系统的存储架构为存储区域网络;服务层为iSCSI服务层。
需要说明,本实施例中的虚拟LAN的具体处理流程可以参见上述各个实施例,在此不作赘述。
本实施例中,该系统通过在服务器端增加虚拟LAN,以将IO请求拆分映射后转发或直接转发给多个实体LAN并行处理,即虚拟LAN起IO分压作用,将单个LAN的IO压力分摊到多个LAN上,提高系统IO性能和存储性能。
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有数据读写程序,数据读写程序被处理器执行时实现上述任一项数据读写方法的步骤。与上述各个实施例的相似之处可相互参见,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的数据读写方法、装置、分布式存储系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (9)

1.一种数据读写方法,应用于分布式存储系统,其特征在于,包括:
设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求;
所述虚拟LAN根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
2.根据权利要求1所述的数据读写方法,其特征在于,所述利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求转发至对应的实体LAN,包括:
根据所述待读写数据信息,判断所述数据读写请求是否大于预设基准值;
若是,根据所述一对多映射关系和所述待读写数据信息,将所述数据读写请求拆分成映射到多个所述实体LAN的子读写请求,将多个所述子读写请求通过所述数据连接通道转发至对应的所述实体LAN;
若否,将所述数据读写请求通过所述数据连接通道转发至对应的所述实体LAN。
3.根据权利要求1或2所述的数据读写方法,其特征在于,在所述设置于服务器端的服务层和存储系统层之间的虚拟LAN接收数据读写请求之前,还包括:
所述虚拟LAN读取预存储的配置文件,获取所述一对多映射关系;
所述虚拟LAN接收iSCSI服务层传递的iSCSI连接请求;
所述虚拟LAN根据所述iSCSI连接请求携带的虚拟LAN信息和所述一对多映射关系,判断所述虚拟LAN信息的映射关系是否存在;
当所述虚拟LAN信息的映射关系存在时,所述虚拟LAN分别与所述虚拟LAN信息对应的多个所述实体LAN建立所述数据连接通道;
当所述虚拟LAN信息的映射关系不存在时,所述虚拟LAN向所述iSCSI服务层返回连接失败报错信息。
4.一种数据读写装置,应用于分布式存储系统,其特征在于,集成于服务器端的设置于服务层与存储系统层之间的虚拟LAN,包括:
接收模块,用于接收数据读写请求;
拆分发送模块,用于根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
5.如权利要求4所述的数据读写装置,其特征在于,所述拆分转发模块包括:
判断子模块,用于根据所述待读写数据信息,判断所述数据读写请求是否大于预设基准值;
拆分转发子模块,用于若是,根据所述一对多映射关系和所述待读写数据信息,将所述数据读写请求拆分成映射到多个所述实体LAN的子读写请求,将多个所述子读写请求通过所述数据连接通道转发至对应的所述实体LAN;
转发子模块,用于若否,将所述数据读写请求通过所述数据连接通道转发至对应的所述实体LAN。
6.根据权利要求4或5所述的数据读写装置,其特征在于,还包括:
映射关系获取模块,读取预存储的配置文件,获取所述一对多映射关系;连接请求接收模块,接收iSCSI服务层传递的iSCSI连接请求;
第一判断模块,根据所述iSCSI连接请求携带的虚拟LAN信息和所述一对多映射关系,判断所述虚拟LAN信息的映射关系是否存在;
建立模块,当所述虚拟LAN信息的映射关系存在时,分别与所述虚拟LAN信息对应的多个所述实体LAN建立所述数据连接通道;
报错模块,当所述虚拟LAN信息的映射关系不存在时,向所述iSCSI服务层返回连接失败报错信息。
7.一种分布式存储系统,其特征在于,包括服务器端和客户端;所述服务器端包括服务层、存储系统层及设置于所述服务层和所述存储系统层之间的虚拟LAN;
所述虚拟LAN用于接收数据读写请求;根据所述数据读写请求携带的待读写数据信息,以及所述虚拟LAN与多个实体LAN间的一对多映射关系,利用预设拆分算法,将所述数据读写请求拆分成至少一个子读写请求,并将所述子读写请求通过预建立的数据连接通道转发至对应的实体LAN,以使各个所述实体LAN并行处理读写请求。
8.根据权利要求7所述的分布式存储系统,其特征在于,所述分布式存储系统的存储架构为存储区域网络;所述服务层为iSCSI服务层。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据读写程序,所述数据读写程序被处理器执行时实现如权利要求1至3任一项所述数据读写方法的步骤。
CN201710842945.1A 2017-09-18 2017-09-18 数据读写方法、装置、存储系统及计算机可读存储介质 Pending CN107577543A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710842945.1A CN107577543A (zh) 2017-09-18 2017-09-18 数据读写方法、装置、存储系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710842945.1A CN107577543A (zh) 2017-09-18 2017-09-18 数据读写方法、装置、存储系统及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN107577543A true CN107577543A (zh) 2018-01-12

Family

ID=61033111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710842945.1A Pending CN107577543A (zh) 2017-09-18 2017-09-18 数据读写方法、装置、存储系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN107577543A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109254732A (zh) * 2018-08-31 2019-01-22 郑州云海信息技术有限公司 一种存储数据的读写方法、装置及相关设备
CN114047874A (zh) * 2021-10-20 2022-02-15 北京天融信网络安全技术有限公司 一种基于tcmu虚拟设备的数据存储系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064561A1 (ja) * 2004-12-16 2006-06-22 Softether Corporation 仮想プライベートネットワークシステム
CN103124299A (zh) * 2013-03-21 2013-05-29 杭州电子科技大学 一种异构环境下的分布式块级别存储系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064561A1 (ja) * 2004-12-16 2006-06-22 Softether Corporation 仮想プライベートネットワークシステム
CN103124299A (zh) * 2013-03-21 2013-05-29 杭州电子科技大学 一种异构环境下的分布式块级别存储系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
周敬利 等: "《iSCSI SAN中高速虚拟网络 I /O通道技术研究》", 《计算机应用研究》 *
李晟: "《iscsi虚拟化的模型》", 《科技传播》 *
薛小平 等: "《宽带无线通信》", 31 October 2016, 同济大学出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109254732A (zh) * 2018-08-31 2019-01-22 郑州云海信息技术有限公司 一种存储数据的读写方法、装置及相关设备
CN114047874A (zh) * 2021-10-20 2022-02-15 北京天融信网络安全技术有限公司 一种基于tcmu虚拟设备的数据存储系统和方法
CN114047874B (zh) * 2021-10-20 2024-05-07 北京天融信网络安全技术有限公司 一种基于tcmu虚拟设备的数据存储系统和方法

Similar Documents

Publication Publication Date Title
US11477295B2 (en) File type association in a remote computing session
US5974496A (en) System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
US20060149919A1 (en) Method, system, and program for addressing pages of memory by an I/O device
US6182138B1 (en) Data distribution system that performs load balancing by directly transmitting data between distribution servers
US20080183838A1 (en) Method, system and computer program product for delivering data to a storage buffer assigned to an application
WO2016078313A1 (zh) 数据写入方法及装置
US8645559B2 (en) Redirection of multiple remote devices
US9098404B2 (en) Storage array, storage system, and data access method
CA2444438A1 (en) System and method for retrieving and storing multimedia data
US20110179109A1 (en) Communication method and apparatus
US11316824B1 (en) Hybrid and efficient method to sync NAT sessions
CN102523258A (zh) 一种面向云操作系统的数据存储架构及其负载均衡方法
WO2021073546A1 (zh) 数据访问方法、装置和第一计算设备
US20170208148A1 (en) Partitioned Serialized Caching and Delivery of Large Files
US7404040B2 (en) Packet data placement in a processor cache
US20060004904A1 (en) Method, system, and program for managing transmit throughput for a network controller
CN107577543A (zh) 数据读写方法、装置、存储系统及计算机可读存储介质
EP3776234B1 (en) Store and forward logging in a content delivery network
US8473643B2 (en) Method and apparatus of tier storage management awareness networking
KR100449806B1 (ko) 네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기위한 네트워크-스토리지 연결 장치
CN110471627B (zh) 一种共享存储的方法、系统及装置
US20080126599A1 (en) Iscsi target apparatus that does not require creating a buffer in the user space and related method thereof
US20220269411A1 (en) Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks
US20190129855A1 (en) Cache Sharing in Virtual Clusters
US11137923B2 (en) Method and system for data reduction in a storage infrastructure to support a high-ration thin-provisioned service

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180112