2009年4月28日火曜日

Ubuntu で KVM (Kernel-based Virtual Machine)

Ubuntu 9.04 で KVM による仮想化に挑戦してみました。
Ubuntu は、仮想技術のバックエンドとして KVM を、そのツールキット/API として、libvirt を使います。仮想マシンを管理するツールとして、virt-manager (GUI) と virsh (CLI) があります。
KVM を使うには、CPU が仮想化支援機能 (Intel VT/AMD-V) に対応している必要があり、かつ BIOS で機能を有効にしなくてはなりません。

インストール
  1. CPU が仮想化支援機能に対応しているか調べます。
    $ egrep --color '(vmx|svm)' /proc/cpuinfo ← 出力があれば対応しています
  2. 必要なパッケージをインストールします。
    $ sudo apt-get install kvm libvirt-bin
  3. ユーザを libvirtd グループに加えます。
    $ sudo adduser $USER libvirtd
  4. libvirtd グループに加わったことを反映するために、ログインしなおします。
  5. virt-manager、virt-viewer を含むパッケージをインストールします。
    $ sudo apt-get install virt-manager virt-viewer
仮想マシンマネージャーによる仮想マシンのインストール
  1. [アプリケーション]-[システムツール]-[仮想マシンマネージャー] (virt-manager) を起動します。
    仮想マシンマネージャーを使えば、GUI で仮想マシンを作成できます。

仮想マシンへの接続

仮想マシンへの接続は、VNC クライアントで行います。
  • 仮想マシンマネージャー (virt-manager) の Console タブで接続する。
  • 仮想マシン VirtualMachine に Virtual Machine Viewer で接続する。
    $ virt-viewer VirtualMachine
  • (TightVNC などお好みの) VNC クライアントで接続する。リモートホストからの場合、ssh ポートフォワードと組み合わせます。
    remote$ l=""; for p in `seq 5901 5910`; do l="$l -L $p:localhost:$p"; done; ssh $l -X remote ← 5901/tcp ~ 5910/tcp をポートフォワードします。

virsh (CLI) の使い方
  • ヘルプを表示する
    $ virsh help
  • 仮想マシンをリストする
    $ virsh list --all
  • 仮想マシン VirtualMachine を起動する
    $ virsh start VirtualMachine
  • ホスト OS 起動時に仮想マシン VirtualMachine を起動する
    $ virsh autostart VirtualMachine
  • 仮想マシン VirtualMachine を再起動する
    $ virsh reboot VirtualMachine
  • 仮想マシン VirtualMachine をシャットダウンする
    $ virsh shutdown VirtualMachine
  • 仮想マシン VirtualMachine を一時停止する
    $ virsh suspend VirtualMachine
  • 仮想マシン VirtualMachine の電源を切断する
    $ virsh destory VirtualMachine
  • 仮想マシン VirtualMachine に接続する際に使用する VNC のディスプレイ番号を調べる
    $ virsh vncdisplay VirtualMachine
  • CD-ROM の入れ替え
    $ virsh attach-disk VirtualMachine filename.iso hdc --driver file --type cdrom --mode readonly
参考

0 件のコメント: