理想未来ってなんやねん

娘可愛い。お父さん頑張る。

意外と簡単!Mac miniと手持ちのSSDとHDDで疑似Fusion Driveを自作してみました

Mac miniと手持ちのSSDとHDDで疑似Fusion Driveを自作してみました。



意外と簡単でしたので、作成方法について紹介したいと思います。

Fusion Driveとは?

Fusion Drive は、米国時間2012年10月22日のAppleスペシャルイベントで発表されたSSDのパフォーマンスとHDDの容量を組み合わせた、Mac mini (Late 2012) および iMac (Late 2012) コンピュータ向けの新しいストレージオプションです。


システムからはひとつのボリュームに見えて、ユーザは特に意識せず大容量ストレージとして利用できることが特徴です。
よく使うアプリやデータはSSD領域に、低頻度アクセスのデータなどはHDD領域に自動的に配置されるため、HDDの大容量でありながらSSDの速さも得られるようになっています。


Fusion Driveは新しいMac miniiMac向けのオプションですが、機能自体はOSの機能としてソフトウェアで実現さているため、OSがMountain Lionであれば古いMacでも実現可能です。

用意するもの

用意するものとしては下記の通りです。

  1. Mac(Mountain Lionがインストールできる機種)
  2. SSDとHDD

SSD/HDDは外付けドライブで構成することも可能ですが、内蔵したい場合は必要に応じてマウンターやケーブルなどもご用意下さい。
またFusion Driveを構成する際に一度初期化しますので、必要に応じてバックアップするストレージをご用意下さい。

疑似Fusion Drive作成手順

疑似Fusion Drive作成する手順は下記の通りです。

  1. 必要に応じて既存データをバックアップする。
  2. SSDとHDDの2ドライブ構成を構築する。
  3. リカバリーモードで起動しターミナルを起動する。
  4. diskutilを使用してFusion Driveを構成する。
  5. OSをインストールする。
1.必要に応じて既存データをバックアップする。

特に保存しておくデータがない場合は問題有りませんが、先ほども記載の通りFusion Driveを構成する際に一度初期化しますので、必要に応じて既存データをバックアップしておきましょう。

2.SSDとHDDの2ドライブ構成を構築する。

Fusion DriveはSSDとHDDを組み合わせて実現していますので、まずはお手持ちのMacSSDとHDDの2ドライブ構成にする必要があります。
SSD/HDDは外付けドライブで構成することも可能ですが、内蔵したい場合は必要に応じてマウンターやケーブルなどもご用意下さい。


MacBook ProMac miniを2ドライブ構成にする方法は過去の記事に記載していますので、ご参考ください。

Mac mini(Mid 2011)に2台目のHard Driveを増設する方法 - 理想未来はどうなった?
MacBook Pro(Early 2011)のDVDドライブをMomentus XT ST95005620ASに換装してみた - 理想未来はどうなった?

3.リカバリーモードで起動し、ターミナルを起動する。

次にFusion Driveを構成するためにMacリカバリーモードで起動し、ターミナルを起動します。
尚、リカバリーモードで起動するのはドライブをアンマウントしても良い状態にする為ですので、別の方法としてはOSをインストールした外部ストレージがあれば外部ストレージから起動して設定することも可能だと思います。


一度、Macの電源を落とした上でCommand+Rを押しながら電源を入れてリカバリーモードで起動します。


リカバリーモードで起動した後、『ユーティリティ』メニューからターミナルを選択して、ターミナルを起動します。


4.diskutilを使用してFusion Driveを構成する。

ターミナルが起動したら、いよいよFusion Driveを構成します。

まずドライブ構成を知るために、diskutil listコマンドでドライブを調べます。
diskutil listと入力し、Enterを押してください。

上記の例では、disk0とdisk1がそれぞれSSDとHDDです。


念のためテキストでも記載しておきます。

# diskutil list
/dev/disk0
   #:                        TYPE NAME                    SIZE        IDENTIFIER
   0:       GUID_partition_scheme                        *256.1 GB    disk0
   1:                         EFI                         209.7 MB    disk0s1
   2:                   Apple_HFS Macintosh HD            255.1 GB    disk0s2
   3:                  Apple_Boot Recovery HD             784.2 MB    disk0s3
/dev/disk1
   #:                        TYPE NAME                    SIZE        IDENTIFIER
   0:       GUID_partition_scheme                        *500.1 GB    disk1
   1:                         EFI                         209.7 MB    disk1s1
   2:                   Apple_HFS Macintosh HD            499.2 GB    disk1s2
   3:                  Apple_Boot Recovery HD             650.0 MB    disk1s3
/dev/disk2
   #:                        TYPE NAME                    SIZE        IDENTIFIER
   0:      Apple_partition_scheme                        *1.3 GB      disk0
   1:         Apple_partition_map                         30.7 GB     disk0s1
   2:                   Apple_HFS OS X 10.8.1 Base System 1.3 GB      disk0s2
〜〜〜省略〜〜〜


次にdiskutil csコマンドでSSDとHDDを一つの論理ボリュームグループに纏めます。
先ほど調べたドライブがdisk0とdisk1であれば、diskutil cs create "Fusion Drive" disk0 disk1と入力し、Enterを押してください。
"Fusion Drive"の所は、単なる論理ボリュームグルーム名なので"Fusion Drive"でなくても構わないです。

