FC和iSCSI協(xié)議分析比較論文

時間:2022-03-12 10:16:00

導(dǎo)語:FC和iSCSI協(xié)議分析比較論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

FC和iSCSI協(xié)議分析比較論文

摘要fciscsi是目前存儲區(qū)域網(wǎng)絡(luò)SAN(StorageAreaNetwork)的兩個主流協(xié)議。該文介紹FC(FibreChannel:光纖通道)和iSCSI(InternetSCSI)協(xié)議的協(xié)議結(jié)構(gòu)以及流量控制和發(fā)現(xiàn)機制,在零復(fù)制和流量控制等方面對FC和iSCSI的協(xié)議功能進行了分析比較。

關(guān)鍵詞存儲區(qū)域網(wǎng)絡(luò);FC;iSCSI;零復(fù)制。

1引言

SAN是一種專用網(wǎng)絡(luò),是網(wǎng)絡(luò)服務(wù)器群的后端,可采用光纖通道或iSCSI等存儲專用協(xié)議連接成高速專用網(wǎng)絡(luò),使網(wǎng)絡(luò)服務(wù)器與多種存儲設(shè)備直接連接。SAN的最大特點就是可以實現(xiàn)網(wǎng)絡(luò)服務(wù)器與存儲設(shè)備之間的多對多連接,而且,這種連接是本地的高速連接。SAN架構(gòu)的優(yōu)勢在于,強大的擴展性、多種存儲設(shè)備的集中和新架構(gòu)支撐下的新型數(shù)據(jù)應(yīng)用方式,在安全意義下負(fù)責(zé)可持續(xù)的存儲和數(shù)據(jù)傳輸。目前,F(xiàn)C和iSCSI是應(yīng)用于存儲區(qū)域網(wǎng)吉比特速率的兩種主要技術(shù)。

2FC協(xié)議分析

2。1FC協(xié)議結(jié)構(gòu)

光纖通道按協(xié)議層進行分層,各層之間技術(shù)相互獨立,留有增長空間,并且由被認(rèn)可的標(biāo)準(zhǔn)化機構(gòu)進行開發(fā),分層結(jié)構(gòu)共分5層,如圖1所示。

圖1FC協(xié)議層次

⑴C-0(物理層底層):

FC-0層定義了連接的物理端口特性,包括介質(zhì)和連接器(驅(qū)動器、接收機、發(fā)送機等)的物理特性、電氣特性和光特性、傳輸速率以及其它的一些連接端口特性。

⑵FC-1(傳輸協(xié)議):

規(guī)定了8B/10B編碼方式和傳輸協(xié)議.包括串行編碼、解碼規(guī)則、特殊字符和錯誤控制。

⑶C-2(幀協(xié)議):

規(guī)定了具體的傳輸機制,包括幀格式,節(jié)點間的信息交換。

⑷C-3(公共服務(wù)):

提供高級特性的公共服務(wù),即端口間的結(jié)構(gòu)協(xié)議和流動控制,它定義了三種服務(wù):條塊化(Striping)、搜索組(HuntGroup)和多路播放(BroadcastMulticast)。

⑸FC-4(ULP映射):

定義了FibreChannel和IP,SCSI-3以及其他的上層協(xié)議(ULP)之間的接口。

2.2FC流量控制

FC中的流量控制機制是在信用度系統(tǒng)上的基礎(chǔ)上。所謂的信用度(Credit)是指設(shè)備接受額外幀的能力。信用度的多少決定了設(shè)備接收額外幀能力的大小。如果接受方?jīng)]有向發(fā)送方發(fā)出任何的信用度,那么發(fā)送方就不能發(fā)送任何幀,在信用度的基礎(chǔ)上協(xié)調(diào)幀傳送,可以避免幀的丟失,同時減少了對整個幀序列進行重傳的頻率。實際上,這種基于信用度的機制建立在終端節(jié)點能夠提供的緩沖區(qū)(TX-Buffer和RX-Buffer)的數(shù)目上,這些緩沖區(qū)用于存儲到來的數(shù)據(jù)流。例如,擁有板上存儲器的主機總線適配器,可能被分派作為接受緩沖區(qū),成為FC-1解串和譯碼功能,以及FC-2的幀重新裝配功能之間的接口。當(dāng)FC-1來提交幀的時候,這種接受緩沖區(qū)被充滿;當(dāng)FC-2的裝配線取出各個幀進行數(shù)據(jù)塊的重建時,這種接受緩沖區(qū)被清空。為了充分的利用FC的傳輸能力,最好能夠連續(xù)的多發(fā)出多個幀。這一點在事務(wù)開始前由授權(quán)充分信用度來實現(xiàn),同時利用FC的全雙工能力在幀還未接受時就發(fā)出附加的信用度。

