2016年6月28日火曜日

KVMその4(SPICE)

さて前回、KVMの画面描画にSPICEというプロトコル?が使えることは軽く書いた。

今回は実際に、SPICEプロトコルを使った画面の確認をしてみたいと思う。

SPICEは、RDPと同じように作業端末側から繋ぎに行く。そのための専用クライアントソフトがある。
手元のWindowsマシンで動くクライアントもある。
https://virt-manager.org/download/
この中の virt-viewer というエントリに、 Win x86 MSI/Win x64 MSI のそれぞれのリンクがあるので、手元のWindowsの32bit/64bitに併せてダウンロード、インストールしておこう。

--2016/07/19追記--
2016/06/30付で、virt-viewerの4.0がリリースされているようだが、これのWin x64版にはどうやらバグがある。(確認したのはWin x64版だけで、x86版にも同様にバグがあるかもしれない。)
一度画面描画された後、画面が更新されないというバグだ。ウィンドウを裏に隠してから、また表に出すと描画が更新されるが、毎回それをやらないといけない、というバグ。
そのため、再リリースされるまでは、3.1を使おう。
https://virt-manager.org/download/sources/virt-viewer/virt-viewer-x86-3.1.msi
https://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-3.1.msi
--2016/07/19追記ココまで--

作業端末にインストールが終わったら、さっそくaquariusにログインしよう…。と、言いたい所だが、F/W(ルータ)の外側からaquariusにログインする場合、sshトンネルを使ったリモートデスクトップその2の時と同じように、ポートフォワーディングの設定をしておこう。
SPICEは、使用するポート番号は特に決まっていないようなので、今回は暫定的に9001を使用する。
設定内容は以下の通り
  • ローカルのポート:9001
  • リッスン:127.0.0.1
  • リモート側ホスト:127.0.0.1
  • ポート:9001
ポートフォワードの設定が終わったら、今度こそaquariusにログインしよう。
ログインしたら、前回までと同様に、kvmを起動するが、spiceオプションを付けて起動する。
$ cd iscsivol/
$ kvm -machine type=q35 \
      -hda     test.img \
      -boot    c        \
      -m       512      \
      -cpu     host     \
      -smp     4,cores=2,threads=2,sockets=1 \
      -spice   port=9001,password=test &
(ちょっと長いため、改行を入れた。-machineオプション、-smpオプション、-cpuオプションは付けても付けなくてもいいぞ。)
今回は & 付きでバックグランド実行させている。そのため、プロンプトはすぐ戻ってきたはずだ。

この時点で今までだったら新しいウィンドウが立ち上がり、そこに仮想マシンの画面が表示されていたはずだ。
今回 spice オプションを付与したため、新しいウィンドウは立ち上がって無いはずだ。

ここで、先ほど作業用端末にインストールしたspiceクライアント(virt-viewer)を起動しよう。
プログラムの名前は「Remote Viewer」になっていると思う。

起動したら、以下のようなウィンドウが立ち上がってくるはずだ。

このウィンドウの「Connection Address」欄に、
spice://127.0.0.1:9001 と入力しよう。
#自宅内LANから接続している等、sshポートフォワードをしていない場合は、IPアドレスは aquarius のIPアドレスになるぞ。

入力が終わったら、上記画面で示したとおり「Connect」ボタンを押そう。

「Connect」ボタンを押したら、新しいウィンドウがオープンし、パスワードを入力するダイアログが表示されたはずだ。
(「Username」欄は入力出来ない状態だ。)

Password欄には、kvmを実行した時のpassword=の値を入力しよう。
先ほどのコマンドなら、test のはずだ。
右下の「OK」ボタンを押すと、ウィンドウサイズがリサイズされて、今までと同じようなログイン画面が出てきたはずだ。

今まで通りログインしてコマンド類を実行してみよう。
普通に使えることが分かるはずだ。

piscesをOS再起動しても、spiceクライアントがそのまま利用出来るのも確認しておこう。
(pisces) $ sudo shutdown -r now

また、今までの X を用いた画面転送では、画面がクローズする(右肩のXボタンを押す)と、ゲストOS(pisces)も停止してしまっていた。
spiceクライアントを利用している場合は、spiceクライアントが停止しても、ゲストOSは稼働したままだ。
再びspiceクライアントから接続すれば、作業が継続出来る。

但し、ホストOSである aquarius からpsを見ると、passwordも丸見えなので、扱いには気をつけよう。

kvmコマンドの-spiceオプションは他にも色々ある。今回はsshトンネルを通しているため、特に暗号化を行う必要は無い(sshトンネルで暗号化されている)が、TLS(Transport Socket Layer)も使える。いわゆるSSL暗号化と言うヤツだ。(微妙に違うが…)
この辺りも、少しずつ調査をして記録していきたい。(要するに、まだ理解していないってことだ…)

稼働確認等が終わったら、忘れないようにshutdownしておこう。
(pisces) $ sudo shutdown -h now
SPICEクライアントも終了してウィンドウがクローズされたはずだ。

今回はここまで。

0 件のコメント:

コメントを投稿