隨著價格適中的大容量閃存芯片的面市,數(shù)據(jù)中心巨大的存儲系統(tǒng)體系結構出現(xiàn)了很大的變化。通常的情況是,大容量低成本應用出現(xiàn)變化時,結果會很快擴展到其他計算領域,包括嵌入式領域。今年閃存峰會的論文和主題演講討論了這種顛覆式變化對數(shù)據(jù)中心的影響,從中揭示了其涉及范圍和進展情況。
這種變化直接的原因是閃存供應商在規(guī)模上的成功:使用創(chuàng)新的單元設計和新工藝技術,推動了單位比特成本的不斷下降,達到了降低單位比特磁盤成本的目標。減小體積,每個單元能夠存儲多個比特的數(shù)據(jù),最近的工藝變化支持 NAND 閃存單元在管芯表面垂直堆疊,使它們能夠一起協(xié)同工作 (圖 1) 。
目前最新的進展是堆疊了 32 個單元,每單元 2 個比特的 128 千兆位 (Gb)芯片,還有,據(jù)傳這一 3D 器件每個單元存儲了 3 個比特,其密度接近了 256 Gb。三星公司在此次峰會上介紹了這些器件。三星還介紹了這類芯片有可能支持實現(xiàn) 16-32 太字節(jié) (TB) 固態(tài)磁盤 (SSD)。
是 SSD 而不是閃存芯片本身改變了大規(guī)模存儲系統(tǒng)的游戲規(guī)則。在這一點,SSD — 含有閃存芯片和控制器的模組,能夠替代中等容量的磁盤陣列,同時實現(xiàn)較高的傳送速率,更短的訪問延時。SSD 能夠降低能耗,在可靠性上還具有優(yōu)勢。而且,隨著最近價格的變化,據(jù) IBM 閃存系統(tǒng)副總裁 Michael Kuhn “可伸縮存儲的成本優(yōu)勢結合具有 RAID 陣列的閃存模組,其成本要低于高性能磁盤。”
這一情形表明,在存儲體系結構中,數(shù)據(jù)中心能夠考慮使用 SSD 來替代 DRAM 下面的高性能磁盤。這種變化可以把磁盤降級為所謂的冷存儲應用:保存使用不多或者不經(jīng)常參考的文件。
圖 1. 將比特單元在縱向比特行上一個個的堆疊,閃存供應商能夠在一個比特單元布局中獲得 32 個單元。
閃存芯片的發(fā)展還打開了另一扇門。設計人員現(xiàn)在可以更自由的混合使用 DRAM、閃存和磁盤進行試驗。底層的概念是使用每一種存儲技術作為較慢的下一層的管理高速緩存。所有層都能夠由本地控制器進行管理,這一控制器與應用層和OS層軟件相配合,在系統(tǒng)中延時最低的層中保存使用最多的數(shù)據(jù)。
有趣的問題是在互聯(lián)體系結構中,以及控制器的實際功能中。為解決這些問題,我們還要問一些問題:數(shù)據(jù)中心運營商要做什么,編程人員需要什么?
適應數(shù)據(jù)中心
數(shù)據(jù)中心運營商會購買下一代存儲系統(tǒng),也可能會忽略。因此,重要的是理解他們的觀點。然而,他們的觀點并不簡單:數(shù)據(jù)中心千差萬別。
比較容易得出的結論是:運營商要掙錢。但這只是意味著,每家運營商都希望在性能、能效、初始成本、可靠性、安全和可預測性上有自己的特點。某家運營商到底需要什么,他們使用什么樣的體系結構方法來實現(xiàn)目標,這些都是千差萬別。
運行單一功能箱式數(shù)據(jù)中心的石油勘探公司的需求可能會比較極端。對于這一類客戶,性能最重要。采購和運營成本并不是很重要,可靠性是額外的,而安全和可預測性需求并不明顯。但是,數(shù)據(jù)中心規(guī)模越來越大,更加開放,各種任務相混合,優(yōu)先級也變化了。能源成本會遠遠超出購買價格。總吞吐量 — 或者能夠準確的預測運行時間,會比單一任務速度更重要。安全成為很大的問題,而大量的冗余會使得可靠性問題從芯片級或者機框級蔓延到系統(tǒng)級,在不需要的存儲介質(zhì)上實現(xiàn)零誤碼率。
滿意的編程人員
相反,編程人員的需求聽起來非常簡單。總體上,編程人員只需要非常大的平面地址空間,因此,他們的程序能夠按照名稱來調(diào)用變量,不需要知道數(shù)值目前在哪里 — 在本地高速緩存中,在某些其他服務器的 DRAM 中,在某處的 SSD 中,還是在大容量磁盤中。當然,他們希望這種透明性不會增加額外的性能或者存儲成本,也不用修改源代碼。
綜合考慮起來,所有這些要求看起來沒法滿足。而 CPU 管芯的高速緩存大大降低了延時,提高了 DRAM 帶寬,新的融合存儲體系結構能夠提高存儲系統(tǒng)的性能。它們能夠讓這一層次結構成為單一的平面虛擬 DRAM 陣列,性能類似 DRAM,只是偶爾出現(xiàn)額外的延時。
這對于大數(shù)據(jù)中心的影響非常大。例如,在宣傳公司的可伸縮存儲體系結構時,IBM 的 Kuhn 宣稱幫助可口可樂將現(xiàn)有服務器的存儲性能提高了 5 倍。很多人認為可伸縮存儲是融合存儲技術的雛形,代表了閃存芯片和互聯(lián)體系結構的最新發(fā)展。
而優(yōu)勢不僅僅體現(xiàn)在規(guī)模上。Marvell 半導體公司副總裁 Iri Trashanski 解釋說,其公司認識到大量的 SSD,從客戶側存儲系統(tǒng) — 存儲 2 gigabytes (GB) 或者更少,通過 SATA 通道直接連接服務器,直至企業(yè)和數(shù)據(jù)中心系統(tǒng),這些系統(tǒng)將磁盤降級為冷存儲應用。Trashanski 說:“今天,所有這些領域使用相同的閃存芯片,具有同樣的商用控制器,只是在固件上有所差別。” 但是這種同一性很快出現(xiàn)了變化。要了解其原因,我們必須深入了解融合存儲系統(tǒng)。
機箱里面
Riccardo Badalone 是 Diablo 技術公司的 CEO,介紹了其公司的產(chǎn)品,說明了技術應用在哪里。他說: “未來的存儲系統(tǒng)是高密度,納秒字節(jié)尋址,容量是可伸縮的。公司的建議是 — 融合存儲器” ,Badalone 說:“DRAM 和閃存的工程融合。” 閃存提供了高密度、非易失、模塊尋址存儲。DRAM 疊加了閃存,具有高速、字節(jié)尋址可預測高速緩存。
在實際的大系統(tǒng)中,這一概念可以擴展到 DRAM 和閃存之外,包括大容量磁盤,甚至是磁帶。在每一層面上,存儲介質(zhì)的角色略有不同,控制器所需要的功能完全不同。更有趣的是,每一級都有不同的互聯(lián)選擇。
互聯(lián)結構可能是研究開始使用這些融合系統(tǒng)最好的地方。傳統(tǒng)的服務器除了片內(nèi)高速緩存會有三級存儲:DRAM、本地磁盤以及與網(wǎng)絡連接的存儲設備。這些與 CPU 的連接都采用了不同的物理方式,具有不同的控制和數(shù)據(jù)傳送協(xié)議。
服務器的 L2 或者 L3 高速緩存控制器通過專用端口連接 DRAM,連接專用 DRAM 控制器,進一步直接連接至 DRAM 模組。出現(xiàn)高速緩存錯過或者泛洪時,控制器產(chǎn)生 DRAM 引腳信號,以讀取或者寫入控制器行中。
直接連接的磁盤工作方式完全不同。磁盤控制器通過專用 SATA 端口,或者 PCI Express? (PCIe?),連接至 CPU。運行在 CPU 內(nèi)核中的驅(qū)動軟件將操作系統(tǒng)的請求轉(zhuǎn)譯成文件名稱和記錄號,然后,在控制器的幫助下,訪問磁盤的扇區(qū)。然后,驅(qū)動程序命令控制器在磁盤和 DRAM 之間傳送扇區(qū)。同樣的過程應用到與網(wǎng)絡連接的存儲設備上,但是,磁盤和控制器之間的通信必須通過另一層 — 以太網(wǎng)驅(qū)動,把數(shù)據(jù)包交付給 PCIe 驅(qū)動,傳送到網(wǎng)絡適配器,最終通過以太網(wǎng)到達控制器。
融合新思路
SSD 和存儲融合將這種異構協(xié)議推向了更簡單的新發(fā)展方向。首先,直接連接 SSD 會替代 CPU 電路板上的 SATA。Diablo 的閃存系統(tǒng)直接連接至服務器卡的 DIMM 插槽,模仿部分 DRAM 地址空間。在其他實現(xiàn)中,PCIe 電路部分通常連接至小型 M.2 卡,承載了 SSD,替代了與磁盤控制器的 SATA 連接。NVMe 等閃存新協(xié)議替代了老的磁盤協(xié)議。據(jù) Altera 存儲系統(tǒng)專家 Robert Pierce,這些技術使得 16-32 TB 的閃存直接連接 CPU 群成為可能。同時,網(wǎng)絡連接存儲開始過渡到帶寬更大的連接,例如,Infiniband 固有的光傳送或者 PCIe。
這些變化表明了方法的集成度更高了。目的是讓所有級別的存儲,從 DRAM 到冷存儲,成為 CPU 高速緩存總線上的一個大容量虛擬存儲器。
這一概念即將實現(xiàn)的是 IBM 的一致性加速器處理器接口 (CAPI) 連接的閃存。這一設計把一個閃存控制器放到 CAPI 總線上 — 實際上,是 Power8 CPU 高速緩存互聯(lián)的片外擴展,支持處理器的存儲器一致性協(xié)議。這種連接支持閃存子系統(tǒng) — 會有自己的 SRAM 和 DRAM 高速緩存,看起來就是 CPU 共享存儲器的一部分。
與 CAPI 物理連接的芯片是閃存控制器。而在未來的實現(xiàn)中,可能是多功能存儲 SoC,控制閃存陣列、本地磁盤,以及冷存儲的光鏈路 。在物理層,融合系統(tǒng)中的每一類存儲都有自己的底層管理要求。DRAM 需要糾錯功能,以及圍繞失效比特單元、行和列的映射功能。閃存有這些要求,還需要算法來消除每一模塊擦除寫入周期數(shù),以便在芯片上均勻的分配損耗,通過算法來優(yōu)化寫入。
據(jù)微軟云網(wǎng)絡服務器工程總經(jīng)理 Kushagra Vaid,這些損耗均衡和寫操作策略 — 以及閃存芯片本身,都是與應用相關的。他指出,微軟對于耐用性和數(shù)據(jù)保持等關鍵閃存芯片參數(shù)的需求是與工作負載相關的。Vaid 說,任何一種云應用都有可能頻繁的使用 SSD,而必應搜索引擎每天只寫入閃存一次。相似的,在某些應用中,閃存芯片不需要將數(shù)據(jù)保持 24 小時以上 — 極大的簡化了芯片供應商設計對數(shù)據(jù)永久保留的需求。知道芯片是怎樣使用的意味著能夠獲得更多的性能或者密度,通過降低測試極限來降低成本。但也意味著,物理存儲器的面積,寫控制算法也是與應用相關的。因此,在一定程度上,存儲器組織必須應對應用級軟件:存儲逐漸成為軟件定義的。
磁盤控制器還有相似的物理層面的要求,但是環(huán)境非常不同。必須糾正錯誤,映射出壞扇區(qū),完成傳送。磁盤讀/寫算法與應用的相關性不明顯,但是,磁盤數(shù)據(jù)組織確是如此。
這一級之上是數(shù)據(jù)管理任務層。如果 DRAM 和閃存層是可預測高速緩存,控制器會進行預測:在合適的時間把數(shù)據(jù)裝入合適的層中。這種需求同樣適用于小系統(tǒng)和大系統(tǒng)。但是數(shù)據(jù)中心能夠增加另一維度 — 不同服務器卡上存儲控制器的直接連接。Pierce 說,有足夠的連接后,控制器能夠形成 2D 或者 3D 曲面,實際上合并了機架中所有 CPU 的全部存儲資源。軟件也會管理哪些數(shù)據(jù)應放在延時和可靠性最佳的地方。
與數(shù)據(jù)管理密切相關的是壓縮和安全。很明顯,無損數(shù)據(jù)壓縮提高了每一存儲級別的容量效率,同樣提高了鏈路的有效帶寬 — 如果算法足夠快。對于容易受到入侵的系統(tǒng),安全問題會要求數(shù)據(jù)以加密格式存儲,只能在授權線程使用時解密。這些任務也是由控制器完成。但是與前面的任務不同,這些任務要求控制器的計算速度與應用級性能相匹配。
這里列出的任務表明,融合存儲控制器從相對簡單的基于 MCU 的 ASIC 發(fā)展到服務器類 SoC,針對特殊功能提供了硬件加速。我們需要指出的最后一點是這保證了發(fā)展。
一旦您決定了將服務器類處理功能放到融合存儲系統(tǒng)中,增加硬件保證例程數(shù)據(jù)管理任務不會讓 CPU 過載,下一個比較明顯的問題是這些 CPU 還能干什么? 這一問題直接導致了存儲系統(tǒng)內(nèi)部關于計算的爭論。
存儲中的計算
支持者認為,在很多算法中,其線程應放到閃存子系統(tǒng)中完成,甚至是在硬盤系統(tǒng)中。總體上,這類任務有兩個特點。第一,它們的參考有很強的本地性,因此,它們不需要存儲模組之間的大量數(shù)據(jù)流。更好的是,任務對數(shù)據(jù)的要求與提供數(shù)據(jù)的介質(zhì)的要求相似,不需要把大量的數(shù)據(jù)保存或者放到本地存儲器中。第二,這些任務應極大的減少傳送給計算服務器用于后續(xù)處理的數(shù)據(jù)量。
例如,在網(wǎng)絡搜索操作中,第一步是過濾所有訪問頁面數(shù)據(jù),找到包括所需搜索術語的頁面。這一任務對于每一頁面完全是本地化的,可以作為磁盤外或者閃存文件之外的數(shù)據(jù)流來處理。任務會丟掉絕大部分頁面,只有一小部分會發(fā)送給服務器,進一步進行分析。對于存儲中處理,這看起來是理想的任務。
懷疑者認為有很難解決的問題。誰應該把算法分成服務器線程以及存儲中線程? 運算怎樣才能維持較高的 CPU 利用率,這一般不容易獲得,而是深藏在存儲系統(tǒng)中? 除了最底層存儲系統(tǒng)之外的所有層都直接連接服務器,存儲中計算又有什么不同呢?
雖然不斷有爭論,但融合存儲系統(tǒng)仍然是很強大的本地處理器。Tensilica 可配置處理器 IP 部的 Cadence CTO Chris Rowen 爭論到,“閃存管理有很多獨特而且難度很大的運算,需要一類新處理器。” 有了這類處理器之后,應用級編程人員會嘗試使用它們。
這又把我們從云端數(shù)據(jù)中心帶回了實際的嵌入式計算。從數(shù)據(jù)中心過渡到融合存儲系統(tǒng)會帶來直接連接模組大市場 — 控制器、DRAM、閃存、磁盤以及高速接口,這些系統(tǒng)需要這些接口。價格競爭會使得這些模組在嵌入式系統(tǒng)設計人員的承受范圍內(nèi)。
對此,嵌入式系統(tǒng)設計人員和編程人員必須要考慮一系列可能發(fā)生的步驟。首先,準備好從 SATA 改變到 CPU 電路板上基于 PCIe 的存儲連接。其次,開始思考存儲不是一類由操作系統(tǒng)通過驅(qū)動調(diào)用所管理的不同的器件,而是一種虛擬 DRAM 平面,由應用程序直接管理。第三,找到應用程序中能夠利用存儲中處理資源的線程 — 可能具有用戶定義的加速器。當轉(zhuǎn)到數(shù)據(jù)中心軟件定義存儲時,這些步驟可能會給嵌入式設計人員帶來意外驚喜。
-
閃存
+關注
關注
16文章
1778瀏覽量
114820 -
數(shù)據(jù)中心
+關注
關注
16文章
4700瀏覽量
71971
發(fā)布評論請先 登錄
相關推薦
評論