一种多种存储协议下的统一服务系统的制作方法

文档序号:6399896阅读:132来源:国知局
专利名称:一种多种存储协议下的统一服务系统的制作方法
技术领域
本发明涉及计算机技术领域,具体地说是一种多种存储协议下的统一服务系统。
背景技术
在实际应用中对大容量存储的需求促使了 RAID技术的诞生,并形成了磁盘阵列产品,目前磁盘阵列中支持的协议主要有ISCSI (互联网小型计算机系统接口)和FCP协议。iSCSI是一种在TCP/IP上进行数据块传输的标准,可以实现在IP网络上运行SCSI协议;FCP协议是光纤通道和上层应用之间的接口,它是在光纤信道上的SCSI接口协议。目前还出现了 SRP协议。SRP协议是IB( Infiniband) SAN的一种,其主要作用是把SCSI协议的命令和数据通过RDMA的方式在Infiniband网络上传输;随着互联技术的发展,以后还会出现其它的协议,每出现一种新的协议,都要开发一种新的协议服务支持。在现有的协议设计中,每种协议服务都是单独实现的,如IET,FC-TARGET,这些服务虽然有通用的数据读写处理过程,但没有结合点,不能统一对外提供服务。

发明内容
本发明的目的是提供一种多种存储协议下的统一服务系统。本发明的目的是按以下方式实现的,系统包括多协议解释驱动模块、访问权限控制模块、通用中间层模块、后端处理模块,其中:
多协议解释驱动模块,负责为主机总线适配器HBA接收或者发送消息,如接收来自访问用户的消息或将消息发送到访问用户端。对于每种传输协议,都有相应的协议解释驱动,它的实现完全是协议相关的;
访问权限控制模块,提供了权限控制功能,对每个访问用户会有相应的访问权限,有的访问用户访问一组设备,而另外的访问用户或访问另一组设备,它会创建一个逻辑单元的数据结构,每个逻辑单元创建一个SCSI命令的消息队列,为了控制哪些访问用户能够访问逻辑单元,有一个访问控制链表来控制哪些访问用户能够访问哪些逻辑单元;
通用中间层模块,进行通用的命令处理,会话以及命令的创建,完成逻辑单元到设备的转换,并将这些命令根据不同的设备类型分发到不同的设备上去,并最终调用后端设备句柄来完成命令的处理。
后端处理模块由SCSI命令处理器来组成,它负责SCSI命令执行。当逻辑单元的SCSI命令队列接收到一个新命令时,SCSI命令处理器调用相应的后端设备句柄来完成这个命令。—种多种存储协议的统一服务方法,其特征在于访问用户在需要建立与目标器的连接时,首先要加载多协议解释模块模块,完成协议解释驱动的注册,当协议解释驱动接收到访问用户的连接请求时,会调用中间层函数来完成会话的创建,此后访问用户就开始与多协议统一的命令交互过程,访问用户端就能看到目标器提供的后端磁盘,并对它进行格式化读写,当协议解释驱动把协议命令传递给中间层处理时,中间层会分配命令并初始化相应的域,提取出相应的逻辑单元号并返回,其过程如下:
(1)分配命令结构,设置命令的状态,命令的缺省任务属性,命令的超时间隔,命令的引用计数;
(2)初始化其协议解释驱动指针以及协议解释驱动操作函数表;
(3)增加会话的命令计数,将其加入到会话的命令队列中,并根据命令的逻辑单元号来查找相应的传输设备,确定命令的数据传输方向,初始化命令的后端设备,命令的scsi设备;
(4)从CDB结构中解释出操作码、传输的数据长度,并调用相应的后端设备方法来请求数据缓存;
(5)如果命令并不需要数据传输,则由多协议中间层来处理;
(6)如果命令是读命令,则分配相应的内存空间,并将命令传递给后端设备来处理;
(7)如果是写命令,则分配相应的空间,调用协议解释驱动的准备传输处理方法,告诉协议解释驱动空间已经准备好了并且启动数据传输,当协议解释驱动获得所有的数据后,然后调用接收数据方法来处理;
(8)协议解释驱动发送响应,当发送完响应后,协议解释驱动通知中间层可以释放命令以及相应的数据缓存;
协议部分只负责数据的传输,数据的通用处理都在中间层来处理,后端处理磁盘读写,以此实现多种存储协议下的统一服务,实施统一管理,能够同时支持多种协议,且易于扩展。本发明的有益效果是:现存的协议服务都单独存在,不能统一对外提供服务,并且它们之间没有结合点。本文发明了一种多协议统一服务方法,能够将SCSI命令通过不同的传输协议(如FCP,iSCSI,SRP协议等)传输给储存后端设备来处理。在本发明的多协议统一服务方法中,有效地将各种IO的通用处理结合在一起,对其进行了抽象,提取了中间层的概念,并将具体的协议实现与通用的命令处理相分离,并能同时对外提供ISCSI,FC, SRP协议服务。


图1是多种存储协议下的统一服务系统不意 图2出SCSI命令处理流程图。
具体实施例方式参照说明书附图对本发明的方法作以下详细地说明。如附图所示,本发明磁盘阵列中一种多种存储协议下的统一服务系统及其方法。系统包括多协议解释驱动模块、访问权限控制模块、通用中间层模块、后端处理模块。其中:
多协议解释驱动模块负责为主机总线适配器HBA接收或者发送消息,如接收来自访问用户的消息或将消息发送到访问用户端。对于每种传输协议,都有相应的协议解释驱动,它的实现完全是协议相关的。访问权限控制模块,提供了权限控制功能,对每个访问用户会有相应的访问权限。有的访问用户可以访问一组设备,而另外的访问用户可以访问另一组设备。它会创建一个逻辑单元的数据结构,每个逻辑单元创建一个SCSI命令的消息队列,为了控制哪些访问用户能够访问逻辑单元,有一个访问控制链表来控制哪些访问用户能够访问哪些逻辑单元。通用中间层模块,进行通用的命令处理,会话以及命令的创建,完成逻辑单元到设备的转换,并将这些命令根据不同的设备类型分发到不同的设备上去。并最终调用后端设备句柄来完成命令的处理。
后端处理模块由SCSI命令处理器来组成,它负责SCSI命令执行。当逻辑单元的SCSI命令队列接收到一个新命令时,SCSI命令处理器调用相应的后端设备句柄来完成这个命令。
实施例如图2所示,访问用户在需要建立与目标器的连接时,首先要加载多协议解释模块模块,完成协议解释驱动的注册过程,当协议解释驱动接收到访问用户的连接请求时,会调用中间层函数来完成会话的创建,此后访问用户就可以开始与多协议统一的命令交互过程,访问用户端就能看到目标器提供的后端磁盘,并可以对它进行格式化读写。当协议解释驱动把协议命令传递给中间层处理时,中间层会分配命令并初始化相应的域,提取出相应的逻辑单元号并返回。其过程如下:
(1)分配命令结构,设置命令的状态,命令的缺省任务属性,命令的超时间隔,命令的引用计数;
(2)初始化其协议解释驱动指针以及协议解释驱动操作函数表;
(3)增加会话的命令计数,将其加入到会话的命令队列中,并根据命令的逻辑单元号来查找相应的传输设备,确定命令的数据传输方向,初始化命令的后端设备,命令的scsi设备;
(4)从CDB结构中解释出操作码、传输的数据长度,并调用相应的后端设备方法来请求数据缓存
(5)如果命令并不需要数据传输,则由多协议中间层来处理
(6)如果命令是读命令,则分配相应的内存空间,并将命令传递给后端设备来处理;
(7)如果是写命令,则分配相应的空间,调用协议解释驱动的准备传输处理方法,告诉协议解释驱动空间已经准备好了并且可以启动数据传输。当协议解释驱动获得所有的数据后,然后调用接收数据方法来处理;
(8)协议解释驱动发送响应,当发送完响应后,协议解释驱动通知中间层可以释放命令以及相应的数据缓存。通过这种方式,协议部分只专门负责数据的传输,数据的通用处理都在中间层来处理,后端专门处理磁盘读写,这样就完成了多种存储协议的统一服务的实现,与单独实现相比,易于维护,统一管理,能够同时支持多种协议,且易于扩展。除说明书所述的技术特征外,均为本专业技术人员的已知技术。
权利要求
1.一种多种存储协议下的统一服务系统,其特征在于,系统包括多协议解释驱动模块、访问权限控制模块、通用中间层模块、后端处理模块,其中: 多协议解释驱动模块,负责为主机总线适配器HBA接收或者发送消息,如接收来自访问用户的消息或将消息发送到访问用户端,对于每种传输协议,都有相应的协议解释驱动,它的实现完全是协议相关的; 访问权限控制模块,提供了权限控制功能,对每个访问用户会有相应的访问权限,有的访问用户访问一组设备,而另外的访问用户或访问另一组设备,它会创建一个逻辑单元的数据结构,每个逻辑单元创建一个SCSI命令的消息队列,为了控制哪些访问用户能够访问逻辑单元,有一个访问控制链表来控制哪些访问用户能够访问哪些逻辑单元; 通用中间层模块,进行通用的命令处理,会话以及命令的创建,完成逻辑单元到设备的转换,并将这些命令根据不同的设备类型分发到不同的设备上去,并最终调用后端设备句柄来完成命令的处理; 后端处理模块由SCSI命令处理器来组成,它负责SCSI命令执行,当逻辑单元的SCSI命令队列接收到一个新命令时,SCSI命令处理器调用相应的后端设备句柄来完成这个命令。
2.根据权利要求1所述的方法,其特征在于访问用户在需要建立与目标器的连接时,首先要加载多协议解释模块模块,完成协议解释驱动的注册,当协议解释驱动接收到访问用户的连接请求时,会调用中间层函数来完成会话的创建,此后访问用户就开始与多协议统一的命令交互过程,访问用户端就能看到目标器提供的后端磁盘,并对它进行格式化读写,当协议解释驱动把协议命令传递给中间层处理时,中间层会分配命令并初始化相应的域,提取出相应的逻辑单元号并返回,其过程如下: (1)分配命令结构,设置命令的状态,命令的缺省任务属性,命令的超时间隔,命令的引用计数; (2)初始化其协议解释驱动指针以及协议解释驱动操作函数表; (3)增加会话的命令计数,将其加入到会话的命令队列中,并根据命令的逻辑单元号来查找相应的传输设备,确定命令的数据传输方向,初始化命令的后端设备,命令的scsi设备; (4)从CDB结构中解释出操作码、传输的数据长度,并调用相应的后端设备方法来请求数据缓存; (5)如果命令并不需要数据传输,则由多协议中间层来处理; (6)如果命令是读命令,则分配相应的内存空间,并将命令传递给后端设备来处理; (7)如果是写命令,则分配相应的空间,调用协议解释驱动的准备传输处理方法,告诉协议解释驱动空间已经准备好了并且启动数据传输,当协议解释驱动获得所有的数据后,然后调用接收数据方法来处理; (8)协议解释驱动发送响应,当发送完响应后,协议解释驱动通知中间层可以释放命令以及相应的数据缓存。
3.根据权利要求2所述的方法,其特征在于,协议部分只负责数据的传输,数据的通用处理都在中间层来处理,后端处理磁盘读写,以此实现多种存储协议下的统一服务,实施统一管理,能够同时支持多种协议,且易于扩展。
全文摘要
本发明提供一种多种存储协议下的统一服务系统,系统包括多协议解释驱动模块、访问权限控制模块、通用中间层模块、后端处理模块,IO处理的协议部分只负责数据的传输,数据的通用处理都在中间层来处理,后端专门处理磁盘读写。现存的协议服务都单独存在,不能统一对外提供服务,并且它们之间没有结合点。本发明的多协议统一服务方法,能够将SCSI命令通过不同的传输协议(如FCP,iSCSI,SRP协议等)传输给储存后端设备来处理。该系统能够有效地将各种IO的通用处理结合在一起,对其进行了抽象,提取了中间层的概念,并将具体的协议实现与通用的命令处理相分离,并能同时对外提供ISCSI,FC,SRP协议服务。
文档编号G06F3/06GK103176751SQ20131006677
公开日2013年6月26日 申请日期2013年3月4日 优先权日2013年3月4日
发明者王恩东, 吕烁, 文中领, 杨帆 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1