一种SCSI与iSCSI子系统的实现方法技术方案

技术编号:10646119 阅读:98 留言:1更新日期:2014-11-12 19:48
本发明专利技术涉及一种SCSI与iSCSI子系统的实现方法,该子系统包括一先进先出的消息队列,用于存储进入所述子系统的、已被封装成消息的任务;该方法包括:SCSI与iSCSI子系统启动,首先处于初始化状态,然后执行系统初始化任务,生成连接磁盘阵列任务,连接磁盘阵列任务被封装成消息后提交到消息队列,进入待机状态;在待机状态下收到包含连接磁盘阵列任务的消息后,进入建立TCP连接状态,通过socket函数与磁盘阵列建立TCP连接,根据iSCSI标准生成discovery命令和login命令,并发送到磁盘阵列完成连接工作,进入待机状态;在待机状态下接收到以消息方式封装的任务后,转换到与任务相对应的状态,执行任务,任务执行完成后回到待机状态。

【技术实现步骤摘要】

本专利技术涉及计算机网络技术,特别涉及一种SCSI与iSCSI子系统的实现方法
技术介绍
随着计算机技术和网络技术的不断发展,传统处理器在功耗、并发、散热等方面暴露出的问题日益严重,已经不能满足各类网络应用对处理器性能的迫切需求,因此具有较低功耗、更高并发性能的网络处理器被更多地用于计算机网络应用中,计算机网络技术中开始广泛地使用网络处理器来搭建各类高性能的网络应用。在各类网络视频应用中,磁盘阵列设备都是资源存储中心的核心组成部分,尤其是iSCSI磁盘阵列以其使用简单、性能突出等特性得到更加广泛的应用,所以在基于多核处理器为计算中心、基于iSCSI磁盘阵列为存储中心的新型视频类应用系统中,如何合理地结合多核处理器和iSCSI磁盘阵列,并有效地提高系统的整体性能,是增强网络视频应用系统服务质量的关键之一。对iSCSI磁盘阵列的访问需要根据SCSI子系统生产的SCSI命令字,并通过iSCSI协议进行封装,最终通过TCP/IP协议栈实现iSCSI Host端和iSCSI Target端的高效数据交互,而操作系统上的SCSI子系统有多个组成部分,因此SCSI命令执行流程冗余繁杂,会造成处理器处理资源的浪费,而处理器的实时执行环境执行效率较高,但是没有操作系统中各种功能的支持,无法直接实现SCSI命令、iSCSI协议的处理和执行,因此需要有效地整合多核处理器上Linux操作系统和实时执行环境的优势和特点,提高SCSI命令的处理效率。
技术实现思路
本专利技术的目的在于克服现有技术中SCSI命令执行流程冗余繁杂,会造成处理器处理资源浪费的缺陷,从而提供一种处理过程简单、节约处理器资源的方法。为了实现上述目的,本专利技术提供了一种SCSI与iSCSI子系统的实现方法,该子系统包括一先进先出的消息队列,所述消息队列用于存储进入所述子系统的、已被封装成消息的任务,所述任务根据多核处理器的消息通讯机制被封装成消息;该方法包括:步骤1)、所述SCSI与iSCSI子系统启动,该子系统首先处于初始化状态,然后执行系统初始化任务,并生成连接磁盘阵列任务,所述连接磁盘阵列任务被封装成消息后提交到所述消息队列,SCSI与iSCSI子系统进入待机状态;步骤2)、所述SCSI与iSCSI子系统在待机状态下收到包含连接磁盘阵列任务的消息后,进入建立TCP连接状态,通过socket函数与磁盘阵列建立TCP连接,根据iSCSI标准生成discovery命令和login命令,并发送到磁盘阵列完成连接工作,接着SCSI与iSCSI子系统进入待机状态;步骤3)、所述SCSI与iSCSI子系统在待机状态下接收到以消息方式封装的任务后,转换到与所述任务相对应的状态,执行所述任务,任务执行完成后回到所述待机状态。上述技术方案中,在所述的步骤3)中,所述任务包括磁盘阵列数据读取任务、磁盘阵列数据写入任务、网络数据解析任务、错误处理任务;其中,与所述磁盘阵列数据读取任务相对应的状态为磁盘阵列数据读取状态,与所述磁盘阵列数据写入任务相对应的状态为磁盘阵列数据写入状态,与所述网络数据解析任务相对应的状态为网络数据解析状态,与所述错误处理任务相对应的状态为错误处理状态。上述技术方案中,当所述任务为磁盘阵列数据读取任务时,所述SCSI与iSCSI子系统进入磁盘阵列数据读取状态,根据SCSI标准生成read命令,根据iSCSI标准封装iSCSI PDU,并通过socket函数发送PDU,最后所述SCSI与iSCSI子系统进入待机状态。上述技术方案中,当所述任务为磁盘阵列数据写入任务时,所述SCSI与iSCSI子系统进入磁盘阵列数据写入状态,根据SCSI标准生成write命令,根据iSCSI标准封装iSCSI PDU,并通过socket函数发送PDU,最后所述SCSI与iSCSI子系统进入待机状态。上述技术方案中,当所述任务为网络数据解析任务时,所述SCSI与iSCSI子系统进入网络数据解析状态,执行网络数据解析任务,根据iSCSI标准接卸iSCSI PDU,根据SCSI标准解析SCSI数据,如果为read回应,则处理磁盘阵列返回的数据,SCSI与iSCSI子系统进入待机状态;如果为write回应,则判断write是否成功,成功,则SCSI与iSCSI子系统进入待机状态,失败则生成错误处理消息;非read、write回应数据则直接丢弃,SCSI与iSCSI子系统进入待机状态。上述技术方案中,当所述任务为错误处理任务时,所述SCSI与iSCSI子系统进入错误处理状态,执行错误处理任务,记录磁盘阵列发生错误的位置,最后所述SCSI与iSCSI子系统进入待机状态。本专利技术的优点在于:本专利技术提出了一种运行于多核网络处理器实时执行环境的SCSI与iSCSI子系统实现方法,该方法基于有限状态机驱动SCSI与iSCSI子系统接收与处理上层应用提交的磁盘阵列读写请求,并将请求封装为消息在状态机的不同状态之间转换,通过消息传递保证SCSI/iSCSI子系统的无停滞运行,提高了SCSI与iSCSI子系统访问磁盘阵列的实时性和并发性。附图说明图1是本专利技术中SCSI与iSCSI子系统基于消息驱动运行的原理图。附图标识101  磁盘阵列             102   SCSI与iSCSI子系统     103  消息104  任务                 105   消息封装              106  状态转换107  初始化状态           108   任务执行操作          109  系统初始化任务110  新任务生成           111   连接磁盘阵列任务      112   数据113  网络数据             114   上层应用              115  磁盘阵列数据读取请求116  数据                 117   消息队列              118  建立TCP连接状态119  磁盘阵列数据读取状态 120   磁盘阵列数据写入状态  121  网络数据解析状态122  错误处理状态         123   消息队列扫描          124  待机状态125  状态转换             126   网络数据解析任务      127  接收数据128  协议栈               129   错误处理任务          130  socke本文档来自技高网
...
一种SCSI与iSCSI子系统的实现方法

