CN112306419B - 一种存储系统中读io的转发方法和存储系统 - Google Patents

一种存储系统中读io的转发方法和存储系统 Download PDF

Info

Publication number
CN112306419B
CN112306419B CN202011266289.3A CN202011266289A CN112306419B CN 112306419 B CN112306419 B CN 112306419B CN 202011266289 A CN202011266289 A CN 202011266289A CN 112306419 B CN112306419 B CN 112306419B
Authority
CN
China
Prior art keywords
forwarding
node
tcb
clb
layer
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.)
Active
Application number
CN202011266289.3A
Other languages
English (en)
Other versions
CN112306419A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011266289.3A priority Critical patent/CN112306419B/zh
Publication of CN112306419A publication Critical patent/CN112306419A/zh
Application granted granted Critical
Publication of CN112306419B publication Critical patent/CN112306419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种存储系统中读IO的转发方法和存储系统,其中,存储系统中读IO的转发方法用于存储系统,该存储系统包括主机、服务节点和缓存;该读IO的转发方法包括:服务节点通过模块统一数据结构CLB、将主机下发的读IO指令转发至缓存;缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;服务节点从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据;服务节点通过TCB将IO数据依次转发至主机。本发明的技术方案能解决现有技术中整个IO的两次传输过程中,所有延迟将会累积,造成延时较大的问题。

Description

