iSCSI存儲系統知識


一、概述

  SCSI 即小型計算機系統接口(Small Computer System Interface;簡寫:SCSI),一種用於計算機和外部設備之間(硬盤、光驅、軟驅、打印機等)系統級接口的獨立處理器標准。SCSI是一種智能的通用接口標准,它是各種計算機和外部設備之間的接口標准。

  iSCSI是由Cisco和IBM發起的,它將SCSI命令封裝在TCP/IP包里,並使用一個iSCSI幀頭。它基於IP協議棧,假設以不可靠的網絡為基礎,依靠TCP恢復丟失的數據包。

  背景:

    相比直連存儲,網絡存儲解決方案能夠更加有效地共享,整合和管理資源。從服務器為中心的存儲轉向網絡存儲,一直依賴於數據傳輸技術的發展,速度要求與直連存儲相當,甚至更高,同事需要克服並行SCSI固有的局限性。

             所有數據在沒有文件系統格式化的情況下,都以塊的式存儲於磁盤並行SCSI將數據以塊的形式傳送至存儲,但是,對於網絡它的用處相當有限,因為線纜不能超過25m,而且最多連接16個設備;

    光纖通道(FC,Fiber Channel,跑FC協議)是目前SAN的主導架構,它在專門的高速網絡上分離存儲資源。光纖通道協議與互聯技術起源於滿足高性能傳送塊數據的需求,同時克服直連存儲的連接和距離限制。通常光纖通道設備連接距離可達到10000米,甚至數十萬米,並且對於連接在SAN之上的設備沒有數量要求。

   與SAN不同,NAS將數據以文件的形式傳輸並且可以直接連接至IP網絡。部署NAS設備傳送數據庫塊數據,使用基於SCSI的光纖通道協議,比Server Message Block(SMB)協議更加高效。

二、什么是iSCSI:

  iSCSI是一種使用TCP/IP協議,在現有IP網絡上傳輸SCSI塊命令的工業標准,它是一種在現有的IP網絡上無需安裝單獨的光纖網絡即可同時傳輸消息和塊數據的突破性技術。iSCSI基於應用非常廣泛的TCP/IP協議,將SCSI命令/數據塊封裝為iSCSI包,再封裝至TCP 報文,然后封裝到

IP 報文中。iSCSI通過TCP面向連接的協議來保護數據塊的可靠交付。由於iSCSI基於IP協議棧,因此可以在標准以太網設備上通過路由或交換機來傳輸。

  

  

  iSCSI架構依然遵循典型的SCSI模式:

    隨着光纖通道的發明,initiator和target之間的SCSI線纜已被光纖線纜所代替。

    現在隨着iSCSI的出現光纖線纜又被價格低廉的網線和TCP/IP網絡所替代。

  

  雖然現有的光纖存儲網絡具有高吞吐量的優勢,與其他廠商之間的互通性仍是一個短板。而基於成熟的TCP/IP協議的iSCSI網絡,不僅免於互通性限制而且在安全性等方面具備優勢。同時,由於千兆以太網的增量部署,iSCSI的吞吐量也會隨之增加,與光線通道匹敵甚至超越光線通道。

三、iSCSI SAN概念解析:

  iSCSI SAN組件與FC SAN組件相類似。包括以下部件:

    iSCSI Client/Host

           系統中的iSCSI客戶端或主機(也稱為iSCSI initiator),諸如服務器,連接在IP網絡並對iSCSI target發起請求以及接收響應。每一個iSCSI主機通過唯一的IQN來識別,類似於光纖通道的WWN。

    要在IP網絡上傳遞SCSI塊命令,必須在iSCSI主機上安裝iSCSI驅動。推薦通過GE適配器(每秒1000 megabits)連接至iSCSI target。如同標准10/100適配器,大多數Gigabit適配器使用Category 5 或Category 6E線纜。適配器上的各端口通過唯一的IP地址來識別。

    iSCSI Target:

      iSCSI target是接收iSCSI命令的設備。此設備可以是終端節點,如存儲設備,或是中間設備,如IP和光纖設備之間的連接橋。每一個iSCSI target通過唯一的IQN來標識,存儲陣列控制器上(或橋接器上)的各端口通過一個或多個IP地址來標識。

  本機與異構IP SAN:

    iSCSI initiator與iSCSI target之間的關系如圖1所示。

      本例中,iSCSI initiator(或client)是主機服務器,而iSCSI target是存儲陣列。此拓撲稱為本機iSCSI SAN,它包含在TCP/IP上傳輸SCSI協議的整個組件。

    與之相反,異構IP SAN,如下圖所示,包含在TCP/IP與光纖交換結構傳輸SCSI的組件。

      為了實現這一點,需要在IP與光纖通道之間安裝連接橋或網關設備。連接橋用於TCP/IP與光纖通道之間的協議轉換。

    因此iSCSI主機將存儲看做iSCSI target。直接連接光纖通道target的服務器必須包含HBA而不是iSCSI主機的網絡適配卡。iSCSI主機可使用NIC或HBA。

