TenForward

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

LXC 3.0 新機能の予習

ここ最近、新バージョンリリース時と、ドキュメント(man pages)に更新があったときに翻訳する以外、新しい機能について全く調査していませんでした。

なんとなく見てると LXC 3.0 が近いようですので、どう変わるのかをまとめてみます。

cgroup ドライバの整理

これまで LXC には cgroup 関連のドライバが 3 つ含まれていました。

  • cgfs
  • cgmanager
  • cgfsng

cgfs ドライバはもっとも古くからあるドライバです。今や cgroup は /sys/fs/cgroup にマウントされますが、昔は特にマウントする場所は決まっておらず、/dev/cgroup にマウントしたり、/cgroup にマウントしたりしていました。どこにマウントされるかわからないファイルシステムを検出するロジックなど、今や不要になったロジックが多く含まれています。

cgfs ドライバの機能は cgfsng でカバーされていますので、cgfs ドライバは削除されるようです。

cgmanager ドライバは Ubuntu 14.04 のあたりに導入された cgmanager を使って cgroup を管理するためのドライバでした。カーネルに cgroup namespace が導入された今となっては、cgmanager は不要で、すでに廃止予定のプロジェクトになっていますので、cgmanager ドライバも廃止されます。

テンプレートの整理

LXC 2.x までは、様々なディストリビューション用のコンテナイメージを作成するために、シェルスクリプトで書かれたテンプレートが各ディストリビューションごとに用意されていました。

LXC 3.0 では、ディストリビューション依存のテンプレートが削除されるようです。ただ、バサッと切り捨てるのではなく、lxc-templatesというプロジェクトに分離されました。

LXC プロジェクト配下には、新たに distrobuilder という、イメージを作成するための Go 言語によるツールの開発が始まっています。

distrobuilder

distrobuilder は、

という機能を持っているようです。

現時点では、各ディストリビューションが準備している

  • alpine イメージ(alpine-minirootfs-*.tar.gz)
  • arch イメージ(archlinux-bootstrap-*-x86_64.tar.gz)
  • CentOS イメージ(iso イメージ?)
  • Ubuntu イメージ(ubuntu-base--base-.tar.gz)

を使用してイメージを作成する機能と、

  • debootstrap

を使用してイメージを作成する機能があるようです。

各種言語バインディングの分離

LXC のソースアーカイブに含まれていた、

は独立したリポジトリに分離されるようです。

pam_cgfs の LXC への移動

ユーザログイン時に、ユーザ用の cgroup を作成するための pam モジュールとして pam_cgfs が LXCFS で開発されていましたが、LXC 3.0 からは LXC ツリー配下で開発されるようです。

cgroup v2 サポート

cgroup v2 がサポートされたようです。


他にもあるでしょうけど、とりあえずこのあたりで。

参考