Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Fusion Drive 简介

FROM: https://s3.amazonaws.com/files.droplr.com/files_production/acc_23918/FFMt?AWSAccessKeyId=AKIAJSVQN3Z4K7MT5U2A&Expires=1352100282&Signature=On886g4Kp4JFOlU7fDkRAUCZU2w%3D&response-content-disposition=inline%3B%20filename%2A%3DUTF-8%27%27fusion%2Bdrive%2Bdiy.html

But original post can not access anymore.

Fusion Drive 简介

1 Fusion Drive 介绍

Apple 的官方介绍如下 :

在 Apple Store 在线商店作为可配置选件提供的 Fusion Drive 是一个突破性概念,它将传统硬盘存储容量大的特点与闪存高性能的特点融合在一起。iMac 配置 Fusion Drive 之后,在执行磁盘密集型任务时,例如启动系统、启动 app 以及导入照片时,将运行地更加快速、更加高效。这是因为频繁使用的项目存储在速度更快的闪存中,不常访问的项目则存储在硬盘中。文件传输在后台进行,你甚至丝毫察觉不到。随着系统逐渐了解你的工作方式,Fusion Drive 可以为你带来更出色的 Mac 使用体验,而你不必费心做任何事。目前,Apple 可提供 1TB 和 3TB 两种容量的 Fusion Drive 供用户选择。

2 Fusion Drive 背景

虽然 SSD 固态硬盘的价格已经变的越来越亲民,但是其容量上依然不能与传统 HDD 机械硬盘相媲美。因此,兼顾 SSD 性能和传统 HDD 容量的方案层出不穷。一直以来,很多 Mac 用户选择自行在机器中配置一块 SSD 和一块 HDD,并通过手工分配系统,应用程序和文档的方法来在性能和容量上获得一种平衡,但是此方法较为繁琐,且没有一个较为方便的工具来帮助用户实现。特别对于新手来说,无论是硬件的安装还是系统的配置都显得异常困难。另外,由于普通用户缺乏对系统的认识,导致其手工配置的方案从性能上来说无法达到最优,甚至还会出现严重的系统问题。后来,随着技术的进步出现了基于硬件的方案。比较有名的是来自希捷的混合硬盘(Momentus XT)。但是此技术依赖特定硬件且与 OS X 系统兼容性不佳而不被 Mac 用户所接受。Apple 洞悉用户的此种需求,则在 2012 年随着新 iMac 和 Mac mini 的发布,推出了 Fusion Drive 这一新技术。用户可以为 Mac 选配 Fusion Drive 而直接获得这一性能与容量完美平衡的存储方案,无需任何额外配置,也不会绑定特定硬件品牌型号。

3 Fusion Drive 类似技术

Fusion Drive 的类似技术有很多,除了上文提到过的希捷混合硬盘技术,还有 Intel 的 Smart Response Technology 智能响应 (SRT) 技术,以及企业存储中常见的 Automated Tiered Storage (自动分层存储) 技术。

  1. 混合硬盘技术

    优点

     - 无需用户配置 
     - 兼容多种操作系统
     - 花费较小
    

    不足

     - 需特定硬件
     - 与某些操作系统,如 OS X 兼容性不佳
     - 算法无法根据不同操作系统做特定优化
    
  2. SRT

    优点

     - 花费较小,性能提升明显
     - SSD 和 HDD 无需选择特定厂商产品 在 Enhanced 模式下,可以获得与单块硬盘相同的数据安全性并获得更高的读写性能
    

    不足

     - 需要用户有一定的计算机使用和配置经验 
     - 概念较多,用户不容易掌握。比如在 Maximize 模式下的数据安全危险 
     - 目前并不能在 OS X 系统下使用 
    
  3. Automated Tiered Storage

    优点

     - 性能强悍
     - 数据安全性高
    

    不足

     - 价格高昂
     - 需要特定的软硬件
     - OS X 下目前难以配置
    
  4. Fusion Drive

    优点

     - 无需用户配置
     - 花费较小
     - 性能提升较明显
     - SSD 和 HDD 无需选择特定厂商产品
    

    不足

     - 目前只能在 OS X 10.8.2 及以上系统中支持
     - 只能支持 BootCamp 方式安装的 Windows 系统
     - 如果非特定 Mac 机型用户需要 Fusion Drive 产品只能向 Apple 购买
    

