コマンドラインに隠されたVirtualBoxのチューニング法Leverage OSS(2/2 ページ)

» 2008年12月18日 17時44分 公開
[Mayank Sharma,SourceForge.JP Magazine]
SourceForge.JP Magazine
前のページへ 1|2       

スナップショット機能の活用法

 仮想化ソフトウェアの有す最も有用な機能の1つが、VMのスナップショット作成である。VMの構成に対して何らかの変更をする際には、事前にスナップショットを作成しておく習慣をつけておくといいだろう。正常動作時のスナップショットを残しておくと、ハードウェアレベルでは、ハードウェア設定の変更に起因して機能不全に陥ったシステムのリカバリが行えるし、ソフトウェアレベルでも、操作ミスやウイルスにより喪失したデータの復旧に役立つはずだ。

 VirtualBoxでのCLI操作によるスナップショット作成は非常に簡単である。例えば正常動作時のFedora VMのスナップショットを作成したければ、「VBoxManage snapshot "Fedora" take snap1-stable-system」とすればいい。スナップショット情報の保存終了までに要する時間はホストとなるVMおよび使用するリソースによって異なってくるが、スナップショット作成中のシステム変更は禁物なので、すべてのVMインタフェースはスナップショット保存が完了するまでVirtualBoxによりグレイアウトされるようになっている。

 正常動作時のスナップショットが手元にあれば、現状のシステム設定にさまざまな変更を安心して加えられるはずだ。その結果としてマシンが異常な挙動を示したりブート不可能になったとしても、スナップショットを用いて正常動作時のマシンに復元すればいい。具体的な復元手順としては、まず「VBoxManage controlvm "Fedora" poweroff」によりVMの電源をオフにし、次に「VBoxManage snapshot "Fedora" discardcurrent -state」によって最新のスナップショット状態に復帰させるだけである。なお複数のスナップショットを作成している場合は、-stateスイッチの代わりに-allと指定することで、最後から2番目のスナップショットに戻すことができる。

 ただし当然ながら、こうした復帰を行うとスナップショット作成後に施したすべての変更は失われることになる。そして、それはシステム設定だけに限られるのではなく、各種のファイル群に対しても当てはまる話である。こうした問題を回避するには、スナップショットの影響外に置かれる “writethrough”というディスクにデータを保存させればいい。これは機能的には通常のディスクだが、スナップショットへの復帰時に VirtualBoxはwritethroughディスクを無視するのだ。このディスクは重要なデータやファイルの保存先とすればいいが、あるいは /homeディレクトリ全体をここに置いてもいいだろう。

 writethroughディスクの追加は、createvdiによる新規ディスク作成時に「-type writethrough」オプションを指定することで行える。ただし作成済みディスクをwritethroughとすることも不可能ではない。そのための手順としては、まず「VBoxManage modifyvm "Fedora" -hdb none」によりVMへの接続を解除してから、「VBoxManage unregisterimage disk fourgig」により対象ディスクの登録自体も解除しておかなくてはならない(ここでのfourgigはサンプル名なので、実際には各自のシステム上のディスク名を指定する)。その後「VBoxManage registerimage disk "fourgig" -type writethrough」という指定により、writethroughディスクとして登録し直してから、最後に「VBoxManage modifyvm "Fedora" -hdb fourgig」によってVMへの再接続をする。

 以上の操作が完了すれば、writethroughディスク上にデータを保管できるようになっているはずで、ここに置かれたデータはVM状態の復元処理とは無関係に保持され続けることとなる。ただし、このディスク作成前の状態に復元させた場合は例外で、状態保存時に存在しなかったディスクとして VirtualBoxにより削除されてしまう。また現行バージョンのVirtualBoxではwritethroughディスクを接続した状態のVMに対するスナップショット作成は行えないので、そうしたVMの状態保存をするには、いったんwritethroughディスクの接続を解除してから、スナップショット作成を実行し、その後で再度接続し直さなくてはならない。VirtualBoxの将来バージョンでは、writethroughディスクの有無がスナップショット操作に関係しないよう改善してもらいたいところである。

パフォーマンスの計測

 VirtualBoxには、ホスト側とVM側でのパフォーマンスおよびリソース使用量を計測する機能も設けられている。VirtualBoxがゲストおよびホストに対して計測可能なメトリックの一覧は、「VBoxManage metrics list」で確認できるが、その一例を挙げると、CPU/Load/User(ゲストおよびVMでのユーザーモードにおけるプロセッサ使用時間の比率)、CPU /MHz(全プロセッサの平均速度)、RAM/Usage/Free(アプリケーション群が使用可能な物理メモリ量)、RAM/Usage/Used(メモリ上でVMプロセスの占めるサイズ)などが計測対象のメトリックだ。

 この機能の具体的な使用法としては「VBoxManage metrics setup -period 10 -samples 5 host」という形式のコマンドでデータ収集の間隔(この場合は10秒)および保持させるサンプル数(この場合は5)を指定すればいい。ここでhostの代わりにVMの名前を指定すると、VM側が計測対象となる。またどのメトリックを計測するかの指定も可能で、例えば「VBoxManage metrics setup -period 10 -samples 5 "Fedora" CPU/Load/User, RAM/Usage/Used」と指定すると、Fedora VMにおけるプロセッサとメモリに関する使用状況を確認できる。

 収集したデータの取得はqueryコマンドで行う。例えば「VBoxManage metrics query host CPU/Load/User」と指定すると、ホスト側のプロセッサ情報が表示されるが、その際にメトリック名を未指定にすると、すべてのメトリック情報が表示される。

 こうしたメトリック情報は、collectコマンドを用いた連続表示をさせることも可能で、例えば「VBoxManage metrics collect -period 3 -samples 5 "Fedora" CPU/Load/User,RAM/Usage/Used」というコマンドを実行すると、VM側のプロセッサとメモリに関する情報が3秒間隔で更新されるようになる。このモニタリングプロセスを停止させるには、Ctrl-Cキーを押し下げればいい。

まとめ

 VirtualBoxの構成は、GUIには使用頻度の高い機能だけを集めることでシンプル化し、より包括的な制御機能はCLIで提示するようになっている。CLI操作はVirtualBoxのVM群をリモート管理する際に不可欠であるが、ローカルで使用する場合においても、パフォーマンス計測など一部の高度な機能にはCLIからしかアクセスできない。また複数のコマンドを繰り返し実行するタイプの作業は、CLIで一括処理させることで、かなりの負担を軽減できるはずである。例えば特定のVM状態への復帰を頻繁に実行するという開発者ならば、スナップショット復帰用のコマンド群を1つのスクリプトにまとめておけばいいだろう。いずれにせよVirtualBoxには強力なCLI機能が装備されているのであり、これをうまく使いこなせれば、作業効率を大幅に改善できるはずだ。

前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