仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

VMware ESXiでVMDK仮想ディスクのサイズを縮小する方法を徹底解説

本記事では、VMware ESXi上で稼働する仮想マシンの仮想ディスク(VMDK)ファイルのサイズを縮小する方法を詳しく解説します。VMware仮想マシンのディスク拡張は仮想マシンをシャットダウンせずにオンラインで実行できますが、VMDKファイルのサイズ縮小はより複雑な作業であり、vSphere Web ClientのGUIからは実行できません。vSphere Clientでは、現在のサイズより小さい仮想ディスクサイズを指定することが許可されていないためです。

作業前の注意点と準備

重要: 本ガイドはVMware公式にサポートされているVMDKディスク縮小の手順ではありません。ただし、筆者はこの方法を何度も実際に使用しており、問題なく動作することを確認しています。本記事ではVMware ESXi 6.7を使用しています。

仮想ディスクのサイズを縮小する前に、VMware ESXiホスト上で以下の準備作業を行ってください。

  1. 仮想マシンのすべてのスナップショットを削除する(スナップショットが残っていると、仮想ディスクが破損する恐れがあります)。
  2. 仮想マシンの完全バックアップを作成するか、縮小対象のvmdkファイルおよびflatファイルのコピーを作成します。以下のコマンドを使用します。
    cp vmname.vmdk backup_vmname.vmdk
    cp vmname-flat.vmdk backup_vmname-flat.vmdk

仮想ディスクのサイズ縮小は、大きく分けて以下の2つのステップで構成されます。

  • ゲストOS内のパーティションを縮小する
  • VMFS(NFS)データストア上のVMware仮想マシンのVMDKファイルサイズを縮小する

ステップ1: ゲストOS内のパーティションサイズを縮小する

まず最初に、ゲストOS内のディスクパーティションを縮小します。仮想マシンがWindows OSの場合は、ディスクの管理(diskmgmt.msc)を使用します。「ボリュームの縮小」操作はサポートされているすべてのWindowsバージョンで利用可能です。古いWindowsバージョンではsdeleteツールを使ってパーティションを縮小することもできます。また、Acronis Disk Directorなどのサードパーティ製ツールを使用する方法もあります。

この作業を怠ると、仮想ディスクを縮小した後にファイルシステムが破損する可能性があるため、必ず先にパーティション縮小を行ってください。

例として、ディスクサイズを40GB縮小したい場合を考えます。この場合、ボリュームサイズを40960MB(40GB × 1024)だけ縮小する必要があります。「ボリュームの縮小」ウィザードの該当フィールドにこの値を入力してください。パーティション縮小後、パーティションの右側に未割り当て領域(この例では40GB)が発生します。

なお、OEMパーティションやWindows回復パーティションが存在すると、ディスクの拡張や縮小が妨げられる場合がある点に注意してください。

Linuxの場合は、partedコマンドを使用してパーティションサイズを縮小できます。LVM論理ボリュームを使用している場合は、手順が異なるため別途対応が必要です。

ステップ2: VMDKファイルのサイズを縮小する

次に、VMFSファイルシステム上のVMDKファイルサイズを縮小します。手順は以下の通りです。

  1. ディスクサイズを変更したい仮想マシンをシャットダウンします。
  2. SSH(PuTTYやWindows標準のSSHクライアントなど)を使用して、仮想マシンが登録されているESXiホストのコンソールに接続します。
  3. 仮想マシンのVMDKファイルが格納されているディレクトリに移動します(パスはvSphere Clientの仮想ディスクプロパティで確認できます)。
    cd /vmfs/volumes/datastore/test-VM
  4. catコマンドで仮想ディスク構成ファイル(*.vmdk)の内容を表示します。
    # cat test_vm_3.vmdk
    VMDKディスクのサイズは「#Extent description」セクション(RW文字の後)に表示されます。この例では167772160(80GB × 1024 × 1024 × 1024 ÷ 512)となっています。
  5. ここでは、VMDKディスクを80GBから40GBに縮小します。そのためには、Extent descriptionセクションの値を83886080(40GB × 1024 × 1024 × 1024 ÷ 512)に変更する必要があります。テキストエディタ(viまたはnano)を使用して新しい仮想ディスクサイズを設定します。
  6. viを使用する場合:# vi test_vm_3.vmdk
  7. 下矢印キーでディスクサイズが記載された行まで移動し、「i」キーを押して編集モードに入ります。新しい仮想ディスクサイズを指定したら、ESCキーで編集モードを終了し、「:wq」→Enterと入力して変更を保存します。
  8. 次に、仮想マシンをクローンまたはマイグレーション(Storage vMotion)して、別のデータストアへ移動します。仮想マシンのファイル移動後、新しいディスクサイズがプロパティに表示されるようになります。
    ヒント: ESXiホストが1台しかなく、VMFSデータストアも1つしかない場合はStorage vMotionを使用できません。その場合は、以下のコマンドでvmdkをクローンします。
    vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
    その後、元のVMDKディスクを削除し、残ったVMDKディスクを再度クローンして元の名前にリネームします。
    rm test_vm_3.vmdk
    rm test_vm_3-flat.vmdk
    vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk
  9. 仮想マシンのプロパティに新しいディスクサイズが表示されていることを確認します。
  10. 仮想マシンを起動し、ゲストOSにログインして、未割り当て領域が消え、ディスクサイズが縮小されていることを確認します。

