文章目錄
- 1. 什么是SAN存儲?
- 2. SAN存儲組網架構
- 3. SAN存儲的主要協議
- SCSI
- 光纖通道(FC)協議
- iSCSI
- FCoE
- NVMe-oF
- IB
- 4. SAN存儲的關鍵技術
- Thin Provision:LUN空間按需分配
- Tier:分級存儲
- Cache:緩存機制
- QoS:流控機制
- Deduplication:數據重刪
- Compression:數據壓縮
- Migration:數據遷移
- Virtualization:LUN虛擬化
- Snapshot:數據快照
- Clone:數據克隆
- Replication:遠程復制
- Metro:雙活
1. 什么是SAN存儲?
SAN是一個通過高速、專用網絡,將服務器連接到共享的存儲設備的存儲系統。
其核心目的是:提供對塊級存儲的訪問,服務器將SAN存儲視為本地連接的硬盤,可以直接在上面創建文件系統。
SAN存儲的關鍵特性有:
- 專用網絡:通常獨立于常規的LAN/IP網絡,使用專門優化的協議和硬件(如光纖通道);
- 高性能:為存儲I/O設計,提供低延遲、高帶寬的讀寫性能;
- 可擴展性:能添加更多的服務器或存儲設備,而無需中斷服務;
- 高可用性:支持多路徑,即從服務器到存儲的多條物理路徑,避免單點故障;
- 集中化管理:存儲資源集中部署和管理,提高利用率,簡化備份和災難恢復;
- 資源共享:多個服務器可共享同一存儲池,但通常一個存儲卷/LUN在同一時間只能被一個服務器訪問,除非使用集群文件系統。
LUN是什么?
在SAN存儲中,邏輯單元號Logical Unit number是用來標識一個邏輯單元的數字。存儲系統將物理硬盤進行分區,每個分區有自己的邏輯地址,允許主機單獨在該分區進行讀寫,這樣的一個分區就稱為一個LUN。(LUN也指在SAN存儲上創建的邏輯磁盤)
2. SAN存儲組網架構
SAN的核心組件:
- HBA卡:Host Bus Adapter,主機總線適配器,安裝在服務器中的專用網卡,用于連接服務器到SAN網絡。
- 功能:
- 提供主機和適配的設備/網絡之間的物理連接;
- 處理數據IO;
- 在連接的設備和主機之前傳輸數據;
- 線纜:線纜有光纖線纜、以太網線纜等
- 交換機:SAN的核心互聯設備,提供服務器到存儲的多對多連接、分區管理、路由等,光纖通道交換機是傳統SAN的骨干。
3. SAN存儲的主要協議
SAN存儲中,協議的核心任務是將SCSI塊級命令通過不同網絡傳輸到存儲設備,協議棧主要分為兩層:
- 上層:SCSI命令集——定義讀寫、查詢等存儲操作(通用層);(還有NVMe)
- 下層:傳輸協議——負責封裝SCSI命令并通過網絡傳輸(差異層)
SCSI
SCSI:Small Computer System Interface,小型計算機系統接口,是在計算機和外圍設備之間進行物理連接和數據傳輸的一系列標準,SCSI標準定義了指令、協議、光電和邏輯接口,是實際的存儲命令集(如讀寫等),SAN協議本質上是將SCSI命令封裝在底層網絡協議中進行傳輸。
SCSI傳輸模型:
光纖通道(FC)協議
光纖通道FC(Fiber Channel)協議:是傳統的、高性能SAN的主流協議,用于計算機和外部設備之間傳輸數據的傳輸層協議,主要用于在服務器和SAN存儲之間傳輸SCSI數據包;運行在專用光纖通道網絡上(交換機、HBA、線纜)。
FC能提供極高的性能、非常低的延遲、以及高可靠性,但是成本相對較高。
iSCSI
iSCSI:Internet Small Computer System Interface,因特網小型計算機系統接口,它是用來描述SCSI數據如何在TCP/IP網絡中傳輸的傳輸層協議;將SCSI命令封裝在標準的TCP/IP協議包中,運行在標準的以太網網絡上。
優點:能利用現有的IP網絡基礎設施,成本顯著低于FC。易于部署和管理,距離不受FC限制(理論上可跨廣域網);
缺點:性能和延遲受TCP/IP協議棧和以太網擁塞影響,可能消耗服務器CPU資源。
FCoE
FCoE:Fiber Channel over Ethernet, 是一種使FC幀可以直接在以太網上傳輸的存儲協議;將光纖通道幀封裝在無損以太網中,運行在支持DCB的增強型以太網上。
NVMe-oF
NVMe:Non-Volatile Memory Express,非易失性存儲協議,是一種用于計算機和非易失性存儲(比如SSD)之前的數據交換接口規范。
NVMe over Fabrics:新興的高性能協議,專為利用SSD的低延遲和高吞吐量而設計,將NVMe命令擴展到網絡結構,如FC-NVMe、NVMe/TCP、NVMe over RoCE,使得NVMe協議能工作在運行FC、TCP、RoCE等協議網絡上。
IB
IB:InfiniBand,是一種應用于需要高吞吐量和低時延的高性能計算場景下的網絡通信協議,常被用于服務器之間、服務器與存儲設備之間、以及存儲與存儲之間進行數據通信與連接。
4. SAN存儲的關鍵技術
Thin Provision:LUN空間按需分配
傳統方式下,當創建一個LUN時(假設大小為1TB),存儲系統會立即、完全的從物理磁盤池中劃分并預留1TB的物理空間給這個LUN,無論服務器上的應用程序實際僅使用了100GB空間,這1TB的物理空間都被這個LUN獨占,其他LUN無法使用。
Thin Provisioning 精簡配置的方式:
- 當創建一個 Thin LUN時,假設1TB(這是邏輯容量),系統并不會立即分配1TB的物理空間,而是記錄這個LUN的“最大可用”空間是1TB;
- 物理空間分配是按需的、延遲的、細粒度的;
- 只有當服務器上的應用程序實際向這個LUN寫入新數據時存儲系統才會根據寫入請求的大小,從共享的物理存儲池中動態分配一小塊物理空間(如4KB,8KB,64KB等,取決于具體實現)給這個LUN;
- 隨著寫入數據的增加,分配的物理空間也逐步增加
Thin Provisioning的核心是邏輯容量遠大于實際分配的物理容量。
Tier:分級存儲
Tier分級存儲的核心思想:將訪問頻率高的數據(熱數據)存放在高性能、高成本的存儲介質上;將訪問頻率低的數據(冷數據)存放在低性能、低成本的存儲介質上。其目的是在滿足性能需求的前提下,最大化降低總體存儲成本。
分級存儲的工作原理:自動化數據遷移
- 策略定義
- 創建存儲池,該存儲池包含來自不同物理磁盤組的多個存儲層級;
- 為存儲池配置分級策略:
- 數據遷移標準:最常用的是基于訪問頻率進行分級,也可結合訪問時間、數據類型、策略等進行分級;
- 遷移閾值:定義數據塊需要多“熱”才能升到更高層;數據塊需要多“冷”才會降到更底層;
- 遷移時間窗口:通常在業務低峰期進行遷移任務,避免影響生產性能;
- 層級大小:需要給每個層級配置物理容量,比如給Tier 0分配10TB SSD,給Tier 1分配100TB NL-SAS。
- 持續監控
- 存儲系統的后臺進程會持續跟蹤存儲池中的每塊數據的訪問活動
- 數據分析與決策
- 系統根據預設的策略,定期(比如每小時、每天)分析收集到的訪問統計信息,并識別出符合升級或降級條件的數據塊
- 透明數據遷移
- 在指定的遷移窗口或系統負載較低的時候,啟動遷移任務,遷移過程對鏈接的主機服務器和應用完全透明,應用訪問數據的邏輯地址(LUN和LBA)不變,存儲系統在后臺處理所有重定向
Cache:緩存機制
Cache緩存機制的核心思想是:利用更快、但容量更小、成本更高的存儲介質,臨時存放訪問最頻繁或預計即將訪問的數據和元數據,從而避免每次都去訪問相對較慢的后端物理磁盤。
SAN存儲通常采用分層緩存架構:
- L1緩存
- 存儲介質:DRAM,是系統主存的一部分;
- 特點:速度最快、容量相對較小、易失性(斷電數據丟失)
- 用途:存放“最熱的”讀數據塊;存放待寫入后端磁盤的寫數據;存放關鍵的元數據。
- 位置:通常位于存儲控制器的內存中。
- L2緩存
- 存儲介質:非易失性內存,主要有高性能SSD等;
- 特點:速度介于L1緩存和后端磁盤之間;非易失性(斷電數據不丟失)
- 核心功能:作為L1緩存的擴展和持久化層,專注于加速寫入和容納次熱數據。
QoS:流控機制
QoS :Quality of Service,智能服務質量控制,其核心功能包括流控機制(Flow Cntrol),流控機制是QoS功能落地的最核心技術,它通過對I/O請求的速率和隊列深度進行主動干預和控制來實現性能保障、性能隔離、資源公平、可預測性等目標,流控的主要控制對象是IOPS和BW帶寬。
Deduplication:數據重刪
Deduplication:數據重刪是現代存儲系統中一項空間優化技術,旨在通過消除冗余數據塊,顯著提高存儲空間利用率,降低總體擁有成本。
其核心思想是:相同的數據內容,在存儲系統中僅保留一份物理副本,當檢測到新寫入的數據塊與已存儲的某個數據塊內容完全相同時,不再存儲新副本,而是創建一個指向已有數據塊的指針引用。
數據重刪的關鍵工作流程:
- 數據分塊:主機寫入新數據時,存儲系統將寫入的數據流切割成更小的、大小固定或可變的塊;
- 計算哈希指紋:對每個分塊后的數據塊應用一個加密級哈希函數,生成一個唯一且長度固定的哈希值,最為該數據塊的數字指紋;
- 查找索引:系統維護一個全局哈希索引表,該表中記錄了
哈希指紋key->物理存儲位置value
,用新數據塊的哈希值去查詢這個索引表,有兩種情況:- 命中:表中已存在相同的哈希值,意味著該數據塊的內容已經物理存儲在系統中了;
- 未命中:表中不存在該哈希值,表明這是一個全新的、唯一的數據塊
- 存儲處理
- 情況1 未命中:
- 將數據塊寫入物理存儲介質;
- 在哈希表中添加一個新條目:
新哈希值->新物理位置
; - 更新該LUN的元數據映射表:將主機寫入的邏輯塊地址LBA映射到新物理位置。
- 情況2 命中:
- 不存儲數據塊的內容本身;
- 直接更新該LUN的元數據映射表:將主機寫入的邏輯塊地址LBA映射到索引表中查詢到的已有物理位置;
- 更新該已有數據塊的引用計數。
- 情況1 未命中:
- 讀取處理(透明):當主機讀取某個LBA時,存儲系統進行如下處理:
- 查詢該LUN的元數據映射表,找到該LBA映射的物理位置;
- 從該物理位置讀取數據塊,將數據返回給主機;
- 整個過程對主機完全透明,主機感知不到重刪的存在。
Compression:數據壓縮
數據壓縮的核心目標是:在將數據寫入物理磁盤前,利用算法識別并消除數據中的冗余模式,從而用更少的物理空間來表示原始數據。
數據壓縮的工作原理:
- 數據接收:主機服務器通過SAN網絡向存儲陣列發起寫IO請求,數據塊被發送到陣列控制器;
- 緩存處理:數據塊通常先被寫入到控制器的高速緩存中;
- 壓縮引擎處理:
- 壓縮引擎(硬件或軟件)獲取緩存中的原始數據塊;
- 使用特定壓縮算法(如哈夫曼算法、LZ77算法等)分析數據塊:算法查找重復的字節序列、空格、可預測的模式等,用更短的“代碼”或“引用”替換這些冗余部分;
- 生成一個壓縮后的數據塊。
- 壓縮引擎(硬件或軟件)獲取緩存中的原始數據塊;
- 元數據記錄:存儲系統會記錄每個數據塊是否被壓縮、使用的壓縮算法、原始大小、以及壓縮后的大小等信息,用于后續的讀取和解壓;
- 寫入磁盤:壓縮后的數據塊(以及相關的元數據)寫入特定的物理磁盤;
- 讀取過程(解壓):
- 主機發起讀請求,存儲控制器定位到包含所需數據的物理位置,并從磁盤讀取壓縮的數據塊;
- 根據元數據信息,壓縮引擎執行解壓操作,將數據還原為原始的、未壓縮的形式;
- 解壓后的原始數據塊通過高速緩存發送回請求的主機服務器。
Migration:數據遷移
數據遷移功能,是在不影響主機應用訪問的情況下,將數據在存儲系統內部或不同存儲系統之間移動。
其核心目標是:將數據從源物理位置透明地移動到目標物理位置,主機服務器和應用感知不到遷移過程,業務連續性得到保障。
應用場景:
- 存儲硬件升級/更換:將數據從舊存儲陣列遷移到新陣列中;
- 負載均衡:將繁忙的LUN從低性能的磁盤上遷移到高性能磁盤上;
- 存儲分層場景;
- 空間優化等
Virtualization:LUN虛擬化
虛擬化功能主要用于本地存儲對異構存儲LUN進行接管,簡化存儲系統的管理,或實現異構存儲間業務無中斷LUN數據遷移。
其核心思想:LUN虛擬化解除了主機服務器看到的邏輯磁盤單元LUN與底層物理磁盤驅動器(或RAID組)之前的嚴格、靜態綁定關系,向主機呈現一個統一的、簡化的存儲資源視圖,隱藏底層物理磁盤的復雜性。
Snapshot:數據快照
數據快照:snapshot是源數據在特定時間點的一致性數據副本,捕獲了改時間點數據的狀態。
快照的主要特點:
- 瞬時創建:創建快照通常僅需幾秒鐘,無論源數據量有多大,對生產系統性能的影響非常小;
- 空間高效:快照本身并不復制該時間點的所有數據塊,它主要記錄的是數據變化的元數據信息(指針映射),初始快照占用的額外存儲空間非常小;
- 只讀:創建后的快照通常是只讀的,用于數據恢復或一致性檢查,不能直接寫入,但基于快照可創建可寫的克隆;
- 時間點保護:快照提供了特定時刻數據的副本,是數據保護的重要一環。
快照的主要技術有COW和ROW:
- COW:Copy-On-Write,寫時復制,其核心邏輯是先備份舊數據,再寫入新數據
- 創建快照時:僅記錄源數據的元數據映射表,不復制實際數據;
- 寫入新數據時(關鍵步驟):應用嘗試修改源數據中的某個數據塊時(比如Block X)
- 系統將Block X的原始數據(修改前的內容)復制到快照專用區(保留區);
- 將新數據寫入源數據Block X的原始位置
- 在這個過程中確保快照始終指向修改前的舊數據。
- 讀取快照時
- 若請求的數據塊未被修改過,則直接從源卷讀取;
- 若數據塊被修改過,則從快照保留區讀取舊數據、
- ROW:Redirect-On-Write,重定向寫,核心邏輯:新數據寫入新位置,源數據保持凍結
- 創建快照時:
- 記錄源卷的元數據映射表;
- 源卷數據保持只讀狀態(凍結);
- 寫入新數據時(關鍵步驟):當應用程序嘗試修改任意數據塊(例如Block Y)
- 系統將新數據直接寫入全新的存儲區域(非原始位置);
- 更新源卷的元數據,指向新數據位置(源卷Block Y物理內容不變)
- 原始數據塊始終保持快照創建時的狀態
- 讀取數據時
- 讀快照:始終從源卷原始位置讀取(數據未被覆蓋);
- 讀源卷:若數據塊未被修改,從原始位置讀取;若數據塊已被修改,從新寫入區域讀取最新數據
- 創建快照時:
特性 | COW(寫時復制) | ROW(重定向寫) |
---|---|---|
寫入性能 | 修改數據時需復制舊數據,寫延遲高 | 直接寫入新位置,寫延遲低 |
讀取性能 | 讀源卷快(多數數據未移動) | 讀源卷需跳轉位置,可能略慢 |
空間占用 | 快照大小隨數據修改量增長 | 源卷空間凍結,但新數據區域持續增長 |
數據保護性 | 源卷損壞可能影響快照 | 源卷原始數據物理凍結,更安全 |
恢復速度 | 快照回滾較快 | 回滾需重置元數據,速度極快 |
典型場景 | 讀多寫少環境 | 寫密集型應用(如數據庫、VDI) |
Clone:數據克隆
數據克隆是一種基于快照的高級功能,它能即時創建源卷的完整可寫副本,它與快照技術的主要區別:
特性 | Snapshot(快照) | Clone(克隆) |
---|---|---|
可寫性 | 只讀(不可修改) | 完全可讀寫 |
空間占用 | 僅存儲差異數據(節省空間) | 初始占用小,隨寫入增長(空間高效) |
數據獨立性 | 依賴源卷(物理存儲未分離) | 獨立于源卷(可脫離存在) |
用途 | 數據恢復、備份源 | 生產級讀寫(如測試、容災) |
Replication:遠程復制
遠程復制是實現業務連續性最核心的跨站點數據同步技術,通過將主存儲陣列的數據實時或近實時地復制到異地備端,確保災難發生時業務秒級切換。
遠程復制是一種容災技術,關鍵指標:
- RTO:恢復時間目標,故障后業務恢復所需時間;
- RPT:恢復點目標,災難發生時允許丟失的數據量
遠程復制分為兩種核心模式:同步復制和異步復制
同步復制:
- 關鍵特性:
- 數據強一致性:主站點收到遠端確認后才向主機返回寫成功(RPO=0)
- 距離限制:通常要求距離<=100km
- 性能影響:網絡延遲直接疊加到主機IO延遲
- 適用場景:金融核心交易系統、醫療HIS系統等
異步復制:
- 關鍵特性
- 最終一致性:數據按策略批量同步(RPO>0)
- 無距離限制:支持跨國復制
- 性能無損:主機IO不受遠端網絡影響
- 適用場景:ERP系統、郵件服務器等
Metro:雙活
雙活是一種跨站點的高可用架構,其核心目標是實現零感知故障切換和零數據丟失。
雙活與傳統主備架構的差異:
雙活技術將兩個地理分散的數據中心融合為單一邏輯存儲池,業務可在任意站點無差別訪問數據。