LXC
第三回勉強会アジェンダ案
- コンテナの基礎
- コンテナ概要
- メリット・デメリット
- Linux のコンテナ実装
- libvirt
- lxc
- lmctfy
- systemd
- lxc とりあえず使ってみる
- コンテナに使われる技術,要素
- cgroup
- namespace
- namespace デモ
- uts namespace
- network namespace + veth
- Linux カーネルとコンテナ
- LXC 1.0
1.0 新機能メモ (10月以降くらい)
- 大きな変更,新機能
- cgmanager サポート
- pre-build の rootfs をダウンロードして使用可能に
- 毎日,linuxcontainers.org のホスト上でビルドされる
- userns サポートに向けての変更
- userns の場合の設定ファイルの場所の定義とか
- デフォルトの LXCPATH: ~/.local/share/lxc
- デフォルトの config path: ~/.config/lxc/lxc.conf
- lxc-stop の動作の変更
- shutdown を指定した場合もタイムアウト値が有効になった.以前は永遠に待っていた.
- lxc-autostart 起動スクリプトで使用可能なプログラム
- config で自動起動を指定しておけば lxc-autostart を実行した時にコンテナ起動したり停止したりできる.
- API doc 追加
- テンプレート追加
- lxc-centos
- lxc-openmandriva
- lxc-plamo
- lxc-create で LVM の thinpool サポート
- lxc-checkpoint/restart の削除
- 小さな変更
- lxc-unshare で名前空間を指定した場合にそれぞれの名前空間に関係するパラメータ (ホスト名,I/F名等) を指定可能に.デーモン化が可能に.
- MAC Address のテンプレート化が可能に.毎回変えたい部分を “x” で 指定すれば置き換えてくれる.
- lxc.network.type のデフォルトは none → empty
- lxc-start で共有する既存の名前空間を指定できるようになった
- net, ipc, uts のみ
- lxc-info の出力の充実
- config にログファイル,レベルを指定可能に
アジェンダ案
- lxc 基礎 (濃い人多いので軽く)
- イマドキの環境での lxc
- centos
- ubuntu
- debian
- fedora
- plamo
- kernel 周辺最新情報
- namespace の進化
- cgroup の進化
- 未実装の機能
- lxc 最新情報
- 機能の変遷
- 1.0 に向けて
- その他
- 翻訳
- lxc-plamo
- lxc と systemd
- libvirt lxc
LXC 勉強会に向けたメモ
- LXC 1.0 に向けて
- 0.9 final release, plans for 1.0 and Linux Plumbers 2013 (lxc-devel ML)
- 追加されてるっぽい機能メモ
- zfs サポート (lxc-create)
- LXC 0.9.0
- LXC 0.8.0 でまだ困ること
- User Namespace 機能がないのでセキュリティ的にちょっと…
- Ubuntu は AppArmor でとりあえず対処
- Syslog, dmesg (printk)
- ベアメタルと同様に起動時に udev 系処理 (udevd 実行→ udevadm trigger→ udevadm settle みたいな) をやるとホスト側にデバイス再作成されたり初期化されたりやばい (のかな? 要調査)
- ここに書いてあるわ https://wiki.ubuntu.com/LxcSecurity
- Kernel
- Namespace
- 3.9 で NFS サーバが Network Namespace 対応に.コンテナ毎に NFS サーバ起動するとか → http://lwn.net/Articles/540994/
- mount namespace の quota サポート http://comments.gmane.org/gmane.linux.kernel.containers/23242
- cgroup
- マウントオプションがあるっぽいけど
- cgroup namespace (CGROUP_NS) は 3.0 辺りで削除された.
- 要調査
- lxc と systemd
- なんかおもしろそう
- lxc のバージョンによって lxc-checkconfig の出力が少しずつ違うから面白い
LXC 変遷
- 0.6.0 - 0.7.5 辺り
- 大体の基本的な機能が使える (単なる印象 ^^;)
- 0.8.0
- apparmor サポート
- lxc-create, lxc-clone で LVM サポート
- lxc-create, lxc-clone で btrfs サポート
- ネスト構造のコンテナ
- Arch Linux テンプレート
- ALT Linux テンプレート
- http://gihyo.jp/admin/serial/01/ubuntu-recipe/0226 (Ubuntu 12.04 の話)
- 0.9.0
- seccomp 対応
- ネットワークインターフェース down 時のスクリプト指定
- liblxc API 公開
- lxc-attach 改良
- attach する名前空間の検出、指定など
- 実行時の環境変数をクリアしたり維持したり指定可能に
- Python API 追加
- コンテナ起動時に各段階をフックして処理を行うことが可能に
- lxc-start-ephemeral コマンド追加
- oracle Linux テンプレート
- コンテナ起動直後に /dev を作成して最小限のデバイスを作成可能に (lxc.autodev)
- 一部コマンドを python で書き直し
- /var/lib/lxc などのハードコードされたパスの排除
- lua API 追加
- lxc-setcap, lxc-setuid 削除 (User namespace がもうすぐなので)
- 1.0 に向けて
- overlayfs 対応?
- lxc-monitor 改良.現在,同時に複数の lxc-monitor 起動すると問題が起きる?