上記の手順ならば、ゲストOS1台につき10分もあればインストールが可能なはずです(もちろん、ゲストOSのサイズが大きければ、それだけファイルのコピーに要する時間はかかりますが)。
しかしこの手順でも、ゲストOSを1台インストールするたびに、設定ファイルの編集などの手作業が入ってしまいます。大した手間ではないように思えるかもしれませんが、例えば30台のゲストOSを作成する場合、それなりの作業時間と手間が必要になることは容易に想像できます。さらに、もしゲストOSそれぞれにディスク容量を30Gbytes割り当てたいならば、30Gbytes×30台=900Gbytesという膨大なディスク容量が必要になりますし、コピーの時間も耐え難いほど長くなるでしょう。
そこでここからは、ディスクをできる限り節約し、かつ完全に自動化された高速インストール手順を紹介します。
といっても、作業自体は先ほど紹介したものとさほど変わりません。前述の手順を自動化するためのスクリプトを作成し、コピー時間とディスクを節約するためのある「工夫」を追加するくらいです。
ところで、Xenにはこのような大量インストールを行う方法は用意されていないのでしょうか? 残念ながら、現在のRHEL5にバンドルされているXenやその管理ツールである仮想マシンマネージャなどにはそのような機能は用意されていません。
一方、Citrixが提供している商用の「XenServer」では、テンプレートの複製による高速なインストール機能が提供されています。ただしこの機能では、展開するゲストOSの台数を指定したり、ゲストOS固有の情報をあらかじめ設定しておくことはできません。あくまであるゲストOSの複製を1つ作成するための機能です。
まずゲストOSを新しく作成します。
先に紹介した手順では、通常のファイルをベースとしたゲストOSを使用しました(つまり、virt-installで「?nonsparse」オプションを指定していました)。実は、ディスクを節約するにはゲストOSをSparseファイルベースで作成するのが有効です。第2回「実測! 物理マシンと仮想マシンの性能差は?」でも触れましたが、Sparseファイルとは「実際にデータが書き込まれた分しかディスクを消費しないファイル」です。
例えば以下のコマンドでファイルを作成すると、30Gbytesの容量を持ったSparseファイルが作成されます。
# dd if=/dev/zero of=testfile bs=1024M seek=30 count=0 |
このように、lsコマンドで見る限りファイル容量は30Gbytesとなっていますが、次のduコマンドを使えば、実際にディスクを消費している容量が分かります。
# du -h testfile |
ファイルを作成する前と後でdfコマンドを使って確認してみても、ディスクが消費されていないことが分かるでしょう。
一般に、実際のサーバではディスクを100%近くまで使うことはまれです。よって、このSparseファイルでゲストOSを作成しておけば、トータルでかなりのディスク容量を節約できます。この効果はゲストOS当たりのディスク割当量が多いほど、またゲストOS数が多いほど顕著になるでしょう。
■コピー時間の大幅短縮効果
それでは、このSparseファイルを使ってゲストOSを作成してみましょう。
ゲストOSの作成に当たって、あらかじめddコマンドでSparseファイルを作成しておく必要はありません。virt-installは、-fオプションで存在しないファイルを指定すると、自動的にSparseファイルベースでゲストOSを作成してくれます。
# virt-install \ |
これでインストールを続行すれば、SparseファイルベースのゲストOSが出来上がります。このゲストOSのファイルをlsコマンドで見ると、サイズは30Gbytesと表示されますが、実際に消費しているディスク容量をduコマンドで確認すると2Gbytes前後にとどまっているはずです。
これで基となるゲストOSは出来上がりました。このゲストOSを基に、大量インストールを行います。
まず、このファイルを先ほど紹介した手順と同じようにcpコマンド(注3)でコピーします。
注3:cpコマンドはデフォルトの動作として、コピー元ファイルがSparseファイルであれば自動的にそれを認識し、コピー先ファイルもSparseファイルで作成してくれます。この動作は--sparseオプションによって操作可能です。デフォルトは--sparse=autoとなっています
このようにSparseファイルを利用することで、
というメリットが生まれます。
Copyright © ITmedia, Inc. All Rights Reserved.