申请日2004.12.20
公开(公告)日2008.07.23
IPC分类号H04L29/02; G06F12/00; G06F9/46
摘要
网络存储系统的流水处理方法,属于信息的存储,特别涉及网络存储系统的数据传输,其目的是提高存储系统性能,从网络存储系统结构和数据处理策略出发,在理解流水线技术本质的基础上,将流水线技术运用到网络存储系统当中,它可以被广泛应用于各种网络存储系统。本发明顺序包括下列步骤:A.网络端口接收到用户数据请求,判断该数据请求类型;B.如果是读请求,进行步骤C,如果是写请求,转步骤D;C.将此请求加入读命令处理队列,等待流水处理;D.将此请求加入写命令处理队列,等待流水处理;流水处理有两种方式:固定流水处理和柔性流水处理。实验数据表明,随着步骤数的增加,网络磁盘阵列的平均服务数据带宽明显增大。
权利要求书
1.一种网络存储系统的流水处理方法,顺序包括下列步骤:
(1)网络端口接收到用户数据请求,判断该数据请求类型;
(2)如果是读请求,进行步骤(3),如果是写请求,转步骤(4);
(3)将此请求加入读命令处理队列,等待流水处理:
流水处理由两个流水段组成,a、b步骤的顺序执行组成第一个流水段, c、d步骤的顺序执行组成第二个流水段;当前用户请求的第一个流水段和 上一个用户请求的第二个流水段并行同时启动,在本流水段内顺序执行段 内各步骤,两个流水段并行分别执行结束后,同步一次,即先完成的流水 段必须等到并行的对方流水段完成后,再同时开始启动后续并行执行步 骤:当前用户请求的第二个流水段和下一个用户请求的第一个流水段并行 同时启动,在本流水段内顺序执行段内各步骤,两个流水段并行分别执行 结束后,必须再次同步,…如此顺序进行;每执行完一条读命令、即d步 骤结束,通过网络端口返回处理结果;其中a步骤代表用户请求前期处理 步骤,b步骤代表底层I/O调度步骤,c步骤代表数据拷贝步骤,d步骤代 表返回用户请求结果步骤;
(4)将此请求加入写命令处理队列,等待流水处理:
流水处理由两个流水段组成,a、e步骤的顺序执行组成第一个流水段; f、d步骤的顺序执行组成第二个流水段,当前用户请求的第一个流水段和 上一个用户请求的第二个流水段并行同时启动,在本流水段内顺序执行段 内各步骤,两个流水段并行分别执行结束后,同步一次,即先完成的流水 段等到并行的对方流水段完成后,再同时启动后续并行执行步骤:当前用 户请求的第二个流水段和下一个用户请求的第一个流水段并行同时启动, 在本流水段内顺序执行段内各步骤,两个流水段并行分别执行结束后,必 须再次同步,…如此顺序进行;每执行完一条写命令、即d步骤结束,通 过网络端口返回处理结果;
其中a步骤代表用户请求前期处理步骤,e步骤代表数据拷贝步骤;f 步骤代表底层I/O调度步骤,d步骤代表返回用户请求结果步骤。
2.如权利要求1所述的网络存储系统的流水处理方法,其特征在于:
当处理读请求时,
所述a步骤即用户请求前期处理步骤中,当前用户请求,经过预处理 添加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经 过Cache处理、命令排队、命令分解处理后,形成多个磁盘上的子命令, 并添加至对应磁盘串的子命令链;
所述b步骤即底层I/O调度步骤中,底层I/O控制程序通过执行各磁 盘串的子命令,进行并行I/O调度,从磁盘上读取数据;
所述c步骤即读请求的数据拷贝步骤中,根据数据的分块情况和网络 传输所要求的数据存放位置,对从磁盘上读取的数据进行合并、整理、拷 贝操作;
所述d步骤即读请求的返回用户请求结果步骤中,通过网络端口返回 处理结果,至此用户请求完成;
当处理写请求时,
所述a步骤即用户请求前期处理步骤中,当前用户请求,经过预处理 添加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经 过Cache处理、命令排队、命令分解处理;
所述e步骤即写请求的数据拷贝步骤中,在根据数据的分块情况对写 数据进行分解、合并、拷贝操作后,形成多个磁盘上的子命令,添加至对 应磁盘串的子命令链;
所述f步骤即写请求的底层I/O调度步骤中,通过执行各磁盘串的子 命令,进行并行I/O调度,向磁盘写数据;
所述d步骤即写请求的返回用户请求结果步骤中,通过网络端口返回 处理结果信息,至此用户请求完成。
3.一种网络存储系统的流水处理方法,顺序包括下列步骤:
(1)网络端口接收到用户数据请求,判断该数据请求类型;
(2)如果是读请求,进行步骤(3),如果是写请求,转步骤(4);
(3)将此请求加入读命令处理队列,等待流水处理:
流水过程由两个流水段组成,a、b步骤或b步骤或a、b、c步骤或b、 c步骤的顺序执行组成第一个流水段;c、d步骤或d步骤或d步骤与再下 一个用户请求a步骤或c、d步骤与再下一个用户请求a步骤的顺序执行 组成第二个流水段,对于任意一个用户请求,完成该用户请求的第一流水 段和第二流水段必须顺序执行a、b、c、d四个步骤;当前用户请求的第 一个流水段和上一个用户请求的第二个流水段并行同时启动,在本流水段 内顺序执行段内各步骤,两个流水段并行分别执行结束后,同步一次,即 先完成的流水段必须等到并行的对方流水段完成后,再同时开始启动后续 并行执行步骤:当前用户请求的第二个流水段和下一个用户请求的第一个 流水段并行同时启动,在本流水段内顺序执行段内各步骤,两个流水段并 行分别执行结束后,必须再次同步,…如此顺序进行;每执行完一条读命 令、即d步骤结束,通过网络端口返回处理结果;其中a步骤代表用户请 求前期处理步骤,b步骤代表底层I/O调度步骤;c步骤代表数据拷贝步 骤,d步骤代表返回用户请求结果步骤;
(4)将此请求加入写命令处理队列,等待流水处理:
流水过程由两个流水段组成,a、e步骤或a步骤或上一个用户请求d 步骤与a步骤或上一个用户请求d步骤与a、e步骤的顺序执行组成第一 个流水段;f、d步骤或f步骤或上一个用户请求e步骤与f步骤或上一个 用户请求e步骤与f、d步骤的顺序执行组成第二个流水段,对于任意一 个用户请求,完成该用户请求的第一流水段和第二流水段必须顺序执行a、 d、e、f四个步骤;当前用户请求的第一个流水段和上一个用户请求的第 二个流水段并行同时启动,在本流水段内顺序执行段内各步骤,两个流水 段并行分别执行结束后,同步一次,即先完成的流水段必须等到并行的对 方流水段完成后,再同时开始启动后续并行执行步骤:当前用户请求的第 二个流水段和下一个用户请求的第一个流水段并行同时启动,在本流水段 内顺序执行段内各步骤,两个流水段并行分别执行结束后,必须再次同 步,…如此顺序进行;每执行完一条写命令、即d步骤结束,通过网络端 口返回处理结果;其中a步骤代表用户请求前期处理步骤,e步骤代表数 据拷贝步骤;f步骤代表底层I/O调度步骤,d步骤代表返回用户请求结 果步骤。
4.如权利要求3所述的网络存储系统的流水处理方法,其特征在于:
当处理读请求时,
所述a步骤即用户请求前期处理步骤中,当前用户请求,经过预处理 添加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经 过Cache处理、命令排队、命令分解处理后,形成多个磁盘上的子命令, 并添加至对应磁盘串的子命令链;
所述b步骤即底层I/O调度步骤中,底层I/O控制程序通过执行各磁 盘串的子命令,进行并行I/O调度,从磁盘上读取数据;
所述c步骤即读请求的数据拷贝步骤中,根据数据的分块情况和网络 传输所要求的数据存放位置,对从磁盘上读取的数据进行合并、整理、拷 贝操作;
所述d步骤即读请求的返回用户请求结果步骤中,通过网络端口返回 处理结果,至此用户请求完成;
当处理写请求时,
所述a步骤即用户请求前期处理步骤中,当前用户请求,经过预处理 添加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经 过Cache处理、命令排队、命令分解处理;
所述e步骤即写请求的数据拷贝步骤中,在根据数据的分块情况对写 数据进行分解、合并、拷贝操作后,形成多个磁盘上的子命令,添加至对 应磁盘串的子命令链;
所述f步骤即底层I/O调度步骤中,通过执行各磁盘串的子命令,进 行并行I/O调度,向磁盘写数据;
所述d步骤即写请求的返回用户请求结果步骤中,通过网络端口返回 处理结果信息,至此用户请求完成。
说明书
网络存储系统的流水处理方法
技术领域:
本发明属于信息的存储,特别涉及网络存储系统的数据传输。
背景技术:
为了提高存储系统的性能,众多学者侧重存储系统的并行性、可扩展 性和容错处理的研究。由于信息的重要价值以及网络的发展,引发出对存 储系统独立性与共享性的需求,人们转而关注存储节点外部的网络存储结 构的研究,从而启动了从内向外的发展过程。网络存储技术是当前信息技 术领域研究的热点问题。存储区域网(storage area network,SAN)、附网 存储(network attached storage,NAS)、网络磁盘阵列(network attached RAID)等就是其中的代表。网络存储系统是以数据为中心的公共数据平 台,能够同时为多用户提供服务,还可以对数据进行智能化处理。提高网 络存储系统的性能可以从以下几个方面入手:一是提高存储设备性能,二 是提高存储网络带宽,三是优化网络存储系统结构及协议,四是研究更好 的数据处理策略。
流水线技术最初运用到CPU内部,对处理机的算术逻辑部件进行分段, 以便为各种数据类型进行流水操作,这种流水线称为部件级流水线。另 一种流水线称为处理机级流水线,它是把解释指令的过程按照流水方式处 理,处理机处理的主要时序就是解释指令的过程。把这个过程分为若干个 子过程,按照流水方式组织起来,就能使处理机重叠地解释多条指令。还 有一种流水线称为处理机间流水线,又叫宏流水线。它由两个或两个以上 的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
随着单个存储设备性能的不断提高,又重拾存储系统内部结构的研究, 存储I/O流水处理技术就是在这种思想指引下提出的。
发明内容:
本发明提出两种网络存储系统的流水处理方法,其目的都是提高存储 系统性能,从网络存储系统结构和数据处理策略出发,在理解流水线技术 本质的基础上,将流水线技术运用到网络存储系统当中,它可以被广泛应 用于各种网络存储系统。
本发明一种网络存储系统的流水处理方法,称为固定流水处理方法, 顺序包括下列步骤:
(1)网络端口接收到用户数据请求,判断该数据请求类型;
(2)如果是读请求,进行步骤(3),如果是写请求,转步骤(4);
(3)将此请求加入读命令处理队列,等待流水处理:
流水处理由两个流水段组成,a、b步骤的顺序执行组成第一个流水段, c、d步骤的顺序执行组成第二个流水段;当前用户请求的第一个流水段和 上一个用户请求的第二个流水段并行同时启动,在本流水段内顺序执行段 内各步骤,两个流水段并行分别执行结束后,同步一次,即先完成的流水 段必须等到并行的对方流水段完成后,再同时开始启动后续并行执行步 骤:当前用户请求的第二个流水段和下一个用户请求的第一个流水段并行 同时启动,在本流水段内顺序执行段内各步骤,两个流水段并行分别执行 结束后,必须再次同步,…如此顺序进行;每执行完一条读命令、即d步 骤结束,通过网络端口返回处理结果;其中a步骤代表用户请求前期处理 步骤,b步骤代表底层I/O调度步骤,c步骤代表数据拷贝步骤,d步骤代 表返回用户请求结果步骤;
(4)将此请求加入写命令处理队列,等待流水处理:
流水处理由两个流水段组成,a、e步骤的顺序执行组成第一个流水段; f、d步骤的顺序执行组成第二个流水段,当前用户请求的第一个流水段和 上一个用户请求的第二个流水段并行同时启动,在本流水段内顺序执行段 内各步骤,两个流水段并行分别执行结束后,同步一次,即先完成的流水 段等到并行的对方流水段完成后,再同时启动后续并行执行步骤:当前用 户请求的第二个流水段和下一个用户请求的第一个流水段并行同时启动, 在本流水段内顺序执行段内各步骤,两个流水段并行分别执行结束后,必 须再次同步,…如此顺序进行;每执行完一条写命令、即d步骤结束,通 过网络端口返回处理结果;
其中a步骤代表用户请求前期处理步骤,e步骤代表数据拷贝步骤;f 步骤代表底层I/O调度步骤,d步骤代表返回用户请求结果步骤。
所述的网络存储系统的流水处理方法,其特征在于:
当处理读请求时,
所述a步骤为用户请求前期处理步骤,当前用户请求,经过预处理添 加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经过 Cache处理、命令排队、命令分解处理后,形成多个磁盘上的子命令,并 添加至对应磁盘串的子命令链;
所述b步骤为底层I/O调度步骤,底层I/O控制程序通过执行各磁盘 串的子命令,进行并行I/O调度,从磁盘上读取数据;
所述c步骤为读请求的数据拷贝步骤,根据数据的分块情况和网络传 输所要求的数据存放位置,对从磁盘上读取的数据进行合并、整理、拷贝 操作;
所述d步骤为读请求的返回用户请求结果步骤,通过网络端口返回处 理结果,至此用户请求完成;
当处理写请求时,
所述a步骤为用户请求前期处理步骤,当前用户请求,经过预处理添 加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经过 Cache处理、命令排队、命令分解处理;
所述e步骤为写请求的数据拷贝步骤,在根据数据的分块情况对写数 据进行分解、合并、拷贝操作后,形成多个磁盘上的子命令,添加至对应 磁盘串的子命令链;
所述f步骤为写请求的底层I/O调度步骤,通过执行各磁盘串的子命 令,进行并行I/O调度,向磁盘写数据;
所述d步骤为写请求的返回用户请求结果步骤,通过网络端口返回处 理结果信息,至此用户请求完成。
本发明的另外一种网络存储系统的流水处理方法,称为柔性流水处理 方法,顺序包括下列步骤:
(1)网络端口接收到用户数据请求,判断该数据请求类型;
(2)如果是读请求,进行步骤(3),如果是写请求,转步骤(4);
(3)将此请求加入读命令处理队列,等待流水处理:
流水过程由两个流水段组成,a、b步骤或b步骤或a、b、c步骤或b、 c步骤的顺序执行组成第一个流水段;c、d步骤或d步骤或d步骤与再下 一个用户请求a步骤或c、d步骤与再下一个用户请求a步骤的顺序执行 组成第二个流水段,对于任意一个用户请求,完成该用户请求的第一流水 段和第二流水段必须顺序执行a、b、c、d四个步骤;当前用户请求的第 一个流水段和上一个用户请求的第二个流水段并行同时启动,在本流水段 内顺序执行段内各步骤,两个流水段并行分别执行结束后,同步一次,即 先完成的流水段必须等到并行的对方流水段完成后,再同时开始启动后续 并行执行步骤:当前用户请求的第二个流水段和下一个用户请求的第一个 流水段并行同时启动,在本流水段内顺序执行段内各步骤,两个流水段并 行分别执行结束后,必须再次同步,…如此顺序进行;每执行完一条读命 令、即d步骤结束,通过网络端口返回处理结果;其中a步骤代表用户请 求前期处理步骤,b步骤代表底层I/O调度步骤;c步骤代表数据拷贝步 骤,d步骤代表返回用户请求结果步骤;
(4)将此请求加入写命令处理队列,等待流水处理:
流水过程由两个流水段组成,a、e步骤或a步骤或上一个用户请求d 步骤与a步骤或上一个用户请求d步骤与a、e步骤的顺序执行组成第一 个流水段;f、d步骤或f步骤或上一个用户请求e步骤与f步骤或上一个 用户请求e步骤与f、d步骤的顺序执行组成第二个流水段,对于任意一 个用户请求,完成该用户请求的第一流水段和第二流水段必须顺序执行a、 d、e、f四个步骤;当前用户请求的第一个流水段和上一个用户请求的第 二个流水段并行同时启动,在本流水段内顺序执行段内各步骤,两个流水 段并行分别执行结束后,同步一次,即先完成的流水段必须等到并行的对 方流水段完成后,再同时开始启动后续并行执行步骤:当前用户请求的第 二个流水段和下一个用户请求的第一个流水段并行同时启动,在本流水段 内顺序执行段内各步骤,两个流水段并行分别执行结束后,必须再次同 步,…如此顺序进行;每执行完一条写命令、即d步骤结束,通过网络端 口返回处理结果;其中a步骤代表用户请求前期处理步骤,e步骤代表数 据拷贝步骤;f步骤代表底层I/O调度步骤,d步骤代表返回用户请求结 果步骤。
所述的网络存储系统的流水处理方法,其特征在于:
当处理读请求时,
所述a步骤为用户请求前期处理步骤,当前用户请求,经过预处理添 加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经过 Cache处理、命令排队、命令分解处理后,形成多个磁盘上的子命令,并 添加至对应磁盘串的子命令链;
所述b步骤为底层I/O调度步骤,底层I/O控制程序通过执行各磁盘 串的子命令,进行并行I/O调度,从磁盘上读取数据;
所述c步骤为读请求的数据拷贝步骤,根据数据的分块情况和网络传 输所要求的数据存放位置,对从磁盘上读取的数据进行合并、整理、拷贝 操作;
所述d步骤为读请求的返回用户请求结果步骤,通过网络端口返回处 理结果,至此用户请求完成;
当处理写请求时,
所述a步骤为用户请求前期处理步骤,当前用户请求,经过预处理添 加至用户I/O任务链,然后控制程序从用户I/O任务链中提取命令,经过 Cache处理、命令排队、命令分解处理;
所述e步骤为写请求的数据拷贝步骤,在根据数据的分块情况对写数 据进行分解、合并、拷贝操作后,形成多个磁盘上的子命令,添加至对应 磁盘串的子命令链;
所述f步骤为底层I/O调度步骤,通过执行各磁盘串的子命令,进行 并行I/O调度,向磁盘写数据;
所述d步骤为写请求的返回用户请求结果步骤,通过网络端口返回处 理结果信息,至此用户请求完成。
以下对本发明得以实现的依据进行分析,在磁盘阵列存储系统中实现 流水线操作的两个基本的前提条件是:
1、前一个I/O命令没有完全结束之前,应获取下一个I/O命令的有关 信息;
2、不同部件应能同时操作,资源不发生冲突。
从接收的渠道看,网络磁盘阵列不同于一般的盘阵列,它处理的信息 包括两部分:一是通过主机外设通道接收的SCSI命令,另一是通过网络 端口接收到的用户数据请求。通过主机外发通道接收的SCSI命令根据其 功能属性又分为两种类型,一种类型是与主机文件系统管理相关的命令, 包括获取或修改目录结构、文件分布信息、文件属性信息以及文新文件分 配空间等;第二种类型是与存储设备管理工作相关的命令,包括一些SCSI 命令,如Test Unit Ready,Mode Sense Capacity,Inquiry等。主机 通过发送第二种类型的命令,可以获取相应存储设备的物理信息,改变存 储设备的某些配置参数,并使存储设备处于工作就绪状态。通过网络端口 接收到的用户数据请求通常包括读请求和写请求。
以读请求为例,通过网络端口接收到的用户数据请求包含I/O任务信 息,其处理流程如图1所示。一个用户请求网络磁盘阵列的网络端口后, 经过预处理添加至用户I/O任务链。然后控制程序从用户I/O任务链中提 取命令,经过Cache处理、命令排队、命令分解等处理后,形成多个磁盘 上的子命令,并添加至对应磁盘串的子命令链。底层I/O控制程序通过执 行各磁盘串的命令,进行并行I/O调度,从磁盘上存取数据。根据数据的 分块情况和网络传输所要求的数据存放位置,对从磁盘上读取的数据进行 合并、整理、拷贝等操作。最后通过网络端口返回处理结果,至此用户请 求完成。