【技术保护点】
一种SCSI与iSCSI子系统的实现方法,其特征在于,该子系统包括一先进先出的消息队列,所述消息队列用于存储进入所述子系统的、已被封装成消息的任务,所述任务根据多核处理器的消息通讯机制被封装成消息;该方法包括:步骤1)、所述SCSI与iSCSI子系统启动,该子系统首先处于初始化状态,然后执行系统初始化任务,并生成连接磁盘阵列任务,所述连接磁盘阵列任务被封装成消息后提交到所述消息队列,SCSI与iSCSI子系统进入待机状态;步骤2)、所述SCSI与iSCSI子系统在待机状态下收到包含连接磁盘阵列任务的消息后,进入建立TCP连接状态,通过socket函数与磁盘阵列建立TCP连接,根据iSCSI标准生成discovery命令和login命令,并发送到磁盘阵列完成连接工作,接着SCSI与iSCSI子系统进入待机状态;步骤3)、所述SCSI与iSCSI子系统在待机状态下接收到以消息方式封装的任务后,转换到与所述任务相对应的状态,执行所述任务,任务执行完成后回到所述待机状态。

【技术特征摘要】
1.一种SCSI与iSCSI子系统的实现方法,其特征在于,该子系统包括一先进
先出的消息队列,所述消息队列用于存储进入所述子系统的、已被封装成消息的任
务,所述任务根据多核处理器的消息通讯机制被封装成消息;该方法包括:
步骤1)、所述SCSI与iSCSI子系统启动,该子系统首先处于初始化状态,然后
执行系统初始化任务,并生成连接磁盘阵列任务,所述连接磁盘阵列任务被封装成
消息后提交到所述消息队列,SCSI与iSCSI子系统进入待机状态;
步骤2)、所述SCSI与iSCSI子系统在待机状态下收到包含连接磁盘阵列任务的
消息后,进入建立TCP连接状态,通过socket函数与磁盘阵列建立TCP连接,根据
iSCSI标准生成discovery命令和login命令,并发送到磁盘阵列完成连接工作,接着
SCSI与iSCSI子系统进入待机状态;
步骤3)、所述SCSI与iSCSI子系统在待机状态下接收到以消息方式封装的任务
后,转换到与所述任务相对应的状态,执行所述任务,任务执行完成后回到所述待
机状态。
2.根据权利要求1所述的SCSI与iSCSI子系统的实现方法,其特征在于,在
所述的步骤3)中,所述任务包括磁盘阵列数据读取任务、磁盘阵列数据写入任务、
网络数据解析任务、错误处理任务;其中,
与所述磁盘阵列数据读取任务相对应的状态为磁盘阵列数据读取状态,与所述
磁盘阵列数据写入任务相对应的状态为磁盘阵列数据写入状态,与所述网络数据解
析任务相对应的状态为网络数据解析状态,与所述错误处理任务相对应的状态为错
误处理状态。
3.根据权利要求2所述的SCSI与iSCSI子系统的实现方法,其特征...

【专利技术属性】
技术研发人员:郭秀岩张武尚秋里查奇文
申请(专利权)人:中国科学院声学研究所北京中科华影传媒技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有1条评论
  • 来自[天津市联通] 2015年01月27日 16:14
    子系统是一种模型元素,它具有包(其中可包含其他模型元素)和类(其具有行为)的语义。子系统的行为由它所包含的类或其他子系统提供。子系统实现一个或多个接口,这些接口定义子系统可以执行的行为。
    0
1