IP網絡存儲之iSCSI的概念與工作原理

本章主要介紹基於IP SAN的網絡存儲iSCSI。iSCSI技術以其低廉的構建成本和優秀的存儲性能,博得了很多CIO和存儲管理員的喜愛,目前陸續進入企業應用領域,推動了企業的存儲環境向集中式轉變。雖然,目前對於iSCSI應該在什麼樣的環境中使用還存在着諸多爭議,但是iSCSI的前途是光明的,在未來的存儲世界中,iSCSI一定會佔據重要的席位。本章重點介紹iSCSI在Windows和Linux環境下的配置和使用。

存儲的概念與術語

在存儲的世界裏,有各種各樣的名詞和術語,常見的有SCSI、FC、DAS、NAS、SAN等。本節重點介紹與存儲相關的術語和知識。

1、SCSI介紹

SCSI是小型計算機系統接口(Small Computer System Interface)的簡稱,SCSI作爲輸入/輸出接口,主要用於硬盤、光盤、磁帶機、掃描儀、打印機等設備。

2、FC介紹

FC是光纖通道(Fibre Channel)的簡稱,是一種適合於千兆數據傳輸的、成熟而安全的解決方案。與傳統的SCSI技術相比,FC提供更高的數據傳輸速率,更遠的傳輸距離,更多的設備連接支持,更穩定的性能,更簡易的安裝。

3、DAS介紹

DAS是直連式存儲(Direct-Attached Storage)的簡稱,是指將存儲設備通過SCSI接口或光纖通道直接連接到一臺計算機上。當服務器在地理上比較分散,很難通過遠程進行互連時,DAS是比較好的解決方案。但是這種式存儲只能通過與之連接的主機進行訪問,不能實現數據與其他主機的共享,同時,DAS會佔用服務器操作系統資源,例如CPU資源、IO資源等,並且數據量越大,佔用操作系統資源就越嚴重。

4、NAS介紹

網絡接入存儲(Network-Attached Storage)簡稱NAS,它通過網絡交換機連接存儲系統和服務器,建立專門用於數據存儲的私有網絡,用戶通過TCP/IP協議訪問數據,採用業界標準的文件共享協議如NFS、HTTP、CIFS來實現基於文件級的數據共享。NAS存儲使文件共享訪問變得更方便和快捷,並且能很容易地增加存儲容量。通過專業化的文件服務器與存儲技術相結合,NAS爲那些需要共享大量文件數據的企業提供了一個高效的、高可靠的、高性價比的解決方案。但是NAS也有一定的侷限性,它會受到網絡帶寬和網絡擁堵的影響,在一定程度上限制了NAS的網絡傳輸能力。

5、SAN介紹

存儲區域網絡(Storage Area Network)簡稱SAN,它是一種通過光纖交換機、光纖路由器、光纖集線器等設備將磁盤陣列、磁帶等存儲設備與相關服務器連接起來的高速專用子網。

SAN由3個部分組成,分別是連接設備(如路由器、光纖交換機和Hub)、接口(如SCSI、FC)、通信協議(如IP和SCSI)。這3個部分再加上存儲設備和服務器就構成了一個SAN系統。SAN捉供了一個靈活的、高性能的和高擴展性的存儲網絡環境,它可以更加有效地傳輸海量的數據塊。由於採用了光纖接口,因此SAN還具有更高的帶寬,同時,SAN也使統一管理和集中控制實現簡化。現在SAN已經廣泛應用於ISP和銀行等,隨着用戶業務量的增大,SAN的應用前景將越來越光明。

iSCSI介紹

iSCSI的概念

iSCSI,即Internet SCSI,是IETF制訂的一項標準,用於將SCSI數據塊映射爲以太網數據包。從根本上說,它是一種基於IP Storage理論的新型存儲技術,該技術將存儲行業廣泛應用的SCSI接口技術與IP網絡技術相結合,可以在IP網絡上構建SAN。簡單地說,iSCSI就是在IP網絡上運行SCSI協議的一種網絡存儲技術。iSCSI技術最初由Cisco和IBM兩家開發,並且得到了廣大IP存儲技術愛好者的大力支持,這幾年得到迅速的發展壯大。