FC中常用的兩種是端到端(EE-Credit)和緩沖區(qū)到緩沖區(qū)(BB-Credit)的流量控制。

端到端的流量控制機制(EE-Credit)是在兩個終端節(jié)點之間使用的流量控制。在兩個通信節(jié)點登錄并交換通信參數(shù)時候,建立起傳輸信用度,并且由節(jié)點本身來監(jiān)測。中間的交換機不參與端到端流量控制。如圖2所示

圖2FC基于信用的流量控制

一旦一個初始的信用度等級授權(quán)后,如果要補充信用度的話,要由接受方向發(fā)送出應(yīng)答(ACK)來實現(xiàn)。每發(fā)出一個幀發(fā)送方就消耗了一個端到端的信用度(EE-Credit),只有當(dāng)其接收到一個ACK后才能增加信用度。

光纖通道中還定義使用BB-Credit的流量控制機制(緩沖區(qū)到緩沖區(qū)的信用度),并且依靠receive-ready(R-RDY)有序集補充信用度,如圖2所示。某個附接到交換機的終端接點將在登錄到交換機的過程中建立它的BB-Credit。在交換機遠(yuǎn)端參與通信的一方將在登錄時建立其自身交換機的BB-Credit。BB-Credit沒有端到端的成分。發(fā)送方在發(fā)出一個幀時將BB-Credit減1,直到BB-Credit的數(shù)量為零的時候.此時不能再進行幀發(fā)送。在接收到R-RDY時將BB-Credit加1。BB-Credit的初始值必須是非零的。如果為零的話,說明不能再接收或者發(fā)送幀。

2.3FC發(fā)現(xiàn)機制

在FC中,當(dāng)一個新的設(shè)備加入到網(wǎng)絡(luò)中時,它要與它的網(wǎng)絡(luò)的管理者(一般是交換機)取得聯(lián)系,網(wǎng)絡(luò)管理者便會依次告知所有那些已經(jīng)注冊過的和那些需要被通知這一事件的設(shè)備。此外,在FC中,由于為了增強網(wǎng)絡(luò)的靈活性和安全性,有時可能需要進行分區(qū)。當(dāng)一個新的設(shè)備加入到網(wǎng)絡(luò)中的時候,該設(shè)備首先與它同在一個分區(qū)的其它現(xiàn)有設(shè)備完成注冊,然后連接這個設(shè)備的交換機會把這一事件告知其他的分區(qū)的設(shè)備和其它的交換機。

圖3FC發(fā)現(xiàn)機制

如圖3所示,如果當(dāng)A區(qū)的節(jié)點A加入網(wǎng)絡(luò)時,它先與FC交換機取得聯(lián)系,那么FC交換機將把A節(jié)點加入網(wǎng)絡(luò)的這一信息先后分別告知節(jié)點B和節(jié)點C以及B區(qū)的節(jié)點D和節(jié)點E。至此,A節(jié)點就加入到網(wǎng)絡(luò)中,可以與A區(qū)與B區(qū)中的設(shè)備進行通信。

3iSCSI協(xié)議分析

3.1iSCSI協(xié)議結(jié)構(gòu)

如同任何一個協(xié)議一樣,iSCSI也有一個清晰的層次結(jié)構(gòu),根據(jù)OSI模型,

iSCSI的協(xié)議棧自頂向下一共可以分為五層,如圖4所示:

圖4iSCSI協(xié)議分層模型

.SCSI層:根據(jù)應(yīng)用發(fā)出的請求建立SCSICDB(命令描述塊),并傳給iSCSI層;同時接受來自iSCSI層的CDB,并向應(yīng)用返回數(shù)據(jù)。

.iSCSI層:對SCSICDB進行封裝,以便能夠在基于TCP/IP協(xié)議的網(wǎng)絡(luò)上進行傳輸,完成SCSI到TCP/IP的協(xié)議映射。這一層是iSCSI協(xié)議的核心層。

.TCP層:提供端到端的透明可靠傳輸。

.IP層:對IP報文進行路由和轉(zhuǎn)發(fā)。

.Link層:提供點到點的無差錯傳輸

3.2iSCSI流量控制與超時重發(fā)

流量控制是指發(fā)送方控制發(fā)送數(shù)據(jù)幀到網(wǎng)絡(luò)的速率。發(fā)送方發(fā)送的速率—般是傳送路徑上的交換機、路由器或接收方可用的緩沖區(qū)大小的函數(shù)。iSCSI則采用TCP/lP協(xié)議的端到端的流量控制機制,以可變發(fā)送窗口的方式進行流量控制。發(fā)送窗口在連接建立時由雙方面定,但在通信過程中,接收方可根據(jù)自己的資源使用情況,隨時動態(tài)地調(diào)整自已的接收窗口(可增大或減小),然后告訴對方,使發(fā)送方的發(fā)送窗口和自己的接收窗口一致。

