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