iscsi協(xié)議及實現(xiàn)_第1頁
iscsi協(xié)議及實現(xiàn)_第2頁
iscsi協(xié)議及實現(xiàn)_第3頁
iscsi協(xié)議及實現(xiàn)_第4頁
iscsi協(xié)議及實現(xiàn)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、iSCSI協(xié)議及實現(xiàn)協(xié)議及實現(xiàn)iSCSI協(xié)議簡介協(xié)議簡介涉及到的SCSI的概念n啟動設(shè)備和目標(biāo)設(shè)備n啟動設(shè)備(initiator):發(fā)起I/O請求的設(shè)備n目標(biāo)設(shè)備(target):響應(yīng)請求執(zhí)行實際I/O操作的設(shè)備n在啟動設(shè)備和目標(biāo)設(shè)備建立連接后,目標(biāo)設(shè)備在操作中作為主設(shè)備控制整個工作過程n一般情況下主機適配器HBA作為啟動設(shè)備,磁盤/磁帶作為目標(biāo)設(shè)備涉及到的SCSI的概念nCDB:命令描述塊。SCSI的命令及參數(shù)是填充在一定長度的數(shù)據(jù)塊內(nèi)傳輸?shù)腟CSI read(6) CDB典型的SCSI系統(tǒng)SCSI的缺點nSCSI是點對點的、直接相連的計算機到存儲器的設(shè)備接口,不適用于主機到存儲器的存儲網(wǎng)絡(luò)

2、通訊 nSCSI總線的長度被限制在25米以內(nèi),對于Ultra SCSI長度限制為12米,不適于構(gòu)造各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) nSCSI總線上設(shè)備數(shù)限制為15,不適用于多服務(wù)器對多存儲設(shè)備的網(wǎng)絡(luò)結(jié)構(gòu) SCSI傳輸協(xié)議iSCSI的概念niSCSI是關(guān)于SCSI的命令 、數(shù)據(jù)和狀態(tài)到TCP/IP 網(wǎng)絡(luò)的映射的 協(xié)議n對TCP層的改造和增加較 低功能層(對TCP層透明) 是為了適應(yīng)大批量存儲數(shù) 據(jù)傳輸?shù)男枰猧SCSI協(xié)議現(xiàn)狀nIETF正在制定iSCSI協(xié)議標(biāo)準(zhǔn),最新草案是draft-ietf-ips-iSCSI-06nIETF:/nIPS工作組:http:/www.ece.

3、/ips/iSCSI產(chǎn)品nCisco SN 5420 Storage Router nIBM TotalStorage IP Storage 200i用Cisco SN 5420構(gòu)造的存儲系統(tǒng)iSCSI協(xié)議結(jié)構(gòu)n1.概述n2.協(xié)議數(shù)據(jù)單元格式n3.用于iSCSI協(xié)議的SCSI模式參數(shù)n4.登錄相n5.登錄相之外的工作參數(shù)協(xié)商n6.錯誤處理和恢復(fù)iSCSI的命名和編址niSCSI使用類似URL的iSCSI名字來唯一鑒別啟動設(shè)備和目標(biāo)設(shè)備。n地址會隨著啟動設(shè)備和目標(biāo)設(shè)備的移動而改變,但名字始終是不變的 iSCSI的命名和編址n一個iSCSI名字由三部分組成:類型定義符、名字認(rèn)證機構(gòu)、

4、由該認(rèn)證機構(gòu)分配的名字 .acme.sn.8675309 niSCSI地址格式 n:/ iSCSI的發(fā)現(xiàn)機制 n啟動設(shè)備可以通過下列方法發(fā)現(xiàn)目標(biāo)設(shè)備:n在啟動設(shè)備上設(shè)置目標(biāo)設(shè)備的地址n在啟動設(shè)備上設(shè)置默認(rèn)目標(biāo)設(shè)備地址,啟動設(shè)備可通過“SendTargets”命令從默認(rèn)目標(biāo)設(shè)備上獲取iSCSI名字列表n發(fā)出服務(wù)定位協(xié)議(SLP)廣播請求,等待目標(biāo)設(shè)備回應(yīng)n查詢存儲設(shè)備名字服務(wù)器獲取可訪問的目標(biāo)設(shè)備列表iSCSI會話(session) n啟動設(shè)備和目標(biāo)設(shè)備之間的TCP連接構(gòu)成一次會話 n一個會話包含一個或多個TCP連接 n會話由會話號區(qū)分,會話號包括啟動設(shè)備部分和目標(biāo)設(shè)備部分n會話中包含的TCP連

