Fusion Driveに行く



アクティブなMac OS Xユーザーは、10月23日に発表されたFusion Drive機能を確実に覚えているでしょう。 MacにインストールされているSSDとHDDの論理的な組み合わせであることを思い出させてください。 単一のディスクのサイズはSSDとHDDのボリュームの合計に等しくなりますが、メインプラスはよく使用されるファイル(たとえば、システムコア)Mac OSがユーザーに対して自動的かつ透過的に、より高速なSSDに配置し、その他のすべてのファイルをHDDに配置します。





注意!

正確なコマンドラインコマンド、ディスクユーティリティ、およびシステム回復モードを武器とするMac OS Xの上級ユーザー向けの手法。





この機能を実装するために、以前に光学ドライブではなくSSDをインストールしたMacBookを選択しました。 システムとホームフォルダーをSSDに配置し、ダウンロードフォルダー、仮想マシンフォルダー、その他の重いファイル用にHDDとは別のセクションを作成しました。 システムのパフォーマンスは大幅に向上しましたが、時間がたつにつれてSSDをより頻繁にクリーンアップし始め、その場所が定期的になくなりました。 ホームフォルダーから大容量ドライブへの作成されたシンボリックリンクの数も迷惑でした。



アップグレード前のディスクシステムの外観

[root@ibook Volumes]# df Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 59Gi 48Gi 10Gi 83% 12631725 2735773 82% / /dev/disk1s2 232Gi 153Gi 80Gi 66% 39984428 20948470 66% /Volumes/iBookData
      
      







Fusion Driveへの移行により、サイズとパフォーマンスが異なる複数のドライブを別々に使用することに伴うすべての不便さが解消されます。 Fusion Driveに結合されたディスク上のファイルシステムは破壊されるため、システムとそこからすべてのデータを転送する必要があります。 これには外付けハードドライブを使用しました。 また、SSDをボリュームがわずかに小さい別のSSDに交換することも計画しましたが、パフォーマンスは向上したため、システムを一時ディスクに転送する必要はありませんでした。



使用したハードウェアとソフトウェア:





Fusion Driveへのデータの設定と転送のすべての操作は、次の2つの方法で実行できます。

a)USB-rigを介して接続された「古い」SSDから起動し、後でCarbon Copy Clonerを使用してそこからシステムを複製します。

b)ネットワーク経由でシステム回復モードにロードし、Time Machineからシステムを復元します。



私は両方の方法を試しました。 2番目はよりエレガントに見えました ビルトインであり、古いシステムディスクから一時的にロードするために追加のソフトウェアや外部USB機器を必要としません。



手順の説明では、異なる方法に関連するステップにそれぞれ「a」と「b」のラベルを付けています。



行こう!



0.準備段階で、Time Machineを使用してシステムパーティションをバックアップし、大容量ディスクから一時ディスクにデータを転送します。 Fusion Driveの作成中に、それを形成するディスク上のファイルシステムが破壊されることをもう一度思い出します。



1.患者を分解し、古いSSDの代わりに新しいSSDを取り付けて組み立てます。



2a。 Cmd + Opt + Rを押しながらMacBookの電源を入れます 地球が表示されたら、キーを放し、回復ディスクがインターネットからダウンロードされるのを待ちます。



2b。 オプションでMacBookの電源を入れます。 ブートとして、USB経由で接続された「古い」ドライブを選択します。



3. Macbookをロードした後、ターミナルを開きます。



現在のドライブ構成を見る

 [root@ibook /]# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *60.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_HFS Untitled 59.7 GB disk0s2 3: Apple_Boot Boot OS X 134.2 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *250.1 GB disk1 1: EFI 209.7 MB disk1s1 2: Apple_HFS Untitled 1 249.7 GB disk1s2 3: Apple_Boot Boot OS X 134.2 MB disk1s3 …
      
      







名前と実際のディスクの対応を記憶し、記録します。

私の場合、disk0は新しい60Gb SSD、disk1は大きな250Gb HDDです。 私のディスクはすでにGUIDパーティションで構成されており、HFSパーティションがそれらに作成されています。 ディスクが空の場合は、ディスクユーティリティを開き、GUIDテーブルと1つの大きなHFSパーティションを作成して、必要なディスクをクリーニングする必要があります。