iSCSI采用的是TCP的自適應(yīng)超時重發(fā)算法,可根據(jù)網(wǎng)絡(luò)的情況動態(tài)調(diào)整。這種算法記錄每一個報文段發(fā)出的時間以及收到相應(yīng)的確認(rèn)報文段的時間,這兩個時間之差就是報文段的往返時延RTT,當(dāng)發(fā)送—個數(shù)據(jù)段時,啟動相應(yīng)的定時器,如果定時器超時確認(rèn)報文段還沒有到達,就觸發(fā)數(shù)據(jù)配發(fā)機制。如果超時之前得到確認(rèn),就記錄新的往返時延,將各個報文段的往返時延樣本進行加權(quán)平均得到新的報文段的平均往返時延RTT,顯然定時器設(shè)置的重發(fā)時間應(yīng)大于平均的往返時延RTT。在實際應(yīng)用中,RTT的算法還很復(fù)雜,目前一般采用的是Karm算法。

3.3iSCSI發(fā)現(xiàn)機制

iSCSI發(fā)起端為了和iSCSI目標(biāo)端建立iSCSI會話,iSCSI需要知道ISCSI目標(biāo)端的IP地址,TCP端口號和名字三個信息。iSCSI發(fā)現(xiàn)的目的是為了讓iSCSI發(fā)起端獲取一條到iSCSI目標(biāo)端的通路。iSCSI有三種發(fā)現(xiàn)機制:

⑴靜態(tài)配置:在iSCSI發(fā)起端已經(jīng)知道iSCSI目標(biāo)端的IP地址TCP端口號和名字信息時,iSCSI發(fā)起端不需要執(zhí)行發(fā)現(xiàn)。iSCSI發(fā)起端直接通過IP地址和TCP端口來建立TCP連接,使用iSCSI目標(biāo)端的名字來建立iSCSI會話。這種發(fā)現(xiàn)機制比較適合比較小的iSCSI體系結(jié)構(gòu)

⑵SendTarget發(fā)現(xiàn):在iSCSI發(fā)起端知道iSCSI目標(biāo)端的IP地址和TCP端口的情況下,iSCSI使用IP地址和TCP端口號建立TCP連接后建立發(fā)現(xiàn)對話。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è)備建立對話并發(fā)送SendTarget請求給iSCSI網(wǎng)關(guān)設(shè)備。iSCSI網(wǎng)關(guān)設(shè)備返回一系列和它相連的ISCSI目標(biāo)端的信息。iSCSI發(fā)起端選擇一個目標(biāo)端來建立對話。

⑶零配置發(fā)現(xiàn):這種機制用于iSCSI發(fā)送設(shè)備完全不知道ISCSI目標(biāo)端的信息的情況下。iSCSI發(fā)起端利用現(xiàn)有的IP網(wǎng)絡(luò)協(xié)議SLP(ServiceLocationProtocolforDiscovery,服務(wù)定位協(xié)議)。iSCSI目標(biāo)端使用SLP來注冊,iSCSI發(fā)起端可以通過查詢SLP來獲得注冊的iSCSI目標(biāo)端的信息。當(dāng)iSCSI目標(biāo)端加入到網(wǎng)絡(luò)中的時候,拓?fù)浣Y(jié)構(gòu)也隨之改變。雖然這種方法增加了實現(xiàn)的復(fù)雜性,但它不需要重新配置發(fā)起端即可找到新的目標(biāo)端。

4FC與iSCSI協(xié)議的比較

本文主要從下面幾個方面對兩個協(xié)議進行比較:

4.1流量控制機制對網(wǎng)絡(luò)的適應(yīng)性

FC采用基于信用的流量控制機制,當(dāng)接受者有足夠的緩存接受發(fā)信者的數(shù)據(jù)時,接受者把Credit(信用度)分配給發(fā)信者。它根據(jù)發(fā)送者的請求分配Credit,僅當(dāng)發(fā)送者沒有用完它的Credit時,它才可以發(fā)送數(shù)據(jù)。在MAN/WAN中,發(fā)送者必須要等待很長時間來獲得接受者的確認(rèn)消息(以向網(wǎng)絡(luò)發(fā)送新的數(shù)據(jù))。這種基于信任的流量控制機制降低了網(wǎng)絡(luò)的利用率。

