由中國(guó)計(jì)算機(jī)學(xué)會(huì)信息存儲(chǔ)技術(shù)專(zhuān)業(yè)委員會(huì)、中國(guó)教育部信息存儲(chǔ)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室和DOIT、存儲(chǔ)在線聯(lián)合舉辦的2016中國(guó)閃存峰會(huì)在京召開(kāi),主題為“關(guān)鍵之年,讓閃存綻放”,來(lái)自產(chǎn)業(yè)界的眾多嘉賓圍繞閃存技術(shù)本身將如何演變與發(fā)展,以及閃存競(jìng)爭(zhēng)的其它存儲(chǔ)芯片技術(shù),存儲(chǔ)系統(tǒng)將會(huì)怎樣發(fā)展這些熱點(diǎn)問(wèn)題進(jìn)行了精彩的分享。
Memblaze高級(jí)技術(shù)總監(jiān)吳忠杰先生發(fā)表了名為“構(gòu)建NVMe高性能存儲(chǔ)的方法與實(shí)踐”的主題演講。以下為此次演講實(shí)錄:
我是來(lái)自Memblaze的吳忠杰,今天想與大家分享一個(gè)話題,圍繞閃存,如何打造高性能的存儲(chǔ)系統(tǒng)。跟大家分享一些構(gòu)造高性能存儲(chǔ)的方法,以及我們的實(shí)踐結(jié)果。
數(shù)據(jù)中心會(huì)在全球各地遍地開(kāi)花,在數(shù)據(jù)中心的背后有什么樣的技術(shù)在支撐,這里有一個(gè)大家是不可否認(rèn)的,那就是閃存。對(duì)閃存而言,Memblaze做了很多的工作,并且一直在推動(dòng)著閃存技術(shù)的發(fā)展?;ヂ?lián)網(wǎng)領(lǐng)域做閃存技術(shù),現(xiàn)在很多人想把SSD用于數(shù)據(jù)庫(kù)、銀行等等對(duì)數(shù)據(jù)可靠性有很高要求的業(yè)務(wù)。Memblaze在這個(gè)月推出了面向數(shù)據(jù)高可靠,針對(duì)數(shù)據(jù)保護(hù),針對(duì)高性能存儲(chǔ)介質(zhì)的性能。SSD技術(shù)發(fā)展很多年,十年前都用過(guò)SSD。最早的SSD就是采用SATA的接口。第二代的PCIe SSD沒(méi)有標(biāo)準(zhǔn),各個(gè)廠商都有自己的協(xié)議,自己的接口,這樣的話很影響推動(dòng)。第三代SSD就是NVMe SSD,它是國(guó)際標(biāo)準(zhǔn)的SSD。
我們Memblaze推出了一款產(chǎn)品,單盤(pán)75萬(wàn)IOPS。以前用磁盤(pán)做存儲(chǔ)系統(tǒng)的時(shí)候,我們需要考慮磁盤(pán)的特性,并且對(duì)磁盤(pán)的IO性能進(jìn)行優(yōu)化。但是在今天SSD有這么高的性能,傳統(tǒng)存儲(chǔ)面臨的問(wèn)題不復(fù)存在,所以作為存儲(chǔ)的設(shè)計(jì)者應(yīng)該重新地考慮問(wèn)題。這次的閃存峰會(huì)上很多人在關(guān)注,上午很多人做報(bào)告的時(shí)候提到了軟件一定要變革,如果軟件不變革,高性能存儲(chǔ)介質(zhì)沒(méi)有辦法在行業(yè)或者說(shuō)其它的領(lǐng)域里面利用。
面對(duì)高性能的存儲(chǔ)介質(zhì)做存儲(chǔ)需要解決什么問(wèn)題,這是我們做存儲(chǔ)系統(tǒng)需要考慮的。我們發(fā)現(xiàn)高性能存儲(chǔ)介質(zhì),在服務(wù)器里面已經(jīng)大量的使用,大約在2014年的時(shí)候我們只能找到一個(gè)服務(wù)器里面帶四塊盤(pán)的SSD,2015年3月份的時(shí)候剛剛發(fā)布的我已經(jīng)定了,那有十塊盤(pán)。但是我們今天可以在2U的機(jī)器里面可以找到48塊盤(pán),有了服務(wù)器廠商的支持,有了SSD廠商的支持,從軟件的角度我們應(yīng)該解決什么問(wèn)題?數(shù)據(jù)可靠性。
如何保證在NVMe SSD方面的數(shù)據(jù)可靠性,這是使用SSD需要考慮的問(wèn)題。怎么限性的擴(kuò)展SSD的性能,多買(mǎi)一些盤(pán)可以聚合起來(lái)。一個(gè)盤(pán)75萬(wàn)以上的IOPS,這比以前的陣列都高。怎么把多塊盤(pán)的性能聚合起來(lái),這是需要考慮的問(wèn)題。一個(gè)存儲(chǔ)系統(tǒng)提供的存儲(chǔ)能量已經(jīng)很大,怎么共享做服務(wù),這也是需要考慮的。怎么與傳統(tǒng)的存儲(chǔ)性能進(jìn)行融合,以及高效的網(wǎng)絡(luò)輸入,這是高性能存儲(chǔ)介質(zhì)。無(wú)論是研發(fā)還是設(shè)計(jì)都需要考慮的問(wèn)題,我們的解決方案就是 Flash RAID,更重要的是一個(gè)面向高性能存儲(chǔ)介質(zhì)的軟件定義存儲(chǔ)解決方案,具備數(shù)據(jù)保護(hù)的能力,可以做分層的存儲(chǔ),在性能方面解決了軟件的問(wèn)題,可以做分布式的存儲(chǔ)。目前我們發(fā)布的還沒(méi)有做到分布式這塊。
Flash RAID面向SSD軟件定義存儲(chǔ)系統(tǒng),可以對(duì)NVMe SSD做數(shù)據(jù)保護(hù)。支持的平臺(tái)方面,因?yàn)槭擒浖x存儲(chǔ),所以在支持的平臺(tái)方面有一定的普遍性,可以支持X86,ARM、SPDK, Flash RAID可以跟它們進(jìn)行集成。軟件架構(gòu)來(lái)講,F(xiàn)lash RAID是層次化很強(qiáng)的系統(tǒng),最底下的是物理資源池,上面是全局的資源池。在全局資源池上面,這是存儲(chǔ)的對(duì)象,通過(guò)多個(gè)存儲(chǔ)對(duì)象聚合成一個(gè)虛擬的磁盤(pán)池,多個(gè)磁盤(pán)跨多個(gè)節(jié)點(diǎn)構(gòu)成了網(wǎng)絡(luò)池,具備了RAID2.0的架構(gòu)。
Flash RAID有創(chuàng)新性,因?yàn)榻鉀Q了軟件和瓶頸的問(wèn)題,最主要的解決點(diǎn)。怎么利用多核CPU,英特爾的發(fā)展思路是CPU多核化,怎么利用這是需要考慮的問(wèn)題。SSD不是完美的, SSD怎么解決壽命的問(wèn)題,我們?cè)诒P(pán)一級(jí)做優(yōu)化,利用容量來(lái)?yè)Q壽命。在系統(tǒng)級(jí)別有很多的技術(shù)可以增強(qiáng)SSD的使用壽命,發(fā)生故障以后怎么辦,不能等幾個(gè)小時(shí)恢復(fù)數(shù)據(jù),所以這里我們提出來(lái)了很多數(shù)據(jù)恢復(fù)技術(shù),還有資源池化,到底是對(duì)SSD有什么樣的好處,可以解決SSD什么問(wèn)題。性能是不是會(huì)保持不變,這是對(duì)選擇存儲(chǔ)系統(tǒng)來(lái)說(shuō)一個(gè)非常重要的考核點(diǎn)。
存儲(chǔ)資源的虛擬化,就是RAID2.0,我們可以對(duì)不同的資源做成不同的資源池,可以采用不同的分配策略,為上層提供服務(wù)。這里我們采用了存儲(chǔ)資源池化的技術(shù),這是有接管。我們采用了資源池化的技術(shù)解決了SSD的故障問(wèn)題,SSD的壽命問(wèn)題。采用了資源池化的方式,我們才能避免多塊盤(pán)同時(shí)損壞,可以很好地適應(yīng)SSD的故障模型,在這里可能很多人都忽略了一點(diǎn),SSD的故障跟HDD有很大的差異,因?yàn)楦骷业膹S商不一樣,你需要做大量的實(shí)驗(yàn)。HDD很難用局部模型算到RAID里面去,但SSD不一樣。這個(gè)時(shí)候可以在故障處理方面有大量的優(yōu)化,使得它的性能可以很高,當(dāng)一塊盤(pán)子壞了以后,對(duì)Flash RAID來(lái)講恢復(fù)的時(shí)間可以變化,盤(pán)越多,恢復(fù)的速度快,時(shí)間會(huì)越短。
多核,NVMe SSD性能高了以后,IO的瓶頸在CPU端。實(shí)踐了以后發(fā)現(xiàn),比我們想象的更為嚴(yán)重。以前很少有人可以拿四塊盤(pán),但是如果做了這樣的實(shí)踐后發(fā)現(xiàn),四塊盤(pán)同時(shí)跑,加了存儲(chǔ)軟件以后性能發(fā)揮不出來(lái)。我們提出了很多的創(chuàng)新技術(shù),無(wú)鎖的生產(chǎn)者消費(fèi)者模型,無(wú)鎖的流控,這與多核CPU匹配起來(lái),能夠很好地使性能達(dá)到可擴(kuò)展性。Flash RAID的性能可以使CPU個(gè)數(shù)線性擴(kuò)張,CPU越多,我的性能會(huì)越高。CPU是物理的CPU,而不是說(shuō)邏輯的CPU,邏輯的CPU不一定對(duì)性能有很好的幫助。
全局的磨損。磨損的技術(shù)在SSD不是大量的采用,在SSD主要就是做顆粒之間的使用。但是在系統(tǒng)的層面,我們做SSD層面磨損均衡。磨損均衡,就是延長(zhǎng)SSD的使用壽命,避免SSD同時(shí)發(fā)生故障。因?yàn)樵谶@里每一個(gè)SSD所寫(xiě)入的數(shù)據(jù)量是固定的,如果說(shuō)所有的盤(pán)在一個(gè)RAID有相同的數(shù)據(jù)量,很有可能會(huì)同時(shí)發(fā)生故障,這在以前的很多測(cè)試?yán)锩嬗龅竭^(guò)。
智能數(shù)據(jù)恢復(fù)技術(shù),以前我們講數(shù)據(jù)重構(gòu),就是壞了一盤(pán)你就技術(shù)重構(gòu)。但是在我們的Flash RAID里面不是采用這樣的,面向物理盤(pán)的重構(gòu),而是面向數(shù)據(jù)的重構(gòu),并且在面向數(shù)據(jù)的時(shí)候,對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。冷熱數(shù)據(jù)分層,我認(rèn)為在未來(lái)就可以,這跟介質(zhì)相關(guān)。因?yàn)樵诖疟P(pán)上你要用這樣的技術(shù),你的性能會(huì)很差的,磁盤(pán)有抖動(dòng),你的性能會(huì)變的很差。但是在SSD上,這個(gè)問(wèn)題是不存在的,或者說(shuō)是好了很多,隨機(jī)讀寫(xiě)性能會(huì)非常之高,所以這樣的技術(shù)得以應(yīng)用。
冷熱數(shù)據(jù)分層技術(shù),通過(guò)我們現(xiàn)在的測(cè)試,數(shù)據(jù)局部性很強(qiáng)的應(yīng)用里面,這樣的技術(shù)很有價(jià)值,因?yàn)樵跀?shù)據(jù)局部性很強(qiáng)的應(yīng)用里面采用冷社如據(jù)分層以后的性能和全閃存的性能相差不多的。數(shù)據(jù)重構(gòu)有關(guān)系。發(fā)生故障的時(shí)候,我的系統(tǒng)里肯定會(huì)有重構(gòu),或者說(shuō)數(shù)據(jù)遷移。在這個(gè)時(shí)候業(yè)務(wù)的性能肯定會(huì)受到一定的影響??梢宰鯯AN存儲(chǔ),集群提供分布式的服務(wù),很多人可能會(huì)想到。選材,設(shè)計(jì)和施工、驗(yàn)證,質(zhì)量的保證在設(shè)計(jì)的階段,然后才是施工,施工就是實(shí)現(xiàn)的手段,最后強(qiáng)調(diào)的是驗(yàn)證。有了這樣的科學(xué)體系以后,我們才可以盡快地把一個(gè)龐雜的系統(tǒng)收斂,并且發(fā)布高效的存儲(chǔ)系統(tǒng),高可靠的存儲(chǔ)系統(tǒng)。
觀眾問(wèn):公有云的盤(pán)如何?
吳忠杰:我認(rèn)為就是低成本的,性能稍微有一點(diǎn)低的盤(pán),就是這樣的存儲(chǔ)介質(zhì)。Flash RAID最后一級(jí)可以做到公有云,把存儲(chǔ)在Flash RAID里面的數(shù)據(jù)遷移到公有云,很多的存儲(chǔ)系統(tǒng)已經(jīng)有了這樣的技術(shù)。分層有一點(diǎn)很重要的,它不是緩存,分層和緩存是有差別的。分層強(qiáng)調(diào)了冷數(shù)據(jù)遷到了廉價(jià)的介質(zhì)上。