4.実際、Apple Fusion DriveはLogical Volume Manager(LVM)に類似しています。 Mac OS XはCoreStorageサブシステムを実装しています。 すべての操作は、corestorageパラメーターまたはcsのみを指定したdiskutilコンソールディスクユーティリティによって実行されます。



4.1。 グループ名と物理SSDおよびHDDの名前を正しい順序で指定して、新しいボリュームグループを作成します

 [root@ibook /]# diskutil cs create iBookLVG disk0 disk1 Started CoreStorage operation Unmounting disk0 Repartitioning disk0 Unmounting disk Creating the partition map Rediscovering disk0 Adding disk0s2 to Logical Volume Group Unmounting disk1 Repartitioning disk1 Unmounting disk 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 "83AD8C5F-5883-4110-89D7-6097BA33AFBB" Core Storage LVG UUID: 83AD8C5F-5883-4110-89D7-6097BA33AFBB Finished CoreStorage operation
      
      







何が起こったのか確認してください

 [root@ibook /]# diskutil cs list CoreStorage logical volume groups (1 found) | +-- Logical Volume Group 83AD8C5F-5883-4110-89D7-6097BA33AFBB ========================================================= Name: iBookLVG Size: 309393883136 B (309.4 GB) Free Space: 122880 B (122.9 KB) | +-< Physical Volume 8CEC5A9F-DB16-4C85-897E-700B69BC0D4C | ---------------------------------------------------- | Index: 0 | Disk: disk0s2 | Status: Online | Size: 59678507008 B (59.7 GB) | +-< Physical Volume 8F1CE39C-425D-411B-B481-62E601F237C8 ---------------------------------------------------- Index: 1 Disk: disk1s2 Status: Online Size: 249715376128 B (249.7 GB)
      
      







4.2。 83AD8C5F-5883-4110-89D7-6097BA33AFBBボリュームグループに論理ボリュームを作成します。これはグループサイズの100%です。

 [root@ibook /]# diskutil cs createVolume 83AD8C5F-5883-4110-89D7-6097BA33AFBB jhfs+ LV 100% Started CoreStorage operation Waiting for Logical Volume to appear Formatting file system for Logical Volume Initialized /dev/rdisk3 as a 307 GB HFS Plus volume with a 32768k journal Mounting disk Core Storage LV UUID: CB7195D6-582C-449D-8303-43961C1C55FE Core Storage disk: disk3 Finished CoreStorage operation
      
      







結果:

 [root@ibook /]# diskutil cs list CoreStorage logical volume groups (1 found) | +-- Logical Volume Group 83AD8C5F-5883-4110-89D7-6097BA33AFBB ========================================================= Name: iBookLVG Size: 309393883136 B (309.4 GB) Free Space: 122880 B (122.9 KB) | +-< Physical Volume 8CEC5A9F-DB16-4C85-897E-700B69BC0D4C | ---------------------------------------------------- | Index: 0 | Disk: disk0s2 | Status: Online | Size: 59678507008 B (59.7 GB) | +-< Physical Volume 8F1CE39C-425D-411B-B481-62E601F237C8 | ---------------------------------------------------- | Index: 1 | Disk: disk1s2 | Status: Online | Size: 249715376128 B (249.7 GB) | +-> Logical Volume Family C2CF1DC7-8EE8-4AE2-8E2F-4F2B9C7DF7EE ---------------------------------------------------------- Encryption Status: Unlocked Encryption Type: None Conversion Status: NoConversion Conversion Direction: -none- Has Encrypted Extents: No Fully Secure: No Passphrase Required: No | +-> Logical Volume CB7195D6-582C-449D-8303-43961C1C55FE --------------------------------------------------- Disk: disk2 Status: Online Size (Total): 307354009600 B (307.4 GB) Size (Converted): -none- Revertible: No LV Name: LV Volume Name: LV Content Hint: Apple_HFS
      
      







システムには新しいFusion Driveディスクパーティションがあります-disk2

 [root@ibook /]# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *60.0 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_CoreStorage 59.7 GB disk0s2 3: Apple_Boot Boot OS X 134.2 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *250.1 GB disk1 1: EFI 209.7 MB disk1s1 2: Apple_CoreStorage 249.7 GB disk1s2 3: Apple_Boot Boot OS X 134.2 MB disk1s3 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS LV *307.4 GB disk2
      
      







