- Linux開源存儲全棧詳解:從Ceph到容器存儲
- 英特爾亞太研發有限公司
- 1781字
- 2019-11-15 16:04:53
2.4 網絡存儲技術
隨著網絡技術的飛速發展,各類海量數據快速占據了系統的存儲空間。單一的存儲系統已經無法面對新的形勢,網絡存儲技術開始成為存儲技術的主流。
目前網絡存儲技術主要有DAS(Direct Attached Storage)、NAS、SAN、iSCSI (Internet SCSI)。DAS、NAS、SAN與iSCSI的區別如圖2-9所示。

圖2-9 DAS、NAS、SAN與iSCSI的區別
1)DAS
DAS是指通過SCSI接口或光纖通道將存儲設備直接連接到一臺服務器上。當服務器在地理上比較分散很難通過遠程進行互聯時,DAS是比較好的解決方案。對DAS來說,存儲只能通過與之連接的主機進行訪問,數據不能與其他主機共享。同時, DAS會占用CPU、I/O等服務器的操作系統資源,并且數據量越大,占用系統資源越嚴重。
2)NAS
NAS是指通過某一網絡協議把多個存儲設備和一群計算機相連接。NAS通過網絡交換機連接存儲系統和服務器,用戶通過TCP/IP訪問專門用于數據存儲的私有網絡,采用網絡文件系統、HTTP、CIFS等標準的文件共享來實現文件級的數據共享。NAS為那些需要共享大量文件數據的企業提供了一個高效的、高可靠的、高性價比的解決方案。NAS的局限性在于,它會受到網絡帶寬和網絡擁堵的影響。
3)SAN
SAN是一種獨立于TCP/IP網絡之外的專用存儲網絡,目前一般提供2~4Gb/s的傳輸速率。由于其基礎是一個專用網絡,SAN的擴展性很強,不管是在一個SAN系統中增加一定的存儲空間,還是增加幾臺服務器都非常方便。SAN的維護成本高昂,需要投入很多硬件成本,如FC交換機。
4)iSCSI
為了降低使用SAN的成本,可以利用普通的數據網絡來傳輸SCSI數據,實現和SAN相似的功能,同時系統的靈活性也得到了提高。iSCSI就是這樣一種技術,它利用普通的TCP/IP網絡來傳輸SCSI數據塊。
SCSI最初是一種專門為小型計算機系統設計的I/O技術,SCSI系統架構如圖2-10所示。

圖2-10 SCSI系統架構
可以看到主機通過SCSI控制器與SCSI設備相連,通常把發起SCSI數據存儲的一端叫作Initiator,而把存儲數據的SCSI設備叫作Target。主機通過控制器與Target相連,而Target也可以通過SCSI總線與其他的SCSI設備相連,在SCSI總線的末端一般都會連接一個終結器,用來減少相互影響的信號,維持SCSI鏈上的電壓恒定。
SCSI總線分為寬帶和窄帶兩種,寬帶有16個接口,除了1個用來連接Initiator,最多還可以連接15個Target;而窄帶有8個接口,最多可以連接7個Target。
系統中的每個SCSI設備都必須有唯一的SCSI ID(即Target ID)來表示設備的地址,每個Target上可以連接多個邏輯單元(一個邏輯單元對應一個SCSI設備),不同的邏輯單元用邏輯單元號(Logical Unit Number,LUN)來區別,每個SCSI ID上最多有32個LUN(寬帶的),一個LUN對應一個邏輯設備(SCSI設備)。
SCSI通信模式如圖2-11所示。

圖2-11 SCSI通信模式
iSCSI是IETF制定的一項標準,用于將SCSI數據塊映射為以太網數據包。iSCSI將存儲行業廣泛應用的SCSI接口技術與IP技術相結合,簡單來說,iSCSI就是在IP網絡上運行SCSI協議的一種網絡存儲技術。一般來講,就是在TCP/IP上傳輸SCSI命令,實現SCSI和TCP/IP的連接。
在iSCSI技術出現之后,SAN也出現了兩種不同的實現方式,即光纖存儲網絡(FC SAN)和IP存儲網絡(IP SAN),我們通常所說的SAN指的就是FC SAN。相對FC SAN來說,IP SAN的成本要低很多,而且隨著千兆網甚至萬兆網的發展,iSCSI的速度相對SAN來說并沒有太大的劣勢。
iSCSI層次結構如圖2-12所示。

圖2-12 iSCSI層次結構
根據應用發出的請求,SCSI層會建立SCSI CDB(命令描述塊)并傳給iSCSI層,iSCSI層對SCSI CDB進行封裝,以便其能夠在TCP/IP網絡上進行傳輸,完成SCSI到TCP/IP的協議映射。
iSCSI Initiator計算機上的軟件或硬件設備,負責與iSCSI存儲設備進行通信。
· 軟件Initiator:Initiator軟件可以將以太網卡虛擬成iSCSI卡,從而實現主機和iSCSI存儲設備之間的iSCSI協議和TCP/IP傳輸。這種方式除以太網卡和以太網交換機以外,并不需要其他的設備,因此成本最低。但是iSCSI報文和TCP/IP報文轉換需要消耗服務器的CPU資源,因此只適用于低I/O和低帶寬性能要求的應用環境。
· 硬件Initiator:使用iSCSI HBA(Host Bus Adapter),即iSCSI Initiator硬件。這種方式需要在iSCSI服務器上安裝iSCSI HBA卡,來實現iSCSI服務器與交換機之間、iSCSI服務器與存儲設備之間的高效數據傳輸。與軟件Initiator相比,安裝硬件iSCSI HBA卡的方式不需要消耗服務器的CPU資源,可以提供更快的數據傳輸速度和更高的存儲性能,但是iSCSI HBA卡價格昂貴,需要用戶在性能和成本之間進行權衡。
· TOE網卡+Initiator軟件:支持TOE(TCP Offload Engine)功能的智能以太網卡可以將網絡數據流量的處理工作全部轉到網卡上的集成硬件中完成,以降低服務器CPU資源的消耗。此時雖然SCSI指令的運行仍然會占用一定的CPU負載,但價格相對硬件的Initiator來說要便宜一些。
iSCSI Target是可以用于存儲數據的iSCSI磁盤陣列或具有iSCSI功能的設備,大多數操作系統都可以利用一些軟件將系統轉換為一個iSCSI Target,如Linux的LIO (Linux-IO Target)。
- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- SOA實踐者說
- Installing and Configuring Windows 10:70-698 Exam Guide
- Windows Server 2012網絡操作系統企業應用案例詳解
- Hands-On UX Design for Developers
- Windows Server 2008組網技術與實訓(第3版)
- Learning IBM Watson Analytics
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Responsive Web Design with AngularJS
- 微軟360度
- Python機器學習系統構建(原書第3版)
- Drupal 7 Mobile Web Development Beginner’s Guide
- Windows PE權威指南
- Oracle Goldengate 11g Complete Cookbook
- Windows Server 2012活動目錄企業應用(微課版)