從2015年發布以來,SmartX超融合系統就在不斷提升性能,而2019年到2020年的此次性能上的飛躍,效果還是非??捎^的。

SmartX聯合創始人兼CTO張凱介紹說,2019年,當英特爾發布傲騰持久內存之后,SmartX啟動了一個叫Sailfish(旗魚)的項目,Sailfish是已知海洋中最快的一種魚,SmartX決定利用傲騰來優化性能,為的是能更好地承載核心系統,為了替代傳統裸金屬和傳統中高端磁盤陣列的架構。

解決用戶對于性能的硬性需求,或者說突破超融合能力的上限,就是SmartX成功的重要秘訣之一。

超融合用傲騰的難點和局限性

SmartX利用創新的介質特性,以及對系統底層的開發能力最終完成了這次大的性能優化。但作為首家在超融合中使用傲騰內存作為緩存加速的廠商,SmartX知道這事兒很難。

上圖可見,從內存到SSD再到磁盤,不同介質的容量以及性能表現可以用上圖來表示,內存的訪問延遲在0.1微秒的級別,SSD大概是不到100微秒的水平,而磁盤則是不到1000微秒的水平,當兩個層級之間性能差異較大時,就會帶來體性能上的瓶頸。

英特爾傲騰則是在DRAM和NAND SSD之間加入了新的存儲層級,可以使存儲層級間的性能差異變小,因為,傲騰有接近DRAM的性能,DRAM內存時延非常接近,另外,傲騰還具有SSD的非易失性,掉電不丟數據,而且,它的介質本身可靠性很高。還有一點,傲騰支持字節尋址,就是每次可以只訪問部分字節,而不是512字節或者4KB那么多。

2019年,SmartX發布了采用傲騰持久內存的一體機,該一體機已用于某國內金融企業的VDI場景中,這里用的是內存模式,就是直接把傲騰當內存插上去,而把真正的DRAM內存當做傲騰內存的緩存,這是一種比較簡單的模式,不需要做太多開發,但實際上傲騰還有另外一種模式,叫做App Direct模式,需要在超融合的系統層次上做一些開發,這是SmartX這次主要的使用方式。

但超融合系統想充分利用App Direct模式其實有很多限制,由于超融合系統和用戶應用同時運行在相同的設備上,系統和應用共同占用資源,如果系統資源占用較多,這意味著應用性能就會受限,這是超融合的特殊之處,超融合雖然有存儲服務能力,但功能特性的設計要考慮性能占用,想要將傲騰性能發揮出來,無異于戴著腳鐐跳舞。

更重要的是,由于傲騰本身很快,但如果只有傲騰快,系統別的組成部分都很慢的話,傲騰也完全發揮不了作用。

優化性能的黃金套路——化繁為簡做減法

為了減少資源占用,為了發揮傲騰的性能,SmartX做了許多化繁為簡的操作。據我個人觀察,近年來的性能優化空間很大程度上都是化繁為簡做減法,比如上圖中NVMe相比SAS/SATA就做了減法,少了中間多個步驟,NVMe硬盤的延遲和IOPS有大幅提升,SmartX的做法也類似。

在看具體做法前,我們看到上圖中,用戶的應用運行在一個個虛擬機里,虛擬機里的延遲高的一個重要原因是IO路徑長。如上圖,一個請求從guest虛擬機發出到hypervisior,再到存儲軟件,再到內核,然后再告訴另外幾個節點,最后寫到磁盤上,一共需要五個步驟,每個步驟都會增加額外的延遲,最終影響到性能。如果沒有虛擬機的話,起碼可以省掉hypervisior這一層,所以,裸金屬的方式比虛擬化的性能好。

為了優化性能,為高速傲騰掃清道路,SmartX在三個層次下手優化了IO路徑。

第一個,就是在計算虛擬化層繞過hypervisior,做法是在虛擬機和存儲軟件之間建立了一個Shared memory,虛擬機的請求直達存儲軟件,化繁為簡,性能up。

第二個是網絡層的優化,繞開內核(Kernal)和TCP協議。SmartX采用RoCE的方式來實現RDMA網絡,這種方案能復用原有的以太網設備,而且因為做了一些定制化的工作,網絡的傳輸過程繞開了整個Kernal。另外,由于UDP、TCP協議都是由硬件網卡來計算的,沒有用CPU的資源,減輕了CPU的負擔,最終,整個網絡速度非常高,延遲非常低,化繁為簡,性能up。

第三個是存儲層的優化,繞開了Kernal。存儲層的優化看的也非常清楚,就是通過走DMA繞開了Kernal,從而提升效率和性能。

第四層優化,利用了傲騰的字節尋址特性優化SSD Journal系統,也是化繁為簡的操作。眾所周知,SSD是以4KB為單位來進行數據寫入的,如果不夠4KB的話,也要進行一次4KB的寫入操作,如果大于4KB的話,會把數據切成多個4KB來寫入,以4KB的方式寫入是由NAND SSD的特性決定的。

問題在于,如果有大量小于4KB的數據的話,就會有大量的4KB寫入操作,這種情形叫做寫放大,它會極大地浪費性能,而傲騰因為支持以最小64字節的寫入方式,所以適合大量小數據寫入的情形,極大地降低了寫放大,減少了寫入的數據量,意味著性能上會有很大提升。

以傲騰持久內存來支撐的Journal系統的性能能大大提升,整體系統的性能也就水漲船高了。

用搭載了英特爾傲騰持久內存的三節點SmartX Halo P系列一體機進行實測數據顯示,IO性能提升了3.2倍,延遲上有85%的降低,三個節點可以提供120萬的IOPS和100微秒的延遲。這都是Sailfish項目帶來的價值,它讓超融合有了媲美中高端全閃存存儲的能力。

總結一下

我們看到,SmartX對性能的極致追求解決了許多超融合解決不了的問題,讓用戶在享受超融合帶來的種種便利的同時,也能體驗到超高的性能,也讓超融合開始承載核心業務,這種突破不僅成就了SmartX,對超融合市場本身也有很大的鼓舞作用,讓許多超融合廠商相信,只要在一些方面把產品做到極致,差異化的優勢水到渠成。

未經允許不得轉載:存儲在線-存儲專業媒體 » 傲騰持久內存成就性能偏執狂SmartX
分享到

zhupb

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走