SSD 標準搭載の MacBook Air がでた 10.8 Lion あたりから、OS X ではHFS Plusファイルシステムへの SSD に対するサポートがはいってきている。
具体的には、OS X がSSDに インストールされている場合、遅延再配置(hfs_relocate)と Hot File Adaptive Clustirng が無効になる。
二つの機能の概要については...、まあ、こちらのページを参照して欲しい。
(...まさか、未だに自分の原稿が上位でヒットするとは思わなかったよ。)
いずれの機能も HDDの特性を加味してディスク上のデータ配置を置き換えることで IO性能を上げるものであるが、しかし SSDの場合 再配置してもIO性能が上がらないし、むしろ書き込み回数を増やして不利益になるからだ。
OSXがSSDと認識しているかどうかは 「diskutil info」コマンドで確認できる。
[valkyrie:~] shiro% diskutil info disk0s2
Device Identifier: disk0s2
Device Node: /dev/disk0s2
Part of Whole: disk0
Device / Media Name: Macinosh HD
Volume Name: Macinosh HD
Escaped with Unicode: Macinosh%FF%FE%20HD
Mounted: Yes
Mount Point: /
Escaped with Unicode: /
File System Personality: Journaled HFS+
Type (Bundle): hfs
Name (User Visible): Mac OS Extended (Journaled)
Journal: Journal size 73728 KB at offset 0x1bf2000
Owners: Enabled
Partition Type: Apple_HFS
OS Can Be Installed: Yes
Recovery Disk: disk0s3
Media Type: Generic
Protocol: SATA
SMART Status: Verified
Volume UUID: A95E84F4-7013-38C7-BB33-BB8DB8E8ED69
Total Size: 959.3 GB (959337365504 Bytes) (exactly 1873705792 512-Byte-Units)
Volume Free Space: 478.1 GB (478122086400 Bytes) (exactly 933832200 512-Byte-Units)
Device Block Size: 512 Bytes
Read-Only Media: No
Read-Only Volume: No
Ejectable: No
Whole: No
Internal: Yes
Solid State: Yes
最下行の Solid State のフラグが Yes ならばSSD上であるとOS Xが判断していると言うことだ。
(余談だが、SSD だからといってルートフォルダに .hotfiles.btree ファイルがないとは限らない。初期状態からSSDで出荷された Mac ならその通りだが、HDD搭載の Macから換装したりなどすると、以前の .hotfiles.btree ファイルが残る。使われてはいないが、どうもアクセスはされるみたいで更新日付は適宜アップデートされてしまう。消しても問題ないとは思うのだが、さすがに失敗したときのリスクが怖いので試していない。)
さて、仮想環境上の OS X はどうであろうか?
とりあえず手元の Fusion 6 で仮想マシンを作ってみたところ、仮想ディスクはすべて SATA接続のディスクとして作成される。
SATA接続のディスクから OS Xを起動すると、SSD上の仮想マシンはちゃんと「SSD」が接続されたように振る舞う。図は、Mountain Lion を搭載した仮想マシンだが、Solid State が YES になってるのがわかる。
Fusion 6 で動作する Mountain Lion の仮想マシン |
ただし、以前の Fusion で作成した仮想マシンは 仮想SATA接続ではなく仮想SCSI(lsilogic)接続になっており、こちらはSSDと認識されていない。仮想SATA接続は仮想ハードウェアバージョン10からのサポートで、Fusion 6からしか使えないからだ。
以前作った仮想マシンについては、以下の手順で仮想SATA接続に変更できる。
まず、仮想マシンをちゃんとシャットダウンして、スナップショットをすべて削除する。
次に、設定パネルの互換性タブから仮想ハードウェアバージョンを10にあげる。
仮想ハードウェアバージョンを10にする |
これにより仮想SATA接続の仮想ディスクが利用可能になる。
最後に、仮想ディスクを選択してバスタイプをSATA接続に変更する。
バスタイプをSATAに変更 |
スナップショットを削除していないとバスタイプの変更ができないので注意だ。
不用意にバスタイプを変更すると起動しなくなるOSもあるが、OS X のブートローダは結構柔軟性があり、SCSIからSATAへの変更程度なら問題なく起動してくれる。
ゲストOSの上の動作とはいえ、無用な書き換えを防ぐことでSSDを長持ちさせることができるのでやっておいたほうがいいし、そのために Fusion 6 にアップグレードするのも悪い話ではないだろう。
なお、vmxファイルを直接編集することにより強制的に仮想ディスクをSSDであると認識させる方法もあるにはある。
しかし、OS X の場合はこの方法を使っても、OS側がSSDを検出しない、SCSI/IDE接続のディスクをSSDかHDDか検出していない模様のため、あまり意味がない。