我們在十幾年前開始使用U盤時,只看到它的便攜與易用,估計(jì)很少有人能意識到閃存蘊(yùn)藏著巨大的性能潛力。
今天,包括PCIe SSD在內(nèi)的閃存存儲在企業(yè)級應(yīng)用中的普及,歸根結(jié)底要?dú)w功于半導(dǎo)體技術(shù)的發(fā)展。一方面,CPU性能越來越快,而發(fā)展緩慢的硬盤越發(fā)顯得跟不上;另一方面,以NAND閃存為代表的半導(dǎo)體存儲容量密度增大,而且越來越便宜。當(dāng)那個拐點(diǎn)的時間到來,人們發(fā)現(xiàn)用小小的SSD就能頂上幾十,甚至上百塊硬盤的性能。
在企業(yè)級SSD發(fā)展初期,更多的應(yīng)用形式是安裝在EMC等存儲系統(tǒng)廠商的陣列中,替代磁盤的SAS SSD;或者服務(wù)器里面使用的SATA SSD。它們能夠與傳統(tǒng)硬盤控制器良好兼容,但當(dāng)時主流的SATA和SAS接口帶寬只有3Gb/s或者6Gb/s(300-600MB/s),如今12Gb/s SAS還沒有普及,而x8 PCIe 2.0的理論帶寬已經(jīng)達(dá)到4GB/s,PCIe 3.0更是翻了一倍。
曾經(jīng)是PCIe SSD單卡容量之冠的Fusion-io ioScale 3.2TB。當(dāng)年它從Facebook走出,帶有為互聯(lián)網(wǎng)行業(yè)定制,高性價比的特點(diǎn)。令人可喜的是,今年全球率先達(dá)到單卡6.4TB容量的寶存科技是一家國內(nèi)廠商。
此外,針對傳統(tǒng)硬盤設(shè)計(jì)的SAS控制器自身也存在性能瓶頸,那么“有路何須搭橋”?直接將閃存做到PCIe卡上,顯然速度和延時都會更好,服務(wù)器的存儲架構(gòu)也會變得更加簡單,甚至實(shí)際量產(chǎn)的成本都會降低。
這就是今天PCIe SSD越發(fā)流行的原因。
產(chǎn)品架構(gòu)之間的PK
PCIe SSD從產(chǎn)品架構(gòu)方面來分,包括FPGA/ASIC原生控制器方案和SAS IOC轉(zhuǎn)接SAS/SATA SSD兩種方式。
盡管筆者一直不看好SAS轉(zhuǎn)接方案的長遠(yuǎn)發(fā)展,但兼容性好和成熟的架構(gòu)是它最大的優(yōu)勢。產(chǎn)品形態(tài)就是把SAS控制器連接的多個SSD盤RAID 0做在一張PCIe卡上,因此它們的Firmware(固件)和主機(jī)端驅(qū)動與SAS HBA基本通用,兼容絕大多數(shù)的服務(wù)器、各種操作系統(tǒng)版本都沒有問題。
SAS轉(zhuǎn)接方案的PCIe SSD現(xiàn)在很少宣傳其性能,畢竟這方面對比原生PCIe閃存控制器沒有優(yōu)勢。不過,如今幾乎所有PCIe閃存卡的性能對企業(yè)級客戶都不是問題。因此,目前市面上Oracle Exadata數(shù)據(jù)庫一體機(jī)就用的SAS轉(zhuǎn)接PCIe SSD。最近還有國內(nèi)云和恩墨用EMC ScaleIO分布式SAN軟件搭建的Oracle預(yù)集成系統(tǒng)。
總的來說,SAS轉(zhuǎn)接PCIe SSD的多芯片控制方案從效率、成本上都不占優(yōu),因此,我們幾乎只看到LSI這一家先天有利的廠商(該部門如今已賣給希捷)在該領(lǐng)域表現(xiàn)尚可。Intel做了一段過渡的SSD 910,今年也推出自有ASIC控制器的NVMe產(chǎn)品了。
FPGA(現(xiàn)場可編程門陣列)的特點(diǎn)是設(shè)計(jì)靈活性強(qiáng),在現(xiàn)有的芯片上通過不同的軟件就可以定義出差異化的閃存卡(盤),并且易于升級。這種低門檻方案非常適合中小規(guī)模的廠商。FPGA芯片的缺點(diǎn)是封裝尺寸和發(fā)熱量比ASIC較大,數(shù)量達(dá)到一定規(guī)模后,成本不如ASIC。代表廠商是PCIe閃存卡領(lǐng)域的先行者,被SanDisk收購的Fusion-io,被HGST收購的Virident,以及國內(nèi)的Memblaze和Shannon寶存科技等。
當(dāng)PCIe閃存卡向著容量越來越大、性能越來越高的方向發(fā)展,單卡的功耗就容易超過普通PCIe插槽的25W限制。像SFF-8639尺寸的2.5英寸驅(qū)動器形式,插在服務(wù)器的前端密度更大,還要注意散熱的問題,這時功能相對固定,但功耗較低的ASIC就體現(xiàn)出價值了。只是設(shè)計(jì)出一顆優(yōu)秀的ASIC,僅僅是流片成功都要付出巨大的成本。目前比較多見的原生PCIe SSD ASIC,有被芯片廠商PMC收購的IDT產(chǎn)品線,曾用于美光(Micron)的卡和盤。再有就是Intel和三星這樣的巨頭,還有Marvell和幾經(jīng)轉(zhuǎn)手被希捷收購的SandForce。盡管后者的原生PCIe SSD控制器應(yīng)該還不能量產(chǎn)出貨,但對價格和技術(shù)門檻要求低,向來是他們的優(yōu)勢。
用戶最該關(guān)注什么?
對于用戶而言,他們應(yīng)該如何衡量一款PCIe SSD呢?筆者將從兼容性、可靠性和可用性、性能和本地化支持服務(wù)等方面進(jìn)行衡量。
1.軟硬兼容性
軟件兼容性與上述所講的產(chǎn)品架構(gòu)有關(guān)。無論FPGA還是ASIC方案,PCIe SSD的硬件做出來,產(chǎn)品好壞的關(guān)鍵還是在于軟件。這里說的軟件包括Firmware和驅(qū)動兩部分。許多消費(fèi)級SSD,F(xiàn)irmware在控制器廠商提供的公版基礎(chǔ)上改改就可以賣了,SATA盤也不需要開發(fā)驅(qū)動。在NVMe(稍后會專門介紹NVMe標(biāo)準(zhǔn))之前,由于企業(yè)級SSD沒有這方面通用的標(biāo)準(zhǔn),因此每家廠商都要提供自己的SCSI塊設(shè)備驅(qū)動。
硬件方面,相信這個領(lǐng)域中的廠商幾乎都遇到過PCIe SSD插在某款服務(wù)器主板上不兼容的情況,這可能就會涉及到Firmware的bug,或者說需要為兼容性做些改動。必要的時候,與服務(wù)器/主板廠商對接聯(lián)合解決問題應(yīng)該也是有的。
至于操作系統(tǒng),目前該類產(chǎn)品以互連網(wǎng)和電商行業(yè)用戶為主,大都是Linux,但具體有RedHat、Debain/Ubuntu等幾大發(fā)行版分支,以及各種不同的update小版本和Kernel。能否良好兼容每家用戶具體使用的版本,乃至于對用戶定制化Linux版本的支持力度,都是很現(xiàn)實(shí)的問題。
2.穩(wěn)定性、可靠性
談完了軟硬件兼容性,只是過了第一關(guān),畢竟產(chǎn)品能用不等于一定就好用。R.A.S.這個常用的概念分別表示可靠性、可用性和可服務(wù)性。
可靠性:對于閃存產(chǎn)品來說一個是寫壽命,因?yàn)镹AND有自身的PE Cycle(編程/擦除周期)限制。SLC、MLC(包括消費(fèi)級的cMLC和企業(yè)級eMLC)、TLC閃存的結(jié)構(gòu)和制造工藝,導(dǎo)致它們能容忍的寫入次數(shù)不同,3D NAND理論上對壽命有益,但實(shí)際效果還有待觀察,磨損均衡算法也會影響到寫入放大率。另一方面,用戶放在SSD里的數(shù)據(jù)如果丟失或者出錯,也不是個小問題。在消費(fèi)級SSD上出現(xiàn)過的“8MB變磚門”,以及長期不讀取的數(shù)據(jù)訪問性能下降這類問題,在企業(yè)級產(chǎn)品上也是有可能遇到的。
設(shè)備的形態(tài),以及系統(tǒng)中可能要插多塊卡/盤的密度,決定了對PCIe SSD的散熱措施不可能像CPU被“照顧”的那樣好,不同服務(wù)器系統(tǒng)的局部風(fēng)量(單位是LFM)也是不同的。我們曾聽說有的FPGA方案PCIe SSD能達(dá)到90℃以上的高溫(應(yīng)該是表面溫度),如果散熱設(shè)計(jì)不好會導(dǎo)致閃存卡過熱,對閃存卡壽命,以及數(shù)據(jù)存儲有影響。
接著引出一個價值點(diǎn):部署多了,用戶需要對閃存卡的性能、壽命、溫度有統(tǒng)一監(jiān)控管理軟件,或者閃存卡廠商對用戶的網(wǎng)管平臺能提供統(tǒng)一接口定制。
盡管PCIe SSD在近些年接受了Facebook等大客戶和OEM的長期考驗(yàn),但它對于許多用戶來說還屬于新鮮事物。特別是國內(nèi)外初創(chuàng)廠商的產(chǎn)品,其中也有表現(xiàn)好的,但為了便宜,有可能會承擔(dān)更大一些的風(fēng)險(盡管這不是絕對的)。為了保險起見,建議還是多做測試。另外就是看看其他用戶使用的反饋情況。
可用性:可從兩個方面來看,一個是由SSD導(dǎo)致的停機(jī)時間,即使閃存卡/盤做得再穩(wěn)定,服務(wù)器也難免會遇到異常掉電的情況。為了提高寫入性能和降低延時,SSD通常都會用少量DRAM內(nèi)存來作為緩存,這也是我們看到廠商公布的寫延時低于讀延時的原因。有些SSD把元數(shù)據(jù)放在內(nèi)存里也有助于提高性能。
企業(yè)級產(chǎn)品為了保護(hù)異常掉電時內(nèi)存中數(shù)據(jù)的完整性,通常會有電容能將內(nèi)存里的數(shù)據(jù)備份到閃存。不過再次加電時往往需要一個元數(shù)據(jù)校驗(yàn)的恢復(fù)時間,就像文件系統(tǒng)的fsck檢查那樣。不同品牌和型號,有的需要1~2分鐘,也有的是8~40分鐘。當(dāng)然它不會影響最終數(shù)據(jù)的完整性,如果用戶機(jī)房的UPS比較好的話,也許可以不在意吧。
另一方面,NAND閃存介質(zhì)的特點(diǎn),決定了它的寫入性能不會像磁盤那樣精確、穩(wěn)定。從FOB到穩(wěn)態(tài)之間的隨機(jī)寫IOPS,差距不小(當(dāng)然降低后也遠(yuǎn)高于HDD)。我們認(rèn)為,IO穩(wěn)態(tài)寫入時是否有過大波動?IO穩(wěn)態(tài)寫入是否有數(shù)據(jù)庫異常的現(xiàn)象出現(xiàn)?在極端偶然的特定情況下,如果IO性能突然降低,可能造成系統(tǒng)宕機(jī)的風(fēng)險。這些都會影響到用戶的使用體驗(yàn)。
可服務(wù)(維護(hù))性:因?yàn)镻CIe閃存卡更換需要關(guān)機(jī),再開機(jī)箱蓋對用戶傳統(tǒng)體驗(yàn)有影響,這才有了SFF-8639接口,支持熱插拔。當(dāng)然也有NVMe(本身對硬件形態(tài)沒要求,這里指的也是8639 2.5英寸盤),但對熱插拔背板等硬件及系統(tǒng)(包括主板BIOS)版本都有要求,所以現(xiàn)階段比較靠譜的還是SFF-8639的閃存盤。
另外,在升級SSD Firmware的時候會不會出現(xiàn)數(shù)據(jù)完整性的風(fēng)險?盡管用戶的重要數(shù)據(jù)一般會有備份,但能不用恢復(fù)的辦法總是更方便的。
3.性能
其實(shí)PCIe SSD性能普遍能夠滿足絕大多數(shù)用戶現(xiàn)有的需求,因此本文中不想羅列廠商們經(jīng)常掛在嘴邊的那些性能數(shù)字。
閃存卡一直宣傳高帶寬、高IOPS和低延時(無論隨機(jī)還是順序訪問),但用戶的體驗(yàn)往往不是以測試最高帶寬、最高IOPS為基準(zhǔn)的。首先,一般用戶使用峰值也就15~20萬IOPS,但低延時的價值會非常明顯,讀寫的平均和最大延時會直接影響用戶體驗(yàn)。
4.本地化支持服務(wù)
本地化服務(wù)的能力,以及響應(yīng)時間是每個用戶所關(guān)注的。如果同樣是初創(chuàng)廠商,相對而言國內(nèi)公司在這方面會有先天優(yōu)勢。特別是在產(chǎn)品的第一、二代還沒有完全穩(wěn)定成熟的情況下(畢竟都要經(jīng)過這個階段),服務(wù)支持能力就顯得更加重要。
甚至有PCIe SSD廠商的受訪者表示:“用戶只關(guān)心穩(wěn)定性及本地化支持。”
此外還有對用戶數(shù)據(jù)庫、虛擬化應(yīng)用支撐團(tuán)隊(duì)的支持。這里有個例子,某國際存儲巨頭去年曾對國內(nèi)媒體說,BAT中的某一家“再也不會從之前的PCIe SSD供應(yīng)商那里買卡了,理由是用戶需要數(shù)據(jù)庫方面的支持時跟不上,而他們則有DBA專家來協(xié)助用戶/合作伙伴解決存儲本身之外的問題”。(這家巨頭自己并不造卡,但可以轉(zhuǎn)售或者加上閃存緩存軟件來賣。)所以,PCIe產(chǎn)品對用戶數(shù)據(jù)庫、虛擬化應(yīng)用的技術(shù)支持,也是用戶需要考慮的因素之一。
NVMe橫空出世
NVM Express(NVMe)是一種為企業(yè)級、客戶端系統(tǒng)所用的PCI Express SSD而專門設(shè)計(jì)的高性能、可擴(kuò)展主機(jī)控制接口。它由Intel等十幾個發(fā)起成員公司領(lǐng)導(dǎo),以及數(shù)十個成員組成的行業(yè)聯(lián)盟共同開發(fā)。
NVMe主要解決的問題,或者說好處主要包括以下幾點(diǎn):
(1) 標(biāo)準(zhǔn)化的驅(qū)動,比如較高版本的Linux內(nèi)核集成通用的NVMe SSD驅(qū)動程序。
(2) 精簡優(yōu)化的存儲堆棧,提高效率。比如支持更大的隊(duì)列深度、MSI-X將IO產(chǎn)生的中斷更好地分配到多個CPU核心上,避免出現(xiàn)性能瓶頸。
(3) NVMe還有個好處,就是它不僅盯著NAND閃存,還宣稱考慮了下一代性能更高的非易失性半導(dǎo)體存儲介質(zhì)。就眼前來看,已經(jīng)有人拿DRAM放在NVMe卡上跑Demo,也有廠商做出了類似的產(chǎn)品。
除了性能考慮、驅(qū)動層面對熱插拔更好的支持之外(+微信關(guān)注網(wǎng)絡(luò)世界),如果各家的PCIe SSD都同樣使用操作系統(tǒng)自帶的驅(qū)動,無疑對用戶是個好事情——至少能減少許多測試和驗(yàn)證工作。但另一方面,SSD個性化的增強(qiáng)功能目前主要是狀態(tài)監(jiān)控,乃至于進(jìn)一步增值的緩存軟件、RAID支持等,都可能要依賴廠商專門的驅(qū)動。如果是帶來同質(zhì)化的結(jié)果,最后比拼供應(yīng)鏈和成本,這個市場剩下的估計(jì)只有三星、美光等NAND閃存廠商和Intel這樣的業(yè)界巨頭了。
戴爾是率先支持SFF-8639規(guī)格PCIe SSD的服務(wù)器大廠。如上圖:盡管長得像盤,但它與主板通信走的也是PCIe信號。
NVMe最初是在Fusion-io一家獨(dú)大的情況下出現(xiàn),到如今PCIe SSD百花齊放的時代,NVMe產(chǎn)品也接近成熟。但由于各家廠商的利益不一致,對NVMe支持的力度也不盡相同。
針對NVMe,幾位受訪者的觀點(diǎn)值得關(guān)注:“美國人和國內(nèi)對于NVMe的態(tài)度、普及時間上有些差距。美國人覺得NVMe沒有那么快成熟,而且熱插拔沒有行業(yè)標(biāo)準(zhǔn),暫時還不可靠,產(chǎn)品之間不兼容,感覺國內(nèi)幾大家都已經(jīng)要撲上去了。”
“注意各家的驅(qū)動不兼容都不是用的原始驅(qū)動,因?yàn)樾阅懿粔颉6夷壳皟r格真的不便宜。”
“某國外服務(wù)器廠商對NVMe的支持推遲到2015年下半年,可能仍會延期。因性價比還不如任何一家‘非標(biāo)準(zhǔn)’的PCIe SSD。”
在PCIe SSD消除了性能瓶頸之后,如何消除單點(diǎn)故障是許多用戶接下來會考慮的一個問題。如果只是作為加速緩存或者放臨時數(shù)據(jù)還好,而其他數(shù)據(jù)怎么保護(hù)呢?這也是PCIe SSD和傳統(tǒng)磁盤陣列,乃至閃存陣列之間的一個重要區(qū)別。
PCIe SSD的性能給OLTP交易型應(yīng)用帶來的效果最明顯,傳統(tǒng)的共享式磁盤陣列面臨著被顛覆的可能。因此,我們現(xiàn)在一方面看到DBA在研究閃存,另一方面有的國內(nèi)閃存廠商甚至招募了多名Oracle ACE高手來推動解決方案的研發(fā)和銷售。
回顧這兩年來PCIe SSD的發(fā)展歷程,可以發(fā)現(xiàn)這個市場變化是非常巨大的。當(dāng)時的很多熱門廠商如今都被收購了,F(xiàn)usion-io被SandDisk收購,LSI被Avago收購,閃存業(yè)務(wù)后來又被轉(zhuǎn)手賣給了希捷,而Virident被WD-HGST收購了。這些新興閃存廠商幾乎都是被之前以消費(fèi)級產(chǎn)品為主的硬盤廠商或閃存大廠給并購,而SSD正是對傳統(tǒng)企業(yè)級高轉(zhuǎn)速硬盤威脅最大的。可以預(yù)想,未來的企業(yè)級SSD市場競爭將會更加激烈。
目前PCIe SSD廠商們?nèi)栽诩訌?qiáng)競爭力,包括把卡做穩(wěn)定,對所有系統(tǒng)提供兼容性及支持。由于這些東西慢慢都能做上來,所以以后做卡的廠家會越來越多。現(xiàn)有的閃存卡廠商都開始往解決方案及閃存陣列上轉(zhuǎn)型了。
關(guān)于全閃存陣列,國外已經(jīng)有許多比較成熟的產(chǎn)品,而且傳統(tǒng)陣列廠商和初創(chuàng)公司(其團(tuán)隊(duì)基本上也來自前者)都盯著這塊大蛋糕,可謂競爭激烈。PCIe SSD廠商如果想進(jìn)入這一領(lǐng)域,需要比較大的決心和勇氣。
新浪微博的閃存經(jīng)驗(yàn)談
大約兩年多以前,微博開始風(fēng)靡全中國,對于微博用戶而言,帶來的是移動互聯(lián)網(wǎng)的新體驗(yàn),而對于新浪微博的后臺運(yùn)維工程師來說,這種飛速增長的業(yè)務(wù)著實(shí)令他們感到棘手。
據(jù)新浪研發(fā)中心平臺部楊尚剛所說,在2011年,新浪微博業(yè)務(wù)增長非常快,導(dǎo)致某些地方遇到了性能瓶頸。在當(dāng)時,對SATA SSD的熟悉程度也不高,因此嘗試了PCIe SSD。楊尚剛表示:“新浪當(dāng)前持有的PCIe SSD在百片級別,主要應(yīng)用在數(shù)據(jù)庫業(yè)務(wù)上。使用過程是從最初直接使用PCIe SSD作為存儲,中間部分用PCIe SSD作為緩存加速,最后還是將其作為存儲來用。”他坦言,PCIe SSD確實(shí)解決了新浪微博遇到的很多問題。
PCIe SSD最初的應(yīng)用場合一般都是在互聯(lián)網(wǎng)企業(yè),而經(jīng)過這幾年的發(fā)展,該產(chǎn)品在技術(shù)方面逐漸成熟,且加入該市場的廠商越來越多,同類產(chǎn)品之間的差異化也越來越小。楊尚剛表示,目前PCIe SSD基本可以滿足大多數(shù)用戶的存儲需求。楊尚剛認(rèn)為,SSD未來的應(yīng)用場景是非常廣闊的,他比較看好的是公有云[注]和NoSQL上應(yīng)用SSD。
作為資深的PCIe SSD用戶代表,楊尚剛認(rèn)為,用戶再考慮購買一款PCIe SSD時需要考慮以下幾點(diǎn):
1.IOPS和延遲時間,以及這兩個技術(shù)指標(biāo)的穩(wěn)定性。因?yàn)楹芏喈a(chǎn)品的平均時間都可以達(dá)到,但是在穩(wěn)定性方面還是有差距的。
2.PCIe SSD本身的穩(wěn)定性,這主要體現(xiàn)在故障率上。
3.此外,還需要考慮的就是成本問題和SSD的壽命問題,這需要用戶進(jìn)行充分的壽命測試,根據(jù)磨損程度來判斷壽命。
4.最后,要關(guān)注數(shù)據(jù)的安全性問題,要看產(chǎn)品是否能夠支持端到端保護(hù)和掉電保護(hù)都安全機(jī)制。
楊尚剛表示,在關(guān)注具體的技術(shù)細(xì)節(jié)的同時,用戶還要多參考一些業(yè)界的使用案例。
其實(shí),雖然有關(guān)閃存的討論一直比較火熱,而且市場競爭也變得更加熱鬧,但是楊尚剛表示,PCIe SSD還是有很多不成熟的地方。他說:“新浪在兩年以前開始使用PCIe SSD,但是后來基本沒有采購類似產(chǎn)品,還是主要以SATA SSD為主,這個和BAT一樣的,PCIe SSD還沒有那么的成熟。”在他們的使用過程中,遇到過一些由PCIe SSD固件本身的bug導(dǎo)致的不可用,不過細(xì)節(jié)方面他并沒有透露。另外,楊尚剛表示:“現(xiàn)在各家PCIe SSD廠商都是用的自家的私有協(xié)議,通用性比較差,規(guī)范化不夠,而且不支持熱插拔”。楊尚剛認(rèn)為,未來一兩年內(nèi),SATA SSD在成本方面還是非常有優(yōu)勢的,所以,除非有特殊的高性能需求,他會優(yōu)先考慮SATA SSD。
“冷水”雖潑完了,但不可否認(rèn)的是這個市場會持續(xù)前進(jìn),一方面技術(shù)不斷成熟,一方面產(chǎn)品價格也會有所下跌,對用戶而言總歸是利好的消息。