VMテンプレートのディスクサイズを変更(拡張)する方法
Oracle VMのVMテンプレートは小さなサイズで作成されています。Oracle Enterprise Linux 5 update 3のテンプレートで言えば、容量は4GByte程になっています。これは後から簡単に仮想ディスクを追加できるという理由と、逆に最初に大きなサイズで作ると小さくするのは厄介という理由からです。大きくするのはそれほど難しい作業ではありません。
今回は仮想ディスクを追加するのではなく、元々のディスクサイズを拡張させる方法を紹介します。Oracle Enterprise Linux 5 update 3のテンプレートを例に話を進めていきます。
*Oracle Enterprise Linux 5 update 3のVMテンプレートはこちらからダウンロードできます。
http://edelivery.oracle.com/oraclevm
まずはOracle Enterprise Linux 5 update 3のテンプレートをダウンロードし、VM Serverの/OVS/seed_pool以下に保存します。そして解凍、展開します。
[root@vmserver]# cd /OVS/seed_pool/ [root@vmserver]# tar xvfz OVM_EL5U3_X86_64_PVM_4GB.tgz
次に展開したディレクトリの中にある仮想ディスクファイルのサイズをddコマンドで変更します。今回はディスクサイズを20Gbyteに伸ばしています。
[root@vmserver]# cd OVM_EL5U3_X86_64_PVM_4GB/ [root@vmserver]# ls README System.img vm.cfg [root@vmserver]# dd if=/dev/zero of=System.img bs=1M count=0 seek=20000
*Oracle VM 2.2からSparse Fileをサポートしているのでこのddコマンドは一瞬で終了し、拡張分の容量はSparse形式で追加されます。
次に設定ファイルを編集してvfbの行をコメントアウトします。これはxmコマンドから簡単にゲストOSのコンソールに接続するためです。
[root@vmserver]# vi vm.cfg
bootloader = '/usr/bin/pygrub'
disk = ['file:/OVS/seed_pool/OVM_EL5U3_X86_64_PVM_4GB/System.img,xvda,w']
memory = '1024'
name = 'OVM_EL5U3_X86_64_PVM_4GB'
on_crash = 'restart'
on_reboot = 'restart'
vcpus = 1
#vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0']
vif = ['']
編集が終わったらゲストOSを起動します。-cスイッチを付けることで起動と同時にゲストOSのコンソールに接続できます。
[root@vmserver]# xm create -c vm.cfg
ここからの手順は設定の様子を動画を交えてご覧ください。
起動してきたゲストOSでは新しいパーティションテーブルが有効になっていますが、まだdfコマンドでみてもファイルシステムは大きくなっていません。現時点ではパーティションは拡大したものの、その上のファイルシステムが従来の状態のままになっているため、ファイルシステムをパーティションのサイズに合わせる必要があります。これをresize2fsコマンドで行います。
これで/(ルート)領域のファイルシステムが拡張されました。後、現在swap領域が無効になってしまっています。従来の領域はパーティションのレイアウト変更で消失してしまっているからです。新たに作成した/dev/xvda3をswapとして指定します。
mkswapでswap領域を作成し、swaponで有効化する
これでswap領域も新しいパーティションレイアウトに沿って有効になりました。あとは再起動後もswapが有効になるようにfstabを編集しておきます。
[root@guest]# oraclevm-template --cleanup [root@guest]# oraclevm-template --enable