更多詳情請(qǐng)關(guān)注專題直播

下午的“閃存行業(yè)分論壇” 中,DOIT邀請(qǐng)關(guān)注閃存行業(yè)的廠商代表、技術(shù)專家、分析師等共同探討 閃存行業(yè)的現(xiàn)狀和未來發(fā)展。其中,來自鐵道出版社信息中心主任劉波,帶來《固態(tài)硬盤測試情況與應(yīng)用策略》的主題演講。

鐵道出版社信息中心主任 劉波

在演講里,劉波表示,無論是讀操作還是寫操作,對(duì)于連續(xù)傳輸傳輸率與隨機(jī)存取傳輸率的性能差異,PCIe固態(tài)盤都比RAID5光纖盤的性能落差都有所收窄,并且這種性能落差的收窄幅度是與數(shù)據(jù)塊大小成負(fù)相關(guān)。即數(shù)據(jù)塊越小,相對(duì)于RAID5光纖盤而言,PCIe固態(tài)盤的性能提升越明顯。對(duì)于4K數(shù)據(jù)塊讀操作,性能提升最高達(dá)到27倍。

以下是劉波精彩演講的內(nèi)容:

眾所周知,數(shù)據(jù)庫往往是許多計(jì)算機(jī)應(yīng)用系統(tǒng)的重要支撐,對(duì)于交易采購、ERP等結(jié)構(gòu)化數(shù)據(jù)類型應(yīng)用講,數(shù)據(jù)庫的訪問性能往往構(gòu)成了整個(gè)系統(tǒng)中較難解決的性能瓶頸。數(shù)據(jù)庫性能的提高將會(huì)顯著提高整個(gè)系統(tǒng)的處理能力。提高數(shù)據(jù)庫的訪問性能一般是從硬件與軟件2個(gè)方向進(jìn)行,硬件方面?zhèn)戎赜诒M量提供足夠高的傳輸率,包括連續(xù)傳輸率和隨機(jī)傳輸率,軟件方面則側(cè)重于盡量充分利用給定的傳輸率。基于溫徹斯特磁盤的陣列式硬件解決方案存在著結(jié)構(gòu)復(fù)雜、性能提升緩慢、運(yùn)營開銷大,以及成本高昂的不足。隨著數(shù)據(jù)存儲(chǔ)技術(shù)的不斷發(fā)展,2010年代以后以flash芯片為存儲(chǔ)介質(zhì)的固態(tài)硬盤數(shù)據(jù)存儲(chǔ)技術(shù)應(yīng)用逐漸由消費(fèi)領(lǐng)域深入到企業(yè)級(jí)應(yīng)用。

中國鐵道出版社的生產(chǎn)系統(tǒng)是全社、圖書、音像及電子出版物從編輯策劃、加工生產(chǎn)、倉儲(chǔ)物流到營銷策劃的平臺(tái)。隨著業(yè)務(wù)的擴(kuò)展,目前產(chǎn)生了存儲(chǔ)擴(kuò)展的需。主要需要是在保護(hù)現(xiàn)有投資的基礎(chǔ)上進(jìn)行容量擴(kuò)充和性能擴(kuò)展兩方面。在對(duì)性能擴(kuò)展方面的考察中,從2010年起產(chǎn)生了使用flash技術(shù)提升存儲(chǔ)性能的想法。進(jìn)行了技術(shù)跟蹤。并在當(dāng)時(shí)條件下在PC平臺(tái)做了一些實(shí)驗(yàn)。今年上半年了解到國內(nèi)出了一種PCle接口的固態(tài)硬盤卡,因此就使用該產(chǎn)品進(jìn)行了測試。

近期我單位在既有設(shè)備上進(jìn)行了增加PCIe接口固態(tài)硬盤提升存儲(chǔ)性能的測試試用,探討了使用PCIe接口固態(tài)硬盤作為存儲(chǔ)介質(zhì),提高SQL Server數(shù)據(jù)庫性能的途徑。

今年上半年我們了解到國內(nèi)出現(xiàn)了PCIe接口的硬盤,就是國產(chǎn)的,我們對(duì)產(chǎn)品進(jìn)行了測試。這是測試目的,擴(kuò)容,提升性能和保護(hù)投資。第一項(xiàng)和第三項(xiàng)是測試的內(nèi)容,連續(xù)讀寫傳輸率,隨機(jī)傳寫傳輸率和不同格式化單元的傳輸率。第二對(duì)數(shù)據(jù)庫單元的監(jiān)測。包括IO,CPU占用率和備份還原。為排除操作系統(tǒng)緩存干擾,我們關(guān)閉了操作系統(tǒng)寫緩存。

