====== 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などに変更して立ち上げる。\\
忘れてた!!試してないけど、起動ポートも変更してやる必要あるんじゃないかな
これもスクリプトにしとけばいいか(^^;