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

SunからリリースされたVirtualBox 2は、デスクトップユーザーに最適な仮想化アプリケーションの1つである。その構成は、GUIには使用頻度の高い機能だけを集めることでシンプル化し、より包括的な制御機能はCLIで提示する。つまり、CLIを駆使することで作業効率を大幅に改善できるのだ。

» 2008年12月18日 17時44分 公開
[Mayank Sharma,SourceForge.JP Magazine]
SourceForge.JP Magazine

 少し前にSunからリリースされたVirtualBox 2は、デスクトップユーザーに最適な仮想化アプリケーションの1つと評していいだろう。これは非常に低コストで取得可能な2つのバージョンで提供されており、このうちクローズソース版には幾つかの機能追加が施されている。そして同ソフトウェアは完成度の高いグラフィカルユーザーインタフェース(GUI:Graphical User Interface)で操作するのが基本なので気づいているユーザーは少ないだろうが、実際にはコマンドラインからの完全な制御にも対応しているのだ。

 VirtualBoxの強力なコマンドラインインタフェース(CLI:Command-Line Interface)を必要とするユーザー像としては、モニタやキーボードを接続しないヘッドレス形態でサーバを運用する人間を考えればいいだろう。また通常のデスクトップユーザーであってもVirtualBoxのGUIでは不可能な、仮想ディスクの縮小やクローニング、BIOSロゴのカスタマイズ化、仮想マシン(VM:Virtual Machine)の各種動作情報の収集といった操作が、CLIを介して実行できるのである。

 VM作成についてはCLI操作からでも行えるが、ヘッドレスサーバ上でVirtualBoxを実行しているのでもない限りGUIを使う方が手間は掛からないだろう。実際、一般的なVM作成オプションの大半はGUIでも利用可能で、無理をしてCLI経由でVMを作成すると作業完了までにかえって長時間を要するはずだ。むしろCLI操作がその真価を発揮するのは、作成後のVMに対する各種の微調整なのである。

 CLIからのVirtualBox制御にはVBoxManageコマンドを利用する。その際にはVMに施す変更や操作の種類に応じて、VBoxManageに用意されている各種のサブコマンドとオプション類を使い分けなくてはならない。またCLIからの操作時には、対象とするVMや仮想ディスクなどのコンポーネントも特定する必要がある。その指定は、VMの名前あるいは固有の識別子(UUID)で行えるようになっており、前者はVM作成時にユーザーが指定する名称で、後者はVirtualBoxが自動で割り当てる識別番号だ。

 UUIDの確認はlistコマンドで行えるが、その際には対象となるデバイスのタイプを指定しなくてはならない。例えば後記の出力例のように、VMを対象とした「VBoxManage list vms」というコマンドを実行すると、VM本体のUUIDだけでなく、割り当てられたメモリ量、VMの現在の状態(実行中か電源オフか)、接続された仮想ディスク群のUUIDなど、各種の情報が表示される。


