VMware仮想ディスクの縮小

前回、VMwareファイルの圧縮を行って失敗したけど、なぜディスクの圧縮が必要になったのか、が問題。

現在のVMware仮想ディスク(vmdk)はmonolithic growable disk(mgd:単一自動拡張ディスク?)なのである。これは、例えば仮想ディスクに300GB割り当てたとしても、当初は実使用容量分の大きさに抑えられ、仮想ディスクが利用されていけば自動的に拡張されていく、というもの。だから、例でいくと当初のvmdkは50GB程度に抑えられ、使っていくうちにvmdkのファイルサイズが大きくなっていく。

ここで落とし穴なのが、vmdkディスクの拡張が300GBで止まらないこと。いや、そもそも100GB程度しか利用していないはずなのに、vmdkが200GB以上になってしまうこと。実際にこれが起こって、100GBの実使用容量なのに、vmdkが273GBになってしまった。そのvmdkは300GBで定義してあるから、この調子で行けば300GBを突破するのは時間の問題。

そこで、vmdkを縮小(shrink)することに着手した。いろいろとググると、どうもVMware Toolsがあるか無いかで違ってくるようだ。うちの環境はなるべく素のままで使いたかったから、VMware Toolsを入れてなかったけど、vmware-tools無しの方法を読んでると気が遠くなりそうだったので、仕方なくVMware Toolsを入れた。まあ、要約すると、VMware Tools無しの方法はVMware Toolsが行う操作を手動で行っているようだ。

ちなみに、我が家の構成は以下のとおり。Host : Windows Vista Home Premium SP1
VMware : VMware Server 2.0 RC1
Guest : Ubuntu LTS Server 8.04.1

VMware Toolsのインストール方法は他に譲るとして、VMware Toolsさえ入ってしまえばvmdkのshrinkは大したことはない、VMware Tools PropertiesのShrinkタブにvmdk(マウントポイント名になっているが)を選択できるので、選択したら「Shrink」ボタンを押す。最初はshrink準備処理を行って、shrinkの用意ができたら「Do you want to shrink the disk(s)?」と聞かれるので、「Yes」を押す。すると同時にVMはフリーズして、あとは延々ディスクがガリガリと働き続ける。。。

そして一晩ほっぽらかしにしておいたら、朝には「The shrink process is complete.」のメッセージとともに処理が終了していて、VMが元気に稼動していた。ログから察するに、所要時間6時間! そして、最終的に容量は92GBになっていた。ふむふむ、これは中々の圧縮率かな。ほとんど無駄な部分は取り除けていそうだ。

しかし、この処理には元のvmdkに対してデフラグを行って、新しい仮想ディスクを作ってからそちらに移行する、と言う手順なので、新しい仮想ディスク(vmdk)分の空き容量が作業ディレクトリに必要、と書いてあった。急いで240GB程度の空きは作ったけど、どうもそんなに巨大なテンポラリファイルは作ってない感じ。tmpがつくファイルはできてたけど、50MB程度。処理中もこのファイルが頻繁に読み書きされていたから、このファイルが作業ファイルでほぼ間違いなし。もしかすると、数十MBの空きさえあればこの処理をできちゃうのかも。

いや、これでmgdであっても時間さえかければ縮小できることが分かった。でも、常にファイル容量に気を配らないといけないと言う、新たなmgdの扱いにくさも分かった。さて、どうしたものか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です