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