Fusion Drive 背后的技术

CoreStorage 与 Logical Volume Manager (LVM)

HFS+ 是一个古老的文件系统。10.6 时,Apple 曾经有意愿将文件系统替换为最为先进的 ZFS。但天不随人愿,可能的风险,专利问题,以及 ZFS 专利持有人 Sun 被 Oracle 收购等众多原因最终导致了这一计划的流产。文件系统的落后阻碍了操作系统的前进,所以,Apple 开始转而自行在 HFS+ 基础上加入各项改进,以便让其能够支撑新的操作系统特性。随着有众多改进的 OS X Lion 10.7 发布,Apple 的工作成果也渐渐为人所知。比如 Auto Save ,本地 Time Machine Snapshot (快照),File Vault 2 全盘加密等。这些工作都是在“古老的” HFS+ 上完成,其背后的功臣,就是 CoreStorage。CoreStorage 其实是一套 API 和 Kext (Kernel Extension 或者说是驱动程序)的集合,存在与文件系统与物理存储媒介(比如硬盘等)之间,用于给文件系统提供最大限度的灵活性。其实它还有一个更为通俗的名字,那就是 Logical Volume Manager (LVM 逻辑卷管理器)。 长久以来,OS X 都缺乏一个现代操作系统所必须的组件,那就是逻辑卷管理器。逻辑卷管理器以一个虚拟层(或抽象层)存在与物理存储媒介与文件系统之间,为操作系统管理,分配存储空间带来最大的便利性。LVM 是现代操作系统中非常重要的一个组件。因为当前用户的存储媒介多样化,除了系统内置的存储器,还有比如 DAS (Direct Attached Storage) 外接大容量存储,或 NAS (Network Attached Storage) 网络存储,或 Cloud Storage 云存储等。所有这些都要求操作系统拥有能够统一管理这些存储设备(空间)的能力。这个能力就来自于逻辑卷管理器。以前的 OS X 操作系统,只能够提供软件 RAID 来实现一小部分的 LVM 功能,比如磁盘连接 (Concatenated Disk Set 即让多块磁盘在用户空间 Finder 中显示为一块磁盘) 等。这些操作对于普通用户来说过于复杂,而且由于其自身的缺陷,数据安全,灵活性,性能等无法得到很好的保证,所以在用户中使用率非常低。而通过 LVM,用户不仅能够方便的管理多个存储,而且能够方便的对其中的某个存储进行更换,而不影响数据的一致性。另外,CoreStorage 还能够判断其管理下存储设备的性能,也能够自动对访问频率高的文件进行存储位置优化。所有这些特性,促成了 Fusion Drive 的诞生。

DIY Fusion Drive

