21.8. virt-resize: ゲスト仮想マシンのオフラインでのサイズ変更
本セクションでは、オフラインのゲスト仮想マシンのサイズを変更する方法を説明します。
21.8.1. 導入部分
本セクションでは、ゲスト仮想マシンを拡張または縮小するツールである virt-resize を説明します。これは、オフラインのゲスト仮想マシン (シャットダウン) でのみ機能します。これは、ゲストの仮想マシンイメージをコピーして、元のディスクイメージをそのままにして動作します。元のイメージをバックアップとして使用できるため、これは理想的ですが、2 倍のディスク容量が必要になるというトレードオフがあります。
21.8.2. ディスクイメージの拡張
このセクションでは、ディスクイメージを拡張する簡単な例を示します。
- サイズを変更するディスクイメージを探します。コマンド virsh dumpxml GuestName は、libvirt ゲスト仮想マシンに使用できます。
- ゲスト仮想マシンを拡張する方法を決定します。以下のように、ゲスト仮想マシンディスクで virt-df -h と virt-filesystems を実行します。
# virt-df -h -a /dev/vg_guests/RHEL6 Filesystem Size Used Available Use% RHEL6:/dev/sda1 98.7M 10.0M 83.6M 11% RHEL6:/dev/VolGroup00/LogVol00 6.8G 2.2G 4.3G 32% # virt-filesystems -a disk.img --all --long -h /dev/sda1 ext3 101.9M /dev/sda2 pv 7.9G
以下の例は、以下の方法を示しています。
- 最初の (ブート) パーティションのサイズを、約 100MB から 500MB に増やします。
- ディスクの合計サイズを 8GB から 16GB に増やします。
- 2 番目のパーティションをデプロイメントして、残りの領域を埋めます。
/dev/VolGroup00/LogVol00
をデプロイメントし、2 番目のパーティションの新しい領域を埋めます。
- ゲスト仮想マシンがシャットダウンしていることを確認します。
- 元のディスクの名前をバックアップとして変更します。これを行う方法は、元のディスクのホスト物理マシンのストレージ環境によって異なります。ファイルとして保存されている場合は、mv コマンドを実行します。(この例で示しているように) 論理ボリュームの場合は、lvrename を使用します。
# lvrename /dev/vg_guests/RHEL6 /dev/vg_guests/RHEL6.backup
- 新しいディスクを作成します。この例の要件は、ディスクの合計サイズを最大 16GB まで拡張することです。論理ボリュームが使用されるため、以下のコマンドが使用されます。
# lvcreate -L 16G -n RHEL6 /dev/vg_guests Logical volume "RHEL6" created
- 手順 2 の要件は、以下のコマンドで表されます。
# virt-resize \ /dev/vg_guests/RHEL6.backup /dev/vg_guests/RHEL6 \ --resize /dev/sda1=500M \ --expand /dev/sda2 \ --LV-expand /dev/VolGroup00/LogVol00
最初の 2 つの引数は、入力ディスクと出力ディスクです。--resize /dev/sda1=500M は、最初のパーティションのサイズを最大 500 MB に変更します。--expand /dev/sda2 は、残りのすべての領域を埋めるために 2 番目のパーティションを拡張します。--LV-expand /dev/VolGroup00/LogVol00 は、ゲスト仮想マシンの論理ボリュームを拡張して、2 番目のパーティションの余分な領域を埋めます。virt-resize は、出力で実行している処理を説明します。Summary of changes: /dev/sda1: partition will be resized from 101.9M to 500.0M /dev/sda1: content will be expanded using the 'resize2fs' method /dev/sda2: partition will be resized from 7.9G to 15.5G /dev/sda2: content will be expanded using the 'pvresize' method /dev/VolGroup00/LogVol00: LV will be expanded to maximum size /dev/VolGroup00/LogVol00: content will be expanded using the 'resize2fs' method Copying /dev/sda1 ... [#####################################################] Copying /dev/sda2 ... [#####################################################] Expanding /dev/sda1 using the 'resize2fs' method Expanding /dev/sda2 using the 'pvresize' method Expanding /dev/VolGroup00/LogVol00 using the 'resize2fs' method
- 仮想マシンを起動してみてください。正常に機能している場合 (および徹底的なテストを行った後) は、バックアップディスクを削除できます。失敗した場合は、仮想マシンをシャットダウンして、新しいディスクを削除し、バックアップディスクの名前を元の名前に戻します。
- virt-df または virt-filesystems を使用して、新しいサイズを表示します。
# virt-df -h -a /dev/vg_pin/RHEL6 Filesystem Size Used Available Use% RHEL6:/dev/sda1 484.4M 10.8M 448.6M 3% RHEL6:/dev/VolGroup00/LogVol00 14.3G 2.2G 11.4G 16%
ゲスト仮想マシンのサイズを変更すると、問題が発生する場合があることに注意してください。virt-resize が失敗した場合は、virt-resize(1) の man ページに、確認して試すことができるヒントが複数あります。一部の古い Red Hat Enterprise Linux ゲスト仮想マシンに場合は、GRUB に関するヒントに特に注意を払う必要がある場合があります。