1. 程式人生 > >從 SAS 到 NVMe,換個底盤就完兒事了?

從 SAS 到 NVMe,換個底盤就完兒事了?

640?wx_fmt=gif

640?wx_fmt=jpeg

從 SAS 過渡到 NVMe,看起來很容易,是不是更換個底盤就完了?這裡面其實挺複雜的。具體怎麼個複雜法,筆者將以下面這款產品入手為您介紹。


640?wx_fmt=png

PowerMax簡介


2018 年 5 月 1 日,戴爾易安在戴爾科技全球大會上推出基於全快閃記憶體架構的 PowerMax 儲存系統,該系統將全面取代之前的 VMAX。這意味著後續戴爾易安高階儲存系統將全部是全快閃記憶體架構。

640?wx_fmt=jpeg

PowerMax 儲存陣列可以被視為歷史悠久的 VMAX 產品家族的繼任者,該產品家族的起源可追溯到 1990 年,之前的 VMAX 是 EMC 公司在被戴爾公司收購之前所推出的。

PowerMax 的命名與戴爾易安信伺服器產品線的 PowerEdge 相呼應,形成統一的命名風格。PowerMax 內部的控制器也被命名為 PowerBrick(之前是 V-Brick),作業系統命名為 PowerMax 作業系統(之前為 HyperMatrix 作業系統)。

PowerBrick

之前 VMAX 的全快閃記憶體版本為 VMAX-AF,而 PowerMax 相比 VMAX 的區別在於:

❶ 後端由 SAS 體系結構全面替換為基於 PCIE 的 NVMe 體系結構,效能大幅提高。

❷ 引入機器學習來輔助效能分析、故障檢測和日常運維,彰顯智慧。

❸ 增加了對重刪(Deduplication)的支援,儲存空間使用效率提升。

 640?wx_fmt=jpeg

戴爾易安推出了兩款 PowerMax 型號,分別為 2000 和 8000。其中 2000 可視為升級版的 VMAX250F, 8000 為升級版 VMAX 950F。PowerMax 使用 SFF8639 聯結器的雙埠 NVMe SSD,並同時支援 NVMe over Fabrics(NVMe-oF) 協議。

640?wx_fmt=jpeg

控制器節點 Brick 使用的 CPU 也是沿著 Intel 產品發展路線從 VMAX 250F/950F 的 Broadwells 升級到 Xeon E526xx v4,儘管最大 Core 數 576 沒有發生變化,但 IOPS 從 950F 的 670 萬上升到 8000 的 1000 萬。

640?wx_fmt=jpeg

PowerMax 2000 能夠提供高達 170 萬的 IOPS 和 1PB 容量,可以擴充套件到 2 個 PowerBricks。PowerMax8000 能夠傳輸高達 1000 萬的 IOPS 和 4PB 容量,可擴充套件到 8 個 PowerBricks。

新增加的 Inline 重複資料刪除功能,可以與現有的 Inline 壓縮一起使用,可高達 5:1 的資料縮減率,支援靈活開關。最大有效容量與 250F 和 950F 的最大(1PB 和 4PB)保持一致,在 10U 的 PowerBrick 中支援從 13TB 開始起配。PowerMax 的機架密度是 VMAX 的 2 倍,能耗降低了 40%。

640?wx_fmt=jpeg

PowerMax 的執行軟體將有兩個版本組成:即 Essentials 和 Pro。Essentials  版本提供了 SnapVX,重刪和 QoS 等特性,而 Pro 版本提供遠端複製、PowerPath 和 SRM。

640?wx_fmt=jpeg

PowerMax 對 NVMe SCM 的支援將極大地減少陣列的延遲。使用 NVMe 快閃記憶體驅動器的 PowerMax 的響應時間比之前的 VMAX 減低 25%,而端到端 NVMe 和 SCM 的組合將使 PowerMax 的響應時間比 VMAX 快 50%。

640?wx_fmt=jpeg

PowerMax 作業系統使用機器學習、預測分析和模式識別等技術使得儲存系統更加智慧和自動化。在機器學習方面,PowerMax 作業系統可從裝置上收集的效能和相關資料(包括陣列的實時資料),PowerMax 可以決定哪些資料或資料塊可以儲存在哪些儲存層上,它通過利用超過 4000 萬套部署資料集(儲存)和 IO 讀、寫、Get 和 Put 等操作中變得更加智慧。

640?wx_fmt=jpeg

640?wx_fmt=jpeg


640?wx_fmt=png

說說從 SAS 到 NVMe 的過度


PowerMax 這次後端從 SAS 完全過渡到 PCI-E,這是個非常大的變化。這個過渡並非升級,而是完全拋棄換新的,一切都是新的。這也意味著之前在 SAS 方面的積累幾乎作廢。但是有一點可以保留,那就是 Enclosure Management 部分可以重用之前的框架。

640?wx_fmt=jpeg

如上圖所示▲,在 SAS 體系下,SAS Controller 將整個 SAS 後端的一切都隱藏了起來,Host 端看得到的只有 SAS Controller 的地址空間,通過上層驅動一層層識別到後端的 SAS 裝置。這種鬆耦合方式靈活,方便運維。比如 SAS 熱插拔等處理都非常方便。

然而過渡到 PCI-E 之後,由於沒有了 HBA Controller,所有 PCIE 裝置都被直接暴露在地址空間中,熱插拔是個很大問題,雖然目前熱插拔已經逐步完善,但是仍有不少相容性等邊緣問題存在。

為此,人們自然會有個想法,就是繼續使用 HBA 來遮蔽後端的 PCI-E 裝置,但是要依然使用 NVMe 協議。所以自然想到了 NVMe-OF。儲存系統控制器節點採用比如 40G 乙太網卡或者 FC 卡,連線 JBOF 端的乙太網 NIC,通過該 Target 端 NIC 識別到一系列 NVMe 硬碟。這個套路與 SAS 基本類似。但是效能一定不如原生 PCI-E,可能會與 SAS4 效果類似。

640?wx_fmt=png

SAS4 下 x4 PHY 的速度已經可以達到單向 96Gb/s,相比之下,x2 的 PCI-E 通道總速率不過 16Gb/s。而且 SAS4 相比 SAS3 的一個很大提升則是支援基於時分複用的鏈路複用和全雙工(目前僅 Microsemi SAS4 產品支援)。如果把 SAS SSD 的規格做高,配以目前 SCSI Multi-Queue 協議棧,也可以達到不錯的效能。

640?


  

print_r('點個好看吧!');
var_dump('點個好看吧!');
NSLog(@"點個好看吧!");
System.out.println("點個好看吧!");
console.log("點個好看吧!");
print("點個好看吧!");
printf("點個好看吧!\n");
cout << "點個好看吧!" << endl;
Console.WriteLine("點個好看吧!");
fmt.Println("點個好看吧!");
Response.Write("點個好看吧!");
alert("點個好看吧!")
echo "點個好看吧!"