這是測試環(huán)境,主要是戴爾R900的服務(wù)器。今年上半年用的對(duì)比測試用的是Q520固態(tài)硬盤,這是測試環(huán)境。這是測試的情況連續(xù)讀寫傳輸率,左邊是光纖硬盤的,右邊是固態(tài)硬盤的。左邊是讀,直白是205,PCLE是1147。寫的PCLE和RAID5是647和224。讀和寫的比率,固態(tài)硬盤比光纖盤速率提升,讀可以到5倍多,寫是2-3倍。PCLE的固態(tài)硬盤比RAID5的連續(xù)率提升。

這是隨機(jī)讀寫傳輸率的比較。這是4K的測試。光纖盤和固態(tài)盤的比較情況。固態(tài)盤比光纖盤的隨機(jī)存取傳輸率有大幅提升。我們也做了讀寫差異性比較。硬盤讀和寫有一個(gè)落差,這方面也做了一個(gè)比較。把連續(xù)傳輸率和隨機(jī)傳輸率做一個(gè)比較,比率分別是這樣的,一個(gè)是3.7比1.2,這個(gè)是2.3比1.0,跟4K比較起來差距就更大了,一個(gè)是216:44,一個(gè)是17.6:7.8。512K和512K的比較也有差距,512的是57.8:37.1和7.6:7.7。

這是印象,無論對(duì)讀操作還是對(duì)寫操作,對(duì)于連續(xù)傳輸率與隨機(jī)船去傳輸率的性能差異,固態(tài)硬盤和光纖盤的性能落差都有收窄,而且跟數(shù)據(jù)塊大小成負(fù)相關(guān),數(shù)據(jù)塊越小,對(duì)固態(tài)提升越明顯。我們關(guān)注兩個(gè)指標(biāo),一個(gè)是連續(xù)的,一個(gè)是隨機(jī)的。這兩個(gè)指標(biāo)落差比較大,我們做完這個(gè)比較以后,總體有一個(gè)印象。隨著存儲(chǔ)介質(zhì)發(fā)生改變了,性能總體有了提升,提升幅度比較大。

這是我們在實(shí)際運(yùn)行當(dāng)中監(jiān)測的情況,因?yàn)橛幸恍┫嗤闆r就不介紹了,這是不同的,左邊是我們做相同操作的時(shí)候情況。左邊是光纖盤的,這兩邊都是鋸齒形狀的,不同的地方,這個(gè)鋸齒的齒差異是比較大的。左邊光纖盤來講,讀寫率最高平均是2M的比較,我們可以把它理解成隨機(jī)的操作,峰值可以到2M,右邊這塊峰值到了60M,鋸齒長了,說明它的傳輸率提高了,在運(yùn)行過程中是比較明顯的。我們使用機(jī)械盤的時(shí)候,沒有看到這么大幅度的鋸齒的幅度。這是CPU占用率的比較。左邊光纖盤CPU是6%,右邊是7%,差異不是特別大,這是我們的印象。在不同格式化單元里面,我們也做了測試。不同格式化單元條件下,這兩種盤表現(xiàn)的性能基本上是接近的,差不了太多。

這是備份還原的,它主要表現(xiàn)連續(xù)傳輸率的情況。我的備份還原都是在同樣的硬盤下操作的,分兩個(gè)區(qū),一個(gè)盤放數(shù)據(jù)庫,一個(gè)盤放文件。這個(gè)比率和連續(xù)傳輸率比較接近,基本上5倍,6倍之間的。我們考察性能的時(shí)候,關(guān)注帶寬就行了。作為固態(tài)硬盤來說比較均衡,我們主要考察帶寬就行,對(duì)帶寬的利用率和使用性能就可以評(píng)測固態(tài)硬盤本身的性能怎么樣?我們可以做出一個(gè)評(píng)價(jià)。這是我們在測試歡迎中的印象。

這就是一個(gè)結(jié)論了。第一在連續(xù)傳輸率和隨機(jī)傳輸率兩個(gè)指標(biāo),固態(tài)硬盤比光纖盤有大幅度的提高,各項(xiàng)指標(biāo)性能更加的均衡,加裝固態(tài)硬盤能提升既有存儲(chǔ)的性能。第二相對(duì)傳統(tǒng)機(jī)械硬盤小塊的隨機(jī)傳輸率提升特別明顯,小塊傳輸率的提升,能大幅提高傳輸系統(tǒng)IOPS,而IOPS是任何數(shù)據(jù)庫重要指標(biāo)之一。對(duì)于傳統(tǒng)硬盤來講,這個(gè)指標(biāo)的提高,是線性的,如果大幅度提升的話,代價(jià)也比較大。對(duì)于我們現(xiàn)有既有的存儲(chǔ)來講,最大容量是120塊,我們可以把120塊硬盤并行做,最后達(dá)到性可能跟現(xiàn)有的還是有差距的。除了本身的盤的并行以外還有通道的問題。

