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