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

@imapp imapp commented Sep 1, 2015

教程里图片怎么显示不了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment