這幾張圖來自我的一位朋友@XeonPhiCluster上個月發的微博——“sTec企業級800GB SAS接口SSD,亮點是sTec自研的Controller,自帶4* (2.7V/6F)超級電容,最多16個NAND顆粒,性能可靠性不錯。”

在“sTec”主控右上方有1顆DRAM緩存芯片,它的背面(也就是前一張照片上)應該還有2顆相同的芯片,可以起到ECC的效果?

這里的重點講的是電容——“四個2.7V/6F超級電容,個頭不大見圖(需要掰開塑膠件才能看到6F字樣),使用這么大超級電容和SAS企業級應 用相關。以前接觸Intel,前期產品如X25-M沒用電容,SSD 320是6個470uF/6V的鉭電容,后來S3500是3個45uF/35V的鋁電解電容。說白了,看用 戶,看場景,以前統一存儲主板上還用超大的BBU電池呢。”

這款sTec SAS SSD使用電容之大,我覺得可以歸為本文開頭的分類“a”——大量寫Cache數據(包括元數據)。記得我還曾詢問過sTec關于 PCIe SSD上使用外置DRAM的原因,答復并不意外——“優化(合并)對NAND的寫入,獲得更好的性能和壽命”。

提到Intel SSD 320,使我想起前幾年參加過的采訪。

當時Intel的齊煒是這樣解釋的:“斷電這塊,今天我們會用電容,英特爾只是把內存里的數據存進去,有一些數據會放在我們控制器里面緩 沖區,所以在斷電保護時間里面要完成數據的拷貝量是不大的,是相對小的。其他的廠家可能有很大的電容來提供保護,但他們面臨著安全性的 問題,電容本身的壽命可能比不上整個固態硬盤,所以就是說你的電容大,很可能會成為里面最早壞的元件。”

如上圖,幾顆黃色鉭電容保護的就是旁邊那顆64MB Hynix DRAM中的數據。Intel當時表示,SSD主控里的Cache存放的是臨時數據,而外置DRAM 則是元數據(映射表),而電容正是針對的后者。

我認為Intel SSD 320,包括他們后來的企業級SATA、PCIe產品都應該屬于分類“b”——掉電保護少量元數據、正在寫入的頁面。

相比之下,當時SandForce(現在屬于希捷了)控制器采用壓縮方案,無外置DRAM因此控制器內置的緩存大一些。企業級產品可以加電容來保 護,消費級SSD通常不會配置。

上圖為LSI Nytro的前身——SATA轉PCIe的WarpDrive,卡背面有2顆0.6F 5.5V的電容,它們肩負著正面6個SandForce控制器SLC模塊的掉電保 護。

那么這款WarpDrive估計也屬于分類“b”或者“a”。

不久前,有朋友在網上詢問“Fusion-io主機內存里的元數據每次更新是透寫到卡里么?”

業內資深人士@jebtang回復說:“沒有,只是把內存中的元數據的b+tree的頭和尾寫入在FPGA上的SDRAM里,這樣可以在掉電的時候rebuild整 個tree出來就行了。”

可見Fusion-io卡上只需要少量電容,應該屬于典型的分類“b”,不過正如我在《破解PCIeSSD進化:從踩坑到解決方案》一文中所寫的, PCIe SSD恢復供電后rebuild元數據通常會有一段時間,“有的1-2分鐘,也有的8-40分鐘”。

接下來我們再看看國內兩家PCIe SSD初創廠商是怎么說的,由于是技術討論,具體品牌在這里只用代號表示。

F:“只有我們是寫到flash的,呵呵,這可是技術活。

做Cache應用是不需要的,我們是需要保證的,一旦告訴業務層寫入成功,那必須是。這涉及誠信問題。

元數據都不實時寫flash,那還談啥子可靠性。說到代價,基本可以忽略,我們的4k寫IOPS還不是到35萬,所以說是技術活呢。