我們測試的時(shí)候,我們用的是既有的光纖存儲(chǔ)的性能,通道是4G的帶寬。有人說,這個(gè)指標(biāo)測試完了以后有疑問,你們本身測試的標(biāo)準(zhǔn)就不一樣。誰好誰壞,不同起跑線,實(shí)際上我們想的目的,并不是比較誰的性能好,誰的性能壞,實(shí)際上我們測試的目的,你要判斷一下作為固態(tài)硬盤,性能提升幅度到底有多大。能不能在既有的保護(hù)的投資基礎(chǔ)上增加提高系統(tǒng)的性能。第三是這樣的,第四吞吐量的提升縮短數(shù)據(jù)庫備份還原的時(shí)間,提高系統(tǒng)的在線服務(wù)能力。

這是我們需要待驗(yàn)證的。第一寫數(shù)據(jù)的預(yù)測性。我們寫一個(gè)數(shù)據(jù),一定會(huì)100%的寫到里面去,而且100%的正確寫到里面去。對(duì)于傳統(tǒng)也盤來說,這是沒有問題的,對(duì)于介質(zhì)發(fā)生變化以后,是不是這條規(guī)律還存在?一般我們想從小單元來說一般是這樣的,是可能存在的。畢竟屬于一個(gè)微觀的東西,不是靠磁的方式來做的,是靠電阻狀態(tài)來做的,它的可靠性到底有多高,我們不能控制。

這種問題存在于flash硬盤來講,對(duì)于傳統(tǒng)硬盤來講,也經(jīng)過這樣驗(yàn)證的過程。傳統(tǒng)硬盤已經(jīng)用了幾十年的時(shí)間了,在幾十年的驗(yàn)證過程當(dāng)中,實(shí)際上也有這樣的驗(yàn)證的過程存在的。到現(xiàn)在我們大家相信,只要介質(zhì)不發(fā)生變化或者損壞,一般來說,比例是比較高的,這個(gè)有需要驗(yàn)證一下。從操作系統(tǒng)層級(jí),我們寫入數(shù)據(jù)以后,我讀出來,是不是這個(gè)數(shù)?得需要驗(yàn)證一下。現(xiàn)在進(jìn)入了21世紀(jì)以后,現(xiàn)在大家已經(jīng)把這個(gè)過程淡忘了。一般大家認(rèn)為寫進(jìn)去的都沒有太大的問題,這需要時(shí)間驗(yàn)證一下。

第二數(shù)據(jù)的可修復(fù)性。我們從在線應(yīng)用的角度來講,作為傳統(tǒng)盤來講,這塊盤快了,我們可以通過read方式修復(fù)。第二如果盤壞了,我們通過手段把盤片讀出來了。固態(tài)盤出了問題,我們怎么修復(fù)它?固態(tài)盤存儲(chǔ)密度相對(duì)于其他的盤密度大,對(duì)于它來講,它修復(fù)的代價(jià)和修復(fù)的時(shí)間,這是我們需要考慮的問題。所謂的連續(xù)性要求比較高的情況下,這是需要考慮的問題。但是并不能說,一定會(huì)怎么樣。因?yàn)槟壳拔覀儚馁Y料上看,還沒有人能修復(fù)物理損壞。

第三應(yīng)用連續(xù)性。第四壽命。壽命怎么樣考慮呢?也是一個(gè)問題?,F(xiàn)在的壽命有兩種算法,兩種評(píng)判的指標(biāo),第一可以用度寫次數(shù)判定,比如說Q5H這塊硬盤來講,這塊卡最終的壽命是多少次?你可以通過監(jiān)測你使用的次數(shù)推算出它的壽命。我們有這樣的數(shù)據(jù)。我監(jiān)測了22天的數(shù)據(jù),這22天一共讀寫了11T的數(shù)據(jù),讀、寫、格式化的方式做測試,有22天讀寫產(chǎn)生11T的數(shù)據(jù),相對(duì)于讀寫數(shù)據(jù)來講,讀、寫兩項(xiàng)加起來大概是2×10的9次方次,相對(duì)于它的壽命來講,給了一個(gè)比例。我們11個(gè)T的使用壽命?相當(dāng)于它的壽命的0.1%,大家可以算我這塊可以使用多長時(shí)間?,F(xiàn)在在市面上也有另外一種方式,我可以算出它的可靠性時(shí)間,就像硬盤一樣,盤的可靠性有多少,PCIE卡,我的可靠性是多少。時(shí)間還是由次數(shù)決定,歸根結(jié)底還是由次數(shù)定的。我們并不否認(rèn)硬盤本身怎么樣,我覺得這方面需要驗(yàn)證一下,條件具備的時(shí)候,我們要做這方面的測試。