5、接可以增加也可以刪除,這些連接由連接號(CID)區(qū)分命令編號n從啟動設(shè)備到目標(biāo)設(shè)備SCSI層的命令由iSCSI編號,該號碼由iSCSI協(xié)議數(shù)據(jù)單元中的命令序列號(CmdSN)攜帶 n目標(biāo)設(shè)備的iSCSI層必須按命令序列號的順序把命令傳遞給SCSI層 n目標(biāo)設(shè)備的SCSI層接收到命令后該命令序列號即失效。命令序列號也能被用來進行命令的流量控制 iSCSI登錄和協(xié)商 niSCSI登錄是用來在啟動設(shè)備和目標(biāo)設(shè)備之間建立TCP連接的機制 n登錄的作用包括鑒別通訊雙方、協(xié)商會話參數(shù)、打開相關(guān)安全協(xié)議并且給屬于該會話的連接作標(biāo)記 n登錄過程完成后,iSCSI會話進入全功能相(full feature ph

6、ase),這時啟動設(shè)備就能通過iSCSI協(xié)議訪問目標(biāo)設(shè)備里的各邏輯單元了 響應(yīng)/狀態(tài)編號 n從目標(biāo)設(shè)備到啟動設(shè)備的響應(yīng)由iSCSI編號,在iSCSI協(xié)議數(shù)據(jù)單元中用狀態(tài)序列號(StatSN)表示 n啟動設(shè)備提供期望狀態(tài)序列號ExpStatSN來確認(rèn)狀態(tài) n如果狀態(tài)序列號和期望狀態(tài)序列號不同則意味著連接出現(xiàn)了錯誤 協(xié)議數(shù)據(jù)單元格式 Byte 0 12 3 0 Opcode Opcodespecific fields Reserved4 Logical Unit Number (LUN)8 12 Initiator Task Tag 16 Expected Data Transfer Length

7、20 CmdSN 24 ExpStatSN or EndDataSN28 SCSI Command Descriptor Block (CDB)+ 44 iSCSI啟動設(shè)備命令基本首部(BHS)iSCSI協(xié)議的實現(xiàn)協(xié)議的實現(xiàn)iSCSI代碼來源niscsi-Apr6.tgz: nIntel (http:/)nkernel_emulator_10.tgz:nIOL(InterOperability Lab) of UNH(University of New Hampshire) ()nIscsi-0.1.tar.gz:n iSCSI research te

8、am of UML(University of Massachusetts Lowell) (/mbrown/iscsi)程序的運行n啟動設(shè)備端:ninsmod scsi_target.oninsmod iscsi_target.on客戶端:ninsmod iscsi.oninsmod iscsi_client.onfdisk /dev/sdanmke2fs /dev/sda1nmount t ext2 /dev/sda1 /mnt/iscsinraiddev /dev/md0(多個目標(biāo)設(shè)備)程序的結(jié)構(gòu)(目標(biāo)設(shè)備)n1.STML(SCSI Target

9、mid-level)n處理SCSI命令n2.FETD(front-end Target driver)n將STML發(fā)來的命令數(shù)據(jù)封裝成底層通訊協(xié)議數(shù)據(jù)包的格式發(fā)送到網(wǎng)絡(luò)上或者將從網(wǎng)絡(luò)接受到的數(shù)據(jù)包解包傳遞給STML將STML和FETD分開的原因n增強程序的可重用性nSTML是通用的nFETD是和底層采用的通訊協(xié)議(TCP/IP、Fibre channel)相關(guān)的程序功能模塊圖STML提供給FETD的APInregister_target_template()nderegister_target_template()nregister_target_front_end()nderegister_

10、target_front_end()nrx_cmnd()nscsi_rx_data()nscsi_target_done()nscsi_release()nrx_task_mgmt_fn()FETD提供給STML的APIndetect()nrelease()nxmit_response()nrdy_to_xfer()ntask_mgmt_fn_done()nreport_aen()重要的數(shù)據(jù)結(jié)構(gòu)nstruct Target_Emulatornstruct Scsi_Target_Templatenstruct Scsi_Target_Devicenstruct Target_Scsi_Cmnd

11、nstruct scsi_requestnstruct Target_Scsi_Messagenstruct scsi_cmndnstruct sg_io_hdr_tSTML的初始化n初始化一個struct Target_Emulator類型的全局變量n創(chuàng)建線程scsi_target_process_thread處理大多數(shù)的STML的工作n進入等待FETD的初始化n向STML注冊,STML將其加入設(shè)備隊列n創(chuàng)建線程iscsi_server_thread監(jiān)聽端口4002n進入等待FETD向STML的注冊過程FETD向STML的注冊過程FETD向STML注銷過程FETD對請求的響應(yīng)n當(dāng)在4002端

12、口監(jiān)聽的線程接收請求后n創(chuàng)建線程iscsi_rx_thread接收SCSI命令n創(chuàng)建線程iscsi_tx_thread傳送應(yīng)答和狀態(tài)nFETD創(chuàng)建一個Target_Scsi_Cmnd類型的數(shù)據(jù)接收SCSI命令,將其加入命令隊列,喚醒STML的線程STT處理收到的SCSI命令STML對FETD的響應(yīng)n調(diào)用handle_cmd處理命令隊列n調(diào)用hand_to_front_end返回處理結(jié)果n處理結(jié)果加入FETD的發(fā)送隊列xmit_queue等待發(fā)送n在結(jié)果發(fā)送完成后調(diào)用scsi_target_dones釋放資源讀類型命令的處理iSCSI 的應(yīng)用的應(yīng)用采用iSCSI的設(shè)備的特點n采用了iSCSI協(xié)議的硬件設(shè)備是NA

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論