CN1805328A - 在iSCSI中实现错误返回的系统及其方法 - Google Patents

在iSCSI中实现错误返回的系统及其方法 Download PDF

Info

Publication number
CN1805328A
CN1805328A CN 200510004310 CN200510004310A CN1805328A CN 1805328 A CN1805328 A CN 1805328A CN 200510004310 CN200510004310 CN 200510004310 CN 200510004310 A CN200510004310 A CN 200510004310A CN 1805328 A CN1805328 A CN 1805328A
Authority
CN
China
Prior art keywords
scsi
iscsi
command
disk device
description block
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.)
Granted
Application number
CN 200510004310
Other languages
English (en)
Other versions
CN100438396C (zh
Inventor
宋建福
刘文涵
李卓印
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Corp
Original Assignee
Inventec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CNB2005100043101A priority Critical patent/CN100438396C/zh
Publication of CN1805328A publication Critical patent/CN1805328A/zh
Application granted granted Critical
Publication of CN100438396C publication Critical patent/CN100438396C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

一种在因特网小计算机系统接口,以下均简称iSCSI(internet SCSI),中实现错误返回的系统及其方法,利用在目标设备(Target Machine)内的iSCSI模块(module)中,建立一虚拟SCSI磁盘装置(Virtual SCSI disk driver),当启动设备(Initiator Machine)端发出命令至目标设备端后,能够不必通过文件系统(filesystem)传送到SCSI layer,即可快速辨识命令的正确性,并立即将错误命令信息回传给启动设备。

Description

在iSCSI中实现错误返回的系统及其方法
技术领域
本发明涉及一种返回错误信息的系统及其方法,特别是指应用在储存网络上,通过在目标设备内建立一虚拟SCSI磁盘装置,可直接返回错误命令信息的系统及其方法。
背景技术
储存网络是特指连结储存设备与服务器的网络,由于储存网络是以网络串联储存设备,故其较RAID及SCSI等将服务器与储存设备直接连结的技术,除了具有高速传输能力,也不会因服务器本身而限制储存设备的扩充与备份,扩充性与可靠性佳。目前Fiber Channel是最为常用的储存网络的连结技术的代表。
另一个新兴起的储存网络技术,则是刚完成标准制定的iSCSI(internetSCSI)传输协议。此传输协议主要的功能是将SCSI的命令及数据,通过iSCSI的协议数据单元(PDU,Protocol Data Units)在目前发展已非常成熟的IP网络上传送,借由iSCSI协议,将使IP网络亦可成为储存网络。以IP网络作为储存网络时的最大优点是,对使用者而言,其只需将其服务器及储存设备换成iSCSI接口,使用原有的IP网络的交换设备,就可建置出价廉物美的储存网络,而且使用上好像它们是″直接存取装置″一样。iSCSI可以实现在IP网络上营运SCSI协议,使其能够在高速千兆Ethernet上进行路由选择。
iSCSI传输协议为互联网工程任务组织(IETF,Internet Engineering TaskForce)所制定的标准,定义了启动设备(Initiator Machine),也就是发出存取数据要求的一方,通常为服务器端或使用者计算机,及目标设备(TargetMachine),也就是接收并响应要求的一方,通常为储存设备端,两者之间的传输方式,包括了有两者之间的传送的iSCSI PDU的格式,Session的建立及终止,以及SCSI Task的开始及结束。
对传统SCSI而言,iSCSI协议是架构在TCP/IP协议之上,而再往上则是与SCSI接口相接,因此不必再受限于SCSI的最远距离只能到25公尺,只要有网络的地方即可建构,由于是采取SCSI的接口方式来传送命令,而执行一个SCSI命令只能有2种结果:正确或错误。启动设备把命令传递给目标设备后,会一直等待命令的执行结果。若是执行错误,目标设备必须返回错误信息给启动设备,才能保证启动设备能够正常运行。
请参照图1,此为iSCSI传递SCSI命令的过程示意图。当启动设备端270从SCSI层100发出一格式为命令描述块(CDB,Command DescriptorBlock)的命令101到iSCSI层110,iSCSI层110则再包上一层协议数据单元111,最后再加上TCP/IP标头(header),成为一IP封包后,才能传送到因特网上到达目标设备端280。
而当目标设备端280自TCP/IP网络120上接收到此封包后,先由网络层将TCP/IP标头解除后,传到iSCSI层110将PDU111的标头去除后,最后才将命令描述块格式数据101传到SCSI层100。由于从目标设备端280所返回的错误信息必须包含在IP封包中,但是如果目标设备端280在协议数据单元的标头中加入错误信息,则在启动设备端270的分层拆解过程将导致错误信息到SCSI层100丢失,如此一来,启动设备端270的SCSI磁盘装置将得不到命令执行的结果,以至于导致启动设备端270与目标设备端280的操作异常,甚至于造成系统停止运作的危险。
发明内容
本发明的主要目的是提供一种在iSCSI中实现错误返回的系统,其在目标设备内的iSCSI模块中就能够把错误信息处理完,并返回给启动设备端的SCSI层,以解决现有技术中的上述问题,正确的处理错误信息,保证错误能够返回到启动设备端的SCSI层。
为达到上述目的,本发明一种在iSCSI中实现错误返回的系统,对于原本iSCSI系统中一启动设备端所传送出去的一IP封包,需经由一目标设备内一iSCSI层将其协议数据单元拆解后,再由一SCSI层解读剩余的SCSI命令描述块格式数据及命令,并于一SCSI磁盘装置中执行,其特征在于该系统还包含:一虚拟SCSI磁盘装置,当该目标设备内包含一LVM/RAID装置时,可以在该iSCSI模块中就判别出一个以上错误命令,并立即反馈给该启动设备端,使每个SCSI命令都能够得到实时的确认,避免信息的丢失,以利将该IP封包重送。
该虚拟SCSI磁盘装置可以解读多个SCSI命令描述块的多个命令信息。
该虚拟SCSI磁盘装置可将错误信息加入各该SCSI命令描述块中。
该启动设备端的SCSI层可解读由该虚拟SCSI磁盘装置所加入错误信息的各该SCSI命令描述块。
该虚拟SCSI磁盘装置检查SCSI命令描述块的各该命令信息无误后,则仍可将各该命令信息交由SCSI磁盘装置来执行。
本发明还提供一种在iSCSI中实现错误返回的方法,该方法包含下列步骤:接收一启动设备端发出的IP封包;去除一协议数据单元及一SCSI命令描述块的标头;自该SCSI命令描述块中取出多个SCSI命令的设备信息;当该设备信息正常时,将该SCSI命令描述块信息传给一文件系统;当发现该设备信息错误时,在该SCSI命令描述块中加入一个以上的错误处理信息;及处理完毕后,向该启动设备端发送确认信息。
该设备信息为一SCSI磁盘装置执行的命令。
该启动设备端接收到该错误信息回复时,可立即将该SCSI命令重送。
该虚拟SCSI磁盘装置可判读SCSI磁盘装置的READ CAPACITY(10)、MODE SENSE(6)、REPORT LUNS、INQUIRY、TEST UNIT READY、VERIFY(10)、READ(10)、WRITE(10)等命令。
也就是说,本发明提供一种在iSCSI中实现错误返回的系统,其特征在于:于目标设备的iSCSI层除原有的iSCSI模块外,还包含一虚拟SCSI磁盘装置(Virtual SCSI disk driver),使处于iSCSI层的iSCSI协议,不需传送到SCSI层即能准确的把SCSI命令的错误执行结果反馈给启动设备,使每个SCSI命令都能够得到实时的确认,避免信息的丢失,从而达到目标设备端与启动设备端的信息互通,最后保证了目标设备端与启动设备端能维持稳定运作的目的。
至于在iSCSI中实现错误返回的方法上,则包含下列步骤:首先,在目标设备端接收启动设备发出的IP封包;接着,去除协议数据单元及命令描述块的标头;然后,自命令描述块中取出SCSI的命令;判断内含的设备信息是否正常?如果不是,则在命令描述块中加入错误处理信息,否则就直接将命令描述块信息传给文件系统(file system),最后,向启动设备发送确认信息。
有关本发明的特征与实作,兹配合附图作最佳实施例详细说明如下。
附图说明
图1为公知的系统结构图;
图2是本发明的系统结构图;及
图3是本发明的方法流程图。
其中,附图标记说明如下:
100—SCSI层;101—SCSI命令(CDB)
110—iSCSI层;111—iSCSI命令(PDU);
120—TCP/IP网络;200—SCSI磁盘装置;
210—LVM/RAID装置;220—文件系统;
230—虚拟SCSI磁盘装置;240—iSCSI模块;
250—网络系统;260—IP封包;
270—启动设备端;280—目标设备端;
步骤300—接收启动设备端发出的IP封包;
步骤310—去除PDU及CDB的标头;
步骤320—自CDB中取出SCSI的命令;
步骤330—设备信息是否正常?;
步骤340—将CDB信息传给文件系统;
步骤350—向启动设备端发送确认信息;
步骤360—在CDB中加入错误处理信息;
具体实施方式
本发明提出一种在iSCSI中实现错误返回的系统及其方法,可借由在目标设备280内的iSCSI模块240中,来对错误信息作直接的处理,以防止信息的丢失。
请参照图1,此图为公知的iSCSI传递SCSI命令的过程示意图。如图中所示,启动设备端270与目标设备端280两者对SCSI磁盘装置200的操作,实际上都是对SCSI磁盘驱动程序即SCSI层100的操作,所以,iSCSI层110可以把命令描述块直接传递给SCSI层100的磁盘驱动程序,这和以往的对本机SCSI磁盘操作很类似。原来的本机SCSI磁盘,操作系统只要把SCSI命令描述块传递给SCSI层100的驱动程序即可,SCSI层100的驱动程序在接收到SCSI命令描述块后,可独立完成命令的处理,之后,把执行结果回传给操作系统。而且,假如SCSI命令执行有误,则SCSI层100的驱动程序会自动把错误信息记录到SCSI命令描述块中,最后,把SCSI命令描述块再返回给操作系统。
请参照图2,此图为本发明的系统结构图。与图1的不同点在于,本系统后端的储存设备为一LVM(Logical Volume Manager)/RAID(RedundantArray ofInexpensive Disks)装置210,而在启动设备端270内部的系统结构则与图1相同,故本图的启动设备端270仅省略为以一方块代替。而原本iSCSI系统为单纯的SCSI磁盘装置200,因此依据SCSI层100的磁盘驱动程序在处理SCSI命令时,会自动把错误信息加入到SCSI命令描述块中,而iSCSI模块240则无须判断SCSI命令描述块的内容,可以直接把SCSI命令描述块传递给SCSI层100的磁盘驱动程序作处理。
在SCSI层100的磁盘驱动程序处理完命令描述块后,如果有错误发生,则命令描述块中已包含错误信息,iSCSI层110只需要把此SCSI命令描述块打包成协议数据单元后,发给启动设备端270即可。而启动设备端270在得到SCSI命令描述块后,再对自目标设备端280所发出的结果作分析,这部分则和处理本机SCSI磁盘一样。
因此,对本机直接通过网络储存TCP/IP方式120,连接一iSCSI磁盘装置而言,iSCSI层110只需要直接把SCSI命令描述块发给启动设备端270即可,全部的错误处理和判断都在目标设备端280及启动设备端270,各自的SCSI层100的磁盘驱动程序内部完成。
但是假如iSCSI模块240要操控的是LVM/RAID装置210,则必须通过设备文件访问的方式,这与原先的iSCSI系统直接操纵SCSI层100的磁盘驱动程序并不相同,必须先通过文件系统220,才能对相应设备作控制。如图2所示,当启动设备端270发出I/O(Input/Output)要求时,iSCSI模块240却不能直接将此要求送至SCSI磁盘装置200,也就是说,SCSI命令描述块并不能直接传递到SCSI磁盘装置200,同时,SCSI磁盘装置200也无法将错误信息上传给iSCSI模块240。因此,我们必须让iSCSI模块240拥有可以自己完成错误处理的功能。
我们采取在iSCSI模块240中,建立一虚拟SCSI磁盘装置230,代替了SCSI磁盘装置200来处理发生错误的工作。针对READ CAPACITY(10)、MODE SENSE(6)、REPORT LUNS、INQUIRY、TEST UNIT READY、VERIFY(10)、READ(10)、WRITE(10)等命令做逐一判读,如果发现异常,则直接修改SCSI命令描述块,根据具体问题来组织相对应的错误信息。
请参照图3,此为本发明的方法流程图。首先,目标设备端280接收启动设备端270所发出的IP封包260(步骤300)后,则网络系统250会先将IP标头给去除,接着将剩余的数据往下传到iSCSI模块240,将协议数据单元的标头去掉,剩下的就是由SCSI磁盘装置200所要判读的命令描述块格式,原先的做法是要等传到底层的SCSI磁盘装置200才能判断命令是否有错。
而我们的做法是利用在iSCSI模块240中,建立一个虚拟SCSI磁盘装置230,其对于判断命令描述块格式的能力与SCSI磁盘装置200相同,故能直接去除命令描述块的标头(步骤310),并自命令描述块中读取SCSI的命令(步骤320),并对这些命令作检查,判断是否有错误发生(步骤330)。
假如检查的结果是发现有异常,则直接修改命令描述块,在其中加入错误处理信息(步骤360),并将加入错误码的命令描述块往下传到iSCSI模块240;假如检查结果并没有发现异常情形,则将命令描述块的信息直接传给文件系统220(步骤340),文件系统220再与LVM/RAID装置210沟通后,最后将命令描述块传给SCSI磁盘装置200执行;当命令描述块信息正常无误的执行,则回传给启动设备端270一正常执行的回复信息,否则,则将先前加入错误处理信息的命令描述块回传。
当启动设备端270收到目标设备端280所回复的信息也是按相反顺序米作逐层拆解,由于虚拟SCSI磁盘装置230是按照SCSI协议标准来组织错误信息,因此传到启动设备端270可以被正常判读,当启动设备端270读完命令描述块的内容后,发现在命令执行上有错误产生,则立即取消此命令的执行,否则,此命令将会令启动设备端270一直处于等待结果状态,最终可能导致系统陷入当机的状态之中。
虽然本发明以前述的较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉相像技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的权利要求书为准。

Claims (9)

1.一种在iSCSI中实现错误返回的系统,对于原本iSCSI系统中一启动设备端所传送出去的一IP封包,需经由一目标设备内一iSCSI层将其协议数据单元拆解后,再由一SCSI层解读剩余的SCSI命令描述块格式数据及命令,并于一SCSI磁盘装置中执行,其特征在于,该系统还包含:
一虚拟SCSI磁盘装置,当该目标设备内包含一LVM/RAID装置时,可以在该iSCSI模块中就判别出一个以上错误命令,并立即反馈给该启动设备端,使每个SCSI命令都能够得到实时的确认,避免信息的丢失,以利将该IP封包重送。
2.如权利要求1所述的在iSCSI中实现错误返回的系统,其特征在于,该虚拟SCSI磁盘装置可以解读多个SCSI命令描述块的多个命令信息。
3.如权利要求1所述的在iSCSI中实现错误返回的系统,其特征在于,该虚拟SCSI磁盘装置可将错误信息加入各该SCSI命令描述块中。
4.如权利要求1所述的在iSCSI中实现错误返回的系统,其特征在于,该启动设备端的SCSI层可解读由该虚拟SCSI磁盘装置所加入错误信息的各该SCSI命令描述块。
5.如权利要求1所述的在iSCSI中实现错误返回的系统,其特征在于,该虚拟SCSI磁盘装置检查SCSI命令描述块的各该命令信息无误后,则仍可将各该命令信息交由SCSI磁盘装置来执行。
6.一种在iSCSI中实现错误返回的方法,该方法包含下列步骤:
接收一启动设备端发出的IP封包;
去除一协议数据单元及一SCSI命令描述块的标头;
自该SCSI命令描述块中取出多个SCSI命令的设备信息;
当该设备信息正常时,将该SCSI命令描述块信息传给一文件系统;
当发现该设备信息错误时,在该SCSI命令描述块中加入一个以上的错误处理信息;及
处理完毕后,向该启动设备端发送确认信息。
7.如权利要求6所述的在iSCSI中实现错误返回的方法,其特征在于,该设备信息为一SCSI磁盘装置执行的命令。
8.如权利要求6所述的在iSCSI中实现错误返回的方法,其特征在于,该启动设备端接收到该错误信息回复时,可立即将该SCSI命令重送。
9.如权利要求6所述的在iSCSI中实现错误返回的方法,其特征在于,该虚拟SCSI磁盘装置可判读SCSI磁盘装置的READ CAPACITY(10)、MODE SENSE(6)、REPORT LUNS、INQUIRY、TEST UNIT READY、VERIFY(10)、READ(10)、WRITE(10)等命令。
CNB2005100043101A 2005-01-14 2005-01-14 在iSCSI中实现错误返回的系统及其方法 Expired - Fee Related CN100438396C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100043101A CN100438396C (zh) 2005-01-14 2005-01-14 在iSCSI中实现错误返回的系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100043101A CN100438396C (zh) 2005-01-14 2005-01-14 在iSCSI中实现错误返回的系统及其方法

Publications (2)

Publication Number Publication Date
CN1805328A true CN1805328A (zh) 2006-07-19
CN100438396C CN100438396C (zh) 2008-11-26

Family

ID=36867198

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100043101A Expired - Fee Related CN100438396C (zh) 2005-01-14 2005-01-14 在iSCSI中实现错误返回的系统及其方法

Country Status (1)

Country Link
CN (1) CN100438396C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023926A (zh) * 2010-12-08 2011-04-20 杭州华三通信技术有限公司 一种数据超时老化处理方法及其装置
CN101404657B (zh) * 2008-10-30 2011-08-17 广州慧扬科技投资有限公司 一种基于iSCSI协议的网络存储系统中的文件完整性检查方法
CN102222033A (zh) * 2011-06-20 2011-10-19 中兴通讯股份有限公司 一种保存小型计算机系统接口访问错误的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR9204660A (pt) * 1991-12-20 1993-06-22 Ibm Sistema de rede de computadores que engloba uma interface para sistemas de computadores pequenos(scsi)para dispositivos de scsi nao locais
US5867671A (en) * 1996-11-20 1999-02-02 Ncr Corporation Virtual device for performing an operation in response to a SCSI command different than the operation of a SCSI device responding to the SCSI command
US20040078521A1 (en) * 2002-10-17 2004-04-22 International Business Machines Corporation Method, apparatus and computer program product for emulating an iSCSI device on a logical volume manager

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404657B (zh) * 2008-10-30 2011-08-17 广州慧扬科技投资有限公司 一种基于iSCSI协议的网络存储系统中的文件完整性检查方法
CN102023926A (zh) * 2010-12-08 2011-04-20 杭州华三通信技术有限公司 一种数据超时老化处理方法及其装置
CN102023926B (zh) * 2010-12-08 2013-12-11 杭州华三通信技术有限公司 一种数据超时老化处理方法及其装置
CN102222033A (zh) * 2011-06-20 2011-10-19 中兴通讯股份有限公司 一种保存小型计算机系统接口访问错误的方法及装置
CN102222033B (zh) * 2011-06-20 2017-07-11 中兴通讯股份有限公司 一种保存小型计算机系统接口访问错误的方法及装置

Also Published As

Publication number Publication date
CN100438396C (zh) 2008-11-26

Similar Documents

Publication Publication Date Title
US7043578B2 (en) Method, system, and program for processing a packet including I/O commands and data
US7870317B2 (en) Storage processor for handling disparate requests to transmit in a storage appliance
DE602004009410T2 (de) Bandspeicheremulation für offensystem-umgebungen
EP1719276B1 (en) Encoding a tcp offload engine within fcp
US8015201B1 (en) Servicing daemon for live debugging of storage systems
EP1485787B1 (en) Network data storage related operations
US6721851B2 (en) System and method for preventing sector slipping in a storage area network
US8732306B2 (en) High speed parallel data exchange with transfer recovery
US7676607B2 (en) Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
US20050114464A1 (en) Virtualization switch and method for performing virtualization in the data-path
CN1561489A (zh) 计算机网络内的数据块存储
US20050187939A1 (en) Method, system, and program for managing data read operations
US20120079001A1 (en) High speed parallel data exchange with receiver side data handling
US20100262685A1 (en) System and method for command tracking
CN107846466A (zh) 云终端外部设备的映射方法、服务器、云终端及系统
US7305605B2 (en) Storage system
CN1805328A (zh) 在iSCSI中实现错误返回的系统及其方法
US7783964B2 (en) Redundant 3-wire communication system and method
CN100412867C (zh) 配置信息存储和检索系统的方法和系统
CN1773504A (zh) 用于管理信息存储和检索系统的配置信息的方法和系统
CN1622553A (zh) 一种基于因特网标准文件传输协议的文件断点上载方法
CN102541542A (zh) 存储和发布内容存储设备的内容
JP4426261B2 (ja) チャネルアダプタ及びディスクアレイ装置
CN101355483A (zh) 一种多网口发送数据包的方法和设备
US7809865B2 (en) Apparatus and method to set a communication speed for a SAS/SATA distance extender

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20110114