論FC和iSCSI協(xié)議分析比較
時(shí)間:2022-03-18 03:26:00
導(dǎo)語:論FC和iSCSI協(xié)議分析比較一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要fc和iscsi是目前存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN(StorageAreaNetwork)的兩個(gè)主流協(xié)議。該文介紹FC(FibreChannel:光纖通道)和iSCSI(InternetSCSI)協(xié)議的協(xié)議結(jié)構(gòu)以及流量控制和發(fā)現(xiàn)機(jī)制,在零復(fù)制和流量控制等方面對(duì)FC和iSCSI的協(xié)議功能進(jìn)行了分析比較。關(guān)鍵詞存儲(chǔ)區(qū)域網(wǎng)絡(luò);FC;iSCSI;零復(fù)制。1引言SAN是一種專用網(wǎng)絡(luò),是網(wǎng)絡(luò)服務(wù)器群的后端,可采用光纖通道或iSCSI等存儲(chǔ)專用協(xié)議連接成高速專用網(wǎng)絡(luò),使網(wǎng)絡(luò)服務(wù)器與多種存儲(chǔ)設(shè)備直接連接。SAN的最大特點(diǎn)就是可以實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)器與存儲(chǔ)設(shè)備之間的多對(duì)多連接,而且,這種連接是本地的高速連接。SAN架構(gòu)的優(yōu)勢(shì)在于,強(qiáng)大的擴(kuò)展性、多種存儲(chǔ)設(shè)備的集中和新架構(gòu)支撐下的新型數(shù)據(jù)應(yīng)用方式,在安全意義下負(fù)責(zé)可持續(xù)的存儲(chǔ)和數(shù)據(jù)傳輸。目前,F(xiàn)C和iSCSI是應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)吉比特速率的兩種主要技術(shù)。2FC協(xié)議分析2。1FC協(xié)議結(jié)構(gòu)光纖通道按協(xié)議層進(jìn)行分層,各層之間技術(shù)相互獨(dú)立,留有增長(zhǎng)空間,并且由被認(rèn)可的標(biāo)準(zhǔn)化機(jī)構(gòu)進(jìn)行開發(fā),分層結(jié)構(gòu)共分5層,如圖1所示。圖1FC協(xié)議層次⑴C-0(物理層底層):FC-0層定義了連接的物理端口特性,包括介質(zhì)和連接器(驅(qū)動(dòng)器、接收機(jī)、發(fā)送機(jī)等)的物理特性、電氣特性和光特性、傳輸速率以及其它的一些連接端口特性。⑵FC-1(傳輸協(xié)議):規(guī)定了8B/10B編碼方式和傳輸協(xié)議.包括串行編碼、解碼規(guī)則、特殊字符和錯(cuò)誤控制。⑶C-2(幀協(xié)議):規(guī)定了具體的傳輸機(jī)制,包括幀格式,節(jié)點(diǎn)間的信息交換。⑷C-3(公共服務(wù)):提供高級(jí)特性的公共服務(wù),即端口間的結(jié)構(gòu)協(xié)議和流動(dòng)控制,它定義了三種服務(wù):條塊化(Striping)、搜索組(HuntGroup)和多路播放(BroadcastMulticast)。⑸FC-4(ULP映射):定義了FibreChannel和IP,SCSI-3以及其他的上層協(xié)議(ULP)之間的接口。2.2FC流量控制FC中的流量控制機(jī)制是在信用度系統(tǒng)上的基礎(chǔ)上。所謂的信用度(Credit)是指設(shè)備接受額外幀的能力。信用度的多少?zèng)Q定了設(shè)備接收額外幀能力的大小。如果接受方?jīng)]有向發(fā)送方發(fā)出任何的信用度,那么發(fā)送方就不能發(fā)送任何幀,在信用度的基礎(chǔ)上協(xié)調(diào)幀傳送,可以避免幀的丟失,同時(shí)減少了對(duì)整個(gè)幀序列進(jìn)行重傳的頻率。實(shí)際上,這種基于信用度的機(jī)制建立在終端節(jié)點(diǎn)能夠提供的緩沖區(qū)(TX-Buffer和RX-Buffer)的數(shù)目上,這些緩沖區(qū)用于存儲(chǔ)到來的數(shù)據(jù)流。例如,擁有板上存儲(chǔ)器的主機(jī)總線適配器,可能被分派作為接受緩沖區(qū),成為FC-1解串和譯碼功能,以及FC-2的幀重新裝配功能之間的接口。當(dāng)FC-1來提交幀的時(shí)候,這種接受緩沖區(qū)被充滿;當(dāng)FC-2的裝配線取出各個(gè)幀進(jìn)行數(shù)據(jù)塊的重建時(shí),這種接受緩沖區(qū)被清空。為了充分的利用FC的傳輸能力,最好能夠連續(xù)的多發(fā)出多個(gè)幀。這一點(diǎn)在事務(wù)開始前由授權(quán)充分信用度來實(shí)現(xiàn),同時(shí)利用FC的全雙工能力在幀還未接受時(shí)就發(fā)出附加的信用度。FC中常用的兩種是端到端(EE-Credit)和緩沖區(qū)到緩沖區(qū)(BB-Credit)的流量控制。
端到端的流量控制機(jī)制(EE-Credit)是在兩個(gè)終端節(jié)點(diǎn)之間使用的流量控制。在兩個(gè)通信節(jié)點(diǎn)登錄并交換通信參數(shù)時(shí)候,建立起傳輸信用度,并且由節(jié)點(diǎn)本身來監(jiān)測(cè)。中間的交換機(jī)不參與端到端流量控制。如圖圖2FC基于信用的流量控制一旦一個(gè)初始的信用度等級(jí)授權(quán)后,如果要補(bǔ)充信用度的話,要由接受方向發(fā)送出應(yīng)答(ACK)來實(shí)現(xiàn)。每發(fā)出一個(gè)幀發(fā)送方就消耗了一個(gè)端到端的信用度(EE-Credit),只有當(dāng)其接收到一個(gè)ACK后才能增加信用度。光纖通道中還定義使用BB-Credit的流量控制機(jī)制(緩沖區(qū)到緩沖區(qū)的信用度),并且依靠receive-ready(R-RDY)有序集補(bǔ)充信用度,如圖2所示。某個(gè)附接到交換機(jī)的終端接點(diǎn)將在登錄到交換機(jī)的過程中建立它的BB-Credit。在交換機(jī)遠(yuǎn)端參與通信的一方將在登錄時(shí)建立其自身交換機(jī)的BB-Credit。BB-Credit沒有端到端的成分。發(fā)送方在發(fā)出一個(gè)幀時(shí)將BB-Credit減1,直到BB-Credit的數(shù)量為零的時(shí)候.此時(shí)不能再進(jìn)行幀發(fā)送。在接收到R-RDY時(shí)將BB-Credit加1。BB-Credit的初始值必須是非零的。如果為零的話,說明不能再接收或者發(fā)送幀。2.3FC發(fā)現(xiàn)機(jī)制在FC中,當(dāng)一個(gè)新的設(shè)備加入到網(wǎng)絡(luò)中時(shí),它要與它的網(wǎng)絡(luò)的管理者(一般是交換機(jī))取得聯(lián)系,網(wǎng)絡(luò)管理者便會(huì)依次告知所有那些已經(jīng)注冊(cè)過的和那些需要被通知這一事件的設(shè)備。此外,在FC中,由于為了增強(qiáng)網(wǎng)絡(luò)的靈活性和安全性,有時(shí)可能需要進(jìn)行分區(qū)。當(dāng)一個(gè)新的設(shè)備加入到網(wǎng)絡(luò)中的時(shí)候,該設(shè)備首先與它同在一個(gè)分區(qū)的其它現(xiàn)有設(shè)備完成注冊(cè),然后連接這個(gè)設(shè)備的交換機(jī)會(huì)把這一事件告知其他的分區(qū)的設(shè)備和其它的交換機(jī)。圖3FC發(fā)現(xiàn)機(jī)制
如圖3所示,如果當(dāng)A區(qū)的節(jié)點(diǎn)A加入網(wǎng)絡(luò)時(shí),它先與FC交換機(jī)取得聯(lián)系,那么FC交換機(jī)將把A節(jié)點(diǎn)加入網(wǎng)絡(luò)的這一信息先后分別告知節(jié)點(diǎn)B和節(jié)點(diǎn)C以及B區(qū)的節(jié)點(diǎn)D和節(jié)點(diǎn)E。至此,A節(jié)點(diǎn)就加入到網(wǎng)絡(luò)中,可以與A區(qū)與B區(qū)中的設(shè)備進(jìn)行通信。3iSCSI協(xié)議分析3.1iSCSI協(xié)議結(jié)構(gòu)如同任何一個(gè)協(xié)議一樣,iSCSI也有一個(gè)清晰的層次結(jié)構(gòu),根據(jù)OSI模型,iSCSI的協(xié)議棧自頂向下一共可以分為五層,如圖4所示:圖4iSCSI協(xié)議分層模型.SCSI層:根據(jù)應(yīng)用發(fā)出的請(qǐng)求建立SCSICDB(命令描述塊),并傳給iSCSI層;同時(shí)接受來自iSCSI層的CDB,并向應(yīng)用返回?cái)?shù)據(jù)。.iSCSI層:對(duì)SCSICDB進(jìn)行封裝,以便能夠在基于TCP/IP協(xié)議的網(wǎng)絡(luò)上進(jìn)行傳輸,完成SCSI到TCP/IP的協(xié)議映射。這一層是iSCSI協(xié)議的核心層。.TCP層:提供端到端的透明可靠傳輸。.IP層:對(duì)IP報(bào)文進(jìn)行路由和轉(zhuǎn)發(fā)。.Link層:提供點(diǎn)到點(diǎn)的無差錯(cuò)傳輸3.2iSCSI流量控制與超時(shí)重發(fā)流量控制是指發(fā)送方控制發(fā)送數(shù)據(jù)幀到網(wǎng)絡(luò)的速率。發(fā)送方發(fā)送的速率—般是傳送路徑上的交換機(jī)、路由器或接收方可用的緩沖區(qū)大小的函數(shù)。iSCSI則采用TCP/lP協(xié)議的端到端的流量控制機(jī)制,以可變發(fā)送窗口的方式進(jìn)行流量控制。發(fā)送窗口在連接建立時(shí)由雙方面定,但在通信過程中,接收方可根據(jù)自己的資源使用情況,隨時(shí)動(dòng)態(tài)地調(diào)整自已的接收窗口(可增大或減小),然后告訴對(duì)方,使發(fā)送方的發(fā)送窗口和自己的接收窗口一致。iSCSI采用的是TCP的自適應(yīng)超時(shí)重發(fā)算法,可根據(jù)網(wǎng)絡(luò)的情況動(dòng)態(tài)調(diào)整。這種算法記錄每一個(gè)報(bào)文段發(fā)出的時(shí)間以及收到相應(yīng)的確認(rèn)報(bào)文段的時(shí)間,這兩個(gè)時(shí)間之差就是報(bào)文段的往返時(shí)延RTT,當(dāng)發(fā)送—個(gè)數(shù)據(jù)段時(shí),啟動(dòng)相應(yīng)的定時(shí)器,如果定時(shí)器超時(shí)確認(rèn)報(bào)文段還沒有到達(dá),就觸發(fā)數(shù)據(jù)配發(fā)機(jī)制。如果超時(shí)之前得到確認(rèn),就記錄新的往返時(shí)延,將各個(gè)報(bào)文段的往返時(shí)延樣本進(jìn)行加權(quán)平均得到新的報(bào)文段的平均往返時(shí)延RTT,顯然定時(shí)器設(shè)置的重發(fā)時(shí)間應(yīng)大于平均的往返時(shí)延RTT。在實(shí)際應(yīng)用中,RTT的算法還很復(fù)雜,目前一般采用的是Karm算法。3.3iSCSI發(fā)現(xiàn)機(jī)制iSCSI發(fā)起端為了和iSCSI目標(biāo)端建立iSCSI會(huì)話,iSCSI需要知道ISCSI目標(biāo)端的IP地址,TCP端口號(hào)和名字三個(gè)信息。iSCSI發(fā)現(xiàn)的目的是為了讓iSCSI發(fā)起端獲取一條到iSCSI目標(biāo)端的通路。iSCSI有三種發(fā)現(xiàn)機(jī)制:⑴靜態(tài)配置:在iSCSI發(fā)起端已經(jīng)知道iSCSI目標(biāo)端的IP地址TCP端口號(hào)和名字信息時(shí),iSCSI發(fā)起端不需要執(zhí)行發(fā)現(xiàn)。iSCSI發(fā)起端直接通過IP地址和TCP端口來建立TCP連接,使用iSCSI目標(biāo)端的名字來建立iSCSI會(huì)話。這種發(fā)現(xiàn)機(jī)制比較適合比較小的iSCSI體系結(jié)構(gòu)⑵SendTarget發(fā)現(xiàn):在iSCSI發(fā)起端知道iSCSI目標(biāo)端的IP地址和TCP端口的情況下,iSCSI使用IP地址和TCP端口號(hào)建立TCP連接后建立發(fā)現(xiàn)對(duì)話。iSCSI發(fā)起端發(fā)送SendTarget命令查詢網(wǎng)絡(luò)中的存在的iSCSI信息。這種方法主要用于網(wǎng)關(guān)設(shè)備,iSCSI發(fā)起端被靜態(tài)配置連接到指定的iSCSI設(shè)備。iSCSI發(fā)起端和iSCSI網(wǎng)關(guān)設(shè)備建立對(duì)話并發(fā)送SendTarget請(qǐng)求給iSCSI網(wǎng)關(guān)設(shè)備。iSCSI網(wǎng)關(guān)設(shè)備返回一系列和它相連的ISCSI目標(biāo)端的信息。iSCSI發(fā)起端選擇一個(gè)目標(biāo)端來建立對(duì)話。⑶零配置發(fā)現(xiàn):這種機(jī)制用于iSCSI發(fā)送設(shè)備完全不知道ISCSI目標(biāo)端的信息的情況下。iSCSI發(fā)起端利用現(xiàn)有的IP網(wǎng)絡(luò)協(xié)議SLP(ServiceLocationProtocolforDiscovery,服務(wù)定位協(xié)議)。iSCSI目標(biāo)端使用SLP來注冊(cè),iSCSI發(fā)起端可以通過查詢SLP來獲得注冊(cè)的iSCSI目標(biāo)端的信息。當(dāng)iSCSI目標(biāo)端加入到網(wǎng)絡(luò)中的時(shí)候,拓?fù)浣Y(jié)構(gòu)也隨之改變。雖然這種方法增加了實(shí)現(xiàn)的復(fù)雜性,但它不需要重新配置發(fā)起端即可找到新的目標(biāo)端。4FC與iSCSI協(xié)議的比較本文主要從下面幾個(gè)方面對(duì)兩個(gè)協(xié)議進(jìn)行比較:4.1流量控制機(jī)制對(duì)網(wǎng)絡(luò)的適應(yīng)性FC采用基于信用的流量控制機(jī)制,當(dāng)接受者有足夠的緩存接受發(fā)信者的數(shù)據(jù)時(shí),接受者把Credit(信用度)分配給發(fā)信者。它根據(jù)發(fā)送者的請(qǐng)求分配Credit,僅當(dāng)發(fā)送者沒有用完它的Credit時(shí),它才可以發(fā)送數(shù)據(jù)。在MAN/WAN中,發(fā)送者必須要等待很長(zhǎng)時(shí)間來獲得接受者的確認(rèn)消息(以向網(wǎng)絡(luò)發(fā)送新的數(shù)據(jù))。這種基于信任的流量控制機(jī)制降低了網(wǎng)絡(luò)的利用率。iSCSI是基于窗口的發(fā)送機(jī)制,由于發(fā)送方可以根據(jù)網(wǎng)絡(luò)的擁塞情況動(dòng)態(tài)地調(diào)整發(fā)送速率,因此iSCSI的流量控制機(jī)制對(duì)網(wǎng)絡(luò)的適應(yīng)性更好,尤其在網(wǎng)絡(luò)傳輸延遲較大的網(wǎng)絡(luò)中。4.2超時(shí)重發(fā)機(jī)制的靈活性在TCP/IP協(xié)議中,TCP使用自適應(yīng)重傳算法以適應(yīng)互連網(wǎng)絡(luò)時(shí)延的變化。它的要點(diǎn)是:TCP監(jiān)視每一條連接的性能,并計(jì)算出報(bào)文的往返時(shí)間RTT(RoundTripTime)。當(dāng)連接的性能變化時(shí),TCP隨即修改RTT(也就是說它能自動(dòng)適應(yīng)時(shí)延的變化)。RTT(RoundTripTime)被發(fā)送方用來決定是否重傳報(bào)文。而FibreChanne]使用的是靜態(tài)的超時(shí)重發(fā)機(jī)制,不會(huì)根據(jù)網(wǎng)絡(luò)的情況動(dòng)態(tài)地加以改變,因此發(fā)送方可能過早或過遲地出現(xiàn)超時(shí),這對(duì)改善網(wǎng)絡(luò)的綜合性能不利。相對(duì)而言,iSCSI可以動(dòng)態(tài)地自適應(yīng)于網(wǎng)絡(luò)的當(dāng)?shù)那闆r,可以改善網(wǎng)絡(luò)的綜合性能,從這個(gè)角度看,iSCSI應(yīng)該優(yōu)于FibreChannel,更加適合目前的網(wǎng)絡(luò)情況4.3CPU對(duì)數(shù)據(jù)封裝的負(fù)擔(dān)大小在存儲(chǔ)環(huán)境中,發(fā)出的塊I/0請(qǐng)求的大小一般介于4K到64K之間。以8K的塊I/0請(qǐng)求為例,已經(jīng)知道在iSCSI中以太網(wǎng)幀的大小是1.5K,在FC中,F(xiàn)C的幀大小是2K。因此8K的塊I/O請(qǐng)求必須被分成多個(gè)小的段,以適應(yīng)不同的傳輸幀大小。在FC中,分段和重組操作是在網(wǎng)卡中實(shí)現(xiàn)的,因此減輕了主機(jī)CPU的負(fù)擔(dān)。對(duì)于iSCSI協(xié)議,由于分段與重裝是有CPU來完成的,因此增加了CPU的負(fù)擔(dān)。4.4是否能保證數(shù)據(jù)安全傳送在安全性方面,因?yàn)閕SCSI的一個(gè)設(shè)計(jì)標(biāo)準(zhǔn)是它在不受信任的廣域環(huán)境中的使用,iSCSI規(guī)范允許使用多種安全方法。位于iSCSI層下的加密方案(例如,IPsec),不需要在iSCSI端設(shè)備之間進(jìn)行協(xié)商,它們對(duì)于高層應(yīng)用程序來說是透明的。對(duì)于其他的認(rèn)證實(shí)現(xiàn)(如,KERBEROS或者公鑰/私鑰的交換),iSCSI登錄過程為兩個(gè)端設(shè)備協(xié)商兩者都支持的安全類型提供了文本字段。如果協(xié)商成功,iSCSI設(shè)備之間的PDU交換將由所使用的安全程序根據(jù)適當(dāng)?shù)陌踩_認(rèn)需求而被格式化。iSNS(InternetStorageNameServer)服務(wù)器也可以協(xié)助此過程(如作為公鑰的倉庫)。光纖通道是工作在第二層的協(xié)議,原本并沒有建立相應(yīng)的安全機(jī)制以及安全通用協(xié)議,只不過是基于邏輯上的數(shù)據(jù)通道綁定。5結(jié)束語對(duì)于傳統(tǒng)的基于LAN的SAN來說,F(xiàn)C是比iSCSI更好的網(wǎng)絡(luò)互連協(xié)議,因?yàn)镕C的零復(fù)制和分段組裝機(jī)制大大地減輕了CPU的負(fù)擔(dān),加快了數(shù)據(jù)的處理。但是,隨著存儲(chǔ)應(yīng)用的增長(zhǎng),存儲(chǔ)網(wǎng)絡(luò)往往需要跨越很遠(yuǎn)的距離,由于在流量擁塞控制機(jī)制、發(fā)現(xiàn)和地址機(jī)制、超時(shí)重發(fā)機(jī)制、安全機(jī)制等方面的優(yōu)勢(shì),iSCSI比FC更適合這種情況。參考文獻(xiàn):[1]iSCSIProtocolConceptsandImplementation。CisioSystemsInc。,2001。[2]羅金平,汪東,方興等譯TOMClark。IPSAN權(quán)威指南:存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的iSCSI,iFCP和FCIP協(xié)議[M]。北京:中國電力出版社,2003[3]iSCSIReview[EB/OL].http://www.digit—life.com/artieles2/iSCSI/.[4]朱立古,趙青梅,梁哲偉,等.iSCSI協(xié)議的研究[J].計(jì)算機(jī)工程與應(yīng)用,2002,(15):44。[5]馬米.IP存儲(chǔ)展望計(jì)算機(jī)世界[EB/OL].http://www.csec。com。cn/ittouch/020716/9.htm,2002-04-08.