今回は,11月上旬にリリースされたFedora 14に搭載されたデスクトップ仮想化技術「SPICE」の基本的な使用法をご紹介します。
- Fedora Project
- URL:http://fedoraproject.org/
SPICEとは
SPICEは,LinuxKVMを開発したことで知られるQumranet社が開発したリモートデスクトッププロトコルです。Red Hat社に買収された後,オープンソース化されました。
SPICEの特徴として,音声転送(再生・録音に対応)やクリップボード転送機能,ネットワーク帯域が少ない環境でも快適に利用できるように映像や音声を転送する仕組みが最適化されている点などが挙げられます。例えば,外出先からイーモバイルやWiMAXなどといったモバイル環境で使用して接続しても,ストレス無くリモート操作すること可能です。
- SPICE公式サイト
- URL:http://www.spice-space.org/
SPICEを試してみよう
SPICEの使い方については,わかりやすく言うとQemuのvncオプションの代わりに使うイメージになります。これまでKVMでは次のようなオプション指定して,リモートからVNC接続して仮想マシンを操作していました。
qemu-kvm (中略) -vnc 127.0.0.1:0
SPICEでは,上記の代わりに次のようなオプションを指定して,リモートからSPICEクライアントで接続して仮想マシンを操作します。
qemu-kvm (中略) -spice port=5930,disable-ticketing
よって,SPICEを試すまでの大まかな手順は次の通りとなります。
- Fedora 14でKVM環境を用意する。
- 仮想マシンを構築する。
- SPICEサーバーを仮想ホストにインストールする。
- SPICEを有効にして仮想マシンを起動する。
- SPICEクライアントで仮想マシンに接続する。
- 仮想マシンに必要なドライバをインストールする。
KVM環境の用意
まずはFedora 14でKVM環境を構築します。こちらは特に注意事項はありません。お好みで,ネットワークブリッジを作成してください。テスト用の仮想マシンは,Windows,Linuxどちらでも利用可能です。今回はWindows XP仮想マシンを例に説明を行います。ストレージ・ネットワークのVirtioドライバがインストール済みの環境であることを前提とします。
Virtioドライバの使い方は「本気で使いたいユーザのためのLinux KVM活用法」の「ネットワークデバイスのVirtio化」「仮想ディスクのVirtio化」を参照してください。なお,Fedora 14でのネットワークデバイスのVirtio化は,仮想マシン停止中であれば既存のネットワークデバイスを削除せずに変更することが可能です。
最新のドライバは下記URLの「Download Latest VirtIO Win drivers from Fedora」を辿ると,ISOイメージが入手できるので,こちらを仮想マシンにマウスとして利用します。
- WindowsGuestDrivers/Download Drivers - KVM
- URL:http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
ちなみに,Fedora 14の仮想マシンを作成する場合は,インストール後にOSのアップデートを実行することと,後述のvdagentをソースからコンパイルしてインストールする必要があります。
SPICEサーバのインストール
SPICEのサーバパッケージを仮想ホスト上にインストールします。yumコマンドで簡単にインストールすることができます。
# yum install spice-server
SPICEを有効にして仮想マシンを起動する
SPICEは現在,libvirtや仮想マシンマネージャで利用することができません。よって,コマンドで仮想マシンを起動させる必要があります。前回の記事(第5回 Fedora 13で最新のLinux KVMに触れてみよう)で紹介した「vhost_netを有効にして仮想マシンを起動する」で行った方法と同じく,仮想マシンマネージャで仮想マシンを起動し,psコマンドで実行中の仮想マシンのパラメータを取得します。
#ps auxww | grep kvm-qemu
不要なパラメータを取り除きつつ,SPICEに関するパラメータを追加します。赤文字が取り除くパラメータ,青文字が追記する部分です。
/usr/bin/qemu-kvm -S -M pc-0.13 -enable-kvm -m 1024 -smp 2,sockets=1,cores=2,threads=2 -name WinXP -uuid 74b52e50-b95e-569e-1f04-85101152e6e5 -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/WinXP.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=localtime -boot c -drive file=/var/lib/libvirt/images/WinXP.img,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:a6:01:81,bus=pci.0,addr=0x3 -net tap,vlan=0,name=hostnet0 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga cirrus -vga qxl -spice port=5930,password=,disable-ticketing -device AC97,id=sound0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -device virtio-serial,bus=pci.0,addr=0x7 -device spicevmc,subtype=vdagent
SPICEに関するパラメータは次の通りです。
-vga qxl -spice port=5930,disable-ticketing
portはポート番号,disable-ticketingはパスワード無しで接続可能にするオプションです。パスワードを設定するには次のように指定します。
-spice port=5930,password=(パスワード)
また,次のパラメータはクリップボード転送を有効にするためのものです。
-device virtio-serial,bus=pci.0,addr=0x7 -device spicevmc,subtype=vdagent
次に,qemu-ifup,qemu-ifdownスクリプトを作成します。作成方法は前回の記事を参照してください。