一种存储系统中读IO的转发方法和存储系统
技术领域
本发明涉及网络技术领域,尤其涉及一种存储系统中读IO的转发方法和存储系统。
背景技术
大数据时代为了实现海量数据的存储,现有的存储系统多使用多控集群进行分布式存储,在存储系统中,多控集群在稳定性和安全性等方面的优势明显。为了实现多控集群中各集群节点间的负载均衡,必须在各集群节点间进行IO信息的转发,来平衡集群节点间处理IO的频率和数据量,并保持磁盘读写的均衡。
现有的读IO转发方法,是在IO栈中让上层结构携带控制信息和数据,然后通过转发层驱动在集群节点之间进行简单的数据传递和IO模式处理。这种处理方式要求在处理下一个TCB(Transfer Control Block,转发控制信息块)之前,集群节点的上一个TCB已经处理完成并且已返回。
这种IO的转发处理方式,能够保证转发层绝对的简单,并且由于高速缓存会将IO分成多个路径,因此我们不需要对完整的多路径读取进行完整存储和转发。然而,这种处理方式存在巨大的缺陷问题:节点到节点的传输以及节点到主机的传输没有重叠,每一次IO需要全部传输完毕才能够进行下一次处理,导致整个IO的两次传输过程中的所有延迟将会累积起来,进而造成延时较大。
发明内容
本发明提供了一种存储系统中读IO的转发方法和存储系统,旨在解决现有技术中读IO的转发处理方式,节点到节点的传输以及节点到主机的传输没有重叠,导致整个IO的两次传输过程中,所有延迟将会累积,造成延时较大的问题。
为解决上述问题,根据本发明的第一方面,本发明提供了一种存储系统中读IO的转发方法,用于存储系统,存储系统包括主机、服务节点和缓存;读IO的转发方法包括:
服务节点通过模块统一数据结构CLB、将主机下发的读IO指令转发至缓存;
缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;
服务节点从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据;
服务节点通过TCB将IO数据依次转发至主机。
优选地,上述服务节点通过CLB将主机下发的读IO指令转发至缓存的步骤,包括:
主机的主机协议层为读IO指令分配CLB,将CLB转发至本地服务节点的节点转发层;
本地服务节点的节点转发层将CLB转发至对端服务节点的节点转发层;
对端服务节点的节点转发层通过CLB将读IO指令转发至缓存。
优选地,上述缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中的步骤,包括:
缓存按照预定粒度,将CLB切分为多个TCB;
缓存按照TCB的切分顺序,将多个TCB依次存入先入先出队列。
优选地,上述服务节点通过TCB将IO数据依次转发至主机的步骤,包括:
服务节点的节点转发层将IO数据封装至TCB中,并将TCB转发至主机的主机协议层;
节点转发层设置TCB暂缓转发标识,TCB暂缓转发标识用于暂时禁止节点转发层接收TCB或IO数据;
主机协议层从每个TCB中提取得到IO数据,并将IO数据转发至主机;
主机协议层向节点转发层发送TCB结束标识,TCB结束标识用于控制节点转发层释放TCB暂缓转发标识;
重复执行上述步骤,直至主机协议层将切分的所有TCB中的IO数据转发至主机。
优选地,上述读IO的转发方法还包括:
当服务节点将读IO指令转发至缓存时,服务节点的节点转发层设置CLB暂缓转发标识,CLB暂缓转发标识用于暂时禁止节点转发层接收CLB;
当主机协议层将所有TCB中的IO数据转发至主机时,主机协议层向缓存发送TCB完全发送标识,TCB完全发送标识用于控制缓存生成CLB开始转发标识;
缓存将CLB开始转发标识发送至节点转发层,以使节点转发层释放CLB暂缓转发标识并控制主机协议层保持发送状态。
根据本发明的第二方面,本发明还提供了一种存储系统,该存储系统包括主机、服务节点和缓存,其中,
服务节点,用于通过模块统一数据结构CLB、将主机下发的读IO指令转发至缓存;
缓存,用于将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;
服务节点,还用于从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据;
服务节点,还用于通过TCB将IO数据依次转发至主机。
优选地,所述服务节点包括本地服务节点和对端服务节点;
主机的主机协议层,用于为读IO指令分配CLB,将CLB转发至本地服务节点的节点转发层;
本地服务节点的节点转发层,用于将CLB转发至对端服务节点的节点转发层;
对端服务节点的节点转发层,还用于通过CLB将读IO指令转发至缓存。
优选地,所述缓存还用于按照预定粒度,将CLB切分为多个TCB;
缓存,还用于按照TCB的切分顺序,将多个TCB依次存入先入先出队列。
优选地,服务节点的节点转发层,用于将IO数据封装至TCB中,并将TCB转发至主机的主机协议层;
节点转发层,还用于设置TCB暂缓转发标识,TCB暂缓转发标识用于暂时禁止节点转发层接收TCB或IO数据;
主机协议层,还用于从每个TCB中提取得到IO数据,并将IO数据转发至主机;
主机协议层,还用于向节点转发层发送TCB结束标识,TCB结束标识用于控制节点转发层释放TCB暂缓转发标识。
优选地,所述服务节点还用于当服务节点将读IO指令转发至缓存时,服务节点的节点转发层设置CLB暂缓转发标识,CLB暂缓转发标识用于暂时禁止节点转发层接收CLB;
所述主机协议层还用于当主机协议层将所有TCB中的IO数据转发至主机时,向缓存发送TCB完全发送标识,TCB完全发送标识用于控制缓存生成CLB开始转发标识;
所述缓存还用于将CLB开始转发标识发送至节点转发层,以使节点转发层释放CLB暂缓转发标识并控制主机协议层保持发送状态。
本申请技术方案提供的存储系统中读IO的转发方案,使用服务节点通过模块统一数据结构CLB,将主机下发的读IO指令转发至缓存,然后缓存将CLB切分为多个转发控制信息块TCB,并按照先后顺序依次存入先入先出队列中,服务节点从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据,服务节点通过TCB将IO数据依次转发至主机。通过上述方式,因为TCB是按先后顺序依次存入先入先出队列的,并且通过先入先出队列能够依次提取每个TCB,这样每当提取一个TCB时,先入先出队列将会空余出一定空间,其他TCB可以再次进入到该先入先出队列,因此,读IO指令能够分成若干次处理,每一次拆分的IO从队列中顺序取出,不必等待上一次读IO指令拆分完成再进行下一次处理。当队列中有TCB被取出后,可以继续接收TCB,不必等待上一次读IO指令的完全返回,从而增加了并行度,减少了节点到节点的传输与节点到主机的传输没有重叠的情况,大大减少了延时,提高了读性能。从而解决现有技术造成两次传输过程中所有延迟将会累积,造成延时较大的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明实施例提供的第一种存储系统中读IO的转发方法的流程示意图;
图2是本发明实施例提供的第二种存储系统中读IO的转发方法的流程示意图;
图3是图2所示实施例提供的一种读IO指令的转发方法的流程示意图;
图4是图2所示实施例提供的一种TCB切分方法的流程示意图;
图5是图2所示实施例提供的一种IO数据转发方法的流程示意图;
图6是本发明实施例提供的第三种存储系统中读IO的转发方法的流程示意图;
图7是图6所示实施例提供的一种存储系统的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要技术问题如下:
现有的读IO转发方法中,是在IO栈中让上层结构携带控制信息和数据,然后通过转发层驱动在集群节点之间进行数据传递和IO处理的。这种转发方式会导致节点到节点之间的传输以及节点到主机之间的传输没有重叠,每一次IO转发需要全部传输完毕,才能够进行下一次处理,导致整个IO的两次传输过程中所有延迟会累积起来,进而造成延时较大的问题。
为解决上述问题,参见图1,图1为本发明实施例提供的一种存储系统的结构示意图。如图1所示,该存储系统包括主机、服务节点和缓存,其中,主机是数据的处理中心,能够生成并发送读IO指令,并将与该读IO指令对应的IO数据返回进行处理。服务节点用于转发主机下发的读IO指令,并将缓存发送的IO数据转发至主机,从而实现数据的转发功能。缓存通过先入先出队列FIFO将读IO指令和IO数据进行封装和拆分,因此读IO指令能够分成若干次处理,每一次拆分的IO从队列中顺序取出,不必等待上一次IO指令拆分完成再进行下一次处理。当队列中有IO被取出后,可以继续接收主机IO,不必等待上一次IO指令的完全返回,从而增加了并行度,减少了节点到节点的传输与节点到主机的传输没有重叠的情况,大大减少了延时,提高了数据的可读性。
整体的读IO的转发方法参见图1,首先,主机下发读IO指令至主机协议层HL,主机协议层HL为该读IO指令分配模块统一数据结构CLB,并将CLB向IO栈的下层(IO栈包括主机、节点转发层、缓存和硬盘等)传递;本地服务节点的节点转发层,即Fwd层在确定存在读IO指令需要转发时,为其他服务节点上的CLB保留credit(即暂缓转发标识),并将CLB发送到对端节点;对端节点Fwd层收到该CLB后,继续为读IO指令分配CLB并向下传递。
其次,当缓存接收到该CLB,会按读IO指令所转发的路径划分,将CLB切分为多个转发控制信息块TCBs,然后将转发控制信息块TCBs按先后顺序依次放入队列中,服务节点的节点转发层为其他节点上的缓冲区保留credit,转发推送到其他节点;其他节点的Fwd层收集消息和数据,其中,该消息和数据分别包括通信消息和上述读IO指令对应的IO数据,然后将消息和数据合成TCB并传递给主机协议层HL。
然后,主机协议层HL将第一个TCB携带的IO数据发送至主机并调用TCB结束标识TCB Done;Fwd层释放缓冲区内发送状态为转发控制信息块TCB的其他节点的缓存空间;Fwd层在调用TCB完成时将释放掉TCB暂缓转发标识credit;对所有TCB重复上述过程,直到Fwd层为最后一个TCB设置完全发送标识FastDone;当所有的TCB完成时,缓存cache会调用CLB开始转发标识CLB Done。
最后,Fwd层将完成状态封装为消息Msg发送到其他节点;Fwd层释放CLB的暂缓转发标识credit,当Fwd层调用所有CLB完成时,因为主机协议层HL的完全发送标识FastDone未设置,所以主机协议层HL此时仍为发送状态,从而使得主机协议层HL能够继续接收IO数据。
具体地,如图1所示,整个存储系统中读IO的转发方法的实现主要包括以下步骤:
1、主机下发读IO指令,主机协议层HL接收该读IO指令,分配模块统一数据结构CLB并向下层IO栈传递。
2、本地服务节点的节点转发层Fwd层接收CLB,确定IO命令需要转发,为其他服务节点上的CLB保留credit,将CLB和相关控制信息组合成MSG并发送到其他服务节点。
3、对端节点的节点转发层Fwd收到上述服务节点发送的Msg,为该MSG,分配CLB,将CLB向下传递。
4、缓存接收CLB,按路径划分,将CLB切分组织为多个转发控制信息块TCBs并将TCBs按顺序放入队列。
5、对于每个TCB:节点转发层Fwd为其他节点上的缓冲区保留credit,Fwd将控制信息和数据(即TCB包含的控制信息以及从缓存中提取到的数据)转发到其他节点。
6、Fwd收集上一节点转发层Fwd转发的消息和数据,合成TCB并传递给主机协议层HL;Fwd必须将TCBs有序地呈现给HL;Fwd将TCBs排队到主机协议层HL。
7、主机协议层HL为TCB向主机发送数据;并且HL为TCB调用并返回Fwd层TCB结束标识TCB Done。上述过程均按HL接收TCB的先后顺序完成。
8、Fwd层在接收到TCB Done后,Fwd层释放缓冲区,Fwd层将带有上述TCB结束标识的消息发送到状态为TCB的其他节点,以通知该TCB的其他节点本节点的Fwd层已释放完毕。
9、对端节点中,Fwd层调用TCB完成,释放缓冲credit;
对每一个TCB重复上述步骤7-9,直到所有的TCB中的IO数据都转发至主机。另外,最后一个TCB设置需要设置TCB完全发送标识FastDone,以使缓存调用CLB开始转发标识CLBDone。
10、缓存调用CLB开始转发标识CLB Done。
11、节点转发层Fwd在接收到该CLB Done后,节点转发层将完成状态的信息封装为Msg发送到其他服务节点。
12、节点转发层Fwd释放CLB信用credit,以说明节点转发层调用CLB完成。
13、主机协议层接收到该CLB信用后,因为HL层的FastDone未设置,HL此时保持发送状态,另外,HL将该发送状态status转发给主机。
具体地,参见图2,图2为本发明实施例提供的一种存储系统中读IO的转发方法的流程示意图。该存储系统中读IO的转发方法用于存储系统,存储系统包括主机、服务节点和缓存。如图2所示,该读IO的转发方法包括:
S110:服务节点通过模块统一数据结构CLB、将主机下发的读IO指令转发至缓存;在存储系统中,服务节点可能存在多个,如本地服务节点和对端服务节点,另外读IO指令用于从缓存以及后续的IO栈中提取IO数据。
具体如图3所示,该服务节点通过CLB将主机下发的读IO指令转发至缓存的步骤包括:
S111:主机的主机协议层为读IO指令分配CLB,将CLB转发至本地服务节点的节点转发层;主机协议层是主机的底层收发模块,用于为主机的上层结构进行协议转换和数据传输等服务。
S112:本地服务节点的节点转发层将CLB转发至对端服务节点的节点转发层。
S113:对端服务节点的节点转发层通过CLB将读IO指令转发至缓存。
通过主机协议层为读IO指令分配CLB,该CLB用于封装读IO指令,并且通过本地服务节点的节点转发层将该CLB转发至对端服务节点的节点转发层,从而使得对端服务节点的节点转发层通过CLB将读IO指令转发至缓存。
S120:缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;先入先出队列FIFO能够进行先入先出的操作,这样首先进入FIFO的TCB将首先提取出来,因此缓存能够通过切分先后顺序最大限度地还原CLB,因为CLB和切分的TCB存在起始地址和结束地址,因此根据起始地址和结束地址能够将TCB还原为CLB。另外,因为TCB是按先入先出顺序依次存入FIFO的,因此读IO指令能够分成若干次出来,每一次拆分的TCB从FIFO顺序取出后,不必等待上一次IO指令拆分完成就能够进行下一次处理;当队列中存在TCB被取出时,FIFO能够继续接收服务节点转发的TCB。
作为一种优选的实施例,具体如图4所示,该缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中的步骤,具体包括:
S121:缓存按照预定粒度,将CLB切分为多个TCB;
S122:缓存按照TCB的切分顺序,将多个TCB依次存入先入先出队列。
通过按照预定粒度,将CLB切分为多个TCB,能够选择CLB的切分粗细程度,进而实现CLB的精确切分,另外缓存按照TCB的切分顺序将多个TCB依次存入FIFO中,能够有序地还原CLB包含的读IO指令,并且使用先入先出队列存储TCB,能够在TCB取出时继续接收TCB,不必等待上一次读IO指令的完全返回。
S130:服务节点从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据;缓存在接收到上述读IO指令后会从硬盘等存储结构中提取对应的IO数据,然后通过先入先出队列FIFO发送至服务节点,以通过服务节点返回给主机;其中,IO数据与TCB在FIFO中需要进行存储位置的对应。
S140:服务节点通过TCB将IO数据依次转发至主机。
具体地,如图5所示,该服务节点通过TCB将IO数据依次转发至主机的步骤具体包括:
S141:服务节点的节点转发层将IO数据封装至TCB中,并将TCB转发至主机的主机协议层。
S142:节点转发层设置TCB暂缓转发标识,TCB暂缓转发标识用于暂时禁止节点转发层接收TCB或IO数据。TCB暂缓转发标识credit,用于标识该服务节点的缓存区已经存在TCB,节点转发层将该TCB暂缓转发标识发送至其他节点,从而使得其他节点暂时停止向该服务节点发送TCB或IO数据,达到暂时禁止节点转发层接收TCB或IO数据的目的。
S143:主机协议层从每个TCB中提取得到IO数据,并将IO数据转发至主机。
S144:主机协议层向节点转发层发送TCB结束标识,TCB结束标识用于控制节点转发层释放TCB暂缓转发标识。
重复执行上述步骤,直至主机协议层将切分的所有TCB中的IO数据转发至主机。
服务节点的节点转发层将IO数据封装至TCB中,然后将TCB转发至主机的主机协议层,主机协议层HL能够将TCB包含的IO数据转发至主机,此时节点转发层设置TCB暂缓转发标识credit,从而暂时禁止节点转发层接收TCB或IO数据。这样就能够进行资源的均衡分配,为TCB预留credit,避免所有TCB或IO数据都转向该节点,造成节点资源的耗尽,平衡节点负载。另外,对所有已切分的TCB中的IO数据重复执行上述步骤,从而在平衡服务节点负载的情况下降所有IO数据反馈至主机。
综上,本申请实施例提供的存储系统中读IO的转发方法,使用服务节点通过模块统一数据结构CLB,将主机下发的读IO指令转发至缓存,然后缓存将CLB切分为多个转发控制信息块TCB,并按照先后顺序依次存入先入先出队列中,服务节点从先入先出队列中依次提取每个TCB,并从缓存中提取读IO指令所请求的IO数据,服务节点通过TCB将IO数据依次转发至主机。通过上述方式,因为TCB是按先后顺序依次存入先入先出队列的,并且通过先入先出队列能够依次提取每个TCB,这样每当提取一个TCB时,先入先出队列将会空余出一定空间,其他TCB可以再次进入到该先入先出队列,因此,读IO指令能够分成若干次处理,每一次拆分的IO从队列中顺序取出,不必等待上一次IO指令拆分完成再进行下一次处理。当队列中有TCB被取出后,队列能够继续接收以TCB封装的读IO指令,不必等待上一次IO指令的完全返回,从而增加了并行度,减少了节点到节点的传输与节点到主机的传输没有重叠的情况,大大减少了延时,提高了读性能。从而解决现有技术造成两次传输过程中所有延迟将会累积,造成延时较大的问题。
另外,作为一种优选的实施例,如图6所示,图6为本发明实施例提供的第三种读IO的转发方法的流程示意图。如图6所示,该读IO的转发方法除了上述步骤外还包括:
S210:当服务节点将读IO指令转发至缓存时,服务节点的节点转发层设置CLB暂缓转发标识,CLB暂缓转发标识用于暂时禁止节点转发层接收CLB。
S220:当主机协议层将所有TCB中的IO数据转发至主机时,主机协议层向缓存发送TCB完全发送标识,TCB完全发送标识用于控制缓存生成CLB开始转发标识。
S230:缓存将CLB开始转发标识发送至节点转发层,以使节点转发层释放CLB暂缓转发标识并控制主机协议层保持发送状态。
本申请实施例提供的技术方案,通过设置CLB暂缓转发标识credit,能够使得其他服务节点暂时不将CLB发送至该服务节点,从而暂时禁止本服务节点的节点转发层接收CLB,只有当主机协议层将TCB中的IO数据转发至主机时,缓存将CLB开始转发标识发送至节点转发层,从而使得节点转发层释放CLB暂时转发标识,并控制主机协议层保持发送状态。这样就能够提供信用的均衡分配算法,为转发节点上的CLB预留credit,放置所有读IO指令都转发至同一节点,造成资源的浪费。
另外,基于上述方法实施例的同一构思,本发明实施例还提供了一种存储系统,用于实现本发明的上述方法,由于该系统实施例解决问题的原理与上述方法相似,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参见图7,图7为本发明实施例提供的一种存储系统的结构示意图。如图7所示,该存储系统包括主机1、服务节点(包括本地服务节点2和对端服务节点3)和缓存4,其中,
服务节点,用于通过模块统一数据结构CLB、将主机1下发的读IO指令转发至缓存4;
缓存4,用于将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;
服务节点,还用于从先入先出队列中依次提取每个TCB,并从缓存4中提取读IO指令所请求的IO数据;该IO数据是缓存从下层IO栈,如磁盘5中调用得到。
服务节点,还用于通过TCB将IO数据依次转发至主机1。
作为一种优选的实施例,如图7所示,所述服务节点包括本地服务节点2和对端服务节点3;
主机1的主机协议层101,用于为读IO指令分配CLB,将CLB转发至本地服务节点2的节点转发层201;
本地服务节点2的节点转发层201,用于将CLB转发至对端服务节点3的节点转发层201;
对端服务节点3的节点转发层301,还用于通过CLB将读IO指令转发至缓存4。
作为一种优选的实施例,如图7所示,该缓存4还用于按照预定粒度,将CLB切分为多个TCB;
缓存4,还用于按照TCB的切分顺序,将多个TCB依次存入先入先出队列。
作为一种优选的实施例,如图7所示,服务节点的节点转发层201,用于将IO数据封装至TCB中,并将TCB转发至主机1的主机协议层101;
节点转发层201,还用于设置TCB暂缓转发标识,TCB暂缓转发标识用于暂时禁止节点转发层201接收TCB或IO数据;
主机协议层101,还用于从每个TCB中提取得到IO数据,并将IO数据转发至主机1;
主机协议层101,还用于向节点转发层201发送TCB结束标识,TCB结束标识用于控制节点转发层201释放TCB暂缓转发标识。
作为一种优选的实施例,如图7所示,服务节点还用于当服务节点将读IO指令转发至缓存4时,服务节点的节点转发层201设置CLB暂缓转发标识,CLB暂缓转发标识用于暂时禁止节点转发层201接收CLB;
所述主机协议层101还用于当主机协议层101将所有TCB中的IO数据转发至主机1时,向缓存4发送TCB完全发送标识,TCB完全发送标识用于控制缓存4生成CLB开始转发标识;
所述缓存4还用于将CLB开始转发标识发送至节点转发层201,以使节点转发层201释放CLB暂缓转发标识并控制主机协议层101保持发送状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种存储系统中读IO的转发方法,其特征在于,用于存储系统,所述存储系统包括主机、服务节点和缓存;所述读IO的转发方法包括:
所述服务节点通过模块统一数据结构CLB,将所述主机下发的读IO指令转发至所述缓存;
所述服务节点通过CLB将所述主机下发的读IO指令转发至所述缓存的步骤,包括:
所述主机的主机协议层为所述读IO指令分配CLB,将所述CLB转发至本地服务节点的节点转发层;
所述本地服务节点的节点转发层将所述CLB转发至对端服务节点的节点转发层;
所述对端服务节点的节点转发层通过所述CLB将所述读IO指令转发至所述缓存;
所述缓存将所述CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;
所述服务节点从所述先入先出队列中依次提取每个TCB,并从所述缓存中提取所述读IO指令所请求的IO数据;
所述服务节点通过所述TCB将所述IO数据依次转发至所述主机;
所述服务节点通过所述TCB将所述IO数据依次转发至所述主机的步骤,包括:
所述服务节点的节点转发层将所述IO数据封装至所述TCB中,并将所述TCB转发至所述主机的主机协议层;
所述节点转发层设置TCB暂缓转发标识,所述TCB暂缓转发标识用于暂时禁止所述节点转发层接收TCB或IO数据;
所述主机协议层从每个所述TCB中提取得到所述IO数据,并将所述IO数据转发至所述主机;
所述主机协议层向所述节点转发层发送TCB结束标识,所述TCB结束标识用于控制所述节点转发层释放所述TCB暂缓转发标识;
重复执行上述步骤,直至所述主机协议层将切分的所有TCB中的IO数据转发至所述主机。
2.根据权利要求1所述的读IO的转发方法,其特征在于,所述缓存将CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中的步骤,包括:
所述缓存按照预定粒度,将所述CLB切分为所述多个TCB;
所述缓存按照所述TCB的切分顺序,将所述多个TCB依次存入所述先入先出队列。
3.根据权利要求1所述的读IO的转发方法,其特征在于,还包括:
当所述服务节点将所述读IO指令转发至所述缓存时,所述服务节点的节点转发层设置CLB暂缓转发标识,所述CLB暂缓转发标识用于暂时禁止所述节点转发层接收所述CLB;
当所述主机协议层将所有TCB中的IO数据转发至所述主机时,所述主机协议层向所述缓存发送TCB完全发送标识,所述TCB完全发送标识用于控制所述缓存生成CLB开始转发标识;
所述缓存将所述CLB开始转发标识发送至所述节点转发层,以使节点转发层释放CLB暂缓转发标识并控制所述主机协议层保持发送状态。
4.一种存储系统,其特征在于,所述存储系统包括主机、服务节点和缓存,其中,
所述服务节点,用于通过模块统一数据结构CLB、将所述主机下发的读IO指令转发至所述缓存;
所述服务节点包括本地服务节点和对端服务节点;
所述主机的主机协议层,用于为所述读IO指令分配CLB,将所述CLB转发至本地服务节点的节点转发层;
所述本地服务节点的节点转发层,用于将所述CLB转发至对端服务节点的节点转发层;
所述对端服务节点的节点转发层,还用于通过所述CLB将所述读IO指令转发至所述缓存;
所述缓存,用于将所述CLB切分为多个转发控制信息块TCB,并按先后顺序依次存入先入先出队列中;
所述服务节点,还用于从所述先入先出队列中依次提取每个TCB,并从所述缓存中提取所述读IO指令所请求的IO数据;
所述服务节点,还用于通过所述TCB将所述IO数据依次转发至所述主机;
所述服务节点的节点转发层,用于将所述IO数据封装至所述TCB中,并将所述TCB转发至所述主机的主机协议层;
所述节点转发层,还用于设置TCB暂缓转发标识,所述TCB暂缓转发标识用于暂时禁止所述节点转发层接收TCB或IO数据;
所述主机协议层,还用于从每个所述TCB中提取得到所述IO数据,并将所述IO数据转发至所述主机;
所述主机协议层,还用于向所述节点转发层发送TCB结束标识,所述TCB结束标识用于控制所述节点转发层释放所述TCB暂缓转发标识。
5.根据权利要求4所述的存储系统,其特征在于,所述缓存,还用于按照预定粒度,将所述CLB切分为所述多个TCB;
所述缓存,还用于按照所述TCB的切分顺序,将所述多个TCB依次存入所述先入先出队列。
6.根据权利要求4所述的存储系统,其特征在于,
所述服务节点,还用于当所述服务节点将所述读IO指令转发至所述缓存时,所述服务节点的节点转发层设置CLB暂缓转发标识,所述CLB暂缓转发标识用于暂时禁止所述节点转发层接收所述CLB;
所述主机协议层,还用于当所述主机协议层将所有TCB中的IO数据转发至所述主机时,向所述缓存发送TCB完全发送标识,所述TCB完全发送标识用于控制所述缓存生成CLB开始转发标识;
所述缓存,还用于将所述CLB开始转发标识发送至所述节点转发层,以使节点转发层释放CLB暂缓转发标识并控制所述主机协议层保持发送状态。
CN202011266289.3A 2020-11-13 2020-11-13 一种存储系统中读io的转发方法和存储系统 Active CN112306419B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011266289.3A CN112306419B (zh) 2020-11-13 2020-11-13 一种存储系统中读io的转发方法和存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011266289.3A CN112306419B (zh) 2020-11-13 2020-11-13 一种存储系统中读io的转发方法和存储系统