前面講的是我們測試和實(shí)用的情況。下面我們測試和實(shí)用以后,我們有一個(gè)應(yīng)用策略的考慮,到底怎么搭配,怎么測試,怎么用?這個(gè)就涉及到了我們對(duì)存儲(chǔ)定位的問題,它是干什么用的。因?yàn)榇鎯?chǔ)來講,還是屬于IO的范疇,目前我們感知到的,能夠得到的應(yīng)用場景是兩個(gè),第一個(gè)協(xié)助運(yùn)算,第二保存信息。對(duì)這兩個(gè)應(yīng)用場景的要求是不一樣的。對(duì)協(xié)助運(yùn)算來講,主要強(qiáng)調(diào)跟CPU的匹配性是怎么樣的?這是我們要考慮的重點(diǎn)的問題,容量都是我們共同考慮的問題之一了。第一要側(cè)重匹配性。對(duì)于保存信息來講,我們側(cè)重于保存的可靠性、持久性,這是我們重點(diǎn)考察的問題,包括存儲(chǔ)成本的問題。

從選擇系統(tǒng)的維度來講就是5個(gè),第一是速度,第二是容量,第三可靠性,第四能耗,第五經(jīng)濟(jì)性,就是成本。從5個(gè)維度來說,在現(xiàn)有的條件下,我們有5種選擇,基本上就是這5種選擇。第一CPU緩存,第二內(nèi)存,第三固態(tài)硬盤,第四機(jī)械硬盤,第五磁帶機(jī)。以前只有四個(gè)數(shù)據(jù),出現(xiàn)固態(tài)盤之后,我們認(rèn)為可以作為內(nèi)存和機(jī)械盤中間新增了一個(gè)層級(jí)就是5個(gè)層級(jí)了。從內(nèi)到外,從速度快與慢,從距離CPU的遠(yuǎn)近來講,從近到遠(yuǎn)的層次化的結(jié)構(gòu),這是層級(jí)的關(guān)系。

從選擇系統(tǒng)的速度,我們考慮存儲(chǔ)的時(shí)候,考慮的就是三個(gè)五,一個(gè)是應(yīng)用維度,一個(gè)是應(yīng)用層級(jí),一個(gè)是應(yīng)用的選擇,基本上就是三個(gè)五。在選擇的時(shí)候大家可以參照這個(gè)表可以做一個(gè)平衡。上面列基本上是維度,左邊是我們考慮的速度的問題。CPU緩存基本上是納秒級(jí)別的,容量是多少KB到M,可能性定義為永久,現(xiàn)在還沒有聽到說哪個(gè)是因?yàn)镃PU出現(xiàn)毛病的,單節(jié)點(diǎn)能耗是80W,也是一個(gè)估算值,這是我們從CPU的標(biāo)的功耗取下來的,基本上是幾十W的水平。經(jīng)濟(jì)性是我們折算出來的。CPU緩存是集成的,價(jià)錢也不會(huì)單標(biāo),不會(huì)說話2萬單買一個(gè)緩存,我把這個(gè)作為代用的,不是特別的準(zhǔn)確。緩存分三級(jí),CPU增加了,換這么多代,緩存增加級(jí)別上,第三級(jí)緩存有了不同級(jí)別的緩存是不一樣的,但是對(duì)于二級(jí)緩存或者一級(jí)緩存來講,實(shí)際上都是在KB級(jí)別的。目前現(xiàn)在的CPU緩存,不管是哪個(gè)檔次的CPU,我看到的都是256K,這里面也是有一些問題的。綜合考慮容量基本上就是KB-M的層級(jí)。從速度來說基本上差10倍,從十幾ns到幾十ns。容量范圍基本上是GB,PC是8GB對(duì)服務(wù)器來講64,128或者256的,再大的就不是我們討論的范疇了。

可靠性比CPU可靠性小一點(diǎn),我們認(rèn)為是半永久,單節(jié)點(diǎn)能耗2GB,加一條內(nèi)存就是增加4W左右的水平,一條多少大家也都知道了。

