关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 苹果Fusion Drive混合磁盘方案深度解析

苹果Fusion Drive混合磁盘方案深度解析

作者:时间:2013-01-23来源:网络收藏

当效果可观、价格适度的SSD在2008年首次出现时,人们觉得这个技术相当神奇。随着时间的推移,NAND和SSD的性价比提高了,但机械硬盘的价格还是比它低一个数量级。AnandTech的Anand Lal Shimpi表示:我一直主张把SSD和HDD相结合的解决方案。你可以买一块足够大的SSD来装操作系统、应用程序、甚至再装一两个游戏,然后把其他一切放在HDD RAID-1阵列中。这种方法用在台式机上效果很好,但你必须手动管理文件去向。

本文引用地址:http://www.eepw.com.cn/article/201967.htm

OEM是如何处理这个问题?我一直都感到好奇。因为教育用户自己动手,把较大的、不经常使用的文件放在一个驱动器上,把其他东西放在另一个驱动器上,似乎不太可行。英特尔6系列芯片组采用了Smart Response混合硬盘技术,将一块20GB SLC SSD作为传统硬盘的缓存,希望实现速度的提升。

苹果iMac混合磁盘方案分析

自那以后,其他一些SSD缓存解决方案也纷纷出现。然而,它们中的大多数采用的是便宜的、小容量、效果不佳的mSATA SSD。近来,OEM跟SSD缓存供应商合作,以勉强满足超极本认证的最低要求。一般说来,这种方式带来的体验非常差。

HDD 制造商也在试图解决这个问题,但它们的方式是添加少量NAND到机械硬盘中。这通常会让HDD 的速度变得更快,但跟SSD还是相去甚远。实际上NAND存储设备的容量已经大到足以容纳你的所有数据,所以上述做法就好像是:你坚持使用8MB L3 缓存,其实你本来可以多加几百美元,买一个16GB。一旦你了解后者的好处,前者似乎就是毫无意义的妥协了。

是最早意识到这个问题的OEM之一。该公司所有主流移动设备都只用NAND(iPhone,iPad和MacBook Air)。最近,的专业笔记本电脑甚至也开始朝着纯SSD的方向迈进了(配Retina 显示屏的MacBook Pro)。Mac确实有不参与低价竞争的资本,因此要抛弃HDD 也容易了很多。即便如此,苹果现在出货的6款Mac(MBA、rMBP、MBP、Mac mini,iMac和Mac Pro)中,也只有两款的默认配置不带HDD 。其余的都配备了老式机械硬盘。

把iMac这样的设备改成纯SSD比较困难。虽然笔记本电脑用户(尤其是超极本用户)已经习惯了没有太多存储空间的设备,用惯台式机的人并不一定受得了有限的存储量。

苹果iMac混合磁盘方案分析

对于这个问题,苹果的办法跟其他SSD / HDD混合解决方案也没有太大不同。区别只是在SSD组成部分的大小以及软件层上。

初识

全新的Mac mini和iMac可以选择苹果的混合硬盘解决方案 。它只有两个版本:1TB和3TB。 1TB仅适用于iMac和升级的Mac mini(799美元),3TB只适用于27英寸的iMac。

苹果iMac混合磁盘方案分析

是一块1TB或3TB HDD(2.5英寸或3.5英寸)跟一块128GB三星PM830 SSD的组合。在测试中,我使用的是一台27英寸iMac,1TB的 Fusion Drive。

苹果Fusion Drive中SSD的容量远远高于一般的缓存方案(大多数OEM都采用8GB到24GB的NAND)。而且苹果Fusion Drive选用的三星PM830,是我们测试过的SSD中性能和可靠性的最佳组合之一。虽然我个人更喜欢Link A Media 或者Intel S3700,毕竟它们拥有出色、稳定的性能,但对于苹果来说,PM830可能是一个更加实惠的选择。

苹果iMac混合磁盘方案分析

当然Fusion Drive与以往的混合/缓存解决方案不同,但它真正的与众不同之处是软件部分。Fusion Drive没有简单地借用英特尔Smart Response 技术,它涉及到OS X逻辑卷管理器Core Storage的虚拟化存储问题。Core Storage最早出现是在狮子版本中,它可以让操作系统把多个物理磁盘当做一个逻辑卷来对待。

苹果最初用Core Storage来加密整个磁盘,但现在,Core Storage的使用已扩大到美洲狮的Fusion Drive中。创建Fusion Drive十分简单。如果你有多个驱动器,你可以自己使用一些简单的终端命令来创建一个Fusion Drive。如果你购买了一台带有Fusion Drive 的Mac,苹果就自动为你做好着一切了。

跟传统的SSD缓存架构不同,Fusion Drive不是真的缓存,它会根据访问频率和可用空间,在SSD和HDD之间移动数据。一个Fusion Drive的容量,实际上是其组成部分的总和。也就是说,一个1TB的Fusion Drive容量实际上是1TB + 128GB;一个3TB 的Fusion Drive容量则是3TB + 128GB。

苹果iMac混合磁盘方案分析

最新版本的“磁盘工具”(Disk Utility)把 Fusion Drive 显示为一个驱动器,标签为Macintosh HD。但是苹果并没有试图隐藏它的Fusion Drive属性:在系统报告中,或者使用像iStat Menus这样的第三方工具,你可以看到两个驱动器的状况:

苹果iMac混合磁盘方案分析

128GB的SSD显示容量为121.33GB。 注意:自OS X 10.6后,苹果公司开始以10为基数显示容量。算一下你就会知道有多少空间被用作了备用区:

苹果iMac混合磁盘方案分析

