VMwareで仮想マシンのディスクサイズを気にせずに変更する方法
VMを運用していてディスク容量が逼迫していることに気づいたら、もう困ったものです。データが収まらず、縮小もできません。そこで自然な対応として、仮想ディスクのサイズを増やすことになります。しかし、問題は、システムを壊さずに正しく実行するのは難しい場合があることです。このガイドでは、VMware ESXiで仮想ディスクを拡張し、WindowsまたはLinux内でパーティションを拡張する方法を詳しく説明します。基本的に、すべてを適切に調整していれば、VMをシャットダウンすることなく容量を増やすことができます。特に「ディスクがいっぱいです」という警告が表示され、次に何をすればいいのかわからない場合は、この方法が非常に役立ちます。
このプロセスは主に2つの部分に分かれています。まず、ディスク(VMDKファイル)のサイズを変更し、次にゲストOS内のパーティションを拡張します。準備が不十分な場合、スナップショットが残っていたり、VMware Toolsがインストールされていなかったりするなど、エラーが発生することがあります。少し奇妙に感じるかもしれませんが、これらの問題を解決すれば、あとは比較的簡単です。これらの手順を慎重に実行すれば、よりスムーズな操作が期待できます。
VMware で VM ディスク (VMDK) のサイズを増やす
メリット:仮想ディスクの容量が大きいほど、VMのデータストレージ容量も大きくなります。現在のディスク容量の上限に達した場合、vCenterまたはESXiでディスクを拡張することが最初の論理的なステップです。これは、「ディスクがいっぱいです」という警告が表示された場合や、単にアプリやファイルを追加する予定がある場合に当てはまります。
使用する場合:VMにスナップショットがなく、サポートされている仮想ディスクコントローラー(SCSIまたはNVMe)上で実行している場合のみ。IDEディスクを使用している場合は、シャットダウンが必要です。また、リンククローンの場合は、オンラインでのサイズ変更がサポートされていない可能性があります。
想定される動作:ディスク容量を増やすと、VMの仮想ハードディスク(VMDK)のサイズは大きくなりますが、ゲストOS内でパーティションを拡張するまで、WindowsまたはLinuxでは新しい領域が認識されません。私の経験では、VMware Toolsを有効にするとオンラインでのサイズ変更がはるかにスムーズになりますが、再起動や再スキャンが必要になる場合があります。
まず、 vSphere Web Client経由でvCenter ServerまたはスタンドアロンESXi ホストに接続します。次に、VM を見つけて、「アクション」 -> 「設定の編集」に進みます。
- 拡張したい仮想ディスクを見つけます。ほとんどの設定では、ハードディスク1になります。
- 新しいサイズを指定します(例:40GBから50GBに変更)。データストアの容量が限られている場合は、最大サイズに注意してください。
コマンドラインをご希望の場合は、VMware PowerCLI を使用すると簡単です。以下のコマンドでモジュールをインストールしてください。
Install-Module -Name VMware. PowerCLI
次に、vCenter または ESXi ホストに接続します。
Connect-VIServer hostname
PowerCLI でディスクのサイズを変更するには:
Get-HardDisk VMName | where {$_. Name -eq "Hard disk 1"} | Set-HardDisk -CapacityGB 50 -ResizeGuestPartition -Confirm:$false
注: -ResizeGuestPartitionフラグは必ずしも期待通りに動作するとは限りません。これは実験的な機能であると考えられる場合があります。エラーが発生した場合は、まず VMDK を拡張してから、OS 内でパーティションを拡張してください。
ゲストOS内のパーティションを拡張する
ディスク容量を増やしたら、WindowsまたはLinuxに追加の容量を認識させる必要があります。Windowsの場合は、「コンピューターの管理」>「記憶域」>「ディスクの管理」を開き、「ディスクの再スキャン」をクリックします。次に、パーティション(通常はC:)を右クリックし、 「ボリュームの拡張」を選択します。
オプションがグレー表示になっている場合は、Cドライブの直後に回復パーティションがあるか、その他のブロック要因が原因である可能性があります。その場合は、回復パーティションを削除または移動するか、起動可能なメディアからGPartedなどのサードパーティ製ツールを使用する必要があります。
Linuxでは状況が少し異なります。ディスクの再スキャンを実行します。
$ echo 1 > /sys/class/block/sdX/device/rescan
お使いのデバイス名に置き換えてくださいsdX。その後、cfdiskまたはpartedを使ってパーティションのサイズを変更し、ファイルシステムのサイズを変更します(resize2fsext4の場合と同様)。少し手間がかかりますが、慣れれば実行可能です。
Windows パーティションの拡張 — もう少し詳しく説明
VMディスクの容量が拡大したら、「ディスクの管理」に進みます。Cドライブの横に未割り当て領域がある場合は、右クリックして「ボリュームの拡張」を選択します。サイズを確認し、「次へ」をクリックして待ちます。システムパーティションが邪魔になっている場合は、このオプションが表示されないことがあります。その場合は、ExtPartなどのツールを使えば、再起動せずにシステムパーティションを拡張できます。コマンドプロンプトでコピーして実行するだけです。
ちょっとした注意点:Windows XPまたはServer 2003の場合、組み込みツールはオンライン拡張をサポートしていません。Windows以外の環境でパーティションのサイズを変更するには、起動可能なLinuxライブCDやGPartedなどのサードパーティ製ツールを使用する必要があるかもしれません。
Linuxに余分なスペースを認識させる
ここで重要なのは、Linuxにディスクを再スキャンしてパーティションを手動で拡張するように指示することです。次のコマンドを実行します。
$ sudo sh -c 'echo 1 > /sys/class/block/sdX/device/rescan'
sdXお使いのドライブ(おそらく、または類似のドライブ)に置き換えてくださいsda。次に、cfdiskまたはparted を開いてパーティションのサイズを変更し、最後に でファイルシステムを拡張しますresize2fs。
セットアップで LVM (Ubuntu Server で一般的) を使用する場合は、物理ボリュームのサイズも変更する必要があります。
$ sudo pvresize /dev/sda3
続いて論理ボリュームを拡張します。
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
次にファイルシステムのサイズを変更します。
$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
すべて完了したら、df -h新しいサイズが表示されていることを確認してください。LVMに慣れていない場合は注意してください。LVMは強力ですが、失敗すると頭を悩ませることがあります。
LVMを使用していない場合は、partedとresize2fsを使った直接的なリサイズで問題ありません。パーティションに大きな変更を加える場合は、必ずバックアップを取ってください。安全第一に考えましょう。
まとめ
このプロセス全体が面倒に感じるかもしれませんが、最初のVMディスクのサイズ変更とゲスト内のパーティション拡張が完了すれば、すべてがうまくいきます。通常、最も難しいのは、スナップショットが邪魔になっていないか、オンラインサイズ変更のためにVMware Toolsがインストールされていることを確認することです。設定によっては、再起動や再スキャンを数回実行する必要があるかもしれません。なぜこんなに複雑なのかは分かりませんが、うまく機能しています。
まとめ
- ディスクのサイズを変更する前に、スナップショットが存在しないことを確認してください。
- データストアに十分な空き容量があることを確認します。
- vSphere または PowerCLI で VMDK のサイズを変更します。
- Windows または Linux ゲスト OS 内のディスクを再スキャンします。
- ゲスト内のパーティションとファイルシステムを拡張します。
最後に
これで、VMディスクのサイズ変更に伴うよくある面倒な作業を回避できるといいですね。必ずしも簡単ではありませんが、実行可能です。それに、容量が多ければ、突然ストレージが不足しても慌てる必要もなくなるので、努力する価値はあります。頑張ってください!