LXC 1.1.0 リリースのお知らせ¶
2015/01/30
LXC チームは LXC 1.1 のリリースを発表しました。
このリリースは 2016 年 1 月か、その時点で LXC の次のリリース (1.2) がなされていない場合は、次のリリースの 2 ヶ月後までサポートされます。
プロダクション環境での長期間のサポートが必要であれば、2019 年 4 月まで安定版リリースとしてサポートされる LXC 1.0 を使い続けることを強くおすすめします。
一方でそこまでの厳密さが不要であれば、LXC 1.1 を cgmanager 0.35 以降、lxcfs 0.5 以降と一緒に使うこともおすすめです。
注目の新機能 ¶
LXC 1.1 は CRIU を使ったコンテナのチェックポイント・リストアの機能を新たに導入しました。
コンテナ内の init として systemd の実行のサポートも大きな改良点です。lxcfs と最新の systemd の組み合わせで、特権、非特権の両方のコンテナが動作するでしょう。
init スクリプトが更新されました。これにより LXC を使ういかなるシステムでも、DHCP サーバと DNS サーバ機能を dnsmasq によって提供する lxcbr0 ブリッジがデフォルトとなり、同じように動くようになりました。現時点で systemd、sysvinit、upstart 向けの init スクリプトを提供しています。
このリリースは 84 名の開発者からのコントリビュートによりリリースできました。
新機能¶
- lxc-autostart: 新たに -A/--ignore-auto オプションを追加しました (すべてのコンテナを起動できます)
- lxc-ls: 新たな出力項目 "interface" を追加しました
- centos/fedora: root_password_expired 環境変数を追加しました (デフォルト yes)
- oracle: (メディアからを含めて) 任意の yum リポジトリからインストールできるようになりました
- oracle: Oracle Linux 7 のサポートを追加しました
- lxc-ls: --fancy オプションなしで group によるコンテナのフィルタリングができるようになりました
- core: qemu-img 経由での qcow2 のサポートを追加しました
- lxc-autostart: NULL グループのサポートを追加しました (lxc.start.auto は 1 に設定されているがグループには属していないコンテナ)
- core: コメントと同様に展開されないバージョンの設定のトラッキング
- opensuse: 共通設定を使うようになりました
- core: lxc.cap.keep に none を設定できるようになりました
- archlinux: 共通設定を使うようになりました
- ubuntu: 利用可能な場合、btrfs の subvolume とスナップショットを使うようになりました
- seccomp: 全てのディストリビューションでデフォルトの seccomp プロファイルを設定するようになりました (危険なシステムコールをブロックします)
- core: Openvswitch のブリッジのサポート
- core: lxc.environment のサポートの追加 (特別な環境変数の追加)
- init: systemd, upstart, sysvinit スクリプトで同一のサポートの追加
- core: CRIU を使ったコンテナのチェックポイントとリストアのサポート
- core: 新しい aa_allow_incomplete フラグの追加。部分的な AppArmor のサポートでコンテナの起動が可能になりました
- lxc-top: デフォルトでCバイナリ版がインストールされるようになりました (以前は lua スクリプトでした)
- API: attach_interface と detach_interface が追加されました
- lxc-device: デフォルトで C バイナリ版がインストールされるようになりました
- lxc-config: lxc.cgroup.(use|pattern) が表示できるようになりました
- core: 新たに lxc.init_cmd オプションを追加しました。デフォルトの init コマンドである /sbin/init を上書きします
- lxc-start-ephemeral: 新たに --cdir オプションを追加しました (copy-on-write マウント)。
- opensuse: 複数のリリースのサポート
- core: lxc.include でディレクトリの include が可能になりました (全ての .conf 拡張子を持つファイルを include します)
- core: 新たに common.conf.d ディレクトリが利用可能になりました。ユーザ、パッケージが全てのコンテナに反映させたい設定を追加できるようになりました
- core: LXC が container_ttys 環境変数を設定するようになりました
動作の変更点¶
- lxc-create で -t オプションが必須になりました。以前のようにテンプレートなしの場合は "none" を使用します
- スナップショットがコンテナのディレクトリ内に保存されるようになりました
- PER_LINUX32 に対する lxc.arch は i686 を出力するようになりました
- lxc-execute: コンテナ内に lxc-init が見つからない場合はコンテナ内にバインドマウントされるようになりました
- lxc-start: デーモン起動がデフォルトになりました
- core: pivot_\root は lxc.pivotdir を使わずに行われるようになりました。この結果、このオプションは非推奨となり、将来は削除される予定です
- Core: デフォルトでデーモンモードで起動するようになったので、close-all-fds もデフォルトになりました
- core: lxc.autodev は作りかえられました。/dev/lxc は使いません。代わりにコンテナの /dev 上で直接 tmpfs をマウントします。非特権コンテナ上でも動くようになりました
- core: lxc.autodev がデフォルトで有効になりました (lxc.autodev=1)
- core: lxc.kmsg はデフォルトで無効になりました (lxc.kmsg=0)
- core: clear_config_item はリスト (lxc_list) のみに影響するようになりました。他では set_config_item を使用してください
- templates: 全てのテンプレートで lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed を使うようになりました (安全なデフォルト設定です)
ダウンロード¶
このリリースの tarball は ダウンロードページ から取得できます。そして、各ディストリビューションが長期サポートの 1.0 リリースの採用を続ける決定をしない場合は、すぐに LXC 1.1.0 のパッケージをリリースするでしょう。
個々の変更点に興味がある場合、そして開発の履歴を見たい場合、master ブランチは GitHub にあります。