根據2018年底IDC發布的報告“Data Age 2025:The Digitization of the World From Edge to Core”顯示,伴隨5G/IoT和車聯網等新興技術落地,越來越多的終端以及越來越高的帶寬催生越來越多的數據產生,到2025年,全球將每年產生約175ZB數據;同時隨著大數據/AI技術的廣泛應用,數據的價值得到更加充分的挖掘,被存儲和被分析的數據量指數增長。
另一方面,相比機械盤(HDD),基于NAND Flash介質的SSD可提供更高性能、更高密度、更低能耗,隨著技術不斷進度,成本進一步下降,已經被市場廣泛接受,發貨量超過HDD;傳統針對HDD盤設計的SATA/SAS接口,無法充分發揮SSD的性能潛力,針對SSD設計的NVMe標準接口一經出現,便展現了強大生命力。根據2019年全球閃存峰會(Flash Memory Summit,FMS)的預測,2020年將有50%以上的服務器,40%以上的陣列支持NVMe SSD,NVMe將很快超過SATA/SAS成為SSD使用的主流存儲接口,宣告NVMe時代的到來。
應用數據量和數據熱度同時增加,對于存儲系統的設計提出了新的挑戰,使用NVMe SSD構建的全閃存存儲系統成為業界共識,而如何構建各自又有不同的理解。本文對這個問題做一個粗淺的探討。
全閃系統的性能指標,低時延比高IOPS更為關鍵。降低時延,關鍵是縮短IO路徑,提升IO路徑的處理效率。在系統設計選擇上,要求針對NVMe特點做出新的調整。
為達到更低的IO時延和更高的效率,前端支持NVMe over Fabric是必選。后端NVMe SSD的組網可在PCIe和NVMe over Fabric(FC或RoCE)之間選擇,PCIe時延為亞微秒,但擴展能力比較局限;NVMe over Fabric擴展能力強,而時延則在10微秒級。
NVMe SSD單盤性能相當強大(100k iops),控制器往往構成系統性能瓶頸,串接盤柜的擴容方式,只能增加容量,并不能帶來性能的增長,因此,全閃系統應考慮scale-out的架構。 從降低時延的角度,數據的跨控制器轉發應盡量避免。但為了提供數據跨控制器冗余,或者提升單對象多控制器并發訪問能力,又要求數據在不同控制器之間轉發,一個系統需要在有沖突的多個需求間尋求平衡。
而另一方面,無論技術如何發展,高可用性是對存儲系統的一貫要求,對于更多承擔關鍵業務的全NVMe閃存系統來說,高可用性更是一個不容讓步的目標。Scale-out系統有了更多的硬件部件,合適的架構可以達成相比雙控陣列更高的可用性,而不合適的架構選擇可能形成整體串聯的可靠性模型,反而降低了系統的可用性,這是系統設計者和用戶都值得注意的。
例如一些系統為追求全局去重效果,將所有的數據按其指紋的HASH來確定數據存儲和處理的模塊,這種設計不僅在正常工作時存在大量的模塊間數據轉發,更為嚴重的是,在單個模塊故障后,可能導致全系統數據不可用(如圖1,不同模塊處理不同尾數的指紋。例如Module1故障后,所有指紋尾數是0、1的數據將不可用,從而整個系統不可用);這種系統的可用性模型是各模塊的串聯,假設單個模塊可用性是5個9,全系統可用性必然低于5個9。
圖 1 按模塊處理指紋的全局去重設計示意
中興通訊基于多年存儲研發技術的積累,全新發布全NVMe全閃存陣列KF8200。秉承一貫腳踏實地的風格,以系統可靠穩定為基石,同時積極擁抱技術最新發展,在軟硬件架構上全面創新,KF8200成為全NVMe時代中興通訊存儲的旗艦產品。
圖 2 ZXCLOUD KF8200全NVMe閃存陣列
全系統由一個或多個雙控機柜通過RoCE網絡連接,組成一個scale-out系統。每個雙控機柜都可以提供NVMe over Fabric訪問接口;單機柜支持30塊NVMe SSD,可提供超過200w IOPS以及亞ms的響應時間。
所有NVMe SSD都位于控制器柜中,通過PCIe直接與控制器相連,避免了復雜的后端組網,硬件設計上保證極低時延;軟件上,數據冗余使用機柜內專用通道在機柜內雙控間完成,避免了機柜間數據轉發導致的時延;數據分布策略設計上,做到了系統正常工作時,基本無跨模塊數據轉發,IO數據路徑做到業界最短。
由于消除了正常工作時模塊間數據轉發,基本實現了真正意義上的scale-out,即性能和容量都隨著節點(以機柜為單位)增加而線性增加。各個節點間正常工作狀態呈現為松耦合,而在異常發生時各節點業務又可以互為倒換,在可靠性和性能二者之間達成較為理想的均衡。