| 1 引言 2003年2月,IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)通過(guò)了由IBM和Cisco共同發(fā)起的iSCSI(Internet Small Computer System Interface)標(biāo)準(zhǔn),使這項(xiàng)歷經(jīng)三年、修改了20個(gè)版本的技術(shù)標(biāo)準(zhǔn)終于塵埃落定。該技術(shù)將存儲(chǔ)設(shè)備、服務(wù)器同采用普通的互聯(lián)網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò)連接起來(lái),以取代快速、昂貴的光纖技術(shù)。并且由于iSCSI技術(shù)所具有的優(yōu)勢(shì),其未來(lái)的發(fā)展已經(jīng)被許多廠商看好,并先后推出了相關(guān)的產(chǎn)品,以表明對(duì)iSCSI標(biāo)準(zhǔn)的支持。標(biāo)準(zhǔn)的通過(guò),無(wú)疑將吸引更多的廠商參與到iSCSI相關(guān)產(chǎn)品的研發(fā)中,同時(shí)也將促使更多的用戶采用iSCSI解決方案構(gòu)建自己的存儲(chǔ)系統(tǒng)。 iSCSI是一個(gè)供硬件設(shè)備使用的可以在IP協(xié)議的上層運(yùn)行的SCSI指令集。簡(jiǎn)單的說(shuō),iSCSI可以實(shí)現(xiàn)在IP網(wǎng)絡(luò)上運(yùn)行SCSI協(xié)議,特別是以太網(wǎng)上進(jìn)行數(shù)據(jù)塊(block)傳輸?shù)臉?biāo)準(zhǔn),使其能夠在諸如高速千兆以太網(wǎng)上進(jìn)行路由選擇。它是由IBM下屬的兩大研發(fā)機(jī)構(gòu):加利福尼亞Almaden和以色列Haifa研究中心共同開發(fā)的現(xiàn)今,許多網(wǎng)絡(luò)存儲(chǔ)提供商致力于將SAN(Storage Area Networking 存儲(chǔ)區(qū)域網(wǎng)絡(luò))中使用的光纖通道設(shè)定為一種實(shí)用標(biāo)準(zhǔn),但是其架構(gòu)需要高昂的建設(shè)成本,遠(yuǎn)非一般企業(yè)所能夠承受。與之相比較,NAS(Network Attached Storage 網(wǎng)絡(luò)接入存儲(chǔ))技術(shù)雖然成本低廉,但是卻受到帶寬消耗的限制,無(wú)法完成大容量存儲(chǔ)的應(yīng)用,而且系統(tǒng)難以滿足開放性的要求。而且隨著可視電話、無(wú)線視頻通信等各種應(yīng)用對(duì)計(jì)算機(jī)I/O帶寬需求的不斷增長(zhǎng),傳統(tǒng)的并行SCSI(Small Computer System Interface)總線的長(zhǎng)度限制,使我們不得不考慮如何通過(guò)某種串行化模式來(lái)克服并行SCSI總線的這種局限性。 iSCSI的使用正好使上述問(wèn)題迎刃而解,其基于IP協(xié)議,卻擁有SAN大容量集中開放式存儲(chǔ)的品質(zhì)。這對(duì)于一邊要面對(duì)信息爆炸,另一邊卻身處"數(shù)據(jù)孤島"的眾多中小企業(yè)無(wú)疑具有巨大的吸引力。依仗目前被廣泛采用的SCSI存儲(chǔ)標(biāo)準(zhǔn)和成熟的TCP/IP協(xié)議,iSCSI標(biāo)準(zhǔn)的出現(xiàn)和它的優(yōu)越性和經(jīng)濟(jì)性,使其有著廣泛的市場(chǎng)和應(yīng)用前景,勢(shì)必引發(fā)一場(chǎng)通信網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)的變革。 2 iSCSI的體系結(jié)構(gòu)與工作狀態(tài)概況 2.1 iSCSI的體系結(jié)構(gòu) iSCSI的目標(biāo)是建立完全同構(gòu)的IP SAN,讓客戶利用完全相同的網(wǎng)絡(luò)基礎(chǔ)設(shè)施--以太網(wǎng)和IP,同時(shí)滿足網(wǎng)絡(luò)通信和存儲(chǔ)骨干方面的應(yīng)用需求。 iSCSI存儲(chǔ)網(wǎng)主要由iSCSI請(qǐng)求方(如文件服務(wù)器)和iSCSI目標(biāo)方(如磁盤陣列和磁帶子系統(tǒng))組成,體系結(jié)構(gòu)如圖1。 2.2 iSCSI的簡(jiǎn)要工作原理 iSCSI協(xié)議最大的優(yōu)勢(shì)在于它是依托于TCP/TP協(xié)議棧的,從理論上來(lái)說(shuō),任何兩臺(tái)具有TCP/IP主機(jī)都可以通過(guò)iSCSI協(xié)議實(shí)現(xiàn)設(shè)備級(jí)共享。也就是說(shuō),無(wú)論距離多遠(yuǎn)、無(wú)論中間是何種網(wǎng)絡(luò)介質(zhì),也無(wú)論連接的兩端主機(jī)運(yùn)行的是何種操作系統(tǒng),iSCSI都可以實(shí)現(xiàn)跨平臺(tái)的設(shè)備級(jí)共享。iSCSI發(fā)起端和目標(biāo)端都有自己的命名規(guī)范,每一個(gè)發(fā)起端和目標(biāo)端都有一個(gè)WWUI(世界唯一標(biāo)識(shí)符),WWUI是獨(dú)立于發(fā)起端和目標(biāo)端的位置的。iSCSI目標(biāo)端擁有名字和地址,iSCSI地址唯一標(biāo)識(shí)了到達(dá)iSCSI目標(biāo)端的路徑,WWUI是地址的一部分。iSCSI地址形式規(guī)定位和URL一樣,如:<domain-name>[:<port>]/<wwui>.iSCSI發(fā)起端和目標(biāo)端之間的會(huì)話(session)必須經(jīng)過(guò)iSCSI登錄過(guò)程才能夠建立。iSCSI登錄階段用于兩iSCSI實(shí)體間協(xié)商變量參數(shù),也可能會(huì)引起某種安全驗(yàn)證,以確保連接的安全性。若iSCSI登錄階段成功,目標(biāo)端會(huì)發(fā)出“接受登錄”給發(fā)起端,否則拒絕登錄并關(guān)閉TCP連接。登錄完成之后,iSCSI會(huì)話就進(jìn)入全雙工階段(FullFeaturePhase),開始正常的SCSI交互。并且iSCSI在系統(tǒng)之間的連接是通過(guò)標(biāo)準(zhǔn)的IP網(wǎng)絡(luò)基礎(chǔ)設(shè)施實(shí)現(xiàn)的,而不是通過(guò)SCSI線纜或Fibre Channel。SCSI命令的生成表示可以通過(guò)啟動(dòng)器上的軟件以標(biāo)準(zhǔn)的TCP/IP和現(xiàn)成的NIC完成。但是,由于處理TCP/IP協(xié)議時(shí)需要占用很多CPU資源,所以這樣的“軟”實(shí)現(xiàn)方法在性能上會(huì)有缺陷。有了iSCSI HBA(Host Bus Adapter,主機(jī)總線適配器)后,這個(gè)問(wèn)題就解決了,HBA可以分擔(dān)協(xié)議的處理,放入千兆以太網(wǎng)HBA的固件中。這樣可以大大降低對(duì)CPU資源的占用率,為應(yīng)用程序的處理釋放出了更多的CPU周期。圖2展示出了iSCSI、TCP和IP堆棧分別在千兆以太網(wǎng)HBA上駐存的位置。用TCP/IP卸載引擎實(shí)現(xiàn)的HBA有可能在CPU資源占用率不到10%的情況下達(dá)到線路速率。 2.3 iSCSI的工作流程 iSCSI的工作是按以下流程進(jìn)行工作的: 1) 應(yīng)用程序或用戶發(fā)出對(duì)數(shù)據(jù)、文件或應(yīng)用程序的請(qǐng)求;操作系統(tǒng)生成SCSI命令和數(shù)據(jù)請(qǐng)求;命令和請(qǐng)求被封裝起來(lái)并加上信息包標(biāo)題;信息包在以太網(wǎng)連接線路上發(fā)送; 2) 在接收端,將信息包分解,或者如果信息包原來(lái)是經(jīng)過(guò)加密的話就對(duì)其解密,把SCSI命令和數(shù)據(jù)分離; 3) 將SCSI命令和數(shù)據(jù)發(fā)送給存儲(chǔ)設(shè)備。同樣,將數(shù)據(jù)返回,以響應(yīng)使用iSCSI協(xié)議的請(qǐng)求。 圖3為其工作流程示意圖。 2.4 iSCSI的協(xié)議模型 我們知道,任何一個(gè)協(xié)議都有其層次性架構(gòu),iSCSI也不例外,它也有一個(gè)清晰的層次結(jié)構(gòu)。根據(jù)OSI模型,iSCSI的協(xié)議棧如圖4所示。 圖5則顯示了數(shù)據(jù)通過(guò)iSCSI協(xié)議傳輸?shù)姆庋b情況,從圖5可以看出,iSCSI協(xié)議對(duì)數(shù)據(jù)封裝與TCP/IP協(xié)議對(duì)數(shù)據(jù)的封裝區(qū)別不大,惟一的區(qū)別只是在數(shù)據(jù)域之前增加了一層封裝,這種封裝就是iSCSI封裝。 2.5 iSCSI協(xié)議功能組件劃分 iSCSI協(xié)議規(guī)范確定了iSCSI協(xié)議在IP網(wǎng)絡(luò)上的可靠傳輸,包括尋址和命名慣例、會(huì)話管理、差錯(cuò)處理和安全。 1) 尋址和命名慣例 iSCSI設(shè)備有獨(dú)立的網(wǎng)絡(luò)實(shí)體,因?yàn)樗荌P網(wǎng)絡(luò)的參與者,這種網(wǎng)絡(luò)實(shí)體可以有一個(gè)或幾個(gè)iSCSI節(jié)點(diǎn),如圖6所示。 在網(wǎng)絡(luò)實(shí)體中,iSCSI節(jié)點(diǎn)是SCSI設(shè)備的標(biāo)識(shí)符,每個(gè)iSCSI節(jié)點(diǎn)都有一個(gè)獨(dú)一無(wú)二的名稱(其長(zhǎng)度最多可以達(dá)255個(gè)字節(jié)),這種名稱是根據(jù)Internet節(jié)點(diǎn)的命名規(guī)則進(jìn)行組織的,并可由DNS系統(tǒng)處理。iSCSI名稱提供了一個(gè)iSCSI設(shè)備物理位置的正確標(biāo)識(shí),從而可以更方便地將IP地址和TCP端口進(jìn)行綁定,同時(shí)可以處理設(shè)備之間的數(shù)據(jù)傳送。iSCSI協(xié)議和iSCSI命名機(jī)制支持別名的使用,這樣系統(tǒng)管理員就可以更好地管理iSCSI設(shè)備。 2) 會(huì)話管理 通過(guò)特殊的命令,iSCSI會(huì)話包括兩個(gè)階段:登錄階段和工作階段。 iSCSI的登錄階段等同于Fibre Channel端口登錄過(guò)程,該過(guò)程是用來(lái)在兩個(gè)網(wǎng)絡(luò)實(shí)體調(diào)節(jié)中調(diào)整各種參數(shù)并確認(rèn)啟動(dòng)器的訪問(wèn)權(quán)限。如果iSCSI登錄階段成功完成,目標(biāo)器將確認(rèn)啟動(dòng)器的登錄,否則登錄將不被確認(rèn),同時(shí)TCP連接中斷。 登錄一旦確認(rèn),iSCSI會(huì)話將進(jìn)入正常工作階段。如果建立了多個(gè)TCP連接,iSCSI將要求每個(gè)命令/響應(yīng)對(duì)應(yīng)一個(gè)TCP連接。但是,不同的數(shù)據(jù)傳輸可以在一個(gè)會(huì)話中通過(guò)不同的TCP連接。 在數(shù)據(jù)傳送端,啟動(dòng)器發(fā)送/接收最新的數(shù)據(jù),而目標(biāo)器在完成數(shù)據(jù)傳輸后發(fā)送確認(rèn)響應(yīng)。iSCSI注銷命令用來(lái)完成一個(gè)會(huì)話,它也會(huì)發(fā)送在出現(xiàn)連接錯(cuò)誤的時(shí)候,實(shí)現(xiàn)連接中斷處理。 3) 差錯(cuò)處理 在IP網(wǎng)絡(luò),特別是在WAN中,數(shù)據(jù)傳輸?shù)腻e(cuò)誤是經(jīng)常出現(xiàn)的,iSCSI協(xié)議需要提供錯(cuò)誤處理機(jī)制。要實(shí)現(xiàn)錯(cuò)誤的處理與恢復(fù),啟動(dòng)器和目標(biāo)器在命令確認(rèn)前,都要有命令緩沖的功能。各終端要保證在協(xié)議數(shù)據(jù)單元丟失或損壞后可以恢復(fù)原來(lái)的數(shù)據(jù)。 4) 安全性 因?yàn)閕SCSI是用來(lái)在網(wǎng)絡(luò)中傳輸數(shù)據(jù),所以iSCSI協(xié)議規(guī)范考慮到了許多安全性方法。iSCSI的加密是在下層實(shí)現(xiàn),從而不需要iSCSI終端設(shè)備之間建立特別的握手協(xié)議,這些對(duì)上層是透明的。對(duì)于其他認(rèn)證的實(shí)現(xiàn),如公有/私有密鑰的交換,iSCSI登錄階段就提供了終端設(shè)備之間都支持的握手協(xié)議的文本域。如果握手成功,iSCSI設(shè)備之間的PDUs交換將按照適當(dāng)?shù)陌踩蟾袷綄?shí)現(xiàn)。 3 iSCSI亟待解決的問(wèn)題 iSCSI標(biāo)準(zhǔn)剛剛獲得批準(zhǔn),在今后的發(fā)展道路上肯定還存在許多亟待解決的問(wèn)題。首先,iSCSI的發(fā)展需要時(shí)間。iSCSI技術(shù)誕生的時(shí)間不長(zhǎng),標(biāo)準(zhǔn)不是很清晰,還沒(méi)有100%獲得認(rèn)同,技術(shù)還要進(jìn)一步成熟;技術(shù)上,iSCSI要求不同的操作系統(tǒng)有內(nèi)置的支持,而不是目前這種通過(guò)軟件來(lái)實(shí)現(xiàn)的方式;性能上,iSCSI加速網(wǎng)卡目前還沒(méi)有實(shí)現(xiàn)規(guī)模市場(chǎng)化,價(jià)格很高,無(wú)法普及。這些都需要一個(gè)發(fā)展過(guò)程。 iSCSI技術(shù)的兼容性是業(yè)界目前關(guān)注的一個(gè)問(wèn)題,是iSCSI發(fā)展的關(guān)鍵。 目前iSCSI支持的前端服務(wù)器平臺(tái)相對(duì)有限,FC的支持平臺(tái)及產(chǎn)品較多,而iSCSI支持平臺(tái)較少,可選擇的產(chǎn)品也不多,實(shí)施較復(fù)雜;解決了這一障礙,iSCSI技術(shù)就會(huì)快速發(fā)展。 在試用中,發(fā)現(xiàn)了這樣一個(gè)問(wèn)題:雖然iSCSI能在普通IP網(wǎng)絡(luò)上傳輸SCSI控制命令,但對(duì)遠(yuǎn)端的存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)時(shí),即使在100Mbps的網(wǎng)絡(luò)上仍然達(dá)不到我們所期望的速度。如果要發(fā)揮出SCSI設(shè)備的高速度,還需要更寬的網(wǎng)絡(luò)環(huán)境。iSCSI的性能,網(wǎng)絡(luò)帶寬是影響iSCSI性能的直接因素,所以建立基于Iscsir 網(wǎng)絡(luò)存儲(chǔ)環(huán)境同時(shí)也增加了對(duì)千兆以太網(wǎng)的需求。在高速的網(wǎng)絡(luò)上采用iSCSI這樣的分布式數(shù)據(jù)存儲(chǔ),可以有效地提高網(wǎng)絡(luò)的使用率,提高系統(tǒng)的整合性,便于集中管理,降低運(yùn)行成本。 4 應(yīng)用前景 iSCSI是網(wǎng)絡(luò)存儲(chǔ)領(lǐng)域最活躍的研究方向之一,它建立在存儲(chǔ)領(lǐng)域和網(wǎng)絡(luò)領(lǐng)域應(yīng)用最廣泛的兩個(gè)協(xié)議的基礎(chǔ)上,因此,可以利用已有的大量的研究成果來(lái)實(shí)現(xiàn)一個(gè)高性能的存儲(chǔ)網(wǎng)絡(luò)。同時(shí),iSCSI可以利用現(xiàn)有的Ethernet網(wǎng)絡(luò)實(shí)現(xiàn)基于TCP/IP存儲(chǔ)網(wǎng)絡(luò),將大大地減少企業(yè)在存儲(chǔ)方面的開支,特別是在需要用到大量存儲(chǔ)設(shè)備的電信系統(tǒng)網(wǎng)絡(luò),在現(xiàn)有設(shè)備的基礎(chǔ)上應(yīng)用iSCSI,將能大幅度提高電信網(wǎng)絡(luò)的通信質(zhì)量和安全性能,極大地降低營(yíng)運(yùn)成本。雖然iSCSI尚存在上述問(wèn)題,而隨著深入研究和技術(shù)的進(jìn)步,這些問(wèn)題將很快地完全解決,在走向未來(lái)將廣泛應(yīng)用的存儲(chǔ)新技術(shù)——iSCSI的前面,必將是一條飛速發(fā)展的光明大道。 |