# diskutil cs create "Fusion Drive" disk0 disk1
Started Core Storage Operation
Unmounting disk0
Repartitioning disk0
Unmounting disk
Creating the partition map
Rediscovering disk0
Adding disk0s2 to Logical Volume Group
Unmounting disk1
Repartitioning disk1
Creating the partition map
Rediscovering disk1
Adding disk1s2 to Logical Volume Group
Creating Core Storage Logical Volume Group
Switching disk0s2 to Core Storage
Switching disk1s2 to Core Storage
Waiting for Logical Volume Group to appear
Discovered new Logical Volume Group "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
Core Storage LVG UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Finished CoreStorage operation

ちなみにcsはcoreStorageの略です。csと短縮してもcoreStorageと全て入力しても構いません。
このことからもFusion DriveがCore Storageで構成されていることが分かります。



論理ボリュームグループができたら、diskutil cs listコマンドで論理ボリュームグループのUUIDを調べます。
UUIDは、XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX の様な形式です。選択してコピーしておいてください。

# diskutil cs create "Fusion Drive" disk0 disk1
# diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    =========================================================
    Name:         Fusion Drive
    Size:         755480428544 B (755.5 GB)
    Free Space    752097452032 B (752.1 GB)
    |
    +-< Physical Volume XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk0s2
    |   Status:   Online
    |   Size:     255716540416 B (255.7 GB)
    +-< Physical Volume XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
        ----------------------------------------------------
        Index:    1
        Disk:     disk1s2
        Status:   Online
        Size:     499763888128 B (499.8 GB)

最後にdiskutil cs createVolumeコマンドで論理ボリュームを作成します。


diskutil cs createVolume "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" jhfs+ "Macintosh HD" 100% と入力します。
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXの所は先ほどコピーしたUUIDを貼付けてください。
入力したら最後にEnter を押してください。

# diskutil coreStorage createVolume "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" jhfs+ "Macintosh HD" 100%
Started CoreStorage operation
Waiting for Logical Volume to appear
Formatting file system for Logical Volume
Initialized /dev/rdisk15 as a 700 GB HFS Plus volume with a 65536k journal
Mounting disk
Core Storage LV UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Core Storage disk: disk15
Finished CoreStorage operation


上記でFusion Driveの構成は完了です。
ターミナルを終了して下さい。

5.OSをインストールする。

上記でFusion Driveが構成できたので、あとはOSをインストールするだけです。
OS Xユーティリティーに戻って、OS Xを再インストールしてください。

Time Machineにバックアップがあれば、バックアップから復元することも可能です。

起動後の様子

起動後に『このMacについて』のストレージを確認した様子。

756GB ハード・ドライブ+フラッシュストレージと記載されています。
SSDとHDDを足した容量のFusion Driveとして構成されていることが分かります。


尚、Fusion Driveを構成した場合でもサードパーティSSDを使用している場合はTRIMサポートが無効になっていますので、TRIM Enablerで有効にした方が良いでしょう。
Mountain Lionでもサードパーティ製SSDを使う場合はTRIM Enablerが必要 - 理想未来はどうなった?


又、ファイルシステムをnoatimeオプションを追加してマウントすると読み込みのたびにatimeを更新しなくなるので高速化とSSDの長寿命化に寄与するようになります。
Macでファイルシステムをnoatimeでマウントして高速化&SSDの寿命を延ばすようにする - 理想未来はどうなった?

パフォーマンス

XbenchのDisk Testでパフォーマンスを調べてみました。
上がFusion Drive構成前のSSD、下が今回構成したFusion Driveのベンチマーク結果です。
HDDのパフォーマンス測定は忘れてしまいました。


Random Uncached Write[4K bloks]が半分に落ちていますが、SSDほぼそのままのパフォーマンスが出ています。


長期的に使い込んでのパフォーマンス比較は後日レポートしたいと思います。

最後に

以上の通り、手持ちのSSDとHDDで思った以上に簡単に疑似Fusion Driveが構成できることが分かりました。


上記の様子をみて分かる通り、SSDとHDDを合わせた容量となっておりSSDとHDDのストライピング(RAID 0)構成に近いでしょう。
つまりSSDかHDDのどちらかが故障するか、論理構成が破綻した時点でデータの復旧は難しくなります。
最初に方法を公表したPatrick Stein氏によると常用はしたくないと言っていたのはそのような理由かと思います。


しかし、Appleの販売している純正Fusion DriveオプションもCore Storageにより実現していることには変わりません。
若干危なっかしいものを、トラブルが嫌いなAppleが何で純正品オプションとして販売しているのか気になります。


その理由の一つとして考えられるところに、Macの場合Time Machineという優れたバックアップシステムがあります。
データの破損は保証しないことはどのメーカーでも変わりありませんが、特にAppleの場合はトラブルとしてクレームを受けた場合でもTime Macineという責任を回避するための術があります。


あと最近ではメールはGmailで、ファイルはDropboxに、メモはEvernoteに記録し、購入した音楽ファイルはiCloudに・・・と、大事なデータはクラウドに保存されておりローカルにしか必要なファイルは無いということも少なくなってきました。


Time Machineでれクラウドサービスであれ、バックアップを構成した上で運用できるのであれば万が一何かあった場合でも復旧ができますので問題ないのではないかと思いますし、そもそもFusion Driveを使う、使わないに限らず、何かあった時のバックアップは必要なのでバックアップ環境は忘れないように用意しておきましょう。


そんな感じで結論は、

  • 疑似Fusion Driveは簡単にできて高速
  • バックアップは忘れずに。


ということで、うまく運用できそうであれば是非ご活用下さい。