iscsi協(xié)議及實(shí)現(xiàn).ppt.ppt_第1頁
iscsi協(xié)議及實(shí)現(xiàn).ppt.ppt_第2頁
iscsi協(xié)議及實(shí)現(xiàn).ppt.ppt_第3頁
iscsi協(xié)議及實(shí)現(xiàn).ppt.ppt_第4頁
iscsi協(xié)議及實(shí)現(xiàn).ppt.ppt_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、設(shè)備就能通過iSCSI協(xié)議訪問目標(biāo)設(shè)備里的各邏輯單元了,響應(yīng)/狀態(tài)編號(hào),從目標(biāo)設(shè)備到啟動(dòng)設(shè)備的響應(yīng)由iSCSI編號(hào),在iSCSI協(xié)議數(shù)據(jù)單元中用狀態(tài)序列號(hào)(StatSN)表示 啟動(dòng)設(shè)備提供期望狀態(tài)序列號(hào)ExpStatSN來確認(rèn)狀態(tài) 如果狀態(tài)序列號(hào)和期望狀態(tài)序列號(hào)不同則意味著連接出現(xiàn)了錯(cuò)誤,協(xié)議數(shù)據(jù)單元格式,iSCSI啟動(dòng)設(shè)備命令基本首部(BHS),iSCSI協(xié)議的實(shí)現(xiàn),iSCSI代碼來源,iscsi-Apr6.tgz: Intel () kernel_emulator_10.tgz: IOL(InterOperability Lab) of UNH(University of New Hamp

7、shire) () Iscsi-0.1.tar.gz: iSCSI research team of UML(University of Massachusetts Lowell) (/mbrown/iscsi),程序的運(yùn)行,啟動(dòng)設(shè)備端: insmod scsi_target.o insmod iscsi_target.o 客戶端: insmod iscsi.o insmod iscsi_client.o fdisk /dev/sda mke2fs /dev/sda1 mount t ext2 /dev/sda1

8、 /mnt/iscsi raiddev /dev/md0(多個(gè)目標(biāo)設(shè)備),程序的結(jié)構(gòu)(目標(biāo)設(shè)備),1.STML(SCSI Target mid-level) 處理SCSI命令 2.FETD(front-end Target driver) 將STML發(fā)來的命令數(shù)據(jù)封裝成底層通訊協(xié)議數(shù)據(jù)包的格式發(fā)送到網(wǎng)絡(luò)上或者將從網(wǎng)絡(luò)接受到的數(shù)據(jù)包解包傳遞給STML,將STML和FETD分開的原因,增強(qiáng)程序的可重用性 STML是通用的 FETD是和底層采用的通訊協(xié)議(TCP/IP、Fibre channel)相關(guān)的,程序功能模塊圖,STML提供給FETD的API,register_target_template

9、() deregister_target_template() register_target_front_end() deregister_target_front_end() rx_cmnd() scsi_rx_data() scsi_target_done() scsi_release() rx_task_mgmt_fn(),FETD提供給STML的API,detect() release() xmit_response() rdy_to_xfer() task_mgmt_fn_done() report_aen(),重要的數(shù)據(jù)結(jié)構(gòu),struct Target_Emulator stru

10、ct Scsi_Target_Template struct Scsi_Target_Device struct Target_Scsi_Cmnd struct scsi_request struct Target_Scsi_Message struct scsi_cmnd struct sg_io_hdr_t,STML的初始化,初始化一個(gè)struct Target_Emulator類型的全局變量 創(chuàng)建線程scsi_target_process_thread處理大多數(shù)的STML的工作 進(jìn)入等待,FETD的初始化,向STML注冊(cè),STML將其加入設(shè)備隊(duì)列 創(chuàng)建線程iscsi_server_thr

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