ターミナルを閉じます。



5a。 システムをTime Machineから作成されたFusion Driveパーティションに復元します。



5b。 Carbon Copy Clonerを起動し、「古い」SSDからFusion Driveパーティションにシステムをクローンします。



再起動します。



6. Fusion Driveから起動した後、HFSルートパーティションのファイルアクセス時間の更新をオフにして、再起動しました。

 [root@ibook /]# cat > /Library/LaunchDaemons/com.noatime.root.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.noatime.root</string> <key>ProgramArguments</key> <array> <string>mount</string> <string>-uwo</string> <string>noatime</string> <string>/</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
      
      







その結果、ディスクシステムは次のようになります。

 [root@ibook /]# df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk2 286Gi 34Gi 252Gi 12% 9001947 66035651 12% / … [root@ibook /]# mount /dev/disk2 on / (hfs, local, journaled, noatime) …
      
      







7.一時ディスクからMacBookにデータをコピーします。



コピーのプロセスでは、Fusion Driveを構成する個々のディスクのアクティビティを制御します

 [root@ibook /]# iostat 1 disk0 disk1 disk3 cpu load average KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us sy id 1m 5m 15m 207.34 170 34.34 0.00 0 0.00 126.16 277 34.17 13 14 73 1.24 1.11 0.86 260.84 167 42.45 0.00 0 0.00 125.78 280 34.44 9 17 74 1.24 1.11 0.86 251.41 148 36.27 0.00 0 0.00 125.91 280 34.49 12 16 73 1.24 1.11 0.86 ...
      
      







SSD(disk0)のスペースがなくなると、データはすでにHDD(disk1)に書き込まれ、対応する列に反映されます。

  280.52 122 33.37 0.00 0 0.00 123.84 278 33.57 19 16 64 1.65 1.24 0.93 205.77 179 35.91 0.00 0 0.00 126.11 283 34.79 20 18 61 1.65 1.24 0.93 274.48 132 35.32 0.00 0 0.00 123.96 288 34.80 16 15 69 1.68 1.25 0.93 264.53 106 27.33 442.67 3 1.29 125.38 211 25.79 9 15 76 1.68 1.25 0.93<------------------- 7.20 10 0.07 313.53 102 31.16 125.87 218 26.74 13 15 72 1.68 1.25 0.93 5.17 216 1.09 243.64 145 34.44 126.06 276 33.92 15 20 65 1.80 1.29 0.95 5.01 127 0.62 221.40 171 36.91 126.49 279 34.41 14 17 69 1.74 1.29 0.95
      
      







HDDからSSDへのファイル移行が機能するかどうかを確認します



検証方法は単純に選択されました-ddを使用して、ディスクのアクティビティを観察しながら同じ大きなファイルを数回読み取りました。 テストでは、2GBの仮想マシンイメージファイルを選択しました。このファイルは、SSDを埋めた後、新しいストレージのHDDに書き込まれました。



読む#1


 [root@ibook Elsa.vmwarevm]# dd if=Elsa-s007.vmdk of=/dev/null bs=100m 18+1 records in 18+1 records out 1987051520 bytes transferred in 31.128078 secs (63834700 bytes/sec)
      
      







別のコンソールで、iostatを使用して負荷を監視します。

  disk0 disk1 cpu load average KB/t tps MB/s KB/t tps MB/s us sy id 1m 5m 15m 0.00 0 0.00 0.00 0 0.00 4 3 93 10.39 5.95 3.32 6.86 7 0.05 0.00 0 0.00 4 4 91 9.55 5.85 3.30 76.80 5 0.37 496.30 106 51.25 4 12 85 9.55 5.85 3.30 <-------- 56.80 10 0.55 481.88 102 47.88 12 10 79 9.55 5.85 3.30 64.00 2 0.12 504.07 113 55.54 7 10 84 9.55 5.85 3.30 52.50 8 0.41 494.75 141 67.96 13 11 76 8.79 5.76 3.28 44.00 3 0.13 503.47 135 66.27 4 10 86 8.79 5.76 3.28
      
      