$ VBoxManage list vms
VirtualBox Command Line Management Interface Version 2.0.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Name:            Fedora
Guest OS:        Fedora
UUID:            50da82bf-9c03-48d2-99ad-66f9885f30c1
Config file:     /home/bodhi/.VirtualBox/Machines/Fedora/Fedora.xml
Memory size:     128MB
VRAM size:       8MB
Boot menu mode:  message and menu
ACPI:            on
IOAPIC:          off
PAE:             off
Time offset:     0 ms
Hardw. virt.ext: off
Nested Paging:   off
State:           powered off (since 2008-10-15T20:29:41.000000000)
Monitor count:   1
Floppy:          empty
SATA:            disabled
Primary master:  /home/bodhi/.VirtualBox/VDI/eightgig (UUID: c00ef0b0-173a-4f10-aa9b-94f38a5306af)
NIC 1:           MAC: 0800273EBD00, Attachment: NAT, Cable connected: on, Trace: off, Type: Am79C973, Reported speed: 0 Mbps

 こうして確認したUUIDは、VMに対する設定変更コマンド中で使用する。例えばVMの割り当てメモリ量を512Mバイトに増やすには「VBoxManage modifyvm 50da82bf-9c03-48d2-99ad-66f9885f30c1 -memory "512MB"」と指定すればいい。同様に「VBoxManage modifyvm 50da82bf-9c03-48d2-99ad-66f9885f30c1 -vram "16MB"」は、ビデオRAMを16Mバイトに増やすための指定だ。

 このようにCLI操作時にUUID指定を用いるのは、開発プロジェクトからも推奨されている方式だが、本稿の解説では可読性を高めるために、VMの名前を用いた指定法を使うことにする。

 ブート処理に長時間を要するVMの場合、BIOSロゴの表示時間を切りつめることで、何秒かの時間短縮ができるはずだ。具体的には「VBoxManage modifyvm "Fedora" -bioslogodisplaytime 1000」とすることで、この時間を1000ms(1秒)に変更できる。あるいは、デフォルトで適用されるSunのBIOS画像を非圧縮の256色BMPファイルに置き換えるには「VBoxManage modifyvm "Fedora" -bioslogoimagepath path-to-the-image」とすればいい。

 多くのBIOSがそうであるように、VirtualBoxのBIOSもブートプロセスを途中でインタラプトして、ほかの起動用デバイスに一時的に切り替えるという処理が行える。しかしながらUSBデバイスからの起動に対応したコンピュータが普及した現在、この機能はセキュリティ上のリスクとなりかねない。こうしたユーザーによる起動デバイスの一時切り替えを禁止するには、「VBoxManage modifyvm "Fedora" -biosbootmenu disabled」としておけばいい。

 VMのブート順序の設定は、BIOS操作を介さずに変更できる。例えば「VBoxManage modifyvm "Fedora" -boot1 dvd -boot2 disk -boot3 floppy -boot4 net」は、VMからのアクセス順をDVDドライブを1番目にして、その後を、HDD、FDD、ネットワークという順番にするという指定だ。またブートデバイスをnoneに指定すると、スロットを空にできる。

 VM設定の中には、すべてのネットワークトラフィックに関するログを残すという機能も用意されている。例えば「VBoxManage modifyvm "Fedora" -nictrace1 on -nictracefile1 /tmp/nictraffic.log」を実行すると、1番目の仮想ネットワークカードにおける全トラフィックが指定のファイルにログとして記録されるはずだ。

仮想ディスクとリムーバブルデバイスの操作法

 VirtualBoxの仮想化環境では、プライマリーマスター、プライマリースレーブ、セカンダリースレーブという3つの仮想ディスクをVMに接続でき、セカンダリーマスターはリムーバブルデバイス用に予約されている。またVirtualBoxのGUI操作でVMを作成すると、ビルトインのVirtual Disk Managerツールを用いた仮想ディスクの追加を行うようユーザーに求められる。例えば先に見たFedoraのVMでは、プライマリーマスターとして “eightgig”という名称の容量8GBディスクが使用されている。

 CLI操作でのディスク作成にはcreatevdiコマンドを使用するが、その際には名前とサイズ(Mバイト単位)を指定しなくてはならない。またVMで使用するディスクは事前に登録しておく必要があるが、「VBoxManage createvdi -filename fourgig -size 4096 -register」というコマンド指定を用いると、サイズ4Gバイト(4096Mバイト)のディスク作成とVirtualBoxへの登録が一括で処理できる。

 ディスクの新規作成と登録が終了したら、次にVMへの割り当てを行わなくてはならない。例えば「VBoxManage modifyvm "Fedora" -hdb fourgig」というコマンドは、先に作成したディスクをFedora VMのプライマリースレーブ用ディスクとするための指定だ。

 VirtualBoxのリムーバブルデバイスに関しては、登録したISOイメージまたは物理ドライブを仮想CD/DVDドライブとして使用できるようになっている。ホスト上の物理ドライブである/dev/hdcをVMに接続するには「VBoxManage modifyvm "Fedora" -dvd host:/dev/hdc」とすればいい。ただしデフォルト設定下のVirtualBoxでホストドライブに許可されるのは、読み取り専用アクセスだけだ。なお実験的な機能だが、「VBoxManage modifyvm "Fedora" -dvdpassthrough on」というコマンドにより、DVDへの書き込みサポートを有効にすることもできる。

 実行中のVMからイメージファイルを一時的に利用する場合は、事前の登録を必要としない。そうした処理に関しては「VBoxManage controlvm "Fedora" dvdattach path-to-ISO-image」というコマンドを実行するだけで、指定したVMにISOイメージが接続されるのである。

       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