




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.一、基本概念SCSI,小型計算機系統(tǒng)接口,基于client-server模型,client(initiator)將命令發(fā)送給server(target),server處理命令后回傳結(jié)果給client。由于要傳送命令必然要用到相應(yīng)的傳輸協(xié)議,iSCSI就是其中的一種傳輸協(xié)議,除此之外還有FC等。iSCSI也就是SCSI over IP,使用TCP/IP協(xié)議來傳遞SCSI命令與響應(yīng),其借用現(xiàn)有的互連網(wǎng)來實現(xiàn)SCSI通訊,成本低,管理、使用方便。iSCSI也有initiator和target,分別對應(yīng)于SCSI的initiator和target,iSCSI initiator與target使用TCP進(jìn)行通信從而實現(xiàn)了SCSI的initiator與target之間的通信。如何使用iSCSI來傳遞SCSI命令與響應(yīng)呢?首先要明白SCSI target中包含許多LU(邏輯單元),每一個SCSI命令都有其目標(biāo)LU,這些LU負(fù)責(zé)對針對其的SCSI命令進(jìn)行處理與響應(yīng)。iSCSI有自己的PDU,在iSCSI initiator端,其包含SCSI initiator下發(fā)給其的LUN(邏輯單元號碼)及SCSI命令(CDB),在被作為TCP的數(shù)據(jù)部分傳遞到iSCSI target端后由SCSI target根據(jù)LUN將SCSI命令投放到目標(biāo)LU中,LU在處理命令后把響應(yīng)結(jié)果遞交給SCSI target,SCSI target再將其遞交給iSCSI target,iSCSI target把結(jié)果封裝成iSCSI PDU,再使用TCP回傳給iSCSI initiator,iSCSI initiator再將結(jié)果遞交給上層SCSI initiator,如圖1所示:圖1. iSCSI協(xié)議層次iSCSI Device: 利用iSCSI傳遞服務(wù)子系統(tǒng)進(jìn)行傳遞的SCSI設(shè)備。iSCSI Node: iSCSI節(jié)點表示一個iSCSI啟動器或者iSCSI目標(biāo)器。在一個網(wǎng)絡(luò)實體里,可能有一或者多個iSCSI節(jié)點??梢酝ㄟ^一個或者多個網(wǎng)絡(luò)端口訪問iSCSI節(jié)點。iSCSI節(jié)點的標(biāo)識是iSCSI名稱。把iSCSI名稱和地址分開來后,允許多個iSCSI節(jié)點使用同一個地址,或者一個iSCSI節(jié)點使用多個地址。Network Entity: 網(wǎng)絡(luò)實體。它表示一個可以通過IP網(wǎng)絡(luò)訪問的設(shè)備或者網(wǎng)關(guān)。一個網(wǎng)絡(luò)實體必須有一或者多個網(wǎng)絡(luò)端口,包含在該網(wǎng)絡(luò)實體內(nèi)的iSCSI節(jié)點可以用這些端口來訪問IP網(wǎng)絡(luò)。Network Portal: 網(wǎng)絡(luò)端口。網(wǎng)絡(luò)實體的一個組成部分,它有一個TCP/IP地址。網(wǎng)絡(luò)端口在initiator用IP地址標(biāo)識,在target用IP地址偵聽的TCP端口標(biāo)識。Session: 連接initiator和target的一組TCP連接構(gòu)成一個session(可以簡單理解為I_T nexus)。可以向session添加TCP連接,也可以把TCP連接從session刪除。通過一個session的所有連接,initiator只看到同一個target。Connection: 一個TCP連接。Initiator和target之間使用一或者多個TCP連接通信。CID(Connection ID): 一個session里的每個connection用CID進(jìn)行標(biāo)識,該標(biāo)識在session范圍內(nèi)是唯一。CID由initiator產(chǎn)生,在login請求和使用logout關(guān)閉連接時傳遞給target。Portal Groups: 網(wǎng)絡(luò)端口組。iSCSI session支持多連接,一些實現(xiàn)能把通過多個端口建立的多個連接捆綁到一個session。一個iSCSI網(wǎng)絡(luò)實體的多個網(wǎng)絡(luò)端口被定義為一個網(wǎng)絡(luò)端口組,把該組和一個session聯(lián)系起來,該session就可以捆綁通過該組內(nèi)多個端口建立的多個連接,再使它們一起協(xié)同工作以達(dá)到捆綁的目的。每一個該組的session并不需要包括該組的所有網(wǎng)絡(luò)端口。一個iSCSI節(jié)點可能有一或者多個網(wǎng)絡(luò)端口組,但是每一個iSCSI使用的網(wǎng)絡(luò)端口只能屬于iSCSI節(jié)點的一個組。Portal Group Tag: 網(wǎng)絡(luò)端口組標(biāo)識。使用16比特的數(shù)標(biāo)識一個網(wǎng)絡(luò)端口組。在一個iSCSI節(jié)點里,所有具有同樣組標(biāo)志的端口構(gòu)成一個網(wǎng)絡(luò)端口組。 iSCSI Task: 一個iSCSI任務(wù)是指一個需要響應(yīng)的iSCSI請求。 I_T nexus: I_T nexus是指一個SCSI initiator的端口和一個SCSI target端口之間的關(guān)系。對于iSCSI,這個關(guān)系對應(yīng)一個session,它指session的initiator端和iSCSI target網(wǎng)絡(luò)端口組之間的關(guān)系。I_T nexus的標(biāo)識是一對端口名稱(iSCSI initiator名稱iISID,iSCSI target名稱t網(wǎng)絡(luò)端口組標(biāo)識)。PDU (Protocol Data Unit): initiator和target之間通信時把信息分割為消息。這些消息稱為iSCSI PDU。SSID (Session ID): iSCSI initiator和iSCSI target之間的session用SSID進(jìn)行標(biāo)識,該標(biāo)識由initiator部分的ISID和target部分的TPGT構(gòu)成。ISID由initiator在session建立的時候明確給出,TPGT隱含的由建立連接時選擇的網(wǎng)絡(luò)端口確定。當(dāng)TargetName給定后,建立連接的過程中,target必須把TPGT關(guān)鍵字當(dāng)作確認(rèn)信息發(fā)送出去。TSIH (Target Session Identifying Handle): Target分配給與特定名稱initiator建立的session的標(biāo)識。但是0被保留著用于initiator告知target這是一個新session。在為一個session添加一個connect時,TSIH已經(jīng)隱含指明。二、SCSI與iSCSI的映射關(guān)系在SCSI中,一個Device(SCSI initiator或者SCSI target)可以包含多個ports,一個SCSI initiator port和一個SCSI target port之間的聯(lián)結(jié)就是一個I_T nexus,一個SCSI initiator port和一個SCSI target port之間只允許建立一個I_T nexus。I_T nexus對應(yīng)與iSCSI中的一個session(normal),SCSI target port對應(yīng)于iSCSI target中的一個portal group(具有相同tag的一組ports,iSCSI target在這些ports上進(jìn)行監(jiān)聽等待iSCSI initiator的連接登陸,所有這些ports一起支撐一個I_T nexus),SCSI initiator port對應(yīng)于iSCSI initiator中的session(normal)的端點。圖2. SCSI與iSCSI的映射一個iSCSI節(jié)點只能有且只有一個SCSI設(shè)備;只能通過正常運行的iSCSI session訪問SCSI設(shè)備;SCSI名稱也就是iSCSI節(jié)點的名稱。SCSI Initiator Port: SCSI initiator端口。它被映射到一定正常運行的iSCSI session的一端。在login過程中,一個iSCSI initiator節(jié)點和一個iSCSI target節(jié)點協(xié)商建立一個正常運行的session;當(dāng)session成功建立后,一個隸屬于iSCSI initiator設(shè)備的SCSI initiator端口被創(chuàng)建。SCSI initiator端口的名稱和標(biāo)識被定義為: iSCSI initiator name + i+ ISID標(biāo)識,對于iSCSI,SCSI initiator端口和SCSI target端口的定義是不一樣的。SCSI target端口,映射為iSCSI target的一個網(wǎng)絡(luò)端口組。SCSI target端口名稱和標(biāo)識:都被定義為:iSCSI target name + t + iSCSI target PGT三、iSCSI中的一些命名及標(biāo)識每個iSCSI initiator或者iSCSI target都有一個全球唯一的名稱,對于iSCSI initiator稱為initiator name,對于iSCSI target稱為target name。iSCSI target中的port group使用port group tag來標(biāo)識;session在iSCSI initiator端使用ISID(initiator session identifier)標(biāo)識,在iSCSI target端使用TSIH(target session identifier handle)標(biāo)識。 四、session和connection的狀態(tài)劃分及登陸登出對于connection,有兩種狀態(tài),即login phase(登陸狀態(tài))和full function phase(全功能狀態(tài)),登陸狀態(tài)即iSCSI initiator與iSCSI target正處于登陸協(xié)商過程;全功能狀態(tài)即登陸過程已經(jīng)完成,該connection已經(jīng)能為上層SCSI提供服務(wù)。Session與connection一樣也有l(wèi)ogin phase和full function phase,當(dāng)session中僅有的一個connection處于登陸狀態(tài)時,session處于登陸狀態(tài),當(dāng)session至少有一個connection處于全功能狀態(tài)時session處于全功能狀態(tài)。iSCSI initiator登陸到iSCSI target的過程分三個過程:1) 首先是iSCSI initiator往iSCSI target發(fā)送initial login請求,請求中包括iSCSI initiator支持的協(xié)議版本、iSCSI initiator name和iSCSI target name、ISID和TSIH及CID;2) 其次是安全協(xié)商,也就是chap認(rèn)證之類,用于iSCSI initiator和iSCSI target互相之間的授權(quán)認(rèn)證;3) 最后是操作參數(shù)協(xié)商,用于協(xié)商在全功能時期的一些通訊參數(shù)。有兩種登出方式,一種是iSCSI initiator主動發(fā)出logout請求,在收到iSCSI target的logout響應(yīng)后完成登出;另一種就是iSCSI target發(fā)送包含“request logout”的Async協(xié)議數(shù)據(jù)包,啟動器再發(fā)送logout請求。圖3. iSCSI登陸及狀態(tài)劃分五、iSCSI PDU PDU格式iSCSI PDU包含:a. 一個Basic Header Segment(BHS,48字節(jié));b. 可選地n(任意)個Additional Header Segment(AHS,長度不固定,字節(jié)數(shù)為4的整數(shù)倍(不夠必須填補0),iSCSI target發(fā)往iSCSI initiator的PDU中不包含AHS);c. 可選地一個Header Digest(頭校驗信息,4個字節(jié));d. 可選地一個Data Segment(數(shù)據(jù)段,長度不固定,字節(jié)數(shù)為4的整數(shù)倍(不夠必須填補0);e. 可選的一個Data Digest(數(shù)據(jù)校驗信息,4個字節(jié))。圖4. iSCSI PDU格式BHS格式Byte012303.IOpcodeFOpcode Specific Fields47Total AHS LengthData Segment Length815LUN or Opcode Specific Fields1619Initial Task Tag2047Opcode Specific Fields圖5. Basic Header Segment格式a. I bit:1bit,標(biāo)識本PDU為需要馬上發(fā)送;b. Opcode操作碼:6bit,標(biāo)識本PDU的類型;由iSCSI initiator發(fā)往iSCSI target的請求PDU有:0x00 NOP-Out0x01 SCSI Command (encapsulates a SCSI Command Descriptor Block)0x02 SCSI Task Management function request0x03 Login Request0x04 Text Request0x05 SCSI Data-Out (for WRITE operations)0x06 Logout Request0x10 SNACK Request0x1c-0x1e Vendor specific codes由iSCSI target發(fā)往iSCSI initiator的相應(yīng)PDU有:0x20 NOP-In0x21 SCSI Response - contains SCSI status and possibly sense information or other response information.0x22 SCSI Task Management function response0x23 Login Response0x24 Text Response0x25 SCSI Data-In - for READ operations.0x26 Logout Response0x31 Ready To Transfer (R2T) - sent by target when it is ready to receive data.0x32 Asynchronous Message - sent by target to indicate certain special conditions.0x3c-0x3e Vendor specific codes0x3f Rejectc. F bit:1bit,標(biāo)識本PDU為一個PDU序列中的最后一個;d. Total AHS Length:1byte,本PDU中所有AHS的長度,以4字節(jié)為單位,包括可能需要填補的0(padding);e. Data Segment Length:3byte,本PDU中數(shù)據(jù)段的長度,以字節(jié)為單位,不包括可能需要填補的0(padding);f. LUN:如果此(命令/響應(yīng)/數(shù)據(jù))PDU與具體的LU相關(guān)聯(lián),則使用LUN(Logical Unit Number)標(biāo)識該LU;g. Initial Task Tag(ITT):在一個session中使用ITT標(biāo)識iSCSI initiator發(fā)起的任何iSCSI任務(wù),凡是與某iSCSI 任務(wù)相關(guān)聯(lián)的PDU,不管是由iSCSI initiator發(fā)出的還是由iSCSI target發(fā)出的,都攜帶該iSCSI 任務(wù)相應(yīng)的ITT。六、PDU分類及概述1、只攜帶SCSI信息的PDU,包括:1)SCSI Command:iSCSI initiatoriSCSI target。PDU中包含SCSI CDB(Command Description Block)和命令執(zhí)行需要的所有參數(shù)(如任務(wù)屬性,希望傳輸?shù)臄?shù)據(jù)的長度,LUN,ITT等);也包含iSCSI協(xié)議通訊需要用到的信息: CmdSN(session范圍內(nèi)iSCSI命令的序號,與ExpCmdSN一起用于檢測iSCSI命令是否在傳輸過程中有丟失)。 ExpStatSN(期望iSCSI target發(fā)送的connection狀態(tài)序號,用于向iSCSI target確認(rèn)該connection中所有StatSN小于ExpStatSN的狀態(tài)響應(yīng)都已被iSCSI initiator接收到,與StatSN一起用于檢測含Status信息的iSCSI pdu是否在傳輸過程中有丟失);2)SCSI ResponseiSCSI targetiSCSI initiator,用于iSCSI target反饋SCSI Command的執(zhí)行結(jié)果。PDU中包含SCSI命令執(zhí)行的結(jié)果,是沒有被執(zhí)行還是已經(jīng)被執(zhí)行但執(zhí)行中出現(xiàn)一些問題;如果命令中進(jìn)行了數(shù)據(jù)傳輸,還包括數(shù)據(jù)傳輸?shù)钠钪礡esidual count(如iSCSI initiator起初表明要寫5k字節(jié),目標(biāo)器接收到了5k+2字節(jié)等,Residual count就為2)SCSI命令執(zhí)行結(jié)果字段:response和status,如果response為0(command completed)而status為2(check condition),將會有sense data(含有check condition的詳細(xì)信息)包含在pdu的data字段中。iSCSI協(xié)議通訊需要用到的字段: ExpCmdSN(session范圍內(nèi)iSCSI target期望iSCSI initiator發(fā)送的命令序號,用于向iSCSI initiator確認(rèn)所有CmdSN小于ExpCmdSN的命令都已被iSCSI target接收到), MaxCmdSN(session中iSCSI initiator能夠發(fā)送的最大命令序號,用于構(gòu)建一個窗口緩沖區(qū),匹配iSCSI initiator和iSCSI target的命令發(fā)送速率和命令處理速率), StatSN(connection范圍內(nèi)iSCSI響應(yīng)pdu的狀態(tài)序號,用于狀態(tài)響應(yīng)編號), ExpDataSN(本命令中iSCSI target已發(fā)送Data PDU的個數(shù))。3)Task Management Function RequestiSCSI initiatoriSCSI target,用于iSCSI initiator控制管理(如中止)之前發(fā)往iSCSI target的多個任務(wù)。4)Task Management Function ResponseiSCSI targetiSCSI initiator,用于iSCSI target反饋任務(wù)管理請求的執(zhí)行結(jié)果5)、SCSI Data Out和SCSI Data IniSCSI initiatoriSCSI target,用于傳輸SCSI數(shù)據(jù)。PDU中除了包含SCSI數(shù)據(jù)外,還包含用于iSCSI協(xié)議通訊的信息: 所攜帶數(shù)據(jù)在命令所要傳送的所有數(shù)據(jù)中的Buffer Offset和Data Segment Length,傳遞方向, DataSN(數(shù)據(jù)在一個Data PDU序列中的序號,用于檢測是否有Data PDU在傳輸中丟失)。6)Ready To Transfer(R2T)iSCSI initiatoriSCSI target,用于iSCSI initiator往iSCSI target傳輸數(shù)據(jù)時,iSCSI target通知iSCSI initiator其已準(zhǔn)備好接收數(shù)據(jù)了,收到此PDU后iSCSI initiator就可以往iSCSI target發(fā)送數(shù)據(jù)了。PDU中包含Target Transfer Tag(TTT),iSCSI initiator針對此PDU發(fā)送的Data Out PDU中包含一樣的TTT以標(biāo)識此數(shù)據(jù)包與此R2T的關(guān)聯(lián)性。此外還包含用于iSCSI協(xié)議通訊的信息: R2TSN是在一個iSCSI命令范圍內(nèi)R2T的序號,iSCSI initiator據(jù)此可以檢測到R2T pdu的丟失。 StatSN、ExpCmdSN、MaxCmdSN。2、攜帶SCSI信息和iSCSI信息的PDUAsynchronous Message異步消息是一種iSCSI target可以主動向iSCSI initiator發(fā)送的pdu,用于告知iSCSI initiator一些事件。異步消息pdu中可以是SCSI消息,也可以是iSCSI消息。Pdu中有一個字段AsyncEvent用于指示具體的事件,如為0表示是SCSI異步事件,具體內(nèi)容放置在pdu的data部分(稱為sense data);如為1表示iSCSI target要求iSCSI initiator登出(logout);等等。3、只攜帶iSCSI信息的PDU1)Text request和Text response文本請求和文本響應(yīng)用于實現(xiàn)參數(shù)(啟動器和目標(biāo)器在通訊時要使用到,具體參見RFC3720第12章)的協(xié)商。Pdu中的data部分以形式“key=value”出現(xiàn)。多個文本請求/響應(yīng)pdu內(nèi)包含相同的ITT來標(biāo)識這些請求/響應(yīng)屬于同一個協(xié)商操作。此外,Pdu中的TTT使用不同的機制來標(biāo)識是否繼續(xù)一個協(xié)商操作還是啟動一個新的協(xié)商操作。2)login request和login response登陸請求和響應(yīng)用來實現(xiàn)iSCSI initiator登陸到iSCSI target。Pdu header內(nèi)含: 登陸階段信息T bit、C bit、CSG、NSG(登陸分兩個階段,安全協(xié)商階段和操作參數(shù)協(xié)商階段); ISID和TSIH(分別在iSCSI initiator和iSCSI target中唯一地標(biāo)識session),指示本次登陸session的ID; CID(在session中唯一的標(biāo)識connection),指示本次登陸connection的ID; CmdSN、ExpStatSN(login request); StatSN、ExpCmdSN、MaxCmdSN(login response)。Pdu 的data部分與文本請求/響應(yīng)pdu一樣以形式“key=value”出現(xiàn),內(nèi)含登陸參數(shù),包括安全協(xié)商參數(shù)(參見RFC3720第11章)和操作參數(shù)(參見RFC3720第12章)。一個session的第一個connection的登陸過程會確定/協(xié)商整個session范圍內(nèi)的一些參數(shù),如iSCSI協(xié)議版本號、session ID、session內(nèi)允許創(chuàng)建的connection個數(shù)。具體登陸過程請參閱圖3。3)logout request和logout response登出請求和響應(yīng)用來實現(xiàn)iSCSI登出iSCSI target,登出request pdu中包含登出的原因: 0:關(guān)閉整個session; 1:關(guān)閉session中的某個connecton(可以是發(fā)送登出請求的connection本身由pdu header中的CID確定); 2:刪除session中的某個connecton以便進(jìn)行修復(fù),原connection中的未決iSCSI命令都將被轉(zhuǎn)移到另外的connection中進(jìn)行傳輸處理,也就是所謂的connection recovery。登出response pdu header中包含response字段反饋登出請求的響應(yīng)結(jié)果: 0:成功關(guān)閉session或者connection; 1:找不到connection; 2:iSCSI target不支持connection recovery; 3:關(guān)閉session/connection失敗或者修復(fù)connection失敗。如果是connection修復(fù)響應(yīng)pdu,pdu header中還包含兩個字段:Time2Wait:如果iSCSI initiator要進(jìn)行把任務(wù)(iSCSI命令)重新指派到別的connection(task reasign),至少要等待的時間,單位為秒;Time2Retain:iSCSI target在Time2Wait之后會等待iSCSI initiator進(jìn)行task reasign的時間,超過這個時間后將丟棄該任務(wù)(iSCSI命令)。4)SNACK requestSNACK顧名思義就是對SN的ack,就是對各種有序號的pdu包括包含Status/response信息的pdu、datain pdu、r2t pdu進(jìn)行確認(rèn)(對于無誤的情況)或者要求iSCSI target重傳輸(對于出錯的情況)。具體而言在SNACK request pdu header中包含字段Type:0:請求datain pdu或者r2t pdu的重傳輸1:請求包含Status/Response信息的pdu的重傳輸2:確認(rèn)接收到datain pdu(針對A bit被置位的datain pdu)3:在MaxRecvDataSegmentLength被改變后請求datain pdu的重傳輸另外兩個字段BegRun和RunLength指示需要重傳輸?shù)膒dus的起始SN及pdu個數(shù)(重傳輸時)或者指示期待的下一個datain pdu的SN(確認(rèn)接收時)。5)rejectreject pdu用于向iSCSI initiator提示一個iSCSI錯誤,表示拒絕之前的iSCSI initiator發(fā)送過來的某一個pdu。Pdu header中含一個指示拒絕原因的字段Reason:2:pdu的數(shù)據(jù)字段校驗錯誤,需要iSCSI initiator的重傳輸3:拒絕之前的一個SNACK pdu,需要重傳輸4:協(xié)議錯誤5:不支持該iSCSI命令。具體見RFC372010.17.1。此外reject pdu還把被拒絕的pdu的header部分拷貝到reject pdu的data部分發(fā)送給iSCSI initiator。6)nop in和nop outnop in和nop out用于iSCSI initiator和iSCSI target周期性的檢測其對端是否還處于可操作狀態(tài),相當(dāng)于TCP/IP協(xié)議中的“ping”。由iSCSI initiator主動發(fā)起并要求iSCSI target響應(yīng)的nop out pdu必須包含一個有效的ITT(非全1),此外的其它nop out pdu所包含的ITT必須為全1。由iSCSI target主動發(fā)起并要求iSCSI initiator響應(yīng)的nop in pdu必須包含一個有效的TTT(非全1),此外的其它nop in pdu所包含的TTT必須為全1。由iSCSI initiator響應(yīng)iSCSI target的nop in pdu(內(nèi)含非全1的TTT)而發(fā)送的nop out pdu必須包含與其響應(yīng)的nop in pdu一樣的TTT,此外其它nop out pdu所包含的TTT都為全1。由iSCSI target響應(yīng)iSCSI initiator的nop out pdu(內(nèi)含非全1的ITT)而發(fā)送的nop in pdu必須包含與其響應(yīng)的nop out pdu一樣的ITT,此外其它nop in pdu所包含的ITT必須為全1。PDU傳輸例子SCSI讀命令圖6. SCSI讀命令SCSI寫命令圖7. SCSI寫命令SCSI雙向讀寫命令圖8. SCSI雙向讀寫命令CmdSN/StatSN/DataSNCmdSN、ExpCmdSN、MaxCmdSN在iSCSI initiator端,CmdSN最初為某個值,每發(fā)送一個SCSI cmd pdu之后都會加1。在iSCSI target端,ExpCmdSN最初使用接收到的CmdSN1初始化,此后在接收到一個SCSI cmd pdu后都會加1。在iSCSI target端,iSCSI target會根據(jù)SCSI命令的處理情況增加MaxCmdSN。在iSCSI initiator端,每次接收到pdu后都要拿其中的ExpCmdSN與iSCSI initiator維護的CmdSN比較,如果相等表示吻合,沒有SCSI命令被丟失,否則。在iSCSI target端,每次接收到pdu后都要拿其中的CmdSN與iSCSI target維護的ExpCmdSN比較,如果一致表示吻合,沒有SCSI命令被丟失,否則。StatSN、ExpStatSN在iSCSI target端,StatSN最初為某個值,每發(fā)送一個含StatSN的pdu之后都會加1。在iSCSI initiator端,ExpStatSN最初使用接收到的StatSN1初始化,此后在接收到一個含StatSN的pdu后都會加1。在iSCSI target端,每次接收到pdu后都要拿其中的ExpStatSN與iSCSI target維護的StatSN比較,如果相等表示吻合,沒有含狀態(tài)信息的pdu被丟失,否則。在iSCSI initiator端,每次接收到pdu后都要拿其中的StatSN與iSCSI initiator維護的ExpStatSN比較,如果一致表示吻合,沒有含狀態(tài)信息的pdu被丟失,否則。DataSN、R2TSN、ExpDataSN、F bit參見1.5.3 pdu傳輸例子iSCSI錯誤處理錯誤修復(fù)范圍(class)within command 目標(biāo)器:Write命令時目標(biāo)器丟失dataout pdu(digest error or sequence error)。解決:使用recovery R2T。 啟動器:Read命令時啟動器丟失datain pdu或者r2t pdu(digest error or sequence error)。解決:使用snack。within connection 啟動器:發(fā)出的命令沒有得到響應(yīng)(ExpCmdSN)、丟失response pdu(digest error or sequence error)。解決:前者使用retry,后者使用snack。 目標(biāo)器:發(fā)出response pdu沒有得到啟動器的確認(rèn)(ExpStatSN)。解決:使用nop-in通知啟動器使啟動器發(fā)送snack要求重傳輸。connection recovery 啟動器:檢測到tcp connection失敗或者接收到目標(biāo)器異步消息(Asynchronous Message)通知其tcp connection失敗。解決:connection recovery(task reassign)。 目標(biāo)器:檢測到tcp connetion失敗。解決:關(guān)閉connection,如果還有connection可用則通過異步消息通知啟動器tcp connection失敗。session recovery其它三種修復(fù)嘗試后,才考慮使用session修復(fù)。Session修復(fù)對于啟動器:關(guān)閉所有的連接connection,中止所有未決命令以恰當(dāng)?shù)慕Y(jié)果返回上層SCSI,重新建立一個新的session連接到目標(biāo)器。錯誤修復(fù)層次/級別(hierarchy/level)錯誤修復(fù)層次/級別用于定義iSCSI initiator/iSCSI target修復(fù)錯誤的能力,分級如下, 0級:不管遇到什么錯誤僅能進(jìn)行session recovery,修復(fù)能力很差。 1級:能在command、connection范圍內(nèi)進(jìn)行修復(fù),同時擁有session recovery能力,遇到錯誤先考慮within command修復(fù),不行再考慮within connection修復(fù),最后才會考慮session recovery。 2級:能在command、connection范圍內(nèi)進(jìn)行修復(fù),同時擁有connection recovery、session recovery能力,遇到錯誤先考慮within command修復(fù),不行再考慮within connection修復(fù),不行再考慮connection recovery,最后才會考慮session recovery。task reassign在iSCSI中,每個iSCSI命令(task)都與唯一的一個connection關(guān)聯(lián),有關(guān)該命令的所有pdu都需要在該connection上發(fā)送/接收,在進(jìn)行connection recovery之后,iSCSI initiator可以考慮進(jìn)行task reassign,就是把原connection上的task(iSCSI命令)重新關(guān)聯(lián)到另一個或者新的connection,這要通過在新connection上發(fā)送iSCSI任務(wù)管理命令task reassign來完成。retry當(dāng)iSCSI initiator往iSCSI target發(fā)送了iSCSI cmd pdu但卻收不到iSCSI target的確認(rèn)(通過ExpCmdSN或者datain/r2t pdu或者respo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食堂供應(yīng)權(quán)拍賣協(xié)議書
- 施工破壞樹木賠償協(xié)議書
- 公司資產(chǎn)評估出售協(xié)議書
- 業(yè)主頂樓安全使用協(xié)議書
- 商務(wù)合作合同解除協(xié)議書
- 基層勞動爭議調(diào)解協(xié)議書
- 學(xué)生讀書問題退款協(xié)議書
- 婚內(nèi)財產(chǎn)協(xié)議持股協(xié)議書
- 協(xié)議一方轉(zhuǎn)讓他人協(xié)議書
- 鄉(xiāng)村道路使用補充協(xié)議書
- 江蘇省蘇、錫、常、鎮(zhèn)2025年高考物理三模試卷含解析
- 體育保健學(xué)復(fù)試題及答案
- 2025年江蘇省無錫市錫山區(qū)錫北片中考一模數(shù)學(xué)試題(原卷版+解析版)
- 建筑工地安全培訓(xùn)流程
- 2025年中考?xì)v史專題復(fù)習(xí)講義(含練習(xí)題及答案)
- 華北電力大學(xué)丁肇豪:多主體數(shù)據(jù)中心算力-電力跨域協(xié)同優(yōu)化
- 通信汛期安全培訓(xùn)
- 2025年初級護工考試試題及答案
- 基于STM32的輸電線路狀態(tài)監(jiān)測系統(tǒng)的研究
- 中國老年糖尿病診療指南2024版詳解 課件
- 制作標(biāo)書流程培訓(xùn)
評論
0/150
提交評論