iSCSI是基于窗口的發(fā)送機制,由于發(fā)送方可以根據(jù)網(wǎng)絡(luò)的擁塞情況動態(tài)地調(diào)整發(fā)送速率,因此iSCSI的流量控制機制對網(wǎng)絡(luò)的適應(yīng)性更好,尤其在網(wǎng)絡(luò)傳輸延遲較大的網(wǎng)絡(luò)中。

4.2超時重發(fā)機制的靈活性

在TCP/IP協(xié)議中,TCP使用自適應(yīng)重傳算法以適應(yīng)互連網(wǎng)絡(luò)時延的變化。它的要點是:TCP監(jiān)視每一條連接的性能,并計算出報文的往返時間RTT(RoundTripTime)。當(dāng)連接的性能變化時,TCP隨即修改RTT(也就是說它能自動適應(yīng)時延的變化)。RTT(RoundTripTime)被發(fā)送方用來決定是否重傳報文。而FibreChanne]使用的是靜態(tài)的超時重發(fā)機制,不會根據(jù)網(wǎng)絡(luò)的情況動態(tài)地加以改變,因此發(fā)送方可能過早或過遲地出現(xiàn)超時,這對改善網(wǎng)絡(luò)的綜合性能不利。相對而言,iSCSI可以動態(tài)地自適應(yīng)于網(wǎng)絡(luò)的當(dāng)?shù)那闆r,可以改善網(wǎng)絡(luò)的綜合性能,從這個角度看,iSCSI應(yīng)該優(yōu)于FibreChannel,更加適合目前的網(wǎng)絡(luò)情況

4.3CPU對數(shù)據(jù)封裝的負(fù)擔(dān)大小

在存儲環(huán)境中,發(fā)出的塊I/0請求的大小一般介于4K到64K之間。以8K的塊I/0請求為例,已經(jīng)知道在iSCSI中以太網(wǎng)幀的大小是1.5K,在FC中,F(xiàn)C的幀大小是2K。因此8K的塊I/O請求必須被分成多個小的段,以適應(yīng)不同的傳輸幀大小。在FC中,分段和重組操作是在網(wǎng)卡中實現(xiàn)的,因此減輕了主機CPU的負(fù)擔(dān)。對于iSCSI協(xié)議,由于分段與重裝是有CPU來完成的,因此增加了CPU的負(fù)擔(dān)。

4.4是否能保證數(shù)據(jù)安全傳送

在安全性方面,因為iSCSI的一個設(shè)計標(biāo)準(zhǔn)是它在不受信任的廣域環(huán)境中的使用,iSCSI規(guī)范允許使用多種安全方法。位于iSCSI層下的加密方案(例如,IPsec),不需要在iSCSI端設(shè)備之間進行協(xié)商,它們對于高層應(yīng)用程序來說是透明的。對于其他的認(rèn)證實現(xiàn)(如,KERBEROS或者公鑰/私鑰的交換),iSCSI登錄過程為兩個端設(shè)備協(xié)商兩者都支持的安全類型提供了文本字段。如果協(xié)商成功,iSCSI設(shè)備之間的PDU交換將由所使用的安全程序根據(jù)適當(dāng)?shù)陌踩_認(rèn)需求而被格式化。iSNS(InternetStorageNameServer)服務(wù)器也可以協(xié)助此過程(如作為公鑰的倉庫)。

光纖通道是工作在第二層的協(xié)議,原本并沒有建立相應(yīng)的安全機制以及安全通用協(xié)議,只不過是基于邏輯上的數(shù)據(jù)通道綁定。

5結(jié)束語

對于傳統(tǒng)的基于LAN的SAN來說,F(xiàn)C是比iSCSI更好的網(wǎng)絡(luò)互連協(xié)議,因為FC的零復(fù)制和分段組裝機制大大地減輕了CPU的負(fù)擔(dān),加快了數(shù)據(jù)的處理。但是,隨著存儲應(yīng)用的增長,存儲網(wǎng)絡(luò)往往需要跨越很遠(yuǎn)的距離,由于在流量擁塞控制機制、發(fā)現(xiàn)和地址機制、超時重發(fā)機制、安全機制等方面的優(yōu)勢,iSCSI比FC更適合這種情況。

參考文獻:

[1]iSCSIProtocolConceptsandImplementation。CisioSystemsInc。,2001。

[2]羅金平,汪東,方興等譯TOMClark。IPSAN權(quán)威指南:存儲區(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].計算機工程與應(yīng)用,2002,(15):44。

[5]馬米.IP存儲展望計算機世界[EB/OL].http://www.csec。com。cn/ittouch/020716/9.htm,2002-04-08.