黃亮 發(fā)表于:14年11月27日 11:46 [原創(chuàng)] DOIT.com.cn
我昨天在《FPGA搞不定LDPC?分布式ECC助陣SSD》一文中拋出了“磚”之后,果真引到了“玉”。
一位來(lái)自Fusion-io的朋友站出來(lái)說(shuō):“我們現(xiàn)在的LDPC是FPGA的。”
另一位朋友則表示:“LDPC用軟件實(shí)現(xiàn)就可以了,放硬件里不費(fèi)事么?FPGA中的core就可以處理LDPC了。”
我們?cè)倏纯醋蛱炷菐孜淮笈:髞?lái)怎么說(shuō)。
J君:“至于FPGA內(nèi)能否放入大邏輯面積的糾錯(cuò)控制器(如BCH72bit,LDPC等),那要看你用什么FPGA。”
F君:“現(xiàn)在的FPGA有能實(shí)現(xiàn)BCH72帶寬3GB/s的嗎?
原來(lái)的Flash出錯(cuò)概率低,可以很多通道共享一個(gè)ECC引擎,現(xiàn)在不行了,需要更多引擎。
比如原來(lái)的數(shù)據(jù)帶寬是3GB/s,但因?yàn)槌鲥e(cuò)概率低,可能ECC達(dá)到500MB/s的糾錯(cuò)帶寬就行了。”
L君:“不能用硬盤那套LDPC來(lái)套用到SSD,第一是信道模型不同,第二是出錯(cuò)BER和糾錯(cuò)要求不一樣,第三是帶寬和性能差了1-2個(gè)數(shù)量級(jí)。
所以現(xiàn)在是ECC帶寬限制SSD帶寬。
提高ECC帶寬主要有集中思路,硬件上就是
1. 提升ECC硬件芯片頻率;
2. 提升譯碼并行度,增大矩陣計(jì)算量64*64 –128*128等;
3. 針對(duì)LDPC算法和計(jì)算邏輯進(jìn)行深度優(yōu)化,譯碼QoS,負(fù)載均衡調(diào)度等。高性能LDPC本身就是并行分布式的,放不同邏輯上面做還是由于性能高后邏輯資源不夠。
軟件層面考慮,就是和FTL深度整合了,后期用容量換性能,要求彈性FTL,占用戶存儲(chǔ)空間,不過(guò)這個(gè)相當(dāng)復(fù)雜,涉及用戶數(shù)據(jù)搬移,以及非結(jié)構(gòu)化FTL,沒(méi)見真正做出來(lái)。”
S君:“是說(shuō)FTL在host端么?我認(rèn)為這是趨勢(shì)。”
L君:“其實(shí)并不一定是在host,SSD主控本身功能做強(qiáng)也能實(shí)現(xiàn)彈性FTL,不過(guò)要加CPU,純FPGA搞不定。
如果算法全做host,對(duì)硬件控制器公司就是災(zāi)難。
按照這種做法,就是白牌服務(wù)器的做法。用戶直接找個(gè)代工廠,用標(biāo)準(zhǔn)解決方案就行,SSD只提供讀寫擦,ECC三種基本功能,其它全軟件做。”
P君:“要把一些CPU計(jì)算放進(jìn)ASIC里面。”
L君:“沒(méi)錯(cuò),要跟CPU搶業(yè)務(wù)才能提高門檻,學(xué)術(shù)性講就是降低CPU負(fù)載。”
S君:“我的觀點(diǎn)是充分利用CPU,以后多路服務(wù)器CPU的能力根本用不完,內(nèi)存都可能爆過(guò)外設(shè)。盡量去用CPU而不是降低CPU使用。
將FTL放到host,還可以綁定應(yīng)用,使得用戶程序更快。”
Q君:“有點(diǎn)軟件定義閃存的概念。”
看著看著,以我的水平根本插不上嘴,剩下的只會(huì)叫好了。于是就干脆把以上的討論分享給大家。
翻了翻之前寫過(guò)的東西,我在上一次討論Host-based與Device-based之爭(zhēng)時(shí),就提出過(guò)“越接近CPU越有利于軟件定義”。
所謂軟件定義閃存,之前我也看到百度提出過(guò)這個(gè)概念,不過(guò)那個(gè)還不屬于通用的商業(yè)產(chǎn)品。具體到PCIeSSD上,偏“軟”的——即Host-Based架構(gòu)的代表Fusion-io,支持Atomic-write(原子寫,參考《十億IOPS不是夢(mèng)?Fusion-io閃存API另類分析》一文);后來(lái)還推出那個(gè)專門針對(duì)MySQL數(shù)據(jù)庫(kù)優(yōu)化,壓縮并且還提高性能的文件系統(tǒng)(見下圖)。
回到今天的主題,在《破解PCIeSSD進(jìn)化:從踩坑到解決方案》一文中,筆者并沒(méi)有討論Host-Based和Device-Based。當(dāng)時(shí)不是沒(méi)考慮過(guò)這一點(diǎn),但對(duì)于普通用戶來(lái)說(shuō),這個(gè)架構(gòu)差異對(duì)實(shí)際使用體驗(yàn)的直接影響并不是很大。但對(duì)于業(yè)內(nèi)專業(yè)人士則不同了,比如在本月16日舉行的《存儲(chǔ)技術(shù)之巔》第一次線下交流活動(dòng)中,大家就展開了熱烈的討論。
在本文的標(biāo)題之前,似乎應(yīng)該加個(gè)定語(yǔ)“使用FPGA主控的PCIeSSD”,因?yàn)槟壳癆SIC控制器的卡,以PMC/IDT系和Intel為主基本都是Device-Based,不存在與Host-Based兩條技術(shù)路線之爭(zhēng)。
所謂Host-Based,即SSD的FTL——包括地址轉(zhuǎn)換/塊分配(通常所說(shuō)的LBA)、磨損平衡和垃圾回收在OS驅(qū)動(dòng)層實(shí)現(xiàn)。
而Device-Based則利用卡上FPGA控制器的處理資源來(lái)實(shí)現(xiàn)FTL,操作系統(tǒng)上安裝的驅(qū)動(dòng)應(yīng)該不包含這部分工作。
在國(guó)內(nèi)最早宣傳Device-Based PCIeSSD的大約就是Memblaze,下面我們也來(lái)看看另外一家Shannon寶存科技是如何來(lái)對(duì)比二者的。
Host-Based的缺點(diǎn)是需要PCIeSSD容量1/1000的內(nèi)存來(lái)放元數(shù)據(jù),比如6.4TB的卡大約就是6.4GB,這一點(diǎn)上Device-Based完勝。那么容量、效率和靈活性這幾點(diǎn),我覺(jué)得可以歸結(jié)為一點(diǎn)——Device-Based卡上的FPGA需要干更多工作,功耗和發(fā)熱也許會(huì)大些?另外可能會(huì)受其處理能力的限制。
Device-Based溫度會(huì)不會(huì)更高?
關(guān)于這個(gè)問(wèn)題,我曾聽說(shuō)國(guó)外一家大品牌PCIeSSD的工作溫度能達(dá)到90多攝氏度(注:應(yīng)該不是Device-Based架構(gòu),這里指主控散熱片表面溫度),也就是說(shuō)沒(méi)有必然性?
但到了SFF-8639和NVMe時(shí)代之后,F(xiàn)PGA的處理性能和散熱確實(shí)成為不可忽視的因素了(至少在Device-Based卡上如此),因此我們看到了PMCASIC主控的PBlaze4。
Host-Based能否實(shí)現(xiàn)NVMe?
由于NVMe在操作系統(tǒng)中集成標(biāo)準(zhǔn)驅(qū)動(dòng),那么Host-Based在驅(qū)動(dòng)中實(shí)現(xiàn)FTL這種方式還可行嗎?寶存表示他們有“曲線救國(guó)”的方法,具體還不方便透露。據(jù)我所知,NVMe也允許個(gè)性化驅(qū)動(dòng),比如像希捷/LSINytro那樣的方案,SAS控制器也是能夠支持NVMe的。
RAID如何實(shí)現(xiàn)?
為了讓PCIeSSD像硬盤那樣支持RAID保護(hù),Memblaze和寶存分別提出了自己的方案。
上圖來(lái)自寶存在Flash Memory Summit2014上的演講《Buildingefficient RAID-5 systems across SSDs at the FTLLayer》,我們看到這個(gè)跨盤的RAID還帶有硬件加速,可能是使用FPGA的加速單元來(lái)做RAID5 XOR計(jì)算吧。
另一方面,我聽說(shuō)Memblaze的RAID實(shí)現(xiàn)有點(diǎn)類似于Linux下的LVM(鏡像)?而且他們這款產(chǎn)品(應(yīng)該還是FPGA)已經(jīng)帶有一些Host-Based的色彩了。
不知大家有沒(méi)有Host-Based和Device-Based向融合發(fā)展的感覺(jué)?
提起HostRAID,筆者又想起了自己在10年前踩過(guò)的坑。
2003年,Adaptec在Ultra320SCSI上引入HostRAID0/1的支持,無(wú)需硬件RAID卡就能做簡(jiǎn)單的陣列級(jí)別。我當(dāng)時(shí)推薦銷售在2個(gè)客戶的機(jī)器上用29320卡分別做的RAID0和1,結(jié)果在Windows下都出現(xiàn)了死機(jī)的問(wèn)題,經(jīng)過(guò)反復(fù)排查才發(fā)現(xiàn)是卡的問(wèn)題——確切說(shuō)應(yīng)該是當(dāng)時(shí)HostRAID驅(qū)動(dòng)還不成熟。
注意:Adaptec要支持那個(gè)HostRAID就不能使用普通的SCSI驅(qū)動(dòng),而LSI的SCSI卡(53C1020/1030)同樣的功能則對(duì)驅(qū)動(dòng)程序透明。他們2個(gè)真的有點(diǎn)像今天的Host-Based和Device-Based,雖說(shuō)做RAID0/1對(duì)CPU等資源的占用基本可以忽略不計(jì)。
還是那句話,穩(wěn)定的產(chǎn)品不是測(cè)出來(lái)的,但也少不了測(cè)試。
我又班門弄斧地寫了以上這些,不專業(yè)之處還望大家多指正。
本文出自黃亮的微信公眾號(hào),企業(yè)存儲(chǔ)技術(shù)(微信號(hào):huangliang_storage),歡迎大家關(guān)注!
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶寄語(yǔ) | DOIT歷程 | 誠(chéng)聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.