四、iSCSI 存儲系統四大架構:

  控制器系統架構:
    iSCSI的核心處理單元采用與FC光纖存儲設備相同的結構。即采用專用的數據傳輸芯片、專用的RAID數據校驗芯片、專用的高性能cache緩存和專用的嵌入式系統平台。打開設備機箱時可以看到iSCSI設備內部采用無線纜的背板結構,所有部件與背板之間通過標准或非標准的插槽鏈接在一起,而不是普通PC中的多種不同型號和規格的線纜鏈接。

    控制器架構iSCSI存儲內部基於無線纜的背板鏈接方式,完全消除了鏈接上的單點故障,因此系統更安全,性能更穩定。一般可用於對性能的穩定性和高可用性具有較高要求的在線存儲系統,比如:中小型數據庫系統,大型數據的庫備份系統,遠程容災系統,網站、電力或非線性編輯制作網等。

  連接橋系統架構:

    整個iSCSI存儲系統架構分為兩個部分,一個部分是前端協議轉換設備,另一部分是后端存儲。結構上類似NAS網關及其后端存儲設備。

   前端協議轉換部分一般為硬件設備,主機接口為千兆以太網接口,磁盤接口一般為SCSI接口或FC接口,可連接SCSI磁盤陣列和FC存儲設備。通過千兆以太網主機接口對外提供iSCSI數據傳輸協議。后端存儲一般采用SCSI磁盤陣列和FC存儲設備,將SCSI磁盤陣列和FC存儲設備的主機接口直接連接到iSCSI橋的磁盤接口上。iSCSI連接橋設備本身只有協議轉換功能,沒有RAID校驗和快照、卷復制等功能。創建RAID組、創建LUN等操作必須在存儲設備上完成,存儲設備有什么功能,整個iSCSI設備就具有什么樣的功能

  PC系統架構:
    即選擇一個普通的、性能優良的、可支持多塊磁盤的PC(一般為PC服務器和工控服務器),選擇一款相對成熟穩定的iSCSI target軟件,將iSCSI target軟件安裝在PC服務器上,使普通的PC服務器轉變成一台iSCSI存儲設備,並通過PC服務器的以太網卡對外提供iSCSI數據傳輸協議。
  在PC架構的iSCSI存儲設備上,所有的RAID組校驗、邏輯卷管理、iSCSI 運算、TCP/IP 運算等都是以純軟件方式實現,因此對PC的CPU和內存的性能要求較高。另外iSCSI存儲設備的性能極容易收PC服務器運行狀態的影響。 

  PC+NIC系統架構
    PC+iSCSI target軟件方式是一種低價低效比的iSCSI存儲系統架構解決方案,另外還有一種基於PC+NIC的高階高效性iSCSI存儲系統架構方案。

    這款iSCSI存儲系統架構方案是指在PC服務器中安裝高性能的TOE智能NIC卡,將CPU資源較大的iSCSI運算、TCP/IP運算等數據傳輸操作轉移到智能卡的硬件芯片上,由智能卡的專用硬件芯片來完成iSCSI運算、TCP/IP運算等,簡化網絡兩端的內存數據交換程序,從而加速數據傳輸效率,降低PC的CPU占用,提高存儲的性能。

