TenForward

技術ブログ。はてなダイアリーから移転しました

virt-manager の LXC サポート (2)

間が開きましたが virt-manager の LXC サポート (1) - TenForwardの日記 の第2弾.libvirt 上で lxc の OS コンテナを動かすお話です.あまり中身がないエントリなのは前回と同じ.

こんな環境上で実験しています.

Ubuntu 11.10 (Oneiric Ocelot)

こちらは簡単でした.

コンテナイメージを作成するのは,他にインストールした Ubuntu 11.10 上で lxc-create を使って行いました.これを tar.gz で固めて Plamo Linux 上に持ってきました.

# lxc-create -n ubuntu01 -t ubuntu

とりあえずコレで libvirt でない,lxc toolkit (lxc.sourceforge.net) の方では,問題なくコンテナは起動します.(もちろん config とかネットワークの設定とか細かい所は調整して)

これを確認した所で,おもむろに virt-manager のウィザードを使ってコンテナを作成します.起動の前に,libvirt のコンソールから root でログイン可能なように以下をコンテナ内の /etc/securetty に追加します(起動後に ssh でアクセスして書き換えても OK).

# echo "pts/0" > /var/lib/lxc/ubuntu01/rootfs/etc/securetty

これで,virt-manager で電源オンすると,無事起動します.


Fedora 15

こちらも別途インストールした fedora15 を準備して lxc-create でコンテナを作成しましたが,lxc-fedora というテンプレートが,開発版についてもまだ lxc-create 経由ではうまく動かないようになっていますので,OpenVZ の precreated なテンプレートを取得して,

を参考にコンテナを作成した方が簡単な気がします.これを virt-manager のウィザードを使ってコンテナを作成し,起動すると,こちらも普通に起動します.


問題点

いくつか問題もあります.

  • Ubuntu11.10, Fedora15 両方共,コンテナ上でシャットダウンすると,なぜかホストが突然死します.仕方がないので今のところ「強制的にシャットダウン」しています.ホストが Plamo Linux だから起きている可能性もあるので,もう少し調べます.
  • Fedora15 のコンテナに関しては lxc toolkit の方は起動に成功していません.起動自体はしているようですが,systemd が動いているだけで,他の起動に処理が移っていないようです.systemd を全く知らないので,ちょっとわかりませんが,また勉強しよう...
    # lxc-start -n fedora15 -d
    # lxc-ps -n fedora15
    CONTAINER PID TTY TIME CMD
    fedora15 17894 ? 00:00:00 systemd
  • Ubuntu11.10の方は以下のようなログが延々 /var/log/auth.log に出ます.upstart の定義のうち tty2,3,4 の定義を消せば出ないと思いますが,lxc toolkit の場合は普通に udev が(?) tty2 以降を作ってくれているのに対し,libvirt はこの辺りの仕組みが違うのかなと... (libvirt を知らない ^^;)
    Nov  1 11:35:11 localhost getty[2453]: /dev/tty2: No such file or directory
    Nov 1 11:35:11 localhost getty[2454]: /dev/tty4: No such file or directory
    Nov 1 11:35:11 localhost getty[2455]: /dev/tty3: No such file or directory

シャットダウンの問題は多分 Ubuntu 上でやったりすると問題ないような気がするのでまた確かめることにしよう...

(追記 2011/11/02) Ubuntu 11.10 上で Ubuntu 11.10 を動かしてみた.

同様に lxc-create で Ubuntu コンテナを作成し,virt-manager から起動したら,同じく起動しました.

  • shutdown も普通に可能です.ただ,virt-manager 側で shutdown 完了が検出出来ないのか,電源強制オフしてあげないと,再度電源オンボタンが有効になりません.
  • on Plamoの時出ていた tty{2,3,4} のエラーも出ていません.

Why?? ^^;