對(duì)固態(tài)盤和機(jī)械盤來講,為什么我說它是在內(nèi)存和機(jī)械盤之間一個(gè)比較合適的層級(jí)呢?無論從存儲(chǔ)時(shí)間,容量,可靠性,能耗,都是比較合適的。它比內(nèi)存慢10倍,比機(jī)械硬盤也差10倍多一些,因?yàn)檫@是一個(gè)單的情況,總體來講,從內(nèi)存到硬盤差距就比較大了,有一個(gè)固態(tài)硬盤會(huì)更協(xié)調(diào)一些,容量比較大,多少的都有,剛才我看有一些產(chǎn)品是3T的,能耗也是比較小的,從5-26W,經(jīng)濟(jì)性也是很經(jīng)濟(jì)性的。

后來加N是什么意思?N指的是控制器的價(jià)格。對(duì)于固態(tài)硬盤來說沒有控制器直接插卡的,這里面N就是0的,如果對(duì)其他接口的固態(tài)硬盤來講,如果使用外接存儲(chǔ)還需要有外接存儲(chǔ)的設(shè)備,還會(huì)有這個(gè)的成本開銷,所以后面要加一個(gè)N。下面的機(jī)械硬盤速度是這樣的。剛才要提的,可靠性大家比較公認(rèn)的就是一塊盤3-5萬小時(shí),單節(jié)點(diǎn)能耗是5-16W+N。如果我們還是用機(jī)械硬盤的方式來做,它的成本開銷會(huì)比較大?,F(xiàn)在提的比較少了,我們覺得在某些情況要關(guān)注到,你的容量到了這個(gè)層級(jí)的時(shí)候,你應(yīng)該考慮作為一個(gè)選項(xiàng),磁帶機(jī)作為歸檔系統(tǒng)來說,作為大數(shù)據(jù)來講,還是有一些意義的,這是我希望提醒大家的,不要忘記磁帶機(jī)。

應(yīng)用領(lǐng)域,CPU緩存,內(nèi)存也可以參與運(yùn)算,更準(zhǔn)確的說,它可以協(xié)調(diào)運(yùn)算。我們根據(jù)不同的應(yīng)用角度和應(yīng)用的層級(jí)和用途來講,我們做了一個(gè)對(duì)號(hào)入座。前面講的我們是對(duì)存儲(chǔ)系統(tǒng)架構(gòu)的問題,后面就是對(duì)固態(tài)盤選擇的問題,在接口上怎么選。這里面考慮選用固態(tài)盤接口考慮的因素。SATA、SAS,F(xiàn)C,PCLE接口的。SATA是150,SAS一開始就是600,PCLE就是三個(gè)層級(jí),F(xiàn)C是這樣的。內(nèi)置,外置的情況。SAS還有外置的情況。距離也分長短。PCLE是這樣的,從PCLE接口規(guī)范來講,它是能夠進(jìn)行熱插拔的。目前我們看到的PCLE接口的硬盤卡,沒有見到有誰能支持熱插拔的,所以我們暫時(shí)列為否,是這樣的情況。

最后我們對(duì)固態(tài)盤應(yīng)用的策略。使用三條,第一條使用固態(tài)盤能顯著提升既有存儲(chǔ)的性能。第二從應(yīng)用來講,我們建議可以從邊緣應(yīng)用向核心應(yīng)用逐步推進(jìn),第三混合應(yīng)用是平滑的選擇。

對(duì)于固態(tài)盤來講,我們怎么用?通過實(shí)踐和一些測算有五條應(yīng)用。第一條將tempdb放在PCLE加速卡當(dāng)中,第二將用戶數(shù)據(jù)庫的數(shù)據(jù)文件置于PCLE固態(tài)硬盤當(dāng)中。第三對(duì)于大型數(shù)據(jù)庫而言,將該數(shù)據(jù)庫當(dāng)中的IO最密度部件放在硬盤加速卡當(dāng)中,前面是對(duì)大型數(shù)據(jù)來講,如果你測的數(shù)據(jù)比較小,可以全放到固態(tài)硬盤上就行了。試運(yùn)行的時(shí)候,我們的數(shù)據(jù)庫運(yùn)行的數(shù)據(jù)是比較小的,基本上是30G的,連tempdb數(shù)據(jù)帶數(shù)據(jù)庫都放在里面了。對(duì)于操作系統(tǒng)來講,我們可以將虛擬內(nèi)存放在硬盤加速卡當(dāng)中,有助于提高操作系統(tǒng)的性能。這是我們對(duì)應(yīng)用的幾條建議。

最后對(duì)于硬盤加速卡來說,我們希望是混合應(yīng)用,等于混合動(dòng)力,是這樣的概念。這就是我對(duì)混合硬盤最終的印象,謝謝大家。

分享到

lihongliang

相關(guān)推薦