對於中小企業的存儲網絡來說,iSCSI是個非常好的選擇。首先,從技術實現上來講,iSCSI是基於IP協議的技術標準,它允許網絡在TCP/IP協議上傳輸SCSI命令,實現SCSI和TCP/IP協議的連接,這樣用戶就可以通過TCP/IP網絡來構建SAN,只需要不多的投資,就可以方便、快捷地對信息和數據進行交互式傳輸和管理。但是,在iSCSI出現之前,構建SAN的唯一技術是利用光纖通道,這要花費很大的建設成本,一般中小企業無法承擔。其次,iSCSI技術解決了傳輸效率、存儲容量、兼容性、開放性、安全性等方面的諸多問題,在使用性能上絕對不輸給商業的存儲系統或光纖存儲網絡。

iSCSI的優勢主要表現爲:首先,iSCSI沿用TCP/IP協議,而TCP/IP是在網絡方面最通用、最成熟的協議,且IP網絡的基礎建設非常完善,同時,SCSI技術是被磁盤和磁帶等設備廣泛採用的存儲標準,這兩點使iSCSI的建設費用和維護成本非常低廉;其次,iSCSI支持一般的以太網交換機而不是特殊的光纖通道交換機,從而減少了異構網絡帶來的麻煩;還有,iSCSI是通過IP封包傳輸存儲命令,因此可以在整個Internet上傳輸數據,沒有距離的限制。

iSCSI的組成

一個簡單的iSCSI系統大致由以下部分組成:

  1. iSCSI Initiator或者iSCSI HBA
  2. iSCSI Target
  3. 以太網交換機
  4. 一臺或者多臺服務器

一個完整的iSCSI系統的拓撲結構如圖下圖所示:
在這裏插入圖片描述
iSCSI服務器用來安裝iSCSI驅動程序,即安裝iSCSI Initiator;
Storage Router可以是以太網交換機或者路由器;i
SCSI存儲設備可以是iSCSI磁盤陣列,也可以是具有存儲功能的PC服務器。

下面詳細介紹一下iSCSI Initiator與iSCSI Target的含義

1、iSCSI Initiator

iSCSI Initiator是一個安裝在計算機上的軟件或硬件設備,它負責與iSCSI存儲設備進行通信。

iSCSI服務器與iSCSI存儲設備之間的連接方式有兩種:

  1. 第一種是基於軟件的方式,即iSCSI Initiator軟件。在iSCSI服務器上安裝Initiator後,Initiator軟件可以將以太網卡虛擬爲iSCSI卡,進而接受和發送iSCSI數據報文,從而實現主機和iSCSI存儲設備之間的iSCSI協議和TCP/IP協議傳輸功能。這種方式只需以太網卡和以太網交換機,無需其他設備,因此成本是最低的。但是iSCSI報文和TCP/IP報文轉換需要消耗iSCSI服務器的一部分CPU資源,只有在低I/O和低帶寬性能要求的應用環境中才能使用這種方式。

  2. 第二種是硬件iSCSI HBA (Host Bus Adapter)卡方式,即iSCSI Initiator硬件。這種方式需要先購買iSCSI HBA卡,然後將其安裝在iSCSI服務器上,從而實現iSCSI服務器與交換機之間、iSCSI服務器與存儲設備之間的高效數據傳輸。與第一種方式相比,硬件iSCSIHBA卡方式不需要消耗iSCSI服務器的CPU資源,同時硬件設備是專用的,所以基於硬件的iSCSI Initiator可以提供更好的數據傳輸和存儲性能。但是,iSCSI HBA卡的價格比較昂貴,因此用戶要在性能和成本之間進行權衡。

    iSCSI Initiator軟件一般都是免費的,Centos和RHEL對iSCSI Initiator的支持都非常不錯,現在的Linux發行版本都默認自帶了iSCSI Initiator。

