本文是參照 高俊峯 老師的 構建高性能Linux服務器的視頻寫的。希望能給有需要的人一點幫助,同時也是爲了方便自己。
1、存儲的一些概念和術語:
SCSI:小型計算機系統接口(Small Computer System Interface)
FC:光纖通道(Fibre Channel)
DAS:直連式存儲(Direct-Attached Storage)
NAS:網絡接入存儲(Network-Attached Storage)
SAN:存儲區域網絡(Storage Area Network)
2、認識ISCSI:
iSCSI=Internet Small Computer System Interface
iSCSI 是一種在Internet協議上,特別是以太網上進行數據塊傳輸的標準,它是一種基於Ip Storage理論的新型存儲技術,該技術是將存儲行業廣泛應用的SCSI接口與IP網絡技術相結合,可以在IP網絡上構建SAN存儲區域網絡,簡單地說,iSCSI就是在IP網絡上運行SCSI協議的一種網絡存儲技術
3、ISCSI技術的優勢:
與傳統的SCSI技術比較起來,ISCSI技術有三個革命性的變化:
* 把原來只用於本機的SCSI透過TCP/IP網絡傳送,使連接距離可作無限的地域延伸;
* 連接的服務器數量無限(原來的SCSI-3的上限是15);
* 由於是服務器架構,因此也可以實現在線擴容以至動態部署。
4、ISCSI構架:
4.1、控制器架構:
採用專用的數據傳輸芯片、專用的RAID數據校驗芯片、專用的高性能Cache緩存和專用的嵌入式系統平臺,是一個核心全硬件的設備。
優點:具有較高的安全性和穩定性。
缺點:核心處理器全部採用硬件,製造成本較高。
適用環境:可以用於對性能的穩定性和高可用性具有較高要求的在線存儲系統,例如:中小型數據庫系統,大型數據庫備份系統,遠程容災系統等。
4.2、ISCSI連接橋架構:
連接橋架構分爲兩個部分:
*前端的協議轉換器;
*後端存儲
前端協議轉換部分一般是硬件設備,只有協議轉換功能,沒有RAID檢驗和快照、卷影複製等功能,因此,創建RAID組、創建LUN等操作必須在存儲設備上完成。
後端存儲一般採用ISCSI磁盤陣列和FC存儲設備
隨着iscsi技術的成熟,連接橋架構的ISCSI設備越來越少了。
4.3、PC架構:
也就是將存儲設備搭建在PC服務器上,通俗的說就是選擇一個性能良好、可支持多塊硬盤的PC服務器,然後選擇一款成熟的存儲端管理軟件(ISCSI Target),並將其安裝在這臺PC服務器上,這樣就將一個普通的PC服務器變成了一臺ISCSI存儲設備了。最後通過PC服務器的以太網卡對外提供ISCSI數據傳輸服務。
客戶端主機可以安裝iscsi客戶端軟件(ISCSI Initiator)通過以太網連接PC服務器共享出來的存儲空間。
PC架構的典型圖例如下:
5、iSCSI存儲連接方式:
5.1、以太網卡+initiator軟件方式:
服務器、工作站等主機使用標準的以太網卡,通過以太網線直接與交換機連接,iSCSI存儲也通過以太網線連接到以太網交換機上,或直接連接到主機的以太網卡上,在主機上安裝Initiator軟件。
優點:在現有網絡基礎上即可完成,成本低;
缺點:消耗客戶端主機部分資源。
適用環境:在低I/O和低寬帶性能要求的應用環境中。
5.2、硬件TOE網卡+Initiator軟件方式:
具有TOE(TCP Offload Engine)功能的智能以太網卡,可以將網絡數據流量的處理工作全部轉到網卡的集成硬件中完成。客戶端主機可以從繁忙的協議轉換中解脫出來。
優點:採用TOE卡後可以大幅度的提高數據和傳輸速率,降低了客戶端主機的資源消耗。
缺點:需要購買TOE功能的網卡,成本較高。
5.3、ISCSI HBA卡連接方式:
也就是在客戶端主機上安裝專業的iSCSI HBA適配卡,從而實現主機與交換機之間、主機與存儲之間的高效的數據交換。
優點:數據傳輸性能最好
缺點:需要購買ISCSI HBA適配卡,成本較高。
TOE網卡和ISCSI HBA的市場價格都比較貴,如果主機較少的話還可以接受,如果網絡主機比較多,成本消耗很大。
6、ISCSI系統的組成:
一個簡單的ISCSI系統大致有以下幾部分組成:
* iSCSI initiator或者iSCSI HBA(在客戶端安裝的軟件或硬件)
* iSCSI Target(安裝在服務器端)
* 以太網交換機
* 一臺或是多臺服務器
6.1、ISCSI Target概念:
一個可以被用於存儲數據的iscsi磁盤陣列或者具有iscsi功能的設備都可以被稱爲“ISCSI Target”。
利用iSCSI Target軟件,可以將服務器的存儲空間分配給客戶機使用,客戶機就可以像使用本地硬盤一樣使用iscsi硬盤。
目前大多數iscsi Target軟件都是收費的。不過,也有一些linux平臺開源的iscsi Target軟件。例如:iSCSI Enterprise Target。
6.2、iSCSI initiator概念:
iSCSI initiator是一個安裝在計算機上的一個軟件或是一個硬件設備,它負責處理同iscsi存儲設備進行通信。
iSCSI服務器與iSCSI存儲設備之間的連接方式有兩種:
第一種是基於軟件的方式,即軟件iSCSI initiator
第二種是基於硬件的方式,即硬件iSCSI initiator
iSCSI initiator 軟件一般都是免費的,Centos和RHEL對iSCSI initiator支持非常不錯,現在的Linux發行版本都默認已經自帶了iSCSI initiator。
7、iSCSI技術實現原理圖:
基本實現過程:
iSCSI協議定義了在TCP/IP網絡發送、接收block(數據塊)級的存儲數據的規則和方法。
發送端將SCSI命令和數據封裝到TCP/IP包中再通過網絡轉發,接收端收到TCP/IP包之後,將其還原爲SCSI命令和數據並執行,完成之後將返回的SCSI命令和數據再次封裝到TCP/IP包中再次發送回發送端。整個過程在用戶看來:使用遠端的存儲設備就像訪問本地的SCSI設備一樣簡單。