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