
特定領域架構(Domain-Specific Architecture, DSA)、異構計算(Heterogeneous Computing)和計算存儲
實現(xiàn)計算存儲的方法有很多種,但關鍵的要求是在存儲控制器中嵌入處理的能力。說到數(shù)據(jù)處理以及計算能力,CPU處理器自然是首當其沖。CPU作為通用處理器,是個名副其實的“通才”,擅長執(zhí)行指令運算和數(shù)值運算。CPU適用于各種工作負載,尤其是那些對延遲或每核性能很重要的工作負載。作為一個強大的執(zhí)行引擎,CPU將其較少數(shù)量的內(nèi)核集中在單個任務和快速完成任務上。這使得它非常適合從串行計算到運行數(shù)據(jù)庫的工作。另外,CPU編程容易、生態(tài)成熟、擁有豐富的工具鏈和廣泛的開發(fā)者支持,尤其是在計算存儲方興未艾,跑在CSD上的應用負載還不明確和成熟的情況下,CPU可以給予計算存儲系統(tǒng)更多的靈活性。
特殊領域的加速器是計算和數(shù)據(jù)處理領域的“專才”,對于特定領域的應用和負載能提供顯著的性能和效率的提升。在選擇特殊領域的加速器的時候,需要特別注意兩點:一是實際部署或者計劃部署在CSD上的應用負載與加速器適合的負載匹配;二是編程的便利性,是否能夠賦能廣大的軟件開發(fā)人員來利用加速器所帶來的收益。
Linux促進計算存儲的實現(xiàn)
實現(xiàn)計算存儲的方法有很多種,但關鍵的要求是在存儲控制器中嵌入處理的能力,使其可以運行功能豐富的操作系統(tǒng),例如Linux和軟件組件。如此一來,可以帶來以下這些好處:
——擁有龐大Linux開發(fā)者社區(qū)的開源軟件。具有龐大Linux開發(fā)者社區(qū)和行業(yè)廣泛使用的標準工具的開源軟件能讓開發(fā)體驗更加輕松。通過創(chuàng)建工作負載,開發(fā)者可以使用駕輕就熟的開發(fā)方式來構建遵循SNIA的標準的軟件程序,并采用基于Linux的標準系統(tǒng)將其部署到存儲設備,這不僅簡化了系統(tǒng),并且讓軟件開發(fā)更為輕松便捷。
——易用的工具。感謝Linux開源生態(tài)的的豐富資源,開發(fā)者獲取廣大的工具、文檔和支持易如反掌,從而可以更順暢地開發(fā)、部署以及管理計算存儲工作負載。如此一來,開發(fā)者能快速將當前模式下運行在計算節(jié)點上的功能模塊遷移至計算存儲盤上。
——啟動智能存儲。在標準的NVMe盤中,由于存儲控制器并不理解所處理的數(shù)據(jù)的內(nèi)容和屬性,而是純粹把數(shù)據(jù)塊當作黑盒來處理,所以難以實現(xiàn)數(shù)據(jù)的智能管理。在當前模式下,存儲控制器對接收到的數(shù)據(jù)塊進行拆分,然后將它們存儲在NAND晶粒中的頁面。當服務器發(fā)送數(shù)據(jù)塊的請求時,存儲控制器會從NAND取出數(shù)據(jù),將它們重新組裝成數(shù)據(jù)塊,再傳輸送回服務器。由于存儲控制器不了解文件系統(tǒng),所以它對這些數(shù)據(jù)塊的構成也一無所知,不管是JPEG圖像,還是Word文檔,還是可執(zhí)行文件,處理方式都一視同仁。而運行Linux的存儲盤可以掛載標準文件系統(tǒng),使智能存儲成為可能,同時CSD的應用程序能了解數(shù)據(jù)塊實際代表哪些文件,并可根據(jù)文件類型和屬性直接在數(shù)據(jù)上執(zhí)行相應操作。
——存儲盤就等于一臺迷你服務器。運行Linux的存儲盤能通過現(xiàn)有的標準開源系統(tǒng)進行硬盤的管理、工作負載的開發(fā)以及新工作負載的下載。它用最低的成本將存儲盤變成了一個迷你服務器。
現(xiàn)在您可能不禁想著:難道Linux真的能在計算存儲中被采用嗎?這個問題的答案是肯定的。這樣的操作系統(tǒng)不會過大嗎?這個問題的答案是否定的。
當今的存儲盤已經(jīng)擁有數(shù)個GB的RAM和數(shù)個TB的存儲空間,并具備處理進出存儲盤的大量數(shù)據(jù)移動的高性能計算的能力。一般提到Linux,大家可能會聯(lián)想到在大型服務器中安裝的大型軟件,并不適用于嵌入式設備端的存儲、安裝和運行,但相比于大型服務器,在存儲設備上,我們對Linux的要求要低得多,其軟件大小也能有顯著的縮減。
存儲設備上運行的Linux不再需要顯示驅動程序,其他部分功能也不適用,可以將之簡化并根據(jù)存儲控制器的需求進行定制,例如,Debian 9只需要512 MB的RAM和2 GB的存儲空間。
通過利用現(xiàn)在在復雜系統(tǒng)中使用的標準開源工具,我們可以進行CSD管理,例如利用Kubernetes、Docker或經(jīng)過擴展的Berkeley Packet Filter(BPF)等常用工具,我們可以安全地下載和管理工作負載,以安全的方式執(zhí)行應用程序或腳本。
具計算能力的實時處理器
從處理器的角度思考,實現(xiàn)計算型存儲有幾種方式,最為常見的就是將Arm Cortex-A應用處理器嵌入固態(tài)硬盤控制器的芯片中,這樣的話,存儲處理器就可以直接支持Linux的運行,這是一個不錯的選擇。但是存儲設備對處理器的一個剛需是提供具有高確定性的實時行為,以保證數(shù)據(jù)搬運的速度和效率。為了顧全計算存儲設備所應該具備的實時響應與計算能力,Arm在實時處理器Cortex-R系列開發(fā)出支持64位與Linux支持能力的Cortex-R82,與過去應用于存儲設備的其他Cortex-R系列產(chǎn)品相比,最高可達到2倍的性能提升。Cortex-R82還可以加載Arm Neon技術,使存儲應用較低的時延運行包括機器學習等新的工作負載,并提供額外的加速。此外,Cortex-R82本身為64位架構,最高可以存取1 TB的DRAM,在數(shù)據(jù)量激增和存儲容量顯著提高的未來供存儲應用進行先進的數(shù)據(jù)處理。
存儲控制器傳統(tǒng)上是通過裸機/RTOS工作負載的運行,作為數(shù)據(jù)的存儲及存??;而Cortex-R82提供可選用的內(nèi)存管理單元(Memory Management Unit, MMU),讓功能豐富的操作系統(tǒng)在存儲控制器上直接運行,支撐起計算存儲的實現(xiàn)基石。
計算存儲的未來就在眼前
目前已有多家合作伙伴提供基于Arm 處理器的存儲設備,同時整個產(chǎn)業(yè)也在致力于讓所有存儲開發(fā)者和廠商能一致采用一種通用的實現(xiàn)方式。Arm 正積極地參與 SNIA 計算存儲技術工作小組,并攜手 45 家公司和 202 名成員合作定義標準。這項標準將消除碎片化和缺乏兼容性的風險,進一步加速計算存儲的發(fā)展與創(chuàng)新。
【本文作者馬健,Arm物聯(lián)網(wǎng)兼嵌入式事業(yè)部業(yè)務拓展副總裁】