連載
» 2008年02月13日 00時00分 公開

実践! Xenで実現するサーバ統合(4):最短3分! ゲストOSの効率的なインストール (2/3)

[中嶋一樹, 高橋浩和,住商情報システム株式会社/VA Linux Systems Japan株式会社]

インストール自動化をさらに極める

 上記の手順ならば、ゲストOS1台につき10分もあればインストールが可能なはずです(もちろん、ゲストOSのサイズが大きければ、それだけファイルのコピーに要する時間はかかりますが)。

 しかしこの手順でも、ゲストOSを1台インストールするたびに、設定ファイルの編集などの手作業が入ってしまいます。大した手間ではないように思えるかもしれませんが、例えば30台のゲストOSを作成する場合、それなりの作業時間と手間が必要になることは容易に想像できます。さらに、もしゲストOSそれぞれにディスク容量を30Gbytes割り当てたいならば、30Gbytes×30台=900Gbytesという膨大なディスク容量が必要になりますし、コピーの時間も耐え難いほど長くなるでしょう。

 そこでここからは、ディスクをできる限り節約し、かつ完全に自動化された高速インストール手順を紹介します。

 といっても、作業自体は先ほど紹介したものとさほど変わりません。前述の手順を自動化するためのスクリプトを作成し、コピー時間とディスクを節約するためのある「工夫」を追加するくらいです。

コラム●Xenでの大量インストール方法は?

 ところで、Xenにはこのような大量インストールを行う方法は用意されていないのでしょうか? 残念ながら、現在のRHEL5にバンドルされているXenやその管理ツールである仮想マシンマネージャなどにはそのような機能は用意されていません。

 一方、Citrixが提供している商用の「XenServer」では、テンプレートの複製による高速なインストール機能が提供されています。ただしこの機能では、展開するゲストOSの台数を指定したり、ゲストOS固有の情報をあらかじめ設定しておくことはできません。あくまであるゲストOSの複製を1つ作成するための機能です。


Sparseファイルによるディスク節約術

 まずゲストOSを新しく作成します。

 先に紹介した手順では、通常のファイルをベースとしたゲストOSを使用しました(つまり、virt-installで「?nonsparse」オプションを指定していました)。実は、ディスクを節約するにはゲストOSをSparseファイルベースで作成するのが有効です。第2回「実測! 物理マシンと仮想マシンの性能差は?」でも触れましたが、Sparseファイルとは「実際にデータが書き込まれた分しかディスクを消費しないファイル」です。

図1 通常のファイルとSparseファイルの違い 図1 通常のファイルとSparseファイルの違い

 例えば以下のコマンドでファイルを作成すると、30Gbytesの容量を持ったSparseファイルが作成されます。

# dd if=/dev/zero of=testfile bs=1024M seek=30 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.7e-05 seconds, 0.0 kB/s

# ls -lah
-rw-r--r-- 1 root root 30G 1月 25 17:36 testfile

 このように、lsコマンドで見る限りファイル容量は30Gbytesとなっていますが、次のduコマンドを使えば、実際にディスクを消費している容量が分かります。

# du -h testfile
0

 ファイルを作成する前と後でdfコマンドを使って確認してみても、ディスクが消費されていないことが分かるでしょう。

 一般に、実際のサーバではディスクを100%近くまで使うことはまれです。よって、このSparseファイルでゲストOSを作成しておけば、トータルでかなりのディスク容量を節約できます。この効果はゲストOS当たりのディスク割当量が多いほど、またゲストOS数が多いほど顕著になるでしょう。

■コピー時間の大幅短縮効果

 それでは、このSparseファイルを使ってゲストOSを作成してみましょう。

 ゲストOSの作成に当たって、あらかじめddコマンドでSparseファイルを作成しておく必要はありません。virt-installは、-fオプションで存在しないファイルを指定すると、自動的にSparseファイルベースでゲストOSを作成してくれます。

# virt-install \
--paravirt \
--name=vm_master \
--vcpus=1 \
--ram=512 \
--file=/srv/vm_master \
--file-size=30 \
--location=http://192.168.0.253/rhel5-x86_64 \
--nographics

 これでインストールを続行すれば、SparseファイルベースのゲストOSが出来上がります。このゲストOSのファイルをlsコマンドで見ると、サイズは30Gbytesと表示されますが、実際に消費しているディスク容量をduコマンドで確認すると2Gbytes前後にとどまっているはずです。

 これで基となるゲストOSは出来上がりました。このゲストOSを基に、大量インストールを行います。

 まず、このファイルを先ほど紹介した手順と同じようにcpコマンド(注3)でコピーします。

注3:cpコマンドはデフォルトの動作として、コピー元ファイルがSparseファイルであれば自動的にそれを認識し、コピー先ファイルもSparseファイルで作成してくれます。この動作は--sparseオプションによって操作可能です。デフォルトは--sparse=autoとなっています


 このようにSparseファイルを利用することで、

  • コピー先ファイルが消費するディスク容量も2Gbytes前後に節約できる
  • コピー時間を大幅に短縮できる

というメリットが生まれます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。