CN109862297B - 窗口调整方法、装置及可读存储介质 - Google Patents
窗口调整方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN109862297B CN109862297B CN201711241552.1A CN201711241552A CN109862297B CN 109862297 B CN109862297 B CN 109862297B CN 201711241552 A CN201711241552 A CN 201711241552A CN 109862297 B CN109862297 B CN 109862297B
- Authority
- CN
- China
- Prior art keywords
- logic
- disk array
- queue length
- command queue
- resource
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供的窗口调整方法、装置及可读存储介质,其中,所述方法包括所述存储设备与图像采集设备建立iSCSI会话;接收所述图像采集设备发送的报文;根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。上述方法可以通过逻辑资源所在逻辑磁盘阵列的命令队列长度控制所属逻辑资源的iSCSI数据窗口的尺寸,可以减小多路iSCSI窗口之间的相互影响,避免窗口的意外关闭,进而防止数据报文的丢失。
Description
技术领域
本发明涉及数据存储领域,具体而言,涉及一种对图像采集设备采集的数据进行存储的窗口调整方法、装置及可读存储介质。
背景技术
伴随着前端摄像机高清、4K、智能、人脸识别等技术的普及推广,在多路摄像机的组网方案中,海量的视频数据需要稳定传输到后端存储设备中,对数据传输的质量及后端存储设备的稳定性提出了更高的要求。
目前广泛应用的解决方案是基于IP网络的集中式存储架构,即:通过iSCSI技术将数据传输到存储设备,iSCSI是一种基于TCP/IP网络传输SCSI指令的协议,用来建立和管理存储设备、主机和客户机之间的连接,并创建存储区域网络。iSCSI模型沿用SCSI的模型,即:客户端/服务器(C/S,Client/Server)模式,客户端称为发起端(initiator),服务器称为目的端(target),initiator与target一一对应,initiator与target建立的连接称为session,数据传输时,initiator向target发送request,target回应response。
现有的iSCSI数据传输有两种:一种是单向控制,即:只有源设备对数据报文的控制,缺乏目的设备的反馈;第二种是较粗放型的双向控制,即:目的设备有一个全局的窗口控制,它是基于当前所有session命令总数计算的窗口尺寸。第一种方法很容易造成内存溢出从而导致设备异常,导致传输数据丢失,隐患很大。第二种方法的缺点是:在系统中存在有多路会话时,在下层的逻辑资源完全满足的条件下,session之间会因全局窗口调整有干扰,造成数据丢失,另外在海量数据传输及网络不佳的环境中,非常容易出现数据交互报文的关闭。
发明内容
本发明的实施例描述一种窗口调整方法、装置及可读存储介质。
第一方面,本发明的实施例提供一种窗口调整方法,所述方法应用于存储设备,所述存储设备绑定一个以逻辑磁盘阵列方式组成的逻辑资源,所述方法包括:
所述存储设备与图像采集设备建立iSCSI会话;
接收所述图像采集设备发送的报文;
根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。
可选地,所述存储设备根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸,包括:
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度小于所述逻辑磁盘阵列最小的命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最大窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度大于逻辑磁盘阵列的最大命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最小窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度位于所述逻辑磁盘阵列最小的命令队列长度与所述逻辑磁盘阵列的最大命令队列长度之间时,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。
可选地,上述方法还包括:
根据所述逻辑资源的窗口尺寸对所述图像采集设备发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,其中,期望发送的命令序号等于已经正确接收命令序号加1。
可选地,上述方法还包括:所述存储设备在接收报文时,根据接收报文的大小分配存储页面进行缓存;
在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
可选地,在所述存储设备在接收报文时,根据接收报文的大小分配缓存之前,所述方法还包括:
所述存储设备对所述报文进行解析;
在解析的报文为SCSI命令时,检测被分配的存储页面是否超过存储页面的限制;
如果超过存储页面的限制会跳过报文接收并回复所述存储设备处于繁忙状态,否则进行报文接收。
第二方面,本发明的实施例提供一种窗口调整装置,应用于存储设备,所述存储设备绑定一个以逻辑磁盘阵列方式组成的逻辑资源,所述装置包括:
建立模块,用于与图像采集设备建立iSCSI会话;
接收模块,用于接收所述图像采集设备发送的报文;
调整模块,用于根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。
可选地,所述调整模块根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸的方式,包括:
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度小于所述逻辑磁盘阵列最小的命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最大窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度大于逻辑磁盘阵列的最大命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最小窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度位于所述逻辑磁盘阵列最小的命令队列长度与所述逻辑磁盘阵列的最大命令队列长度之间时,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。
可选地,在本实施例中,所述装置还包括:
更新模块,用于根据所述逻辑资源的窗口尺寸对所述图像采集设备发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,其中,期望发送的命令序号等于已经正确接收命令序号加1。
可选地,在本实施例中,所述装置还包括:
分配模块,用于在接收报文时,根据接收报文的大小分配存储页面进行缓存;
释放模块,用于在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
第三方面,本发明的实施例提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行执行上面所述的窗口调整方法。
相对于现有技术而言,本发明较佳的实施例提供的窗口调整方法、装置及可读存储介质具有以下有益效果:
本发明实施例提供的窗口调整方法、装置及可读存储介质,其中,所述方法包括所述存储设备与图像采集设备建立iSCSI会话;接收所述图像采集设备发送的报文;根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。上述方法可以通过逻辑资源所在逻辑磁盘阵列的命令队列长度控制所属逻辑资源的iSCSI数据窗口的尺寸,可以减小多路iSCSI窗口之间的相互影响,避免窗口之间的意外关闭,从而防止数据报文的丢失。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明权利要求保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的网络存储系统的一种方框示意图。
图2为本发明第一实施例提供的窗口调整方法的流程示意图之一。
图3为本发明第一实施例提供的iSCSI协议栈的示意图。
图4为本发明第一实施例提供的iSCSI PDU通用格式。
图5为本发明第一实施例提供的iSCSI PDU BHS格式。
图6为本发明第一实施例提供的SCSI Response格式。
图7为本发明第一实施例提供的数据读写前交互流程。
图8为本发明第一实施例提供的一种窗口尺寸调整关系图。
图9为本发明第一实施例提供的窗口调整方法的流程示意图之二。
图10为本发明第一实施例提供的窗口调整方法的流程示意图之三。
图11为本发明第而实施例提供的窗口调整装置的方框示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
目前,在主流的网络存储系统中,iSCSI的传输属于粗放型的控制,网络存储设备的一个节点表示一个目的端,网络存储设备可以有多个目的端;每个目的端都会创建一个网络线程,负责对发起端数据的接收和发送;目的端接收到发起端的数据后,首先解析SCSI命令和参数的检查,用全局变量sess_cmd统计当前所有命令,目的端根据sess_cmd更新协议数据单元PDU(Protocol Data Unit)中的发送端可以发送的最大序号max_sn和期望发送端发送的命令序号exp_sn,其中PDU是iSCSI传输的基本单元。现有iSCSI的传输中,在有多个目的端、多阵列的存储系统中,通过单一的全局命令计数器控制所有的窗口大小是不合理。比如:由于部分磁盘原因,会影响到数据的写入速度,进而影响到全局命令计数器,造成其他目的端的窗口缩小,甚至关闭。在这些会话中,有很大一部分的磁盘性能是正常,完全可以满足数据的写入。不同磁盘上的数据传输通道相互干扰,导致窗口关闭,造成传输数据的丢失。
此外,不同的存储系统内存配置也是不同的,现有的交互控制没有明确的内存保护机制。从单一的全局命令计数器来说,对于内存较小的存储系统,非常容易出现系统异常;对于内存较大的存储系统,不能灵活的将数据缓存到内存中,不能提高数据的传输效率。
为了克服上述现有技术中存在的缺陷,发明人通过研究提供下面实施例给出解决方案。
请参照图1,图1是本发明较佳实施例提供的网络存储系统10的结构框图。所述网络存储系统10包括:图像采集设备100、存储设备200及窗口调整装置300。所述图像采集设备100用于获取待监控区域的图像信息,所述图像采集设备100将采集的图像信息发送给存储设备200进行存储。其中,所述存储设备200绑定一个以逻辑磁盘阵列方法组成的逻辑资源,所述存储设备200通过绑定的逻辑资源对图像采集设备100采集的图像信息进行存储。所述窗口调整装置300包括的软件功能模块及计算机程序控制所述存储设备200实现本实施例提供的窗口调整方法。所述窗口调整装置300可以是存储在存储设备200中,并由存储设备200执行所述窗口调整装置300的软件功能模块。
可以理解,图1所示的结构仅为示意,存储系统10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
第一实施例
请参照图2,是本发明第一实施例提供的窗口调整方法的一种流程示意图。在本发明实施例中,所述窗口调整方法应用于图1中所述的存储设备200。下面对图2所示的窗口调整方法具体流程和步骤进行详细描述。
在本实施例中,所述窗口调整方法可以包括以下步骤:
步骤S110,所述存储设备200与图像采集设备100建立iSCSI会话。
在本实施例中,所述存储设备与图像采集设备通过iSCSI协议建立会话。在本实施例中图像采集设备100作为iSCSI会话中的发送端,所述存储设备200作为iSCSI会话中的目的端。以下在涉及发送端及目的端的描述可以认为是针对存储系统10中对应设备的描述。
下面对iSCSI协议进行介绍:
iSCSI是传输层之上的协议,使用TCP连接建立会话,提供了有序无错的数据传输。在发送端的TCP端口号随机选取,目的端的端口号默认是3260。会话建立的过程中,发送端和目的端之间要进行协商,协商不成功则连接断开;如果成功,则进入正常会话控制,只有正常会话控制,会话才算真正建立,正常会话主要用于某个发送端与特定的目的端建立连接,协商参数,为双方进行数据读写作准备,iSCSI协议栈的结构可以参照图3。
iSCSI节点间交互报文均是以iSCSI PDU的形式封装在TCP/IP/Ethernet,PDU是发送端与目的端之间信息交互的基本单元。其中基本的头段BHS(Basic Header Segment)是必选的,其他的部分是可选的,比如数据段及校验等,其中iSCSI PDU的通用格式可以参照图4。
BHS包含了PDU的opcode标识、逻辑资源及不同的标志位,opcode标识表示该PDU的iSCSI命令,可以是login、logout、SCSI命令、NOP OUT等,对于读或写命令,会带有对应的逻辑资源号;其中在iSCSI报文交互的过程中,只对SCSI命令进行检测和保护,其它的opcode由于不携带数据。所以不做检测,提高数据交互的效率,iSCSI PDU BHS的格式可以参照图5。
目的端接收到发送端的SCSI Request,需要根据执行的结果发送SCSI Response,status表示SCSI命令执行的状态,比如BUSY、GOOD等。StatSN、ExpCmdSN、MaxCmdSN是iSCSI协议有序无错传输的重要保证。StatSN表示开始接收时对应的命令序号;ExpCmdSN表示下一个希望接收到的命令序号,该值为已经正确接收的命令序号+1;MaxCmdSN表示允许的最大命令序号,如果MaxCmdSN+1=ExpCmdSN,则窗口暂时关闭。其中SCSI Response格式可以参照图6。
在建立iSCSI会话之后,图像采集设备100会主动发送请求去获取所述存储设备200上的逻辑资源目录及其容量大小,其中,数据读写前交互流程可以参照图7。在数据读写前获取逻辑资源目录及其容量大小便于事先判定对应逻辑资源是否有足够的能力存储图像采集设备100将发送到所述存储设备200进行存储的数据。
步骤S120,接收所述图像采集设备100发送的报文。
在确认所述存储设备200上绑定的逻辑资源有能力存储数据时,所述图像采集设备100发送iSCSI报文到存储设备200上。
步骤S130,根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。
在对具体控制方式进行说明之前,对用于调整窗口尺寸的各个参数进行说明。
sess_win_max表示最大的窗口尺寸,sess_win_min表示最小的窗口尺寸,raid_cmd_cur表示逻辑资源在逻辑磁盘阵列中当前的命令队列长度,raid_cmd_max表示逻辑磁盘阵列可支持的最大命令队列长度,raid_cmd_min表示逻辑磁盘阵列最小的命令队列长度,raid_cmd_win表示当前窗口尺寸。
在本实施例中,步骤S130调整逻辑资源进行报文存储的窗口尺寸的方式包括:
当raid_cmd_cur小于raid_cmd_min时,表明当前阵列的性能非常好,需要增大窗口的尺寸,将raid_cmd_win调整为sess_win_max。
当raid_cmd_cur大于raid_cmd_max时,表明已经达到了阵列的性能最大规格,需要缩小窗口的尺寸,设置raid_cmd_win为sess_win_min;
当raid_cmd_cur介于raid_cmd_min和raid_cmd_max时,表明当前阵列的性能还是能满足的,需要适当窗口的大小,可选地,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。调整情况可以参照图8,可以理解的是图8仅仅是为了说明窗口尺寸调整的一种举例性说明,不应当理解对本实施方式的限制,本领域技术人员在看到本实施例给出的方式后还可以采用其他可替代的方式进行实现。
在对所述图像采集装置100发送的报文存储后,所述方法还包括:
根据所述逻辑资源的窗口尺寸对所述图像采集设备100发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和。由之前对iSCSI的介绍可知,期望发送的命令序号等于已经正确接收命令序号加1。
最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,即使计算的窗口尺寸为零,也可以保证iSCSI窗口最小为1,窗口不会被关闭,在磁盘阵列紧张的情况下,可以将接收的报文数据先存储到缓存中。
请参照图9,所述方法还包括:
步骤S170,在接收报文时,根据接收报文的大小分配存储页面进行缓存。
当存储设备200接收的报文数据不能立即通过窗口保存到逻辑资源中时,所述存储设备200会根据接收报文的容量为不会立即存储的报文分配用于缓存这些报文的存储页面进行缓存。
在本实施例中,存储页数限制(page limit)是根据存储系统10的配置及内存大小灵活配置的,不同配置的存储系统10的page limit也是不同的。该机制既避免了报文层层解析,数据传输到底层时资源不足造成的系统消耗,又提高了存储系统10的稳定性。
根据系统的配置page limit有不同的大小。例如:小于2GB的内存存储设备200,iSCSI数据缓存page limit可以为65535个存储页面(page),大于2GB的内存存储设备,iSCSI数据缓存page limit可以为262144个page;另外被分配存储页面(page allocated)用来记录当前已经缓存的数据大小。
步骤S180,在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
在缓存中的报文被存储到所述逻辑资源后,将之前分配给该报文用于进行缓存的存储页面进行释放,以便于利用释放后的存储页面对接收的报文进行缓存。
请参照图10,在本实施例中,在步骤S170之前,所述方法还包括:
步骤S140,存储设备200对所述报文进行解析。
步骤S150,在解析的报文为SCSI命令时,检测被分配的存储页面是否超过存储页面的限制。
在本实施例中,增加对opcode为SCSI命令的内存限制检测,其它类型的opcode不做限制。
步骤S160,如果超过存储页面的限制会跳过报文接收并回复所述存储设备200处于繁忙状态,否则进行报文接收。
在本实施例中,如果没有超过,则进入报文接收阶段,开始分配缓存,接收数据,然后进行数据处理;如果被分配存储页面的数量已经超过上限,则在cmnd的flag设置skiped,则会跳过数据接收,并回复所述存储设备处于繁忙状态,即将cmd_status设置为SAM_STAT_BUSY。
在报文解析的过程中增加了对携带数据的内存检测,对于大容量的内存可以更多的缓存数据,对于小容量的内存,可以对存储系统10起到保护作用。
第二实施例
本发明第二实施例提供图1中所示的窗口调整装置300的一种方框示意图。请参照图11,在本发明实施例中,所述窗口调整装置300应用于存储设备200,所述存储设备200绑定一个以逻辑磁盘阵列方式组成的逻辑资源,所述窗口调整装置300包括:建立模块310、接收模块320及调整模块330。
所述建立模块310用于与图像采集设备100建立iSCSI会话。
所述接收模块320用于接收所述图像采集设备100发送的报文。
所述调整模块330用于根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。
在本实施例中,所述调整模块根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸的方式,包括:
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度小于所述逻辑磁盘阵列最小的命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最大窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度大于逻辑磁盘阵列的最大命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最小窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度位于所述逻辑磁盘阵列最小的命令队列长度与所述逻辑磁盘阵列的最大命令队列长度之间时,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。
请参照图10,在本实施例中,所述窗口调整装置300还包括更新模块340。
所述更新模块340用于根据所述逻辑资源的窗口尺寸对所述图像采集设备100发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,其中,期望发送的命令序号等于已经正确接收命令序号加1。
请再次参照图10,在本实施例中,所述窗口调整装置300还可以包括分配模块350及释放模块360。
所述分配模块350用于在接收报文时,根据接收报文的大小分配存储页面进行缓存。
所述释放模块360用于在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得存储设备200执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本发明实施例提供的窗口调整方法、装置及可读存储介质,其中,所述方法包括所述存储设备与图像采集设备建立iSCSI会话;接收所述图像采集设备发送的报文;根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸。上述方法可以通过逻辑资源所在逻辑磁盘阵列的命令队列长度控制所属逻辑资源的iSCSI数据窗口的尺寸,可以减小多路iSCSI窗口之间的相互影响,避免窗口之间的意外关闭,从而防止数据报文的丢失。同时在报文解析的过程中增加了对携带数据的内存检测,对于大容量的内存可以更多的缓存数据,对于小容量的内存,可以对存储系统起到保护作用。
在本申请所提供的具体实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种窗口调整方法,其特征在于,应用于存储设备,所述存储设备绑定一个以逻辑磁盘阵列方式组成的逻辑资源,所述方法包括:
所述存储设备与图像采集设备建立iSCSI会话;
接收所述图像采集设备发送的报文;
根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸;
根据所述逻辑资源的窗口尺寸对所述图像采集设备发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,其中,期望发送的命令序号等于已经正确接收命令序号加1;
其中,所述根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸,包括:
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度小于逻辑磁盘阵列最小的命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最大窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度大于逻辑磁盘阵列的最大命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最小窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度位于所述逻辑磁盘阵列最小的命令队列长度与所述逻辑磁盘阵列的最大命令队列长度之间时,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述存储设备在接收报文时,根据接收报文的大小分配存储页面进行缓存;
在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
3.如权利要求2所述的方法,其特征在于,在所述存储设备在接收报文时,根据接收报文的大小分配缓存之前,所述方法还包括:
所述存储设备对所述报文进行解析;
在解析的报文为SCSI命令时,检测被分配的存储页面是否超过存储页面的限制;
如果超过存储页面的限制会跳过报文接收并回复所述存储设备处于繁忙状态,否则进行报文接收。
4.一种窗口调整装置,其特征在于,应用于存储设备,所述存储设备绑定一个以逻辑磁盘阵列方式组成的逻辑资源,所述装置包括:
建立模块,用于与图像采集设备建立iSCSI会话;
接收模块,用于接收所述图像采集设备发送的报文;
调整模块,用于根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸;
更新模块,用于根据所述逻辑资源的窗口尺寸对所述图像采集设备发送报文中的最大发送命令序号及期望发送的命令序号进行更新,更新后的最大发送命令序号等于期望发送的命令序号与当前的窗口尺寸之和,其中,期望发送的命令序号等于已经正确接收命令序号加1;
其中,所述调整模块根据所述逻辑资源所在逻辑磁盘阵列中当前的命令队列长度及逻辑磁盘阵列的命令队列长度,调整所述逻辑资源进行报文存储的窗口尺寸的方式,包括:
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度小于所述逻辑磁盘阵列最小的命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最大窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度大于逻辑磁盘阵列的最大命令队列长度时,将所述逻辑资源当前的窗口尺寸调整为最小窗口尺寸;
当逻辑资源所在逻辑磁盘阵列中当前的命令队列长度位于所述逻辑磁盘阵列最小的命令队列长度与所述逻辑磁盘阵列的最大命令队列长度之间时,将所述逻辑资源当前的窗口尺寸调整为随当前的命令队列长度的增长呈线性减小。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
分配模块,用于在接收报文时,根据接收报文的大小分配存储页面进行缓存;
释放模块,用于在所述报文被存储在所述逻辑资源中时,将分配给所述报文的存储页面进行释放。
6.一种可读存储介质,所述可读存储介质包括计算机程序,其特征在于:
所述计算机程序运行时控制所述可读存储介质所在电子设备执行权利要求1-3中任意一项所述的窗口调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241552.1A CN109862297B (zh) | 2017-11-30 | 2017-11-30 | 窗口调整方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241552.1A CN109862297B (zh) | 2017-11-30 | 2017-11-30 | 窗口调整方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109862297A CN109862297A (zh) | 2019-06-07 |
CN109862297B true CN109862297B (zh) | 2021-11-16 |
Family
ID=66888576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711241552.1A Active CN109862297B (zh) | 2017-11-30 | 2017-11-30 | 窗口调整方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109862297B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923488B (zh) * | 2021-09-15 | 2024-04-16 | 青岛海信网络科技股份有限公司 | 一种公交车、视频流量控制方法及存储介质 |
CN115766606A (zh) * | 2022-11-04 | 2023-03-07 | 长城汽车股份有限公司 | 一种数据传输方法、装置、车载终端及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132412B (zh) * | 2007-09-26 | 2010-06-23 | 杭州华三通信技术有限公司 | iSCSI系统中的报文长度协商方法、装置和系统 |
JP2010009472A (ja) * | 2008-06-30 | 2010-01-14 | Ochanomizu Univ | ネットワークシステム、ネットワークシステムの制御方法および制御プログラム |
CN101448022B (zh) * | 2008-09-09 | 2012-05-30 | 创新科存储技术(深圳)有限公司 | 互联网小型计算机系统接口接收端窗口控制方法及装置 |
US20100111095A1 (en) * | 2008-11-03 | 2010-05-06 | Bridgeworks Limited | Data transfer |
CN102035719B (zh) * | 2009-09-29 | 2013-04-24 | 华为技术有限公司 | 一种报文处理方法和装置 |
-
2017
- 2017-11-30 CN CN201711241552.1A patent/CN109862297B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109862297A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200314181A1 (en) | Communication with accelerator via RDMA-based network adapter | |
US9292209B2 (en) | Multiple I/O request processing in a storage system | |
US10084699B2 (en) | Transferring data | |
US7676607B2 (en) | Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus | |
US8605578B1 (en) | System and method for handling of destination host side congestion | |
US20170034269A1 (en) | Methods and systems for efficiently moving data between nodes in a cluster | |
TWI239732B (en) | A method, computer readable medium and system for providing QoS for an iSCSI environment | |
US10263920B2 (en) | Enhanced acknowledgement handling in communication packet transfer | |
CN110460412A (zh) | 用于数据传输的方法和rdma网卡 | |
CN109862297B (zh) | 窗口调整方法、装置及可读存储介质 | |
CN111049857A (zh) | 一种基于udp协议的网络存储系统及方法 | |
CN103763213A (zh) | 报文发送方法及装置 | |
US8588064B2 (en) | Transport layer that warns application of potential bottleneck and methods thereof | |
EP2774342B1 (en) | Reducing tcp timeouts due to incast collapse at a network switch | |
CN109413142B (zh) | 一种Linux下的iSCSI虚拟代理实现方法 | |
US10476919B2 (en) | System and method for reliable messaging between application sessions across volatile networking conditions | |
CN109688085B (zh) | 传输控制协议代理方法、存储介质及服务器 | |
US10585823B2 (en) | Leveling IO | |
US8069270B1 (en) | Accelerated tape backup restoration | |
US20040111503A1 (en) | Method, system, and article of manufacture for increasing network throughput |
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 |