这个128GiB NAND中约11.7%被预留作为备用区,标准Mac中的128GiB SSD也是一样,但这个比例比通常的6.7%要高。增加备用区比例有助于提升性能的一致性,我个人希望三星SSD能有25%的备用区。

你可以在Fusion Drive上创建Boot Camp或其他额外的分区,不过这些分区都是在HDD上。

Fusion Drive揭秘

我测试用的是一台新的27英寸iMac。最开始,我用了一个128KB的顺序写入操作(队列深度为1),并使用iStat Menus 4来监测两个驱动器的状态,我发现只有SSD接收了最初的写入操作,HDD上没有活动。 SSD的写入速度是322MB / s。但在写入117GB之后,HDD接管了写入活动,最初速度大约为133 到175MB / s。

苹果iMac混合磁盘方案分析

初步测试证实,Fusion Drive确实使用了两个驱动器。最初117GB写入到了SSD,接下来的1TB直接写入到HDD。我觉得它排定优先级的方式是:Fusion Drive假设SSD上有足够的可用空间(后面将详细讨论),首先尝试写入SSD。

接下来,我想进行随机IO测试,因为这才是SSD在性能方面超过HDD的地方,通常也是SSD缓存或混合方案功亏一篑的地方。我首先尝试了最糟糕的情况:涵盖所有的逻辑块地址的随机写入测试。鉴于Fusion Drive的总容量是1.1TB,从这个测试中,我们可以了解苹果如何在这两个驱动器之间映射LBA(逻辑块地址)。

结果很有趣的,不过也不算意外。 SSD和HDD都有写入活动,但HDD更多一些(消耗了更大比例的可用LBA)。普通的4KB(QD16)随机写入测试结果大约是0.51MB / s,它受到了Fusion Drive中HDD部分的限制。

但在随机写入任务结束之后,HDD和SSD之间出现了直接的数据移动。因为LBA是随机选择的,一些(相同或只是空间上相似的)地址可能被挑选了不止一次,这些逻辑块立即被标记为提升到SSD。这是我第一次看到Fusion Drive主动在驱动器之间移动数据。

对于消费级SSD来说,进行全覆盖的随机写入测试可能有点不公平,对SSD / HDD混合方案来说就更不公平了。要了解Fusion Drive处理随机IO的能力有多强,我把随机写入测试限制在LBA的第一个8GB之内。

结果有很大的不同。在第一轮中,平均速度大约是7 到9MB /s,IO绝大部分都发生在SSD上,一小部分在HDD上。 3分钟的测试后,我等着Fusion Drive移动数据,然后又重复了一遍。在第二轮中,速度跳升到了21.9MB / s,更多的IO发生在SSD上,尽管HDD上仍然看得到写入活动。

苹果iMac混合磁盘方案分析

图:大部分的随机写入都发生在SSD上,但仍然有部分到了HDD,移动了一番数据和重映射LBA之后,几乎所有的随机写入都到了SSD上,速度也快了很多

在第三次尝试中,几乎所有的随机写入发生在SSD上,速度达到98MB / s的峰值,碎片增多时,速度下降到最低35MB / s。我认为,苹果似乎依据访问频率,把LBA动态地映射到了SSD上,这是一个非常积极的性能提升方法。归根结底,这是通常的SSD缓存方案和Fusion Drive之间存在的重大区别。大多数SSD缓存方案似乎都以读取频率为基础,而Fusion Drive看似(至少部分是)考虑了哪些LBA被频繁写入,并把它们映射到SSD上。

苹果iMac混合磁盘方案分析

要注意的是,随后的随机写入测试产生的结果大不一样。当我用更多的数据和应用程序填充Fusion Drive(用真实的数据和应用程序填充到80%)时,我没有见到随机写入性能能再次达到这样高的水平。在每次运行中,我看到有很短的时间数据到处移动,但随机IO发生在HDD和SDD的比例约为7:1。鉴于这两种驱动器之间的容量差异,这个比例具有很大意义。如果你的工作负载包含大量的随机写入,涵盖所有可用空间,Fusion Drive可能就不太适合你。不过这样的工作负载大多出现在企业用户中,所以对你来说这应该不是问题。

数据精细度探究

苹果公司在宣传Fusion Drive时,谈到了文件和应用程序级别的数据移动,但在现实使用中,数据可以以128KB的文件块在SSD和HDD之间移动。

使用fs_usage工具,你可以看到苹果Fusion Drive的内部工作原理。 文件以128KB的文件块在驱动器之间移动,这也是由文件块的使用频率来决定的。由于客户工作负载往往是顺序的(在最糟的情况下也是伪随机),我们可以比较有把握地说,如果你在一个 128KB的文件块中访问一个LBA,你实际上会访问同一空间中更多的LBA。数据迁移过程似乎主要是发生在闲置期间,虽然我也看到,在IO负载较轻的时候,驱动器之间也有迁移活动进行。

苹果iMac混合磁盘方案分析

迁移的快速触发机制十分有趣。一旦文件被复制或者创建出来,应用程序启动,或者其他IO活动完成时,SSD和HDD之间立刻开始进行数据迁移。当你填充Fusion Drive时,在SSD和HDD之间移动的数据量就大幅收缩了。事情本来就应该是这样。不常访问的数据应该放置在HDD 上,真正重要的东西会留在SSD上。当Fusion Drive在写入时,苹果就不会那么积极地释放SSD上的数据。

苹果iMac混合磁盘方案分析

数据迁移过程本身是非常简单的,数据被标志为promotion和demotion,它被物理复制到新的存储设备上,然后它才移走。在迁移过程中,如果出现电源故障,Fusion Drive不会造成任何数据丢失,只有当一个128KB文件块的两个副本就位之后,源块才会被移除。苹果去年就告诉过我这件事了,但我现在才亲眼看到。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