2008-06-26

VMware Fusion の仮想ハードディスクを再構築

VMware Fusion の仮想ハードディスクを2GBに分割 の続き

前回は仮想ディスクファイルをWindowsにコピーしてWindows上で分割という手間のかかる事をしていましたが、Mac版にも vmware-vdiskmanager があった、というところで終わっていました。
今回はMac上で仮想ハードディスクを変換してみます。

昔のVMwareは事前割当がデフォルトでしたが、VMware Fusion は可変サイズがデフォルトになっています。
これはこれで便利なのですが、どうもディスクIOがボトルネックになっているような気がして仕方がないので、可変サイズから事前割当に変換する事にしました。
(仮想ハードディスク内と仮想ハードディスクファイルそのものが2重に断片化するせいでしょうか?SDDを使えば解決するのだろうか?)

まず、使えるコマンドを表示してみましょう。
ターミナルを起動して
$ /Library/Application\ Support/VMware\ Fusion/vmware-vdiskmanager
と入力すると以下のようにヘルプが表示されます。
(使用バージョンは VMware Fusion 2.0 beta 1 です)
VMware Virtual Disk Manager - build 89933.
Usage: vmware-vdiskmanager OPTIONS <disk-name> | <mount-point>
Offline disk manipulation utility
Operations, only one may be specified at a time:
-c : create disk. Additional creation options must
be specified. Only local virtual disks can be
created.
-d : defragment the specified virtual disk. Only
local virtual disks may be defragmented.
-k : shrink the specified virtual disk. Only local
virtual disks may be shrunk.
-n <source-disk> : rename the specified virtual disk; need to
specify destination disk-name. Only local virtual
disks may be renamed.
-p : prepare the mounted virtual disk specified by
the drive-letter for shrinking.
-r <source-disk> : convert the specified disk; need to specify
destination disk-type. For local destination disks
the disk type must be specified.
-x <new-capacity> : expand the disk to the specified capacity. Only
local virtual disks may be expanded.

Other Options:
-q : do not log messages

Additional options for create and convert:
-a <adapter> : (for use with -c only) adapter type
(ide, buslogic or lsilogic)
-s <size> : capacity of the virtual disk
-t <disk-type> : disk type id

Options for remote disks:
-h <hostname> : hostname of remote server
-u <username> : username for remote server
-f <filename> : file containing password
-P <port> : optional TCP port number (default: 902)
-S : specifies that the source disk is remote, by default
the remote options are assumed to refer to the
destination.
Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2GB files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2GB files
4 : preallocated ESX-type virtual disk
5 : compressed disk optimized for streaming

The capacity can be specified in sectors, KB, MB or GB.
The acceptable ranges:
ide adapter : [1MB, 950.0GB]
scsi adapter: [1MB, 950.0GB]
ex 1: vmware-vdiskmanager -c -s 850MB -a ide -t 0 myIdeDisk.vmdk
ex 2: vmware-vdiskmanager -d myDisk.vmdk
ex 3: vmware-vdiskmanager -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
ex 4: vmware-vdiskmanager -x 36GB myDisk.vmdk
ex 5: vmware-vdiskmanager -n sourceName.vmdk destinationName.vmdk
ex 6: vmware-vdiskmanager -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com ¥
-u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"
ex 7: vmware-vdiskmanager -k myDisk.vmdk
ex 8: vmware-vdiskmanager -p <mount-point>
(A virtual disk first needs to be mounted at <mount-point>)
最後にコマンド例がいくつか示されているのがありがたいですね。
今回、私は "事前割当(2GB分割)" にしたいので以下のようなコマンドを実行します。
$ /Library/Application\ Support/VMware\ Fusion/vmware-vdiskmanager -r ~/Documents/Virtual\ Machines.localized/仮想マシン名.vmwarevm/仮想ディスクファイル名.vmdk -t 3 ~/Documents/Virtual\ Machines.localized/仮想ディスクファイル名.vmdk
-r の後ろは変換元の仮想ハードディスク、-t の後ろの 3 が "事前割当(2GB分割)" を表します。最後のパラメータは出力ファイル名です。変換元と異なるフォルダにファイル名は変えずに出力します。

仮想ディスクファイル名は、仮想マシンファイルを右クリックして "パッケージ内容を表示" で調べます。拡張子vmdkのファイルがソレです。2GB分割している場合にはファイル名末尾に "-f001" のような連番がついたファイルが出来ていますが、末尾に連番の付いてない物が親ですので、連番なしのファイル名のみ使用します。

変換が終わるとこのように表示されます。
Creating disk '/Users/ユーザー名/Documents/Virtual Machines.localized/仮想ディスクファイル名.vmdk'
Convert: 100% done.
Virtual disk conversion successful.
変換が終わったら現在の仮想ディスクファイルと変換した仮想ディスクファイルを入れ替えて仮想マシンを起動してみます。
問題なく起動できたら古い仮想ディスクファイルを削除します。

さてさて、これで効果があったのかというと





速くなった気がします。
プラシーボ効果?

久しぶりにblog書いているので広告の入れ方忘れたorz

0 件のコメント: