Fusion Driveに関するTipsとMac mini Late 2009での自作Fusion Drive

Mac mini Late 2009の光学ドライブをHDDに換装しSSDと組み合わせてFusion Driveを構築した際の覚え書き。 Fusion Driveの作成からTime Machineでの環境の復元まで記載。

Fusion Driveについての補足

Fusion Drive自体の説明はここでは不要と思われるので、その他のネット上で知り得た動作やデメリットについてまとめる。

Fusion Driveの動作

  • 空き容量が十分にある状態ではSSDに優先的に書き込む
  • SSDは4GB以上の空きを確保している模様
    • 大きなサイズのファイルを作成(既存領域の書き換えではなく空きスペースへの書き込みを意図)しようとすると、4GB程度を境にHDDへの書き込みに移る
    • 2GB未満のファイルの作成なら十分SSDの書き込み速度を享受できる
  • 初期状態から1TBのFusion Driveへの書き込みを行うと、128GBのSSDに117GBまで書き込まれる
  • ファイルやアプリケーション単位ではなく128KBのブロック毎でアクセス頻度を評価SSDとHDD間で移動させている
    • iPhotoライブラリもライブラリやサムネのみSSDに置かれることがありうる。iTunesと違いライブラリと実ファイルを分割できなかったiPhotoでは大きな利点
  • 読み込み頻度だけでなく書き込み頻度も考慮している
    • 良く読み込むブロックはSSDに配置するし、良く書き込むブロックもSSDに配置する
    • 一般的なSSDキャッシング(SSHDなど)との大きな違い。通常SSDキャッシングでは読み込み頻度のみ
  • ドライブ間のデータ移動はidle時やIOが軽い時に行われる。コピーが完了してからソースは消去されるため停電してもデータはロスしない

問題点

  • Random writeのパフォーマンスに対しては書き込みの対象範囲が支配的因子
    • 書き込み先がSSDとHDDにバラついているとSSDのみの状態に比べてパフォーマンスが低下。当然と言えば当然
    • サーバ用途ではRandomアクセスも多いが、クライアントではほとんどがシーケンシャルアクセスで悪くとも疑似ランダムといった程度なのであまり深刻になるべき問題ではない
    • 前述した128KBという少し大きめのブロックのドライブ間でのデータ移動も同様の理由で正当化できる。シーケンシャルが多いので128KB中の一部にアクセスすれば同ブロックの残りの部分にもアクセスする可能性が高いため、ひとまとめにすることは有意義であるからだ。
  • Spotlight searchはSSDのみの構成よりも遅い
  • セーフブート(shiftを押しながら起動)について。10.9へのアップデート後にできなくなっていたが、OSX 10.9.2 + セキュリティーアップデート2014-002前後で解決した模様
  • optionを押しながらの起動では復元用HDが表示されない?

Mac mini Late 2009におけるFusion Drive

Fusion DriveがMac miniに導入されたのはLate 2012モデルからである。ここで取り上げるLate 2009モデルでは正式には対応していないため、作業時の注意点について列挙する。

  • Late 2009ではインターネット復元(command + option + Rを押しながら起動)に対応していないようなので、別途OS X10.8以降のインストール手段が必要となる場合がある
  • Fusion Driveの作成にはTerminalでの作業が必要
    • 10.8.3以降、Fusion Driveに対応したMacSSDとHDDの組み合わせに換装し、外部のディスクユーティリティを起動すると「壊れているから修復しろ」という旨の表示が出て、修復すると自動でFusion Driveが構築される模様。Mac mini Late 2009では不可だった。
  • Fusion DriveへのOSインストール時には復元用HDは自動作成されないので、あらかじめマニュアルで作成しておく必要がある

Fusion DriveとTime Machineの相性

Fusion DriveはSSDとHDDの内、片方の故障で全体が読み込めなくなってしまうため、バックアップ手段が不可欠である。一方でOS標準のバックアップ機能であるTime MachineからはFusion Driveへ復元できないなどの噂も散見された。そこで、Fusion DriveとTime Machineの関係について改めて調査した結果をまとめる。

  • Time Machineから復元可能!
    • 一度10.8を新規にインストールする必要がある?
      • 復元HDで起動して空のFusion Driveに直接Time Machineの内容を復元しようとするとエラーが出るという報告がある一方で、エラーもなく復元できてる人もいる。10.9 Mavericksになって修正された結果エラーが出なかった可能性あり。
  • データドライブはマニュアルでリストアする必要がある
    • SSD(システム)とHDD(データ)の2ドライブ構成からFusion Driveへ復元するケースが多いと推測されるが、複数ディスクをバックアップした場合、設定アシスタントでの復元はシステムドライブのみで、他は手動での復元作業になる
      • 複数ドライブを単一のドライブとしてバックアップ・復元できるという点ではFusion DriveとTime Machineは相性が良いといえる
  • 新たにTime Machineを開始した際、以前のバックアップデータを引き継ぐことができない?
    • Fusion Driveの作成では一度ドライブをフォーマットするため、Time Machineからはフルリストアすることになる。フルリストアを行うと、次回のバックアップがフルバックアップとなる仕様であるため、以前のバックアップデータとの関連性が途切れる。
    • つまり、継続してひとつのバックアップとしてはまとまるし過去のファイルも取り出せるが、連続的に以前の状態に遡ることができない
    • 例)Time Machineに入ると以前のバックアップデータがウィンドウや右辺の時間軸で確認できる f:id:kamosidhe:20140520055828p:plain
    • 例)現在のDesktopフォルダを表示するとTime Machineバックアップ内にあるFusion Drive以前のDesktopフォルダとの連続性がない。ルートフォルダに戻って辿ることでFusion Drive以前のDesktopフォルダを復元できるが、Time MachineのGUIを使って現在のDesktopフォルダから遡ることはできない。

      f:id:kamosidhe:20140520055915p:plain

Fusion Driveの構築

ここからは実際の作業手順について記載する。

似た内容を取り上げているサイトは多いがあえて記載する理由は以下。

  • 復元HDの作成からFusion Driveの構築、Time Machineからの復元とバックアップ再開までを一貫して記述したものが見つからなかったため
  • 特に復元HDを持つ自作Fusion Driveを作成する方法については情報量が乏しい

手順

  1. iTunesの認証解除
  2. SSDへの復元HD(10.8.3以降)の作成
    • すでに存在するならスキップ可
    • 存在しない、またはバージョンが古いならば、SSDMac OS X 拡張(ジャーナル済み)にフォーマットしてOSをインストールすることで自動生成される
  3. Fusion Drive作成
    1. SSDの復元HD起動(command + Rを押しながらMacを起動)、Terminal.appを立ち上げて以下のコマンドを入力
    2. diskutil list
      • ディスクのBSD名(ディスクの本名みたいなもの、IDENTIFIERの列に記載)を確認
      • SSDとHDDそれぞれのBSD名をメモしておく(自分の環境ではそれぞれdisk0s2disk1)
        • 【重要】SSDに作成した復元HD(Recovery HD、自分の環境ではdisk0s3)を残したいのでdisk0ではなくdisk0s2を使う【この記事の肝】
        • ちなみにdisk0s1にはEFIが入っていた
    3. diskutil cs create (論理グループボリューム名) (SSDのBSD名) (HDDのBSD名)
      • 論理ボリュームグループの作成
      • (論理ボリュームグループ名)の部分は任意の文字列。スペースを含む場合は"で囲む
        • 自分は"Fusion Drive"とした
      • (SSDのBSD名) (HDDのBSD名)の部分は先ほど確認したディスクのBSD
        • 自分の環境の場合disk0s2 disk1
        • 【重要】disk0s2ではなくdisk0にしてしまうとせっかく作った復元HDが消えてしまうので注意【この記事の肝】
      • この処理が終わった段階でもUUIDは表示されているので、せっかちな人はUUIDをメモして次のステップを飛ばしてもよい
    4. diskutil cs list
      • 論理ボリュームグループのUUID(Logical Volume Groupの右32桁)確認
    5. diskutil cs createVolume (UUID) jhfs+ (論理ボリューム名) 100%
      • 論理ボリュームの作成
      • (UUID)の部分は前項の32桁の文字列
      • (論理ボリューム名)の部分は任意の文字列。スペースを含む場合は"で囲む
        • 自分は"Macintosh HD"とした
    6. ディスクユーティリティ.appなどで無事にFusion Driveが作成されたことを確認する
参考

OSインストール、Time Machineからの復元

最後にFusion DriveへのOSインストールとTime Machineからの復元の手順を記載する。前述した通り、OSインストールなしでの復元成功例もあるが、トラブルを避けるために一旦OSをインストールする方法をとる。

手順

  1. Fusion DriveにOSインストール
    • 復元HDで起動(command + Rを押しながらMacを起動)し、Fusoin DriveにOSをインストール
  2. Time Machineからシステムドライブを復元
    • 最初のセットアップの時に設定アシスタントでTime Machineバックアップから復元
  3. Time Machineからデータドライブを復元
    • システムドライブ以外をTime Machineにバックアップしていた場合はマニュアルで復元が必要
    • フルバックアップが始まるのを防ぐためにTime Machineを一旦オフにする
    • Time Machineに入ってからデータドライブの内容を復元する or Finderでバックアップディスクを開いてデータを移動させる
  4. 適切に復元できたか確認
    • App Storeを起動、ソフトウェアアップデート
    • iTunesを起動、ファイル数チェック、情報を見るで実ファイルの格納場所チェック、Apple IDの再認証
    • iPhotoを起動、ファイル数チェック、適当にに写真を開いてみる
    • Dropboxを起動、再認証
  5. その他メンテナンス
    • Time Machine再開
    • 任意でTrim Enabler.appでTrimを有効に
    • ディスクユーティリティでアクセス権の修復、ディスクの修復

以上で復元まで完了。お疲れ様でした。

関連記事