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