在了解了 Fusion Drive 和其背后的技术后,我们完全可以在 CoreStorage 的基础上自行组建一个 Fusion Drive,本节下面的内容就是带你一步步的在老 Mac 上创建一个 Fusion Drive。

  1. 软件与硬件要求

    -硬件

     - 一台装备有至少一块 SSD 和一块 HDD 的 Mac
     - 用于启动并安装 OS X Mountain Lion 10.8.2+ 系统的 USB 闪存盘或外置硬盘一块
     - 如何制作 OS X Mountain Lion 安装媒介
    

    -软件

     - Install OS X Mountain Lion.app 即 OS X Mountain Lion 安装程序 (版本 1.3.18)。它用于制作启动安装媒介。
    
  2. 注意事项

    备份你的所有数据,因为这个操作将会清空 SSD 和 HDD 上的所有内容

  3. 2011 iMac 27'' 实践

    1. 实验平台

      • iMac 27'' mid 2011
      • OS X Mountain Lion 10.8.2
      • 2.7 GHz Intel Core i5
      • 16 GB 1333 MHz DDR3 RAM
      • Samsung 470 Series SSD 128 GB
      • Seagate 7200 rpm HDD 1 TB
    2. 制作过程

      1. 首先使用制作好的 OS X Mountain Lion 安装媒介启动 Mac。(开机按住 Option,选择使用安装媒介启动)
      2. 到安装界面后,启动 Disk Utility 磁盘工具,如图:1 。图中可见,我将要用于制作 Fusion Drive 的两块磁盘,1 TB ST 和 128.04 GB Samsung。
      3. 分别选中每个磁盘,然后点击磁盘工具右边栏中的 Partition 标签页,然后点击分区列表下方的 - 减号按钮删除这两块磁盘上所有的卷宗 (分区),如图: 2 3 。删除完毕后,磁盘工具应该类似如图显示: 4

      4. 完毕后退出磁盘工具,点击工具栏上的 Utilities 菜单,启动 Terminal 终端 5

      5. 首先执行 diskutil list 命令,你可以在终端中获得一个完整的当前磁盘卷宗列表,如图 6 。就本示例来说,/dev/disk0 (1TB HDD) 和 /dev/disk1 (128GB SSD) 是本次将要用来制作 Fusion Drive 的磁盘。(需要注意的是,你的系统显示可能与此不同,请根据你的实际情况来定)
      6. 因为 Fusion Drive 在用户层是显示为一个单独的卷宗(分区)而它又是基于 CoreStorage 的,所以我们只需要创建一个CoreStorage逻辑卷将两块磁盘管理起来即可,但是目前磁盘工具并不支持这一功能,所以我们还是要到终端下进行。执行此命令 diskutil coreStorage create FusionDrive disk0 disk1 7 。其中,FusionDrive 是逻辑卷名称,你可以将其修改为任意你喜欢的名称 (需要注意的是,如果名称中有空格,则需要加上双引号,如 "ibuick FusionDrive")。disk0 disk1 则是需要用于制作 Fusion Drive 的磁盘设备命,你需要根据你在上一步骤中获得设备名称进行填写。执行此命令时,你可一看到终端的类似输出 8。当终端输出 "Finished CoreStorage operation" 并返回光标闪烁状态,则表明操作完成。我们可以打开磁盘工具,验证一下:9 。图中我们可以看到,在磁盘工具中出现了我们刚才创建的 FusionDrive,且大小为 1.13 TB (1TB+128GB)。我们还可以使用 diskutil coreStorage list 命令,来对磁盘工具中显示的内容进行验证,10 。从终端输出的结果,result1 我们可以看到其中的奥秘。首先是一个 UUID 为 56E62D7F-37C2-4257-BB09-9D10EE84E97E 的 CoreStorage logical volume group (CoreStorage 逻辑卷宗组)。它含有两块物理卷宗(或磁盘 Physical Volume),UUID 为 DE2086FB-9306-4C44-98B6-241B1F2D4DFB 的 disk0 和 UUID 为 50368349-C9BC-4BE6-9357-E845C2CCD3D1 的 disk1。
      7. 这里你可以将逻辑卷宗组简单理解为一块磁盘,它可以由多块磁盘组成。有了磁盘,我们可以在上面建立卷宗(即分区),同样使用命令来实现。执行此命令,diskutil coreStorage createVolume 56E62D7F-37C2-4257-BB09-9D10EE84E97E jhfs+ MacintoshFD 1110g 创建一个卷宗。其中,56E62D7F-37C2-4257-BB09-9D10EE84E97E 是刚刚我们创建的逻辑卷宗组的 UUID,你的实际情况可能与此不同。jhfs+ 则是磁盘格式 (Mac OS 扩展日志式) 1110g 则是指定卷宗的大小。11,执行完毕后,我们也能在磁盘工具中找到新创建的分区。12 。这时,我们还可以通过 diskutil coreStorage list 命令来验证,result2 。其中的 Logical Volume MacintoshFD 及是我们刚刚创建的分区。

过程到此,我们就完成了 DIY Fusion Drive 的整个工作,你可以退出磁盘工具和终端,开始安装 OS X Mountain Lion。

参考文档

  1. More on Fusion Drive: How it works and how to roll your own

  2. Fusion drive on older Macs? YES!

  3. 关于 Fusion Drive

@imapp

This comment has been minimized.

Copy link

commented Sep 1, 2015

教程里图片怎么显示不了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.