ヒント: 前述の手順でvmkfstoolsを使用した場合は、仮想マシン設定で仮想ディスクを再接続してください。新しいサイズが正しく表示されないことがあります。

VMDKディスクを縮小するその他の方法

VMDKディスクのサイズ縮小には、以下のような方法もよく利用されています。

  • VMware vCenter Converterを使用して仮想マシンを変換する際に、ソースより小さいディスクサイズを指定して縮小する(次のセクションで詳しく解説します)。
  • サードパーティ製ソフトウェア(Acronis True ImageやSymantec Ghost32など)を使用して仮想ディスクの内容をクローンする。具体的には、仮想マシンに新しい小さいディスクを追加し、大きいディスクの内容をそこへクローンします。完了後、大きい方のディスクは削除できます。

VMware vCenter Converter Standaloneを使用したVMDKの縮小

VMware仮想マシンの仮想ディスクサイズを縮小するもう一つの方法として、無料のGUIツールであるVMware vCenter Converter Standaloneを使用する方法があります。

デメリット

  • V2V変換には時間がかかる
  • 新しい仮想マシンを保存するために十分なデータストア容量が必要
  • 新しい仮想マシンには新しいMACアドレスが割り当てられる

メリット

  • vCenterやESXiホストのコンソールを開く必要がない
  • 仮想マシンの完全なコピーが作成される
  • 変換タスクの設定に誤りがあっても、ソースディスクが破ースディスクが破損しない

注意: 変換対象の仮想マシン(ディスクサイズ変更など)は、必ずシャットダウンしておく必要があります。「サスペンド」ではなく、「シャットダウン」または「パワーオフ」を使用してください。

手順は以下の通りです。

  1. ESXiホストのアドレスを指定します。
  2. 変換元の仮想マシンを選択します。
  3. 新しい仮想マシンのパラメータを設定します。
  4. ディスク編集モード(Data to copy → Edit)に移動します。
  5. コピーモードとして「Select volumes to copy」を選択します。
  6. 新しい仮想マシンのディスクサイズを指定します。例えば、ゲストOSで48GB使用中でもディスクサイズが150GBになっている場合、仮想ディスクを60GBに縮小することが可能です。
  7. 変換プロセスを実行します。完了後、元の仮想マシンをパワーオフし、新しい仮想マシンを起動します。ディスクサイズが縮小されていることを確認したら、元の仮想マシンは削除しても構いません。

補足: 最新バージョンのMicrosoft Hyper-Vでは、Hyper-V Online VHDX Resizeツールを使用して、仮想ディスクの拡張と縮小の両方を動的に行うことができます。

  1. VMware Converterで仮想マシンを変換する方法を徹底解説

    仮想化は、ソフトウェアのテストやデバッグ、同一デスクトップ上での複数OSの同時稼働、ハードウェアコストの削減、そしてシステムのモジュール性と効率の向上など、多くのメリットをもたらす優れた技術です。パワーユーザーにとっては、時間と費用を節約しながら、通常では手を出しづらいタスクにも挑戦できる強力な手段となります。仮想化とは、その名の通り仮想マシンを活用することであり、これらの仮想マシンは仮想ハードディスク上に保存されます。 しかし問題があります。各仮想化製品はそれぞれ独自のファイルシステム形式を採用しているのです。例えばVirtualBoxとVMwareを併用している場合、両者の作成する仮想マシ

  2. VMware Serverで仮想マシンのクローンを作成する方法

    はじめに仮想化がお好きな方なら、遅かれ早かれ「VMware Server」に行き当たることでしょう。VMware Serverは無料で利用できるソリューションで、既存のデスクトップ環境上に複数のOSインスタンスを実行できます。効率性、生産性、モジュール性、テスト、チューニングなど、さまざまな可能性が広がります。仮想化を使えば、実機ではなかなか試せないことも気軽に行えます。例えば、パーティションを壊す心配をせずにWindowsとLinuxのデュアルブート構成をテストしたり、実際の環境を汚さずに新しいソフトウェアを試したりすることが可能です。仮想化について仮想化についてさらに詳しく知りたい方は、当