前言
本文介紹了HCIE雲計算需要了解和學習的七種存儲協議,深入淺出,讓你對存儲協議有更全面和更詳細的認識
常用存儲協議
- SCSI/iSCSI
- SAS
- FC/FCoE
- PCI-e
- IB
- CIFS/NFS
- FTP/HTTP
SCSI/iSCSI
存儲中的SCSI和iSCSI
小型計算機接口,一種物理規格,同時也是一種傳輸協議。基本上所有服務器級別的塊存儲,都是SCSI指令。家用級別的是ATA指令。
什麼是SCSI
有自己的指令集,有一套完善的體系模型,有物理鏈路映射關係。
SCSI的歷史
經歷了三個版本
- SCSI-1
- 1983-1985推出
- 支持異步和同步
- 支持7個8bit設備
- 最大速度5MBps
- 50pin數據線6m距離
- 已經淘汰
- SCSI-2
- 1988-1994推出
- 兼容SCSI-1
- 支持16bit寬帶
- 最大速度16MBps
- 還在使用
- SCSI-3(真正完善成了體系結構)
- 1993年成爲標準
- 兼容SCSI-2/SCSI-1
- 真正成爲了一個體繫結構
- 支持FCP/IEEE1394等多種介質(不再只是原來的SCSI線纜)
SCSI邏輯拓撲
一根總線上連接多個設備,窄帶的情況下最多連接8個,寬帶的情況下最多連接16個。
下圖中有兩個發起者(通常當成服務器,存儲的使用者),三個目標 (存儲設備,存儲的提供者),一個目標(存儲設備)可以對外提供多個空間,每一塊存儲空間都有一個對外的編號(LUN邏輯數字單元)。
SCSI啓動器模型
分爲三層,設備驅動層對應操作系統,使操作系統可以使用對應的指令,經過中間層轉發,將指令放到SCSI線纜上去傳輸。
- SCSI設備驅動層
- SCSI中間層
- SCSI鏈路層
目標器模型
一邊對應總線上的接口,另外一邊對應存儲設備(磁盤)。
- 端口層
- 設備層
- 中間層
SCSI協議和存儲系統
- SCSI協議是主機與存儲磁盤通信的基本協議。
- DAS使⽤SCSI協議實現主機服務器與存儲設備的互聯。
SCSI協議尋址
一臺主機可以連接多個不同的總線,尋址第一步先找到通過的哪一根總線來訪問的,然後在這一根總線上找到對應的設備ID,再在設備上通過對應的LUN來找到對應的存儲空間。
- 總線號:區分不同的SCSI總線
- 設備ID:區分SCSI總線上不同的設備
- 邏輯單元號:區分SCSI設備中的子設備
iSCSI的誕生
SCSI存在的問題:
- SCSI允許連接設備數量較少(最多16個)
- SCSI連接設備距離非常有限
針對這些問題,IBM,CISCO,HP三個公司聯合起頭髮布了基於IP網絡的SCSI:iSCSI(只要IP可達,能通信,就可以訪問)
什麼是iSCSI
iSCSI啓動器 ‒ 目標器模型
- 發起端(Initiator)
- SCSI層負責⽣成CDB(命令描述符塊),將CDB傳給iSCSI
- iSCSI層負責⽣成iSCSI PDU(協議數據單元),並通過IP網絡將PDU發給target
- 目標器(Target)
- iSCSI層收到PDU,將CDB傳給SCSI層
- SCSI層負責解釋CDB的意義,必要時發送響應
iSCSI體系結構
iSCSI節點將SCSI指令和數據封裝成iSCSI包,然後該數據封裝被傳送給TCP/IP層,再由TCP/IP協議將iSCSI包封裝成IP協議數據以適合在⽹絡中傳輸。
iSCSI和SCSI、TCP和IP的關係
iSCSI和SCSI
封裝不同,傳輸介質也不同。
TCP和IP
TCP是傳輸層協議,IP是網絡層協議。
TCP做的是應用層的尋址,IP做的是網絡層的尋址。
SAS
存儲中的SAS
- 在企業級存儲系統中, SAS(Serial Attached SCSI )接口已經取代並行連接SCSI和SATA接口。
- SAS採用點對點架構,性能可高達300MB/s、 600MB/s、或更高 。
- 帶寬是3Gb,6Gb,12Gb三種。
爲什麼要發展SAS
- 並⾏總線已經發展到頂峯,到達帶寬的極限;
- Fibre Channel、 InfiniBand、 Ethernet等串行總線對於存儲應⽤來說都存在缺點:
a) FC:價格昂貴,適用於複雜組⽹、遠距離的場景
b) InfiniBand:組網複雜,價格昂貴貴
c) iSCSI:時延高、傳輸速率慢
急需一個可以快速傳輸磁盤數據的新的磁盤接口。
什麼是SAS
- SAS: Serial Attached SCSI,是SCSI總線協議的串行標準,即串行連接SCSI
- SAS採用串行技術以獲得更高的傳輸速率和更好的擴充性,併兼容SATA硬盤
- SAS目前的傳輸速率高達3Gbps、 6Gbps、 12Gbps 或更高,支持全雙工模式
SAS協議層次結構
串行鏈路上傳輸SCSI指令。
SAS特點
- SAS的串行通信方式允許多個數據通路全速與各個設備通信。
- SAS支持多個窄端口捆綁形成寬端口。
- SAS結構採用擴展器(expander)進行接口擴展,具有非常好的擴展能力。
- SAS採用全雙工模式。
SAS的可擴展性
SAS結構採用擴展器(expander)進行接口擴展,具有非常好的擴展能力, 1個SAS域最多可以連接16384個磁盤設備,但是接口的帶寬是有限的。
SAS連線的規則
- SAS線纜一般有四個通道,每個通道現在常用的是12 Gb/s(一根線的帶寬48Gb)。
- SAS線纜分兩種
- Mini SAS
- 高密度Mini SAS
- SAS設備以環路(也稱爲鏈)的形式連接在一起。
- 線纜的帶寬爲4X12Gb/s,限制了環路中的硬盤數。
- 當前⼀個環路中的最大硬盤數的最佳實踐是168塊盤(性能和容量的平衡狀態),也就是說最多7個24個硬盤槽位的硬盤框組成⼀個環路。
SAS與其他傳輸技術的比較
FC/FCoE
存儲中的FC
所有的存儲都需要通過一個存儲專用網絡(FC SAN)。
什麼是FC?
FC是光纖通道(Fiber Channel)的簡稱,用於服務器共享存儲設備的連接,存儲控制器和驅動器之間的內部連接。
傳輸介質大多是多模光纖,雙絞線和同軸電纜也有出現。
光纖的優點:帶寬高,延遲低,距離遠。
FC協議的演進趨勢
FC協議結構
- FC-4
面向應用程序 - FC-3
處理冗餘和加密算法 - FC-2
真正定義了協議如何使用 - FC-1
編碼和解碼 - FC-0
轉換成物理的光信號
FC拓撲結構
-
點對點(只能連接兩個設備,直接連接)
一個主機通過HBA卡直接連接到存儲設備上,通過光纖。 -
仲裁環(最多支持127個設備,光纖集線器)
-
光纖通道交換網絡(最多支持1600萬個設備,光纖通道交換機)
FC網絡中最廣泛採用的技術
FC交換機端口類型
- D_Port:診斷端口,可通過D_Port隔離ISL以診斷鏈路級故障,只做診斷測試,不承擔任何Fabric流量。
- E_Port:級聯端口,用於級聯(ISL)其他交換機實現Fabric擴展。
- EX_Port: E_Port的⼀種,⽤於連接FC路由器和邊緣Fabric。 EX_Port的連接終止於路由器,不能像E_Port連接的交換機那樣可以融合Fabric。
- F_Port:節點端口,即Fabric設備的端口。例如連接存儲設備時,交換機端口類型顯示爲F_Port。
- FL_Port:環形網絡下的F端口,用於連接Loop中的設備。
- G_Port:通用端口,作爲非環路Fabric設備的過度端口。
- M_Port:鏡像端口,用於複製指定源端口和目的端口之間的流量(流量分析,數據監控)。
- U_Port(或GL_Port):通用FC端口,最基本的FC端口類型。所有未識別的和未初始化的端口都屬於U_Port(或GL_Port)。
FC 物理地址
燒錄在設備的ROM芯片中
每一個FC端口和節點都擁有一個固化的地址,叫做WWN
- 被生產商所分配
- 在生產的時候被編碼到每一個設備
- 64位或者128位
交換機的名稱服務,用於映射WWN到FC地址
- nWWN唯一標識一個設備
- pWWN唯一標識一個設備上的每一個端口
FC 邏輯地址
FCID 24位二進制 上電後自動生成。
- Domain ID(標識FC交換機)
用來區分由衆多交換機組成的FC網絡中每個FC交換機本身。 - Area ID(標識端口組ID)
用來區分同一臺交換機上的不用端口組。 - Port ID(標識端口組下的接口ID)
用來區分一個Area中的不同Port。
FC環境下的尋址(速度比以太網快很多)
查詢目標Domain ID,再根據Area ID和Port ID路由到正確的接口
知名地址
知名地址使用24位FC地址空間中最高的16個地址。主要用於FC重要的控制和管理層面的操作。
FC Zone
一個設備可以屬於多個Zone,只有在一個Zone內的設備才能通信。
- 劃分,羣組
- 動態交換的核心功能
- 隔離:異構, RSCN
Zone Config
包含多個Zone
將Zone Config激活後,Zone內的設備可以通信。
FCoE協議
- 直接在增強型無損以太網基礎設施上傳輸光纖信道信號功能的協議。
- FCoE把FC幀封裝在以太網幀中,允許LAN和SAN的業務流量在同一個以太網中傳送。
FC與FCoE的區別
- FCoE:Fibre Channel over Ethernet 以太網上運行光纖協議
- FCoE並不是要代替傳統的光纖通道技術,而是在不同連接傳輸層上對光纖通道進行拓展。
FC連接器
PCI-e
什麼是PCI-e?
PCI Express(又稱PCIe)是⼀種高性能、高帶寬串行通訊互連標準,最早由英特爾提出,後由外設組件互連特別興趣組(PCI-SIG)制定,以取代基於總線的通信架構,如: PCI、 PCI Extended (PCI-X) 以及加速圖形端口(AGP)。
爲什麼用PCI-e?
主板上需要一個高性能、高帶寬串行通訊互連標準。
PCI-e協議結構
PCIe設備的層次:主要分爲物理層、數據鏈路層、事務層、應用層:
• 物理層(Physical Layer)
• 數據鏈路層(Data Link Layer)
• 事務層(Transaction Layer)
• 應用層(Application Layer)
PCI-e鏈路的帶寬
每一代的帶寬和傳輸速率都是翻倍提升。
IB
存儲中的IB
什麼是IB?
- IB(InfiniBand):
- InfiniBand技術不是⽤於⼀般網絡連接的,它的主要設計,目的針對服務器端的連接問題。
- InfiniBand技術被應⽤於服務器與服務器(比如複製、分佈式⼯作等)、服務器和存儲設備(比如SAN和直接存儲附件)以及服務器和⽹絡之間(比如LAN、WANs和the Internet)的通信。
- InfiniBand的特點:
- 基於標準協議
- ⾼帶寬,低時延
- 遠程直接內存存取功能
- 傳輸卸載
- InfiniBand結構的關鍵在於通過採⽤點到點的交換結構解決了共享總線的瓶頸問題,這種交換結構專門用於解決容錯性和可擴展性問題。通過向InfiniBand系統添加交換機可以很容易地實現I/O系統的擴展,進而允許更多的終端設備接入到I/O系統。
IB分層結構
IB架構
IBA(InfiniBand Architecture)組件(Component):
- Node:主機通道適配器(HCA),目標通道適配器(CA)
- Network:交換器(Switch),路由器(Router)
- Physical: Link(光纖firbic或者電纜cable),中繼器(Repeater)
IB接口
Channel Adapter (CA)分爲如下兩類:
- Host Channel Adapter (HCA):主機通道適配器,如: Mellanox 產品
- Target Channel Adapter (TCA):目標通道適配器,用於IB交換機、存儲系統的IO接口。
IB信令模式
SDR : Single Data Rate
DDR : Double Data Rate
QDR : Quad Data Rate
FDR : Fourteen Data Rate
EDR : Enhanced Data Rate
HDR : High Data Rate
NDR : Next Data Rate
IB性能快在哪裏?
- 基於通道的端到端交換互聯結構,不共享總線,沒有相關的電子限制、仲裁衝突和內存⼀致性問題。
- 協議簡單高效,開銷小,協議硬件卸載
- QoS: 16級的VL和16級的SL,實現了⾼效服務質量管理和基於信用度的雙層流控機制
- RDMA + 數據零拷貝(遠程內存直讀)
- 支持多併發鏈接:理論上併發越多速度越快,如QDR: X110Gbps, X4 40Gbps, X8 80Gbps, X12 120Gbps
CIFS/NFS
存儲中的CIFS/NFS
NAS最常用的兩個網絡共享協議: CIFS和NFS。
- CIFS (Common Internet File System) CIFS指SMB(Server Message Block)的統稱,在windows主機之間進行網絡文件共享是通過使用微軟公司自己的CIFS服務實現的。
- NFS(Network File System)是網絡文件系統,雲計算和數據庫大量使用NFS。在Linux/UNIX/AIX/HP-UX/Mac OS X等類UNIX的操作系統提供網絡文件系統存儲服務。
CIFS工作原理
NFS工作原理
CIFS典型應用案例
文件共享服務
文件共享服務場景適用於企業文件服務器、媒資等應用場景。
NFS典型應用案例
雲計算共享存儲
雲計算使用NFS服務器作爲內部共享存儲:
FTP/HTTP
什麼是FTP?
- FTP(File Transfer Protocol,文件傳輸協議)用於在遠端服務器和本地主機之間傳輸⽂件,是IP網絡上傳輸文件的通用協議。
- FTP協議在TCP/IP協議族中屬於應用層協議,用於在遠端服務器和本地客戶端之間傳輸文件,使用TCP端口20和21進行傳輸。端口 20用於傳輸數據,端口 21用於傳輸控制消息。FTP協議基本操作在RFC959中進行了描述。
FTP有兩種工作方式:
- 主動方式(PORT):建立數據連接時由FTP服務器發起連接請求,當FTP客戶端處於防火牆
內時不適用(如FTP客戶端處於私網內)。 - 被動方式(PASV):建⽴數據連接時由FTP客戶端發起連接請求,當FTP服務器限制客戶端
連接其高位端口(⼀般情況下大於1024)時不適用。
什麼是HTTP?
超文本傳輸協議HTTP(Hypertext transfer protocol )是⼀種詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議。