目次

SPICEとは

仮想化(シンクライアントと説明されてるけどちょっと違うと思う)を実現するためのオープンソースプログラム。

ベースとなってるのはKVM。

なので、Intel-vtなりAMD-Vなりが使えるCPUが必要となる。

サーバーインストール

とりあえず最小構成に仮想化もインストールしとこうw

ちなみに、パッケージ選択までにネットワーク設定画面が無かった。

このままインストールをすると起動時にネットワークの設定をする必要がある。

そんなの面倒って場合は、PCをネットワークに接続したうえでリポジトリにチェックを入れてみよう。

ネットワーク設定画面が表示されるので自分のネットワーク構成にあった設定する。

今回使用したのはFedora 13 64bit

SPICEインストール

Fedora 13にした理由はyumパッケージが用意されてるからなんだw

# wget -P /etc/yum.repos.d/ http://spice-space.org/download/spice.repo\\
# rpm --import http://spice-space.org/download/RPM-GPG-KEY-spice-fedora-12-x86_64\\
  ※Fedora 12 64bit用だけど大丈夫w
# yum install qemu-spice spice-server

ハードディスクの領域を確保する(10GBの領域を作る場合)
# qemu-img create -f qcow2 hdd.img 10G

isoイメージからインストールする
# /usr/libexec/qemu-spice -hda hdd.img -m 1024 -qxl 1 -spice port=5930,disable-ticketing -usb -usbdevice table -cdrom xp_pro.iso -boot d

もし、isoイメージが無ければ以下のコマンドで作成する事ができる
# dd if=/dev/cdrom of=isoファイル名

すでにイメージが作成されているなら以下のコマンドで実行できます
# /usr/libexec/qemu-spice -hda hdd.img -m 1024 -qxl 1 -spice port=5930,disable-ticketing -usb -usbdevice table

ゲストOSにLinux(RedHat系?)をインストールしていれば以下のドライバを入れれば画像描画がよくなるそうだ
# yum install xorg-x11-drv-qxl

Windowsの場合は以下からダウンロードできる
http://www.spice-space.org/download/stable/windows_binaries_0_4.zip

Windowsクライアント

以下からダウンロードする
http://www.spice-space.org/download/binaries/spice-client-win32-0.6.0.zip

解凍したら実行しやすいところにコピーすりゃいいんだけど、コマンドプロンプトにドラッグアンドドロップするのならどこでもいいw

C:\spicec.exe -h 192.168.1.150 -p 5930

ところが・・・

libcelt_0_5_1.dllがないんじゃこりゃ!!と怒られる(--;

http://www.spice-space.org/download/unstable/spice_libs_win32_unstable.zipをダウンロードしてきて解凍したらlibcelt_0_5_1.dllをSPICEと同じフォルダにいれる。

再度実行したらSPICEクライアントが開きます。

もし、つながらない場合はサーバー側のファイアーウォールかクライアント側のファイアーウォールを停止してください。

ゲストOSのネットワーク設定

このままだとゲストOSから外部へは繋がらない。
どうやらKVMはブリッジモードにするにはいろいろと手間らしい(--;

まずはネットワークマネージャーを止めてネットワークを起動する。

# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

まずはbr0を作成しよう # cd /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DNS1=192.168.1.1
IPADDR=192.168.1.150
NETMASK=255.255.255.0
ONBOOT=yes
DELAY=0

次にeth0を修正する
# cd /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
HWADDR=XX:XX:XX:XX:XX:XX
ONBOOT=yes
BRIDGE=br0

この設定を保存した瞬間にSSHで接続してたら切れちゃうかもしれない(^^;

もしネットワークが切れたらコンソールから以下のコマンドを実行する

# service network restart

iptablesを設定してゲストOSからホストOSに接続できるようにする

# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
# service iptables save
# service iptables restart
# sysctl -p /etc/sysctl.conf

libvirtdをリロードする
# service libvirtd reload

以下のコマンドでブリッジモードが設定されているか確認ができる

# brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.0022190602a0       no              eth0
virbr0          8000.000000000000       yes

つぎにqemuで使えるようにするスクリプトを作成
# vi /etc/qemu-ifup

#!/bin/sh
/sbin/ifconfig $1 0.0.0.0 promisc up
/usr/sbin/brctl addif br0 $1
sleep 2

さぁ~ここまで来たらあと一息、ゲストOSを再び起動させよう

# /usr/libexec/qemu-spice -hda /usr/local/src/xppro.img -m 1024 -qxl 1 -spice port=5930,disable-ticketing -usb -usbdevice table -net nic,macaddr=10:10:10:10:10:10 -net tap,ifname=tap1,script=/etc/qemu-ifup

複数起動する場合は、macaddrをユニークなアドレスに変更するのと、tap1をta2などに変更して立ち上げる。
忘れてた!!試してないけど、起動ポートも変更してやる必要あるんじゃないかな

これもスクリプトにしとけばいいか(^^;