蘋果的 Fusion Drive 是一項新的技術嗎?是否靠譜?
熟悉蘋果技術的朋友能否科普一下新的 Fusion Drive 是怎麼回事?
演算法課上緩存的替換演算法有提到一個furthest-in-the-future的,是有限緩存下緩存更新替換的理論最優方案。在緩存(這裡是SSD)滿而需要載入更多數據時優先淘汰掉下次訪問時間最遠的數據。
通常情況下數據未來的訪問情況無法提前知道,所以這個演算法也只是理論最優。我猜測(瞎猜),應該是操作系統層面根據使用習慣做了一個預測演算法進行SSD緩存內容的動態更新
至於為什麼是操作系統層面做,這個可以參考QoS:不在應用層識別流量,很難精確做QoS。不在操作系統層面做硬碟讀取優化,很難知道哪個「文件」應該被優化到SSD上。
不過似乎好像最近沒MacOSX的更新?呃…
P.S.這種技術之前已經有了,叫啥固態混合硬碟,就是機械硬碟整合一個小容量SSD,由硬碟自己做讀取優化,對OS透明。
http://www.amazon.com/gp/aw/s/ref=is_box_?k=Hybrid+drive
UPDATE:
官方對Fusion Drive的介紹http://support.apple.com/kb/HT5446?viewlocale=en_USlocale=en_US吐槽一句:OS層面實現的緩存優化果然會複雜很多…沒有固態混合硬碟對OS透明這種方案簡單…@yelge 的說法比較靠譜。
首先,在拆機之前我們不知道 Fusion Drive 的硬體是什麼樣子的,有可能是普通的「混合硬碟」,也有可能是一個普通硬碟和一個普通或定製固態硬碟,也有可能是一個蘋果自己設計的硬碟。
但是,這技術的關鍵顯然是在軟體層面。不管是英特爾快速響應技術還是混合硬碟,沒有大範圍普及還是因為沒有與操作系統無縫結合。
混合硬碟是是在硬碟內集成了一個學習晶元,判斷那些數據存在 SSD 里,與操作系統無關。
據我所知,英特爾快速響應技術有兩種模式,一種是把 SSD 作為緩存,上面不存東西:另一種是類似 Raid 0,這樣 SSD 拓展了總的可用空間,但一旦任意一塊硬碟壞掉,就會損失數據。
蘋果一向很少在發布會上解釋技術細節,他們這次只是說,Fusion Drive 會把操作系統和應用程序存在 SSD,而音樂照片等文檔存在 HDD;這只是一個通俗解釋,操作系統肯定會做自己的判斷,而且這種系統級的學習和判斷比起混合硬碟的硬體晶元級的肯定要優秀很多。
根據發布會給出的對比圖,我們發現 Fusion Drive 的性能和純 SSD 極其接近,但是我們不知道這個數據是怎麼測得,如果真這麼快,我覺得很有可能 Fusion Drive 也會混合一點 Raid 0 的思想,在SSD 未被佔滿時,可以把 HDD 中的文件 分割出一部分存在 SDD 里。
所以我覺得 Fusion Drive 應該是混合了多種技術。至於具體情況,我覺得可以有幾種方式驗證:拆機、分析 OS X 的更新、安裝 Windows等。
總之我覺得這項技術和以前的任何一項非蘋果原創的技術一樣,極其靠譜,但只有蘋果可以這麼靠譜。硬體層應該是intel的技術,那個時期與intel處在蜜月期,雷電介面也是,但是應該在os方面水果付出了很大的努力,水果os這幾年在省電方面的改善是相當大的,從os層出發優化的效果很好這是pc難以做到的。
由此推論,fusion driver在os層上面也有了想當程度的優化。
這個方案現在的問題是,據說大文件內部複製時效率低下,甚至不如單硬碟。另外一塊壞掉由其是ssd的話,沒有備份就哭吧,推薦和時間膠囊一起用吧用了三四年以後回來看這個問題。
首先,不否認Fusion Drive確實比普通硬碟爽很多。不過還是覺得設計比較二逼。
這東西和一般SSD緩存的核心區別在於SSD和HDD上沒有重複的內容,不損失容量。但是正因為如此,內容總是在SSD和HDD之間來回搬移。造成HDD上的內容嚴重碎片化,一旦沒命中SSD,會比普通硬碟還慢。另一方面,給數據恢復也造成了巨大的麻煩。感覺Apple之所以不做SSD緩存的方案,就是為了獨樹一幟和Intel別苗頭,但實際效果真的不比SSD純當緩存用來的好。我認為是過渡性技術,目前整個行業都在炒ssd,但是ssd目前來說進步有點瓶頸了,但是未來機械硬碟肯定是和磁帶一樣作為便宜可靠的數據備份工具存在。雖然不會退出歷史舞台,但是遠離家庭市場了。話說回來,哪個技術不是過渡性的呢。我用了fusion drive半年,但是還是拆開了,因為你知道pcie ssd可以更快的時候,用fusion drive其實是一個妥協,還有跑題的提一句,Fusion drive其實是為了兼容time machine 的一種存在,當有一天你備份了兩個磁碟。然後你把兩個磁碟恰好的組成了fusion drive,然後你恰好又恢復系統。然後發現,系統完好,但是你登陸不進去。還在單用戶模式刪除配置文件,你認為蘋果會讓你這樣去體驗他的體驗嗎。
沒有進一步調查,但是估計和ZFS的ARC實現比較接近。最早留意到這種技術還是在ZFS的新聞上,直接轉發相關資料了。
ZFS also has a sophisticated cache called the "Adaptive Replacement Cache" (ARC) where it stores both most frequently used blocks of data and most recently used ones. The ARC is stored in RAM, so each block of data that is found in the RAM can be delivered quickly to the application, instead of having to fetch it again from disk. When RAM is full, data needs to be thrown out of the cache and is not available any more to accelerate reads.
SSDs can be used as a second level cache: Blocks that cant be stored in the RAM-based ARC can then be stored on SSDs and in case theyre needed, they can still be delivered quicker to the application than by fetching them again from disk. An SSD that is used as a second level ARC is therefore called an L2ARC, or a "cache device"
.
http://constantin.glez.de/blog/2011/02/frequently-asked-questions-about-flash-memory-ssds-and-zfs
伺服器高端技術走向民用普及,比我想像的快多了。推薦閱讀:
TAG:Mac | 蘋果公司AppleInc | FusionDrive |