回到今天的主題,在《破解PCIeSSD進(jìn)化:從踩坑到解決方案》一文中,筆者并沒(méi)有討論Host-Based和Device-Based。當(dāng)時(shí)不是沒(méi)考慮過(guò)這一點(diǎn),但對(duì)于普通用戶(hù)來(lái)說(shuō),這個(gè)架構(gòu)差異對(duì)實(shí)際使用體驗(yàn)的直接影響并不是很大。但對(duì)于業(yè)內(nèi)專(zhuān)業(yè)人士則不同了,比如在本月16日舉行的《存儲(chǔ)技術(shù)之巔》第一次線(xiàn)下交流活動(dòng)中,大家就展開(kāi)了熱烈的討論。

在本文的標(biāo)題之前,似乎應(yīng)該加個(gè)定語(yǔ)“使用FPGA主控的PCIeSSD”,因?yàn)槟壳癆SIC控制器的卡,以PMC/IDT系和Intel為主基本都是Device-Based,不存在與Host-Based兩條技術(shù)路線(xiàn)之爭(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)題,我曾聽(tīng)說(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這種方式還可行嗎?寶存表示他們有“曲線(xiàn)救國(guó)”的方法,具體還不方便透露。據(jù)我所知,NVMe也允許個(gè)性化驅(qū)動(dòng),比如像希捷/LSINytro那樣的方案,SAS控制器也是能夠支持NVMe的。

RAID如何實(shí)現(xiàn)?

為了讓PCIeSSD像硬盤(pán)那樣支持RAID保護(hù),Memblaze和寶存分別提出了自己的方案。

上圖來(lái)自寶存在Flash Memory Summit2014上的演講《Buildingefficient RAID-5 systems across SSDs at the FTLLayer》,我們看到這個(gè)跨盤(pán)的RAID還帶有硬件加速,可能是使用FPGA的加速單元來(lái)做RAID5 XOR計(jì)算吧。

另一方面,我聽(tīng)說(shuō)Memblaze的RAID實(shí)現(xiàn)有點(diǎn)類(lèi)似于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í)推薦銷(xiāo)售在2個(gè)客戶(hù)的機(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ì)。

還是那句話(huà),穩(wěn)定的產(chǎn)品不是測(cè)出來(lái)的,但也少不了測(cè)試。

我又班門(mén)弄斧地寫(xiě)了以上這些,不專(zhuān)業(yè)之處還望大家多指正。

本文出自黃亮的微信公眾號(hào),企業(yè)存儲(chǔ)技術(shù)(微信號(hào):huangliang_storage),歡迎大家關(guān)注! 

分享到

huangliang

相關(guān)推薦