蘋果Fusion Drive混合磁盤方案深度解析
當(dāng)效果可觀、價格適度的SSD在2008年首次出現(xiàn)時,人們覺得這個技術(shù)相當(dāng)神奇。隨著時間的推移,NAND和SSD的性價比提高了,但機(jī)械硬盤的價格還是比它低一個數(shù)量級。AnandTech的Anand Lal Shimpi表示:我一直主張把SSD和HDD相結(jié)合的解決方案。你可以買一塊足夠大的SSD來裝操作系統(tǒng)、應(yīng)用程序、甚至再裝一兩個游戲,然后把其他一切放在HDD RAID-1陣列中。這種方法用在臺式機(jī)上效果很好,但你必須手動管理文件去向。
本文引用地址:http://butianyuan.cn/article/201967.htmOEM是如何處理這個問題?我一直都感到好奇。因為教育用戶自己動手,把較大的、不經(jīng)常使用的文件放在一個驅(qū)動器上,把其他東西放在另一個驅(qū)動器上,似乎不太可行。英特爾6系列芯片組采用了Smart Response混合硬盤技術(shù),將一塊20GB SLC SSD作為傳統(tǒng)硬盤的緩存,希望實(shí)現(xiàn)速度的提升。
自那以后,其他一些SSD緩存解決方案也紛紛出現(xiàn)。然而,它們中的大多數(shù)采用的是便宜的、小容量、效果不佳的mSATA SSD。近來,OEM跟SSD緩存供應(yīng)商合作,以勉強(qiáng)滿足超極本認(rèn)證的最低要求。一般說來,這種方式帶來的體驗非常差。
HDD 制造商也在試圖解決這個問題,但它們的方式是添加少量NAND到機(jī)械硬盤中。這通常會讓HDD 的速度變得更快,但跟SSD還是相去甚遠(yuǎn)。實(shí)際上NAND存儲設(shè)備的容量已經(jīng)大到足以容納你的所有數(shù)據(jù),所以上述做法就好像是:你堅持使用8MB L3 緩存,其實(shí)你本來可以多加幾百美元,買一個16GB。一旦你了解后者的好處,前者似乎就是毫無意義的妥協(xié)了。
蘋果是最早意識到這個問題的OEM之一。該公司所有主流移動設(shè)備都只用NAND(iPhone,iPad和MacBook Air)。最近,蘋果的專業(yè)筆記本電腦甚至也開始朝著純SSD的方向邁進(jìn)了(配Retina 顯示屏的MacBook Pro)。蘋果Mac確實(shí)有不參與低價競爭的資本,因此要拋棄HDD 也容易了很多。即便如此,蘋果現(xiàn)在出貨的6款Mac(MBA、rMBP、MBP、Mac mini,iMac和Mac Pro)中,也只有兩款的默認(rèn)配置不帶HDD 。其余的都配備了老式機(jī)械硬盤。
把iMac這樣的設(shè)備改成純SSD比較困難。雖然筆記本電腦用戶(尤其是超極本用戶)已經(jīng)習(xí)慣了沒有太多存儲空間的設(shè)備,用慣臺式機(jī)的人并不一定受得了有限的存儲量。
對于這個問題,蘋果的辦法跟其他SSD / HDD混合解決方案也沒有太大不同。區(qū)別只是在SSD組成部分的大小以及軟件層上。
全新的Mac mini和iMac可以選擇蘋果的混合硬盤解決方案Fusion Drive。它只有兩個版本:1TB和3TB。 1TB僅適用于iMac和升級的Mac mini(799美元),3TB只適用于27英寸的iMac。
Fusion Drive 是一塊1TB或3TB HDD(2.5英寸或3.5英寸)跟一塊128GB三星PM830 SSD的組合。在測試中,我使用的是一臺27英寸iMac,1TB的 Fusion Drive。
蘋果Fusion Drive中SSD的容量遠(yuǎn)遠(yuǎn)高于一般的緩存方案(大多數(shù)OEM都采用8GB到24GB的NAND)。而且蘋果Fusion Drive選用的三星PM830,是我們測試過的SSD中性能和可靠性的最佳組合之一。雖然我個人更喜歡Link A Media 或者Intel S3700,畢竟它們擁有出色、穩(wěn)定的性能,但對于蘋果來說,PM830可能是一個更加實(shí)惠的選擇。
當(dāng)然Fusion Drive與以往的混合/緩存解決方案不同,但它真正的與眾不同之處是軟件部分。Fusion Drive沒有簡單地借用英特爾Smart Response 技術(shù),它涉及到OS X邏輯卷管理器Core Storage的虛擬化存儲問題。Core Storage最早出現(xiàn)是在獅子版本中,它可以讓操作系統(tǒng)把多個物理磁盤當(dāng)做一個邏輯卷來對待。
蘋果最初用Core Storage來加密整個磁盤,但現(xiàn)在,Core Storage的使用已擴(kuò)大到美洲獅的Fusion Drive中。創(chuàng)建Fusion Drive十分簡單。如果你有多個驅(qū)動器,你可以自己使用一些簡單的終端命令來創(chuàng)建一個Fusion Drive。如果你購買了一臺帶有Fusion Drive 的Mac,蘋果就自動為你做好著一切了。
跟傳統(tǒng)的SSD緩存架構(gòu)不同,F(xiàn)usion Drive不是真的緩存,它會根據(jù)訪問頻率和可用空間,在SSD和HDD之間移動數(shù)據(jù)。一個Fusion Drive的容量,實(shí)際上是其組成部分的總和。也就是說,一個1TB的Fusion Drive容量實(shí)際上是1TB + 128GB;一個3TB 的Fusion Drive容量則是3TB + 128GB。
最新版本的“磁盤工具”(Disk Utility)把 Fusion Drive 顯示為一個驅(qū)動器,標(biāo)簽為Macintosh HD。但是蘋果并沒有試圖隱藏它的Fusion Drive屬性:在系統(tǒng)報告中,或者使用像iStat Menus這樣的第三方工具,你可以看到兩個驅(qū)動器的狀況:
128GB的SSD顯示容量為121.33GB。 注意:自O(shè)S X 10.6后,蘋果公司開始以10為基數(shù)顯示容量。算一下你就會知道有多少空間被用作了備用區(qū):
這個128GiB NAND中約11.7%被預(yù)留作為備用區(qū),標(biāo)準(zhǔn)Mac中的128GiB SSD也是一樣,但這個比例比通常的6.7%要高。增加備用區(qū)比例有助于提升性能的一致性,我個人希望三星SSD能有25%的備用區(qū)。
你可以在Fusion Drive上創(chuàng)建Boot Camp或其他額外的分區(qū),不過這些分區(qū)都是在HDD上。
Fusion Drive揭秘
我測試用的是一臺新的27英寸iMac。最開始,我用了一個128KB的順序?qū)懭氩僮?隊列深度為1),并使用iStat Menus 4來監(jiān)測兩個驅(qū)動器的狀態(tài),我發(fā)現(xiàn)只有SSD接收了最初的寫入操作,HDD上沒有活動。 SSD的寫入速度是322MB / s。但在寫入117GB之后,HDD接管了寫入活動,最初速度大約為133 到175MB / s。
初步測試證實(shí),F(xiàn)usion Drive確實(shí)使用了兩個驅(qū)動器。最初117GB寫入到了SSD,接下來的1TB直接寫入到HDD。我覺得它排定優(yōu)先級的方式是:Fusion Drive假設(shè)SSD上有足夠的可用空間(后面將詳細(xì)討論),首先嘗試寫入SSD。
接下來,我想進(jìn)行隨機(jī)IO測試,因為這才是SSD在性能方面超過HDD的地方,通常也是SSD緩存或混合方案功虧一簣的地方。我首先嘗試了最糟糕的情況:涵蓋所有的邏輯塊地址的隨機(jī)寫入測試。鑒于Fusion Drive的總?cè)萘渴?.1TB,從這個測試中,我們可以了解蘋果如何在這兩個驅(qū)動器之間映射LBA(邏輯塊地址)。
結(jié)果很有趣的,不過也不算意外。 SSD和HDD都有寫入活動,但HDD更多一些(消耗了更大比例的可用LBA)。普通的4KB(QD16)隨機(jī)寫入測試結(jié)果大約是0.51MB / s,它受到了Fusion Drive中HDD部分的限制。
但在隨機(jī)寫入任務(wù)結(jié)束之后,HDD和SSD之間出現(xiàn)了直接的數(shù)據(jù)移動。因為LBA是隨機(jī)選擇的,一些(相同或只是空間上相似的)地址可能被挑選了不止一次,這些邏輯塊立即被標(biāo)記為提升到SSD。這是我第一次看到Fusion Drive主動在驅(qū)動器之間移動數(shù)據(jù)。
對于消費(fèi)級SSD來說,進(jìn)行全覆蓋的隨機(jī)寫入測試可能有點(diǎn)不公平,對SSD / HDD混合方案來說就更不公平了。要了解Fusion Drive處理隨機(jī)IO的能力有多強(qiáng),我把隨機(jī)寫入測試限制在LBA的第一個8GB之內(nèi)。
結(jié)果有很大的不同。在第一輪中,平均速度大約是7 到9MB /s,IO絕大部分都發(fā)生在SSD上,一小部分在HDD上。 3分鐘的測試后,我等著Fusion Drive移動數(shù)據(jù),然后又重復(fù)了一遍。在第二輪中,速度跳升到了21.9MB / s,更多的IO發(fā)生在SSD上,盡管HDD上仍然看得到寫入活動。
圖:大部分的隨機(jī)寫入都發(fā)生在SSD上,但仍然有部分到了HDD,移動了一番數(shù)據(jù)和重映射LBA之后,幾乎所有的隨機(jī)寫入都到了SSD上,速度也快了很多
在第三次嘗試中,幾乎所有的隨機(jī)寫入發(fā)生在SSD上,速度達(dá)到98MB / s的峰值,碎片增多時,速度下降到最低35MB / s。我認(rèn)為,蘋果似乎依據(jù)訪問頻率,把LBA動態(tài)地映射到了SSD上,這是一個非常積極的性能提升方法。歸根結(jié)底,這是通常的SSD緩存方案和Fusion Drive之間存在的重大區(qū)別。大多數(shù)SSD緩存方案似乎都以讀取頻率為基礎(chǔ),而Fusion Drive看似(至少部分是)考慮了哪些LBA被頻繁寫入,并把它們映射到SSD上。
要注意的是,隨后的隨機(jī)寫入測試產(chǎn)生的結(jié)果大不一樣。當(dāng)我用更多的數(shù)據(jù)和應(yīng)用程序填充Fusion Drive(用真實(shí)的數(shù)據(jù)和應(yīng)用程序填充到80%)時,我沒有見到隨機(jī)寫入性能能再次達(dá)到這樣高的水平。在每次運(yùn)行中,我看到有很短的時間數(shù)據(jù)到處移動,但隨機(jī)IO發(fā)生在HDD和SDD的比例約為7:1。鑒于這兩種驅(qū)動器之間的容量差異,這個比例具有很大意義。如果你的工作負(fù)載包含大量的隨機(jī)寫入,涵蓋所有可用空間,F(xiàn)usion Drive可能就不太適合你。不過這樣的工作負(fù)載大多出現(xiàn)在企業(yè)用戶中,所以對你來說這應(yīng)該不是問題。
數(shù)據(jù)精細(xì)度探究
蘋果公司在宣傳Fusion Drive時,談到了文件和應(yīng)用程序級別的數(shù)據(jù)移動,但在現(xiàn)實(shí)使用中,數(shù)據(jù)可以以128KB的文件塊在SSD和HDD之間移動。
使用fs_usage工具,你可以看到蘋果Fusion Drive的內(nèi)部工作原理。 文件以128KB的文件塊在驅(qū)動器之間移動,這也是由文件塊的使用頻率來決定的。由于客戶工作負(fù)載往往是順序的(在最糟的情況下也是偽隨機(jī)),我們可以比較有把握地說,如果你在一個 128KB的文件塊中訪問一個LBA,你實(shí)際上會訪問同一空間中更多的LBA。數(shù)據(jù)遷移過程似乎主要是發(fā)生在閑置期間,雖然我也看到,在IO負(fù)載較輕的時候,驅(qū)動器之間也有遷移活動進(jìn)行。
遷移的快速觸發(fā)機(jī)制十分有趣。一旦文件被復(fù)制或者創(chuàng)建出來,應(yīng)用程序啟動,或者其他IO活動完成時,SSD和HDD之間立刻開始進(jìn)行數(shù)據(jù)遷移。當(dāng)你填充Fusion Drive時,在SSD和HDD之間移動的數(shù)據(jù)量就大幅收縮了。事情本來就應(yīng)該是這樣。不常訪問的數(shù)據(jù)應(yīng)該放置在HDD 上,真正重要的東西會留在SSD上。當(dāng)Fusion Drive在寫入時,蘋果就不會那么積極地釋放SSD上的數(shù)據(jù)。
數(shù)據(jù)遷移過程本身是非常簡單的,數(shù)據(jù)被標(biāo)志為promotion和demotion,它被物理復(fù)制到新的存儲設(shè)備上,然后它才移走。在遷移過程中,如果出現(xiàn)電源故障,F(xiàn)usion Drive不會造成任何數(shù)據(jù)丟失,只有當(dāng)一個128KB文件塊的兩個副本就位之后,源塊才會被移除。蘋果去年就告訴過我這件事了,但我現(xiàn)在才親眼看到。
評論