データがHDD(disk1)から読み取られており、SSDがシステムによって明らかにわずかにロードされていることがわかります。



読書#2


 [root@ibook Elsa.vmwarevm]# dd if=Elsa-s007.vmdk of=/dev/null bs=100m 18+1 records in 18+1 records out 1987051520 bytes transferred in 39.535700 secs (50259677 bytes/sec)
      
      







別のiostatコンソールで:

  107.11 18 1.88 448.52 123 53.75 4 11 86 3.45 4.78 3.10 54.74 35 1.87 445.15 108 46.87 4 11 85 3.45 4.78 3.10 124.00 93 11.24 288.20 159 44.68 5 11 84 3.45 4.78 3.10 118.05 325 37.52 128.00 298 37.31 4 12 84 3.45 4.78 3.10 <-------- 67.48 547 36.05 128.00 261 32.63 21 14 64 3.49 4.76 3.10 84.42 430 35.47 128.81 278 34.91 15 16 69 3.49 4.76 3.10 127.01 370 45.84 128.00 367 45.82 5 13 81 3.49 4.76 3.10 119.30 344 40.13 128.00 318 39.81 2 12 86 3.49 4.76 3.10
      
      







読み取り時間のわずかな増加と、ddプロセスの終了時のHDDの残りの負荷に注意します。 明らかに、システムはファイルをSSDに転送し、データ交換の速度を制限することでこのプロセスをより見えにくくしようとします。



転送プロセスの終了を確認します。

  124.39 439 53.38 128.00 426 53.31 46 23 31 2.48 3.97 2.95 92.67 385 34.84 127.57 271 33.78 52 16 32 2.48 3.97 2.95 126.04 422 51.89 128.00 416 51.95 65 22 13 2.92 4.04 2.98 83.21 177 14.37 128.00 111 13.89 25 10 65 2.92 4.04 2.98 4.40 10 0.04 0.00 0 0.00 18 10 72 2.92 4.04 2.98 <--------- 4.44 18 0.08 0.00 0 0.00 13 11 77 2.92 4.04 2.98 6.29 7 0.04 0.00 0 0.00 16 10 74 2.92 4.04 2.98
      
      







読む#3


 [root@ibook Elsa.vmwarevm]# dd if=Elsa-s007.vmdk of=/dev/null bs=100m 18+1 records in 18+1 records out 1987051520 bytes transferred in 8.074579 secs (246087322 bytes/sec)
      
      







iostat:

  9.50 16 0.15 0.00 0 0.00 18 10 72 2.55 3.92 2.95 4.00 1 0.00 0.00 0 0.00 9 4 87 2.55 3.92 2.95 238.63 308 71.89 0.00 0 0.00 6 16 78 2.55 3.92 2.95 464.47 506 229.70 0.00 0 0.00 4 22 74 2.55 3.92 2.95 462.12 532 240.12 0.00 0 0.00 4 21 75 2.55 3.92 2.95 430.49 545 229.11 0.00 0 0.00 6 22 72 2.43 3.87 2.94
      
      







SSDドライブのみが関係し、読み取り時間は数回短縮されました。

ネットワーク上の他のユーザーが説明した経験から、この機能の動作も確認できます。



高い確率で、手順は以前のバージョンのAppleコンピューターおよび他のフォームファクターで正常に実行できます。 動作するMac Miniが並んでいます。



ご清聴ありがとうございました。



使用したソース



古いMacのFusionドライブ? はい!

文書化されていないCoreStorageコマンド



PS。



  1. ディスクを論理ボリュームグループにグループ化すると、LVMの破損時にすべてのデータが失われるリスクが高まります。 必ずTime Machineバックアップを設定してください。
  2. フォーマットやデータ損失なしで、ディスクをLVMボリュームに、またはその逆に変換することができます。 ただし、残念ながら2番目のディスクを追加する文書化されていない機能は機能せず、Fusion Driveへの移行がさらに簡単かつ高速になりません。 グループで使用するディスクの数を事前に決定する必要があります。 その数をその場で変更することはできません。 Appleからの機能の拡張を待ちます。




更新



待って! Mac OS X Mavericksでは、機能が拡張されています。 詳細はこちら



All Articles