五、iSCSI協議

  iSCSI協議是讓SCSI在TCP協議之上工作的傳輸協議,是一種SCSI遠程過程調用模型到TCP協議的映射。SCSI命令加載在iSCSI請求之上,同時SCSI狀態和響應也由iSCSI來承載。iSCSI同樣使用請求響應機制。

 

  在iSCSI 配置中,iSCSI 主機或服務器將請求發送到節點。 主機包含一個或多個連接到IP 網絡的啟動器,以發出請求,並接收來自iSCSI 目標的響應。

   每個啟動器和目標都指定了一個唯一的iSCSI 名稱,如 iSCSI 限定名 (IQN) 或擴展的唯一標識(EUI)。 IQN 是 223 字節的 ASCII 名稱。EUI 是 64 位標識。iSCSI 名稱代表全球唯一命名方案,該方案用於標識各啟動器或目標,其方式與使用全球節點名(WWNN) 來標識光纖通道光纖網中設備的方式相同。

  

  

   iSCSI 目標是響應 iSCSI 命令的設備。iSCSI 設備可以是諸如存儲設備的結束節點,或者可以是諸如IP 與光纖通道設備之間的網橋的中間設備。每個iSCSI 目標由唯一的iSCSI 名稱標識。

   要通過 IP 網絡傳輸 SCSI 命令,iSCSI 驅動程序必須安裝到iSCSI 主機和目標中。驅動程序用於通過主機或目標硬件中的網絡接口控制器(NIC) 或 iSCSI HBA 來發送iSCSI 命令和響應。

   為實現最佳性能,請使用傳輸速度為每秒 1000 兆位 (Mbps) 的千兆以太網適配器在iSCSI 主機和 iSCSI 目標間進行連接。

  iSCSI 命令封裝:

 

  

  發起端和目標端之間以消息的形式進行通信。PDU(Protocal Data Unit)就是用來傳輸這些消息的。

  

    iSCSI 協議就是一個在網絡上封包和解包的過程,在網絡的一端,數據包被封裝成包括TCP/IP頭、iSCSI識別包和SCSI數據三部分內容,傳輸到網絡另一端時,這三部分內容分別被順序地解開。iSCSI 系統由一塊 SCSI 卡發出一個 SCSI 命令,命令被封裝到第四層的信息包中並發送。
  接收方從信息包中抽取SCSI 命令並執行,然后把返回的SCSI命令和數據封裝到IP信息包中,並將它們發回到發送方。系統抽取數據或命令,並把它們傳回SCSI子系統。所有這一切的完成都無需用戶干預,而且對終端用戶是完全透明的。 為了保證安全,iSCSI 有自己的上網登錄操作

  順序。在它們首次運行的時候,啟動器(initiator)設備將登錄到目標設備中。
    任何一個接收到沒有執行登錄過程的啟動器的iSCSI PDU目標設備都將生成一個協議錯誤,而且目標設備也會關閉連接。在關閉會話之前,目標設備可能發送回一個被駁回的iSCSI PDU。這種安全性是基本的,因為它只保護了通信的啟動,卻沒有在每個信息包的基礎上提供安全性。

  還有其他的安全方法,包括利用IPsec。在控制和數據兩種信息包中,IPsec 可以提供整體性,實施再次(replay)保護和確認證明,它也為各個信息包提供加密。

  iSCSI 會話:

  iSCSI 會話建立於一個initiator與一個target之間,一個會話允許多個TCP連接,並且支持跨連接的錯誤恢復。
大多數通信還是建立在SCSI基礎之上的,例如,使用R2T進行流量控制。

  iSCSI添加於SCSI之上的有:立即和主動的數據傳輸以避免往返通信;連接建立階段添加登錄環節,這是基於文本的參數協商。

  建立一個iSCSI會話,包括

    命名階段:確定需要訪問的存儲,以及initiator,與FC不同,命名與位置無關;

    發現階段:找到需要訪問的存儲;

    登錄階段:建立於存儲的連接,讀寫之前首先進行參數協商,按照TCP連接登錄。

  iSCSI有兩大主要網絡組件。

    第一個是網絡團體,網絡團體表現為可通過IP網絡訪問的一個驅動或者網關。一個網絡團體必須有一個或者多個網絡入口,每一個都可以使用,通過IP網絡訪問到一些iSCSI節點包含在網絡團體中。

    第二個是網絡入口,網絡入口是一個網絡團隊的組件,有一個TCP/IP的網絡地址可以使用給一個iSCSI節點,在一個ISCSI會話中提供連接。一個網絡入口在啟動設備中間被識別為一個IP地址。一個網絡入口在目標設備被識別為一個IP地址+監聽端口。

   iSCSI支持同一會話中的多個連接。在一些實現中也可以做到同一會話中跨網絡端口組合連接。端口組定義了一個iSCSI節點內的一系列網絡端口,提供跨越端口的會話連接支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM