[发明专利]一种iSCSI存储系统的实现方法无效
申请号: | 200510011179.1 | 申请日: | 2005-01-14 |
公开(公告)号: | CN1633131A | 公开(公告)日: | 2005-06-29 |
发明(设计)人: | 舒继武;薛巍;潘家铭;罗骏;于冰;郑纬民 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100084北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种iSCSI存储系统的实现方法属于存储区域网络领域,其特征在于:在iSCSI控制器上实现了iSCSI协议,它包括:实现不同的负载均衡方法的网卡绑定模块、提供固定的虚拟设备标识符和热插拔功能的存储设备管理模块、控制低端存储设备并行IO负载的自适应IO负载控制程序以及对不同的存储阵列通道进行IO请求控制的多IO路径模块。必要时,可增设:控制启动器对存储设备的访问权限的存储设备映射模块、实现SCSI命令和块设备IO相互转化的块设备支持模块以及软件RAID模块。它提高了数据块的吞吐率及平均响应时间,在系统可用性及失效容错等也有较大优势。 | ||
搜索关键词: | 一种 iscsi 存储系统 实现 方法 | ||
【主权项】:
1.一种iSCSI存储系统的实现方法,其特征在于,它依次包含以下步骤:第1步:在以下两个网络小型计算机系统接口,也称iSCSI的存储系统中的任何一个的iSCSI控制器上,启动存储服务,把iSCSI协议即该控制器软件作为该系统的内核模块加载到它的操作系统中:第一种iSCSI存储系统包括:多个网络应用服务器,也称启动器;一个管理控制台;通过TCP/IP网络协议分别和上述各启动器和一个管理控制台通讯的一台千兆网交换机;根据iSCSI协议和上述千兆网交换通讯的iSCSI控制器;在Linux操作系统下并根据iSCSI协议与上述iSCSI控制器通讯的多台存储设备;第二种iSCSI存储系统包括:多个网络应用服务器,也称启动器;一个管理控制台;一台千兆网交换机;一台iSCSI控制器;多台存储设备;各启动器和iSCSI控制器之间直线连接,千兆网交换机和各启动器、管理控制台、iSCSI控制器之间经TCP/IP网络协议通讯,iSCSI控制台和各存储设备之间按照iSCSI协议在Linux操作系统下运行;上述iSCSI协议包含:上层:由网关绑定模块及前端目标驱动即FETD模块有一次连接而成;中间层:由与上述前端目标器驱动模块依次相连的IO负载控制模块和多IO路径模块组成;下层,即物理层:有一个和多IO路径模块相连的设备管理模块;所述网卡绑定模块,它是一种链路聚合式模块,即它使多块网卡虚拟为一块网卡,都具有相同的IP地址;该模块在Linux操作系统下,针对不同需要,配备了符合IEEE 802.3ad标准的多网卡轮转和热备份两种模式;所述前端目标器驱动模块,它是公知的;所述存储设备管理模块,在启动器启动iSCSI控制器存储服务时,它扫描连接在iSCSI控制器上的各储备设备,提供固定的虚拟设备标识符;在热插拔存储设备时,启动对存储设备进行增减的操作;它在iSCSI控制器上设定一个线性组合形式且用以标识存储设备编号的虚拟目标标识符数组,依次内含:该设备的主机适配器号,即host;通道号,即channel;目标号,即target;逻辑单元号,即lun;该模块用上述四个变量确定一个存储设备的位置;同时,iSCSI存储系统的iSCSI控制器上维护着一个存储设备列表以及表示存储设备被扫描次数的数组;它为iSCSI控制台提供了一个写入命令以使该模块重新对该存储设备进行扫描的PROC接口;它还为iSCSI控制器提供了动态增减存储设备的另一个PROC接口;在下述情况下iSCSI控制器启动扫描存储设备的操作:iSCSI存储系统的iSCSI控制器端加载控制软件时;iSCSI系统在减少或增加了存储设备后,存储管理员向iSCSI控制器发出重扫描的命令;所述存储设备模块依次按以下步骤实施存储设备扫描流程:初始化模块;有更多的host号否,若没有,便返回;否则,执行下一步骤;Host中还有更多的设备否,若没有,便返回初始化模块下面的一步;否则,执行下一步骤;设备的类型是否为存储磁盘,若不是,便返回初始化模块下面的一步;否则,执行下一步骤;获取设备的信息;构造设备信息,插入设备到表中;可用设备增1,返回初始化模块下面的一步;所述存储设备管理模块依次按以下步骤实施存储设备删除流程:管理员指定要删除设备的标识符;从设备列表中得到该设备的信息;设置该设备的删除标志;释放该设备所有的未执行命令;设置该设备的引用计数为0,引用次数是指存储管理设定的该设备的被扫描次数;返回;所述存储管理模块按以下步骤实施存储设备增加流程:管理员指定要增加的设备的标识符;设置该设备的增加标志;把该设备的标识符加入到存储设备列表中;设置该设备的引用计数为0;自适应负载控制算法程序,它自动适应存储设备的能力,控制低端存储设备上的IO负载;它在上述表示一个存储设备位置的数据组中,分别设置表示该设备同时所能处理的SCSI命令队列的长度的域,同时设置表示目前正处于SCSI的执行队列中的SCSI命令的个数的域,且在任何时候后者都要小于前者;同时,在中间层中,设置一个ST_HOLD_ON状态,它表示所有到达中间层且准备完毕以便立即执行但因目前正处于SCSI的执行队列中的SCSI命令的个数已到达该设备同时所能处理的SCSI命令队列长度的阙值而未能得到执行的命令的状态;所述实施负载自适应算法的程序依次含有以下程序:模块从命令队列中得到一个需处理的SCSI命令;判别该命令是否处于ST_HOLD_ON状态,若否,则执行下一步骤;判断该命令是否是写命令,若为写命令且尚未接收到存储数据,若是,则把该命令设置成目前正处于SCSI执行队列中的一个正待执行的命令的状态,执行完毕,则返回,若否,则设置成ST_HOLD_ON状态,然后判断目标存储设备的同时所能处理的SCSI命令队列长度是否大于目前正处于SCSI的执行队列中的SCSI命令的个数,若否,则返回;若是,则执行SCSI命令并把存储设备的目前正处于SCSI执行队列中的SCSI命令的个数增1,要处理的SCSI命令的个数减1,返回;若从命令队列中得到的要处理的SCSI命令处于ST_HOLD_ON状态,则维持原状态等待下一轮处理,执行下一步骤;该模块再从命令队列中得到下一步要处理的SCSI命令按以上步骤处理;若命令没有超时,则循环反复,直到处理完命令队列中的有要处理的SCSI命令为止;所述的多IO路径模块,它对不同的存储队列通道进行IO请求控制,实现轮转或热备份配置,即充分利用具有双控功能磁盘阵列的双通道功能,实现多个通道之间的冗余和提高;SCSI存储系统异步IO能力;设定:各主机适配器的最大通道数,记录多IO路径模块中的SCSI适配器所对应的主机适配器号;对于双控功能磁盘阵列而言,一个主机适配号所表示的SCSI适配器上的存储设备的相关信息记录在存储设备列表中,另一个则保存在多IO路径模块定义的结构中,同时记录两个通道的状态域;该模块提供相应的PROC命令接口;在中间层用状态ST_PATH_FAIL表达一个SCSI命令在现在的激活通道上执行失败,一旦该模块探测到该状态,就把这个命令的状态设置成ST_PATH_FAIL,并再次放入队列中,同时选择另外一个通道执行;多IO路径模块对SCSI命令的处理流程如下:先判断收到的SCSI命令是否为写命令;若不是,则直接把该命令放入分发命令队列中;否则,为写命令分配数据缓冲区并把该命令放入等待队列,等着数据到达;若数据到达,则从等待队列中取出该写命令,放入分发命令队列;在确定的配置模式下,对于分发命令队列中的命令进行判断是否有可选择的IO路径,若没有,则推出;若有,则根据设定策略选出一条可用的IO路径,并把命令发送到该路径再等待执行结果,若执行正确则返回,否则,把该命令放入重试队列中,进行下一轮的路径选择。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200510011179.1/,转载请声明来源钻瓜专利网。