Publications (2)

Publication Number Publication Date
CN112306419A CN112306419A (zh) 2021-02-02
CN112306419B true CN112306419B (zh) 2022-07-19

Family

ID=74334297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011266289.3A Active CN112306419B (zh) 2020-11-13 2020-11-13 一种存储系统中读io的转发方法和存储系统

Country Status (1)

Country Link
CN (1) CN112306419B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118787A (zh) * 2022-06-21 2022-09-27 京东科技信息技术有限公司 一种服务控制方法、系统、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486442A (zh) * 2014-12-29 2015-04-01 成都致云科技有限公司 分布式存储系统的数据传输方法、装置
CN111212141A (zh) * 2020-01-02 2020-05-29 中国科学院计算技术研究所 一种共享存储系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486442A (zh) * 2014-12-29 2015-04-01 成都致云科技有限公司 分布式存储系统的数据传输方法、装置
CN111212141A (zh) * 2020-01-02 2020-05-29 中国科学院计算技术研究所 一种共享存储系统

Also Published As

Publication number Publication date
CN112306419A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN115328663B (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
CN107832143B (zh) 一种物理机资源的处理方法和装置
CN113190378B (zh) 一种基于分布式云平台的边缘云灾备方法
CN113918270A (zh) 基于Kubernetes的云资源调度方法及系统
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
US20140358869A1 (en) System and method for accelerating mapreduce operation
CA2928865C (en) Strict queue ordering in a distributed system
CN110768913A (zh) 流量控制方法及装置
CN106936931B (zh) 分布式锁的实现方法、相关设备及系统
CN112306419B (zh) 一种存储系统中读io的转发方法和存储系统
CN104734983A (zh) 业务数据请求的调度系统、方法及装置
CN113296926A (zh) 一种资源分配方法、计算设备及存储介质
CN106790354B (zh) 一种防数据拥堵的通信方法及其装置
CN112486468A (zh) 基于spark内核的任务执行方法、系统和计算机设备
CN107395765B (zh) 一种分布式文件系统、网络通信方法、平台及其创建方法
CN110895517B (zh) 基于fpga的传输数据的方法、设备及系统
CN111107135B (zh) 一种容器镜像并行分发方法、调度器及存储介质
CN111459416A (zh) 一种基于分布式存储的热迁移系统及其迁移方法
EP3940536A1 (en) Event stream processing method and event stream processing program
CN115037627A (zh) 网络配置信息处理方法、sdn控制器、系统及存储介质
CN112099728B (zh) 一种执行写操作、读操作的方法及装置
CN113687962A (zh) 一种请求处理方法、装置、设备及存储介质
CN114296959A (zh) 消息入队方法和装置
CN113296972A (zh) 一种信息的注册方法、计算设备及存储介质
JP2002342193A (ja) データ転送先サーバ選定方法及び装置及びデータ転送先サーバ選定プログラム及びデータ転送先サーバ選定プログラムを格納した記憶媒体

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