2013年1月18日金曜日

仮想マトルーシュカ

ホストOSの上に仮想マシンをインストールしていつも思うことは、ホストOSの代わりに仮想マシンの機能だけに特化した軽量なOSってないのだろうかという事です。そんなことを思うのは、仮想マシンを動かすにあたり、ホストマシンの役割が良く解っていないからだと思います。OSはそもそもマシン上の限りあるハードウエアを効率よく利用するためのサービスを提供するものでしょうから、仮想マシンの機能を提供しようとした習慣にホストOSの機能が必要になるのかもしれません。浅薄な知識をベースに色々詮索しても、核心に迫っていくことはできなさそうなのでこれ位で止めておきます。

そんな仮想マシンのことを検索していたら、openvz とか lxc といった単語に出会いました。lxc は、linux 系のOSしかインストールできませんが、ホストOSの機能を積極的にシェアして動作する仕組みで、軽量、快速が特徴らしいです。思わず、virtualbox 上の LinuxMint でどんなものかを試してみることにしました。仮想マシンのマトルーシュカみたいで訳解りませんね。

導入はこのページを参照しましたが、思っていたよりずっと簡単でした。
$ sudo apt-get update
$ sudo apt-get install lxc
$ sudo lxc-create -t ubuntu -n test01
起動、終了も簡単ですが、なぜか lxc-shutdown、poweroff したあと、ロックして再起動できない場合がありました。とりあえず、現在は放置しています。
$ sudo lxc-start -n test01
$ sudo poweroff
ちょっと、使ってみた感じでは軽快なのですが、virtualbox や vmware のように画面が使える訳では無さそうです。ここのページによると、ホストのXを落とせば仮想環境のXを上げることができるようですが、同時に立ち上げることは無理の様です。(英語力がないので解釈間違ってるかもしれませんが。。)

そこで、window8 のリモートデスクトップで一瞬好印象だった xrdp 接続を試みてみました。xrdp サーバーと xubuntu-desktop を仮想マシン上にインストールし、ホストから remmina で接続してTEDを再生してみました。
$ sudo apt-get install xrdp
$ sudo apt-get install xubuntu-desktop
$ sudo apt-get install flashplugin-installer



virtualbox などより速い事を期待していたのですが、やはりリモートデスクトップはリモートデスクトップでした。さらに、linux の xrdp は、vnc の結果を変換して実現しているとどこかで見たような気がします。lxc は、VPS や AWS 上などで手軽にサーバー環境を構築することを目的としているようなので、そもそもやってることが見当違いな気もしてきます。

諦める前に、昔育ちな私としては一応Xクライアント機能での動作を試してみました。が、繋がりません。いつの間にか時代は変わり、セキュリティ上の理由から最近は、ssh 経由でこの機能を使うが一般的になっていたようです。
$ ssh -X user@10.xx.xx.xx firefox


これであれば、比較的スムーズに再生されました。しかし、音声が再生されないのと例のTEDの日本語字幕問題が残ってしまいました。ここまできたので、音声と字幕表示もクリアしておくことにしました。音声は、こちらを参考に設定したところ、呆気なく再生することが出来ました。

ホスト側
$ cd ~/.pulse
$ cp /etc/pulse/default.pa .
# 以下を追記
load-module module-native-protocol-tcp auth-ip-acl=192.168.xxx.xxx;
Lxc 側
$ cd ~/.pulse
$ cp /etc/pulse/client.pa .
# 以下を追記
default-server = 192.168.yyy.yyy
$ paplay test.wav

さてフォントですが、ホストマシンの truetype と比較して足りない以下のフォントを一つずつインストールしてみましたが、なぜか字幕表示されませんでした。/usr/share/fonts をホストから丸ごとコピーしたのち、/etc/fonts 以下の定義も同じにしても、結果は変わりませんでした。
naoki-mate truetype # diff a b
1d0
< abyssinica
4d2
< fonts-sil-abyssinica
12,13d9
< padauk
< sinhala
15d10
< tibetan-machine
19a15
> ttf-lyx
非常に残念ですが、従来からの解決方法を導入して今回は手仕舞いすることとしました。
$ sudo apt-get install ttf-kochi-mincho

しかし、ここまでトライしてみたものの、lxc は、起動時にエラーが多数は発生するのと、複数回の起動と停止を繰り返している内にロックして kill も出来なくなってしまったりと本体のlinuxに正式導入する気持ちにはなれませんでした。いつか、役立つ日がくることを願って lxc は終了することにしました。

0 件のコメント:

コメントを投稿