讓計算看到數(shù)據(jù):粉碎存儲網(wǎng)絡(luò)的瓶頸
讓計算靠近數(shù)據(jù),這聽起來像是一種繞過存儲訪問瓶頸的好方法,但由于軟件問題以及開發(fā)特定硬件和非x86環(huán)境的需要,進(jìn)展十分困難。
隨著數(shù)據(jù)量從TB級增長到PB級以上,將數(shù)據(jù)帶到處理器所需的時間正在成為一個越來越棘手的難題。
所有計算都包括將計算和數(shù)據(jù)集中在一起、向DRAM中加載來自存儲的數(shù)據(jù),這樣處理器就可以完成它的工作。這不是一種物理上的靠近;處理器距離數(shù)據(jù)是1厘米還是20厘米無關(guān)緊要。重要的是降低數(shù)據(jù)訪問延遲,并提高數(shù)據(jù)讀取或?qū)懭氪鎯Φ乃俣取?/p>
存儲和計算之間存在瓶頸,因為存儲介質(zhì)(主要是磁盤)的訪問速度很慢。存儲網(wǎng)絡(luò)也很慢,處理存儲IO堆棧需要太多周期。有過幾次解決這個問題的嘗試,其中一些失敗了,另一些仍在開發(fā)中,特別是將計算添加到SSD。這些是:
- - 將計算帶入存儲陣列
- - 將存儲帶入計算
- - 內(nèi)存系統(tǒng)
- - 將計算帶入磁盤驅(qū)動器
- - 將計算帶入閃存驅(qū)動器
- - 繞過NVMeoF的問題
將計算帶入存儲陣列
Coho Data試圖將計算添加到其存儲陣列DataStream MicroArray中,該陣列是Coho Data在2015年5月推出的,采用基于英特爾至強處理器的服務(wù)器/控制器、PCIe NVMe閃存卡和磁盤存儲。然而,該產(chǎn)品未能取得進(jìn)展,Coho Data在2017年8月停業(yè)。
Coho Data DataStream陣列
在這種方法下,計算針對所謂緊密耦合的存儲任務(wù),如視頻流轉(zhuǎn)碼和Splunk式數(shù)據(jù)分析。
它不是運行在主機服務(wù)器上執(zhí)行的一般應(yīng)用的。有兩個明顯的問題:首先必須自己編寫軟件或者購買軟件以運行在陣列上,執(zhí)行緊密耦合的存儲任務(wù)。其次,用于啟動的主機服務(wù)器代碼、編排、管理和計算結(jié)果的處理必須自己編寫或者購買。
之前在服務(wù)器(有一個附加存儲陣列)上運行的任務(wù),現(xiàn)在必須細(xì)分為主機服務(wù)器部分和存儲陣列部分,然后進(jìn)行管理。這也適用于其他任何是計算到存儲介質(zhì)的產(chǎn)品。Coho Data的這款陣列使用x86處理器。如果帶入存儲驅(qū)動器的計算系統(tǒng)不是x86的,那么在其上運行的代碼將是在x86主流開發(fā)路徑之外的。
據(jù)我們所知,目前沒有任何其他嘗試將計算帶入存儲陣列的顯著方法。
將存儲帶入計算
超融合基礎(chǔ)設(shè)施(HCI)設(shè)備將存儲帶入計算,使其不再需要外部共享存儲陣列。
超融合基礎(chǔ)設(shè)施節(jié)點使用的是本地存儲,多個節(jié)點的存儲聚合為一個虛擬SAN。這仍然可以使用標(biāo)準(zhǔn)的存儲IO堆棧(如iSCSI)訪問,并且需要通過以太網(wǎng)鏈路等遠(yuǎn)程節(jié)點上訪問數(shù)據(jù)。
因此,這種將計算和存儲更緊密地結(jié)合在一起的方式并不會取消存儲訪問IO堆棧或?qū)h(yuǎn)程存儲的聯(lián)網(wǎng)訪問。超融合基礎(chǔ)設(shè)施的好處在于其他方面。
內(nèi)存系統(tǒng)
內(nèi)存(DRAM)系統(tǒng)試圖徹底取消運行時處理的存儲。數(shù)據(jù)從存儲加載到內(nèi)存,然后在內(nèi)存中使用,比數(shù)據(jù)存儲在磁盤上的訪問速度快得多。
GridGain和Hazelcast就是廠商提供軟件運行內(nèi)存系統(tǒng)的兩個例子。
GridGain堆棧
另外一個系統(tǒng)是SAP HANA數(shù)據(jù)庫。磁盤上的源數(shù)據(jù)很少被訪問,以加載內(nèi)存系統(tǒng),然后內(nèi)存數(shù)據(jù)的更改被寫入磁盤,同樣頻率很低。
或者,對內(nèi)存數(shù)據(jù)庫的更改將寫入保存在磁盤上的事務(wù)日志。數(shù)據(jù)庫崩潰的話可以從日志中進(jìn)行恢復(fù)。記錄內(nèi)存交易的的例子包括Redis、Aerospike和Tarantool等產(chǎn)品。
內(nèi)存系統(tǒng)僅限于使用DRAM,因此在實際尺寸上是有局限性的。
將計算添加到磁盤驅(qū)動器的替代方案,旨在提供多TB的容量,而且比DRAM更便宜,提供與存儲堆棧和存儲網(wǎng)絡(luò)訪問全閃存陣列不同類型的性能提升。
將計算帶入磁盤驅(qū)動器
希捷的Kinetic技術(shù)或多或少地開始實現(xiàn)這一想法——將小型處理器捆綁到磁盤驅(qū)動器,并向驅(qū)動器添加對象訪問協(xié)議和存儲方案。
希捷Kinetic磁盤驅(qū)動器
這么做一部分理由是簡化存儲訪問堆棧處理。但是使用這些驅(qū)動器的上游應(yīng)用進(jìn)展緩慢,存在軟件方面的難題,部分原因是磁盤驅(qū)動器仍然是磁盤驅(qū)動器,與閃存驅(qū)動器相比速度較慢。
OpenIO Arm-y磁盤驅(qū)動器
OpenIO已經(jīng)將ARM CPU添加到磁盤驅(qū)動器,將其轉(zhuǎn)變?yōu)橛糜趯ο蟠鎯Φ募{米節(jié)點。
從OpenIO到WDC磁盤驅(qū)動器,添加了ARM CPU系統(tǒng)
它有一套Grid for Apps方案,戰(zhàn)略負(fù)責(zé)人Enrico Signoretti說:“硬盤納米節(jié)點適合傳統(tǒng)的對象存儲用例(例如動態(tài)歸檔),但我們想要復(fù)制我們已經(jīng)在納米節(jié)點x86平臺上所做的事情。”
“感謝Grid for Apps [無服務(wù)器計算框架],我們已經(jīng)展示了圖像識別和索引、模式檢測、接受過程中的數(shù)據(jù)驗證/數(shù)據(jù)準(zhǔn)備、以及一般的數(shù)據(jù)處理和元數(shù)據(jù)豐富。借助CPU的動力,我們能夠直接在磁盤層面遷移大部分操作,在元數(shù)據(jù)保存、訪問或者更新的時候創(chuàng)造價值。”
他提到了應(yīng)用領(lǐng)域的一個例子,那就是視頻監(jiān)控:“遠(yuǎn)程攝像頭可以有一個或多個納米節(jié)點保存所有視頻流,在本地進(jìn)行操作(如人臉識別、去除無用部分等等),只將相關(guān)信息(包含元數(shù)據(jù))發(fā)送到核心。所有數(shù)據(jù)都保存在本地,但只有相關(guān)信息被遷移到云端。
“通過這種操作方式,你可以節(jié)省大量的網(wǎng)絡(luò)帶寬,同時從中央存儲庫中刪除所有雜亂數(shù)據(jù),從而加快操作,降低云中的存儲成本。這是一個高級應(yīng)用,同時也是具有變革意義的。”
他說基于閃存的納米節(jié)點看起來很有前景,因為如果速度更快的話,“目前納米節(jié)點中的硬盤正在限制了應(yīng)用的范圍,因為缺乏IOPS。”
“一旦閃存成為那些以容量驅(qū)動的應(yīng)用的可行選項,我們準(zhǔn)備利用我們的無服務(wù)器計算框架來運行更接近數(shù)據(jù)的應(yīng)用。實時視頻編碼、人工智能/機器學(xué)習(xí)、物聯(lián)網(wǎng)、實時數(shù)據(jù)分析都是我們密切關(guān)注的領(lǐng)域,我們將在接下來的幾個月中分享更多信息。”
評論
一般來說,當(dāng)磁盤IO延遲遠(yuǎn)遠(yuǎn)超過存儲IO堆棧處理所花費的時間時,用戶看不到充足的理由將計算帶入磁盤驅(qū)動器。這暴露了磁盤速度較慢的特點,而將計算帶入速度更快的閃存驅(qū)動器(如SSD)看起來更有前景。
就好像它不僅僅需要降低存儲網(wǎng)絡(luò)延遲一樣;在將計算帶入存儲變得有意義之前,有必要消除磁盤驅(qū)動器的延遲。