2、iSCSI Target

一個可以用於存儲數據的iSCSI磁盤陣列或者具有iSCSI功能的設備都可以被稱爲“iSCSI Target”,因爲大多數操作系統都可以利用一些軟件將系統轉變爲一個“iSCSI Target”。本章重點講述如何構建一個PC構架的iSCSI存儲系統。所謂PC構架就是選擇一個普通的、性能優良的、可支持多塊磁盤的PC(一般爲PC服務器),再選擇一款相對成熟穩定的iSCSI Target軟件,將iSCSI Target軟件安裝在PC服務器上,使普通的PC服務器轉變成一臺iSCSI存儲設備,並通過PC服務器的以太網卡對外提供iSCSI數據傳輸服務。

目前大多數iSCSI Target軟件都是收費的,例如DataCorc Software的SANmelody,FalconStor Software的iSCSI Server for Windows等,這些都是Windows平臺支持的。不過,也有一些Linux平臺的開源iSCSI Target軟件,例如iSCSI Enterprise Target,後面的內容會重點介紹這個軟件。

利用iSCSI Target軟件,可以將服務器的存儲空間分配給客戶機使用,客戶機可以像使用本地硬盤一樣使用iSCSI磁盤,包括對其進行分區、格式化及讀寫等。而且每個客戶端都可以向iSCSI磁盤寫數據,互不干擾,並且不會破壞存儲到服務器中的數據。同時,iSCSITarget軟件對用戶權限控制非常靈活,支持配置文件。

我們知道,iSCSI是使用TCP/IP協議進行通信的,因此,將iSCSI兩端連接起來,僅僅需要一個以太網絡就可以了。由此可知,iSCSI的存儲性能和這個以太網絡有直接關係,所以最好在iSCSI網絡中使用千兆以太網交換機,劣質的網絡設備會嚴重影響存儲系統的性能,也就是說,要爲每個服務器配備高質量的千兆以太網交換機,並提供兩個連接。對於iSCSI Target,應該爲每個獨立陣列中的兩個獨立端口配備交換機,最後將交換機連接起來,採用這種配置方式,即使兩個交換機中的一個出現了故障,整個iSCSI存儲系統仍然能夠正常工作,這保證了存儲系統的不間斷運行。

iSCSI的工作原理

要理解iSCSI的工作原理,就必須知道iSCSI的層次結構。根據OSI模型,iSCSI的協議自頂向下一共可以分爲三層,如圖7-2所示
在這裏插入圖片描述

下面對每個分層進行簡單介紹。

  1. SCSI層:根據客戶端發出的請求建立SCSI CDB(命令描述塊),並傳給iSCSI層。同時接收來自iSCSI層的CDB,並嚮應用返回數據。

  2. iSCSI層:對SCSI CDB進行封裝,以便能夠在基於TCP/IP協議的網絡上進行傳輸,完成SCSI到TCP/IP的協議映射。這一層是iSCSI協議的核心層。本章也主要針對這一層的配置和管理進行介紹。
    TCP/IP層:對IP報文進行路由和轉發,並且提供端到端的透明可靠的傳輸。

  3. iSCSI協議定義了在TCP/IP網絡發送、接收數據塊存儲數據的規則和方式。先發送端將SCSI命令和數據封裝到TCP/IP包中,然後通過IP網絡轉發,接收端收到TCP/IP包之後,將其還原爲SCSI命令和數據並執行,執行完成後,將返回的SCSI命令和數據再封裝到TCP/IP包中,之後再傳回發送端。這樣就完成了數據傳輸的整個過程。

iSCSI的整個數據傳輸過程在用戶看來是完全透明的,用戶使用遠端的存儲設備就像使用本地的硬盤設備一樣。不過,這只是理論狀態,實際上iSCSI的數據傳輸速率並不能完全達到本地硬盤的數據傳輸速率,但差別並不明顯。而且這種網絡存儲模式還有一個優點是安全性高,這對於數據集中存儲的iSCSI來說顯然非常重要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章