一般電容保護不了這個,卡上電容的目的是保護正在寫入的頁,不是RAM里的數據。普通的SSD還行,PCIe的,用電容不現實。我們的系統級產 品倒是提供了RAM的數據保護,4個尺寸是30*30mm的電容,很大個的。異常掉電的恢復時間很快啊,分分鐘搞定。”

K:“4個電容總備電量多大?單卡最大功耗多大?RAM容量多大?”

F:“這么說吧,我們的目的是保證給200瓦的系統20ms的時間,處理異常掉電的善后工作。”

K:“20ms 夠不夠?我們2.5寸的SSD2.5瓦,無外置緩存,備電電容90-400mF,保證200-300ms.PCIe卡最大35瓦,無外置緩存,0.8F超級電容。 總體來說,沒有為跑分而設計外置緩存,減小備電要求,同時,安全冗余還是放的很大。以上供你參考。一起努力,中國閃存創業者雄 起!”

F:“每頁的寫入時間是1.5-2ms. 結合你的RAM大小,應該很容易算出電容的需求。”

K:“DRAM不只是存儲一些頁大小的數據,合并優化中的用戶數據、映射表,否則沒必要用那么大的緩存的。

我們為了可靠性,放棄FPGA了,是ASIC方案。外置DRAM其實很不錯,對性能,壽命都有很大幫助。 但我們測試了多家的外置緩存的方案,發 現得到好處的同時代價和風險也很大,進行優化寫入技術對掉電要求很高,風險很大,而電容,電池都有老化問題,安全冗余必須很大才行。最 終我們否了外置緩存方案。”

點評:上面這兩家討論的還算友好:)可以看出他們的產品有些共性——卡上電容的目的是保護正在寫入的頁,據稱至少有一家的元數據是實 時寫NAND閃存。也就是說,他們可能都屬于本文開頭的分類“c”。

看上去一切都很好,我也希望真的那樣好。然而在3年多之前,我在一次和國內某PCIe SSD初創廠商交流時(那時他們的卡還只是樣版),曾 經問過元數據直接寫NAND是否會有性能問題,當時對方的答復相當肯定——不會。不過后來聽到其掉電后第一次重啟恢復的時間,又讓我感覺有 點像Fusion-io rebuild元數據的方式,甚至時間更長。

再次聲明,本文沒有指責哪家的意思。正如一位業內朋友所說:“即使產品出現過問題,只要下功夫,半年一年之內基本也能解決。”

如果元數據真的100%直接寫NAND,即使對IOPS影響不大的話,我還是有點擔心寫放大,還有延時。

上圖是Intel最新一代PCIe(NVMe)SSD規格,在讀/寫延時數字中,這里的讀“作弊”了,因為是在順序I/O也就是說有Cache預讀的情況下。

如果某家產品每一個寫I/O都是直接到NAND的話,寫延時就更不可能這樣短了,特別是元數據立即寫到閃存。

如上圖,三星SFF-8639規格的XS1715 SSD PCB背面布滿了大量的鉭電容。如下圖,它的DRAM緩存芯片是1顆256MB的,PMC主控中有多少緩存需 要做掉電保護我不太確定。但參考本文前面的經驗,該產品可能又回到了“b”甚至“a”分類。

那么好處是啥呢?我覺得可能還是為了性能、簡化設計等。沒有一種方案十全十美,都是有取舍的。

看到這顆同樣金屬上蓋的PMC NVMe控制器,我又想起了sTec——也包括他們的PCIe ASIC。在SAS企業級SSD陷入同質化競爭之后,PCIe又會怎 樣呢。如今PMC被Micron、三星和Memblaze選用可謂風光無限,有人開玩笑說SandForce被LSI給搞廢了:)不過Marvell和其他人還是會加進來玩 的。

最后這張圖,來自Greenliant VP李炫輝的ppt,是講如何做SSD掉電保護測試的。廠商說的再好,用戶還是要通過自己的測試來驗證。

本文出自黃亮的微信公眾號,企業存儲技術(微信號:huangliang_storage),歡迎大家關注!  

未經允許不得轉載:存儲在線-存儲專業媒體 » SSD緩存掉電保護:3種方案的利與弊
分享到

huangliang

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走