News

LXCFS 4.0.7 リリースのお知らせ

8th of January 2021

はじめに

LXCFS チームが LXCFS 4.0.7 のリリースをお知らせします!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 7 回目のバグフィックスリリースです。

バグ修正

このリリースで対応、修正された主な項目は次のとおりです:

  • スワップの振る舞いの一貫性(READMEに記載)

コミットの全リストは次の通りです(翻訳なし):

  • meminfo: show host swap values when no limit or equal limits are set
  • README: clarify SWAP
  • cgroups: Add get_memory_swappiness
  • swap: Fix usage reporting
  • swap: Only report usage when swappiness is 0
  • swap: Tweak meminfo logic
  • swap: Make /proc/swaps match /proc/meminfo
  • swap: Remove now unused variable
  • docs: fix simple typo, throuh -> through

Support and upgrade

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.6 LTS リリースのお知らせ

19th of October 2020

はじめに

LXCFS チームが LXCFS 4.0.6 のリリースをお知らせします!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 6 回目のバグフィックスリリースです。

バグ修正

このリリースで対応、修正された主な項目は次のとおりです:

  • fuse3 サポートの追加
  • 新しいカーネルの diskstats フィールドに対する更新
  • いくつかのビルドの問題を修正

コミットの全リストは次の通りです(翻訳なし):

  • fix epoll create socket error message
  • Add support for fuse3
  • Fix get_min_memlimit() on non-glibc
  • Update options passed to fuse_main
  • rename fuse_compat.h to avoid conflict with system header
  • Set the file size to 4k
  • diskstats: support new fields in 4.18+ kernels

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.5 LTS リリースのお知らせ

3rd of August 2020

はじめに

LXCFS チームは LXCFS 4.0.5 のリリースをお知らせします!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 5 回目のバグフィックスリリースです。

バグ修正

このリリースで修正された主な項目は次のとおりです:

  • memsw が有効でないホスト上のスワップの値が正しくなかった問題を修正しました
  • ビルドの問題をいくつか修正しました

コミットの全リストは次のとおりです(翻訳なし):

  • proc_fuse: provide host values when kernel does not support swap accounting
  • bindings: update terminology
  • cgroups: update terminology
  • cgroups: replace leftover reference to legacy terms
  • bindings: provide lxcfs_clone() as wrapper around lxcfs_raw_clone()
  • .travis: use RTLD_NOW for tests
  • proc_fuse: remove unused variable
  • fix type mismatch

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.4 LTS リリースのお知らせ

18th of June 2020

はじめに

LXCFS チームは LXCFS 4.0.4 のリリースをお知らせします!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 4 回目のバグフィックスリリースです。

バグ修正

このリリースで修正された主な項目は次のとおりです:

  • 内部キャッシュの修正(大きくパフォーマンスが向上します)
  • 多数のメモリーリークの修正(特にロードアベレージトラッキング部分)
  • swap 使用量ロジックの変更

コミットの全リストは次のとおりです(翻訳なし):

  • proc_fuse: silence error when we find no memlimit
  • sysfs: cpuinfo: show cgroup cpuset value
  • sysfs_fuse: remove logically dead code
  • Fix https://github.com/lxc/lxcfs/issues/404
  • coverity: Use build custom build script
  • bindings: fix init pid hashing
  • bindings: make opts pointer const
  • bindings: use brackets to make logic clearer
  • bindings: cleanup cache locking
  • bindings: cleanup init pid verification
  • cpuview: fix /proc/stat virtualization
  • bindings: s/get_init_pid_for_task()/scm_init_pid()/g
  • proc_loadavg: don't leak getline() memory in calc_pid()
  • proc_loadavg: ensure pointer is NULL when passing to calc_pid()
  • proc_loadavg: don't leak getline() memory
  • proc_loadavg: replace malloc() with asprintf() in calc_pid()
  • macro: use ISO C compatible typeof
  • proc_loadavg(): use strdup() in calc_pid()
  • proc_loadavg: simplify calc_pid()
  • bindings: wipe initpid cache on library reload
  • bindings: avoid dynamic stack allocations in clone()
  • lxcfs: free opts on lxcfs binary exit
  • proc_fuse: use zalloc()
  • proc_loadavg: use must_* alloc helpers
  • proc_loadavg: remove dummy variable
  • proc_loadavg: avoid needless memory allocation
  • proc_fuse: move get_reaper_busy() down
  • proc_fuse: cleanup proc_uptime_read() a little
  • utils: don't leak fds in in_same_namespace()
  • proc_fuse: improve swap calculation a little
  • proc_fuse: don't cause invalid swap values
  • proc_fuse: cap swap to global values
  • proc_cpuview: tweak cpuacct.percpu_usage fallback
  • proc_fuse: more swap tweaks
  • proc_cpuview: cleanup new_proc_stat_node()
  • proc_cpuview: use more descriptive labels in add_proc_stat_node()
  • proc_cpuview: reduce variable scope in cpuview_free_head()
  • proc_cpuview: cleanup add_proc_stat_node()
  • proc_cpuview: use correct comment style
  • proc_cpuview: clean up expand_proc_stat_node()
  • proc_cpuview: clean up prune_proc_stat_list()
  • proc_cpuview: clean up find_or_create_proc_stat_node()
  • proc_cpuview: cleanup add_cpu_usage()
  • proc_cpuview: cleanup read_cpu_cfs_param()
  • proc_cpuview: fix exact_cpu_count()
  • proc_cpuview: fix max_cpu_count()
  • proc_cpuview: cleanup cpuview_proc_stat()
  • proc_cpuview: cleanup cpuview_init_head()

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.3 LTS リリースのお知らせ

17th of April 2020

はじめに

LXCFS チームは LXCFS 4.0.3 のリリースをお知らせできてとてもうれしいです!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 3 回目のバグフィックスリリースです。

バグ修正

このリリースでは 4.0.04.0.14.0.2 リリース後に報告された問題を修正しています。主なものは次の通りです:

  • Coverity スキャンで検出された問題をいくつか修正しました
  • meminfo フィールドの問題をいくつか修正しました
  • オーバーフローを防ぐために SWAP の計算ロジックを修正しました

コミットの全リストは次の通りです(翻訳なし):

  • Include : in matching of lines in /proc/meminfo
  • relax init pid store locking a bit
  • travis: enable coverity integration
  • memory_utils: make it easier for Coverity
  • .travis: fix coverity
  • cgroup_fuse: do not double-close
  • lxcfs: remove fl.* prefix
  • cgroup_fuse: s/clone/lxcfs_clone/g
  • bindings: do not falsely return
  • cgroup_fuse: be cautios when dereferencing d->controller
  • lxcfs: don't cause a uaf
  • utils: fix recv_creds()
  • bindings: use zalloc()
  • cgroups: more cgroup2 fun
  • tests: correctly skip readdir test
  • cgroups: please Coverity
  • cgroups: simplify cgroup_walkup_to_root()
  • proc_fuse: improve swap calculation

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.2 LTS リリースのお知らせ

7th of April 2020

はじめに

LXCFS チームは LXCFS 4.0.2 のリリースをお知らせできてとてもうれしいです!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の 2 回目のバグフィックスリリースです。

バグ修正

このリリースでは LXCFS 4.0.0LXCFS 4.0.1 リリース後に報告された問題を修正しています。

  • メモリ仮想化に関する問題の修正(swap に関する報告)
  • ディストリビューションのパッケージを作成する際のテストの問題の修正

The full list of commits is available below:

  • proc_fuse: improve /proc/meminfo
  • proc_fuse: memory virtualization improvements
  • proc_fuse: improve /proc/uptime virtualization
  • tree-wide: add and use syscall_numbers.h
  • proc_fuse: fix swap calculations
  • tests: Handle different lib paths

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable のバグフィックスリリースでは、バグとセキュリティに関する問題に対する修正のみが行われますので、常に安全です。最新のバグフィックスリリースの状態を維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0.1 LTS リリースのお知らせ

19th of March 2020

はじめに

LXCFS チームは LXCFS 4.0.1 のリリースをお知らせできることをうれしく思います!

これは 2025 年 6 月までサポートされる LXCFS 4.0 の最初のバグフィックスリリースです。

バグ修正

このリリースでは 4.0.0 リリース 直後に報告された多数の問題が修正されています。修正のハイライトは次の通りです:

  • cgroup v2 システムでの CPU ビュー(CFS)
  • cgroup v2 での正しくない meminfo
  • いくつかの Linux ディストリビューションでビルドが失敗する
  • CWD に到達できない場合のアップグレードのクラッシュ
  • ホストの値を表示するフォールバックメカニズムを含む、アップグレードロジックの堅牢化
  • 32bit システムでの正しくない meminfo
  • いくつかの仮想 cgroupfs ファイルにアクセスする際のクラッシュ
  • テストの改良

コミットの完全なリストは次の通りです(翻訳なし):

  • proc_cpuview: add minimal support for unified cgroup layout
  • proc_fuse: fix meminfo with unified cgroup layout
  • configure: add -Wvla and -std=gnu11
  • tree-wide: add missing O_CLOEXEC
  • bindings: handle current working directory on upgrade
  • tree-wide: mark lxcfs fuse ops
  • bindings: make constructor failures non-fatal
  • liblxcfs: handle broken upgrade gracefully
  • usage: Fix cfs help
  • usage: Fix lxcfs description
  • proc_fuse: port to uint64_t
  • tree-wide: use {u}int64_t types
  • bindings: allow users to switch between virtualization and non-virtualization mode
  • test_proc: add SIGUSR2 virtualization switch tests
  • proc_fuse: remove unused variable
  • test_sigusr2: improve tests
  • bindings: introduce set_signal_handler
  • cgroup_fuse: fix cgroupfs virtualization needed on non-cgns systems
  • tree-wide: memory utils improvements
  • tree-wide: fix dot_or_empty()
  • cgroups: remove unused function
  • utils: shut up compiler
  • proc_loadvg: fixes
  • proc_cpuview: fix compiler warning
  • tree-wide: add and use must_make_path_relative()
  • tree-wide: remove is_relative() and use must_make_path_relative()
  • cgroup_fuse: rework is_child_cgroup()
  • cgroup_fuse: rework cgfs_get_key()
  • cgroup_fuse: rework cgfs_create()
  • cgroup_fuse: rework cgfs_remove()
  • cgroup_fuse: rework cgfs_chmod_file()
  • cgroup_fuse: rework cgfs_chown_file()
  • cgroup_fuse: rework open_pids_file()
  • cgroup_fuse: rework cgfs_set_value()
  • cgroup_fuse: rework cgfs_iterate_cgroup()
  • cgroup_utils: remove dot_or_empty()
  • tests: Silence build output
  • cgroup_fuse: actually make asz check mean something

サポートとアップグレード

LXCFS 4.0 ブランチは 2025 年 6 月までサポートされます。 stable に対するバグ修正リリースにはバグ修正とセキュリティ問題の修正のみが含まれ常に安全ですので、最新のバグ修正リリースを維持し、実行することをおすすめします。

ダウンロード

LXCFS 4.0 LTS リリースのお知らせ

6th of March 2020

はじめに

LXCFS チームは LXCFS 4.0.0 のリリースをお知らせできることをうれしく思います!

これは LXCFS 3.0.0 リリース以来、2 年に渡る作業の結果であり、LXCFS プロジェクトにとって 3 つめの LTS リリースとなります。このリリースは 2025 年 6 月までサポートされます。

主な変更点

リポジトリの再構成

LXCFS リポジトリは完全に再構成されました。LXCFS 4.0 までは、すべての機能が単一のファイル内に納められていました。これは、LXCFS が非常に小さな機能から成っていたために長期間うまく機能していました。長い年月をかけて、LXCFS はさまざまな新しい機能を追加し、コンテナでシステムのさまざまなものを仮想化する方法を大きく改善してきました。これは、もはや単一ファイルによるアプローチは実現できなくなっていることを表していました。

LXCFS 4.0 で、さまざまな広範囲の仮想化機能を、共通のソースディレクトリー以下の分割されたファイルに移動しました。これにより、ビルドシステムにもさまざまな変更が必要になりました。私たちは autotools ビルドスイートを使い続けてきましたが、LXCFS のビルド方法にも大きな変更が必要になりました。もっとも明らかな変更は、コンパイルされたバイナリーがトップレベルのディレクトリーからソースディレクトリー配下に生成されるようになったことです。LXCFS パッケージを作成しているディストリビューションでは、パッケージツールにこの変更を認識させる必要があるかもしれません。

cgroup2: 新しい単一 cgroup 階層のサポート

LXCFS の仮想化機能の多くは cgroup を中心に構成されています。すなわち、cgroup はシステムリソースへのアクセスを提供する様々なファイルが表示するコンテナ固有の値を計算するのに使われているということです。これまでは、LXCFS は cgroup v1(レガシーな cgroup)階層をもとにした仮想化のみをサポートしてきました。多くのシステムはゆっくりと cgroup v2(単一 cgroup)階層に移行するので、LXCFS を拡張して、可能な限り cgroup v2 階層を元にした同じ仮想化機能を提供するようにしました。

この「可能な限り」という言葉は強調する必要があります。現時点で、cgroup v2 階層の現在の実装にもとづいて仮想化できないさまざまな細かい機能があります。これは upstream のカーネルの cgroup v2 機能が成長するにつれて変わるかもしれません。しかし、カーネル開発者が cgroup v2 が cgroup v1 と完全に同じ機能を提供する意図を持っておらず保証もしていないため、完全に同じ機能を提供できることは保証できません。しかし、私たちは LXCFS が提供するものと同等の機能を提供できることを願っています。

パッチを送る際には、cgroup v1 と v2 階層が新機能を同様にサポートすることを確認し、可能な限り両方の実装を一度に提供していただけるとありがたいです。

cpu shares にもとづく /proc/cpuinfo/proc/stat の CPU 情報出力

procfs 内の cpuinfostat が提供する CPU 情報が cpu shares にもとづいて提供されるようになりました。これにより、通常の仮想化よりも詳細で正確な情報を提供できますが、LXCFS でより多くの状態を保持する必要があります。全機能を使用するには、cgroup v1(レガシー)の cpucpuacct コントローラーがシステム上で有効になっている必要があります。

cgroup v2(単一階層)が使われた場合は、非常におおまかな近似値のみしか提供できません。cgroup v2 の cpu コントローラーが、cgroup v1 の cpucpuacct コントローラーの機能の一部をサポートすることが期待されます。この機能は --enable-cfs フラグを LXCFS に与えると有効になります。

コマンドラインオプションの改良

LXCFS は時間の経過とともに機能を拡張しており、拡張した機能はコマンドラインオプションとして設定されてきました。オプションの中には長いもしくは短いオプションがなく、使い勝手は少し時代遅れに感じるかもしれませんでした。LXCFS 4.0 でコマンドラインの使い方が更新されました。次のオプションが使えます:

Usage: lxcfs <directory>

lxcfs set up fuse- and cgroup-based virtualizing filesystem

Options :
  -d, --debug          Run lxcfs with debugging enabled
  --disable-cfs        Disable cpu virtualization via cpu shares
  -f, --foreground     Run lxcfs in the foreground
  -n, --help           Print help
  -l, --enable-loadavg Enable loadavg virtualization
  -o                   Options to pass directly through fuse
  -p, --pidfile=FILE   Path to use for storing lxcfs pid
                       Default pidfile is /run/lxcfs.pid
  -u, --disable-swap   Disable swap virtualization
  -v, --version        Print lxcfs version
  --enable-pidfd       Use pidfd for process tracking

/proc/loadavg の仮想化

LXCFS が loadavg 出力を仮想化できるようになりました。--enable-loadavg を指定すると、LXCFS は cgroup にもとづいたコンテナ固有の /proc/loadavg を提供します。

pidfd がサポートするプロセスの追跡

LXCFS は様々な値を正しく仮想化するために、コンテナごとの init プロセスを追跡し続ける必要があります。これは、コンテナのプロセスが死んだときに検出する必要があるということです。この検出では、長い間 Linux を悩ませてきた通常の PID の再利用の競合を疑うことになります。

新しいカーネルでは、PID 再利用の問題を解決する pidfd の考え方が提供されています。LXCFS を --enable-pidfd 付きで起動した場合、カーネルがサポートしている場合はこの機能を使います。これによりプロセス追跡の信頼性が保証されます。

コンパイラベースのハードニング

長い間、LXC はコンパイラーベースのハードニングをサポートしてきました。つまり、コンパイラーやリンカーがサポートしている場合は、既知のコンパイラーやリンカーのオプションが自動的に有効になります。現時点でサポートされているハードニングフラグは次の通りです:

-Wimplicit-fallthrough=5
-Wcast-align
-Wstrict-prototypes
-fno-strict-aliasing
-fstack-clash-protection
-fstack-protector-strong
--param=ssp-buffer-size=4
-g
--mcet -fcf-protection
-Werror=implicit-function-declaration
-Wlogical-op
-Wmissing-include-dirs
-Wold-style-definition
-Winit-self
-Wunused-but-set-variable
-Wfloat-equal
-Wsuggest-attribute=noreturn
-Werror=return-type
-Werror=incompatible-pointer-types
-Wformat=2
-Wshadow
-Wendif-labels
-Werror=overflow
-fdiagnostics-show-option
-Werror=shift-count-overflow
-Werror=shift-overflow=2
-Wdate-time
-Wnested-externs
-fasynchronous-unwind-tables
-pipe
-fexceptions
-fvisibility=hidden

コンパイラによる最小限のリソースマネージメント

これまで長い間 LXC で行ってきたのと同様に、LXCFS でも clanggcc のクリーンアップマクロ機能を利用して、メモリーやファイルディスクリプターのようなリソースの自動クリーニングを提供します。LXC では、これによりリソースリークの数が大幅に減少しました。LXCFS でも同様になることが期待できます。

サポートする全アーキテクチャーで完全に有効なテストスイート

LXCFS 4.0 リリースに先立って、サポートする全アーキテクチャーでテストスイートを有効にしました。これにより、今後はより厳格なテストを行うことが保証されます。

サポートとアップグレード

LXCFS 4.0.0 は 2025 年の 6 月までサポートされる最新の LTS リリースです。LXCFS 3.0 はメンテナンスのペースが低頻度になり、重要なバグフィックスとセキュリティアップデートのみ提供されるようになります。

すべての LXCFS ユーザーは 4.0 ブランチへアップデートすることを強く推奨します。

ダウンロード

コントリビューター

LXCFS 4.0.0 は 15 名のコントリビューターによりリリースされました。

LXCFS 3.1.2 リリースのお知らせ

24th of July 2019

はじめに

LXCFS チームは LXCFS 3.1.2 のリリースをお知らせできることをうれしく思います!

我々は、3.1.0 のリリースを 2 度やり直さなければなりませんでした。最初は、問題のある Makefile が原因で問題のあるリリース tarball が生成されてしまいました。そして、LXCFS 3.0.4 のユーザーの一部に影響するアップグレードの問題を修正するために再びリリースを行いました。

新機能

/proc/stat にコンテナごとの CPU 使用率表示を追加

新しい LXCFS では、cpuacct cgroup を使って、コンテナごとの実際の CPU 使用率を仮想化して表示できるようになりました。

ロードアベレージ(loadavg)の仮想化

LXCFS は /proc/loadavg の仮想化をサポートしました。cpu cgroup の情報に基づいて、コンテナに対する実際のロードアベレージを計算します。

cpu クォータに基づく /proc/cpuinfo 内の CPU 表示

LXCFS は cpu cgroup と cpu cgroup で計算されたクォータを使って /proc/cpuinfo 内に表示される CPU を仮想化します。

/proc/meminfo 出力内に存在する swap の無効化が可能に

/proc/meminfo 内の swap 情報の出力を無効化するために -u オプションを追加しました。

/sys/devices/system/cpu/online の仮想化

LXCFS は部分的に sysfs も仮想化するようになりました。仮想化された最初のファイルは、コンテナごとの /sys/devices/system/cpu/online ファイルです。

/proc/uptime へのより高い精度の出力が可能に

/proc/uptime の計算がより正しく行われるようになりました。

FUSE の nonempty オプションのサポート

lxcfs バイナリーに -d オプションを指定できるようになりました。このオプションを指定すると、lxcfs はマウントポイントが空でなくても起動します。

バグ修正(翻訳なし)

  • bindings: ensure that opts is non NULL
  • Makefile: Fix typo in file name
  • remove unused functions
  • sys dirs do not need to implement 'read' method
  • lxcfs: coding style update
  • config: Adds RPM spec file.
  • config: Adds reload mode to sysvinit and systemd scripts.
  • bindings: prevent NULL pointer dereference
  • stat: check for out of bound access to cpuacct usage data
  • calc_hash(): do not apply modulo LOAD_SIZE
  • tests: include missing sys/sysmacros.h header
  • bindings: prevent double free
  • bindings: better logging for write_string()
  • meminfo: set ShmemHugePages and ShmemPmdMapped to zero
  • bindings: fix memory leak in calc_pid()
  • travis: fix .travis.yml
  • bindings: fix memory leak in proc_loadavg_read()

サポートとアップグレード

LXCFS 3.1.2 は、LXCFS の次のフィーチャーリリースまでのみサポートされます。 長期のサポートが必要な場合、2023 年 6 月までサポートされる LXCFS 3.0.4 LTS を使うと良いでしょう。

ダウンロード

LXCFS 3.0.4 リリースのお知らせ

21st of June 2019

はじめに

LXCFS チームは LXCFS 3.0.4 のリリースをお知らせできることをうれしく思います!

Stable のバグフィックスリリースですので、大きな変更はありません。バグ修正と細かい使い勝手の改良にフォーカスしています。

バグ修正と改良点

  • cpuinfo: CPU quota ベースで CPU の情報を扱うようになりました
  • bindings: NULL ポインタへの参照を防ぐようにしました
  • config: sysvinit と systemd スクリプトにリロードモードを追加しました
  • hooks: lxc.mount.hook スクリプトに --skip-cgroup-mounts フラグを追加しました
  • config: RPM spec ファイルを追加しました

サポートとアップグレード

LXCFS 3.0.4 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXCFS 3.0.3 リリースのお知らせ

22nd of November 2018

はじめに

LXCFS チームは LXCFS 3.0.3 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

バグ修正と改良点

  • bindings: 二重解放(double free)しないようにしました
  • tests: sys/sysmacros.h ヘッダの include が欠けていたのを修正しました

サポートとアップグレード

LXCFS 3.0.3 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXCFS 3.0.2 リリースのお知らせ

21st of August 2018

はじめに

LXCFS チームは LXCFS 3.0.2 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

バグ修正と改良点

  • travis: coverity に対応しました
  • travis: .travis.yml を修正しました
  • meminfo: memory.stat から cgroup のパラメーター shmem を読むようにしました
  • meminfo: ShmemHugePages と ShmemPmdMapped を 0 に設定するようにしました
  • bindings: write_string() のロギングを改良しました

サポートとアップグレード

LXCFS 3.0.2 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXCFS 3.0.1 リリースのお知らせ

5th of June 2018

はじめに

LXCFS チームは LXCFS 3.0.1 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのためのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

変更点

  • FUSE マウントオプションとして noempty が使えるようになりました

サポートとアップグレード

LXCFS 3.0.1 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXCFS 3.0.0 リリースのお知らせ

26th of March 2018

はじめに

LXCFS チームは LXCFS 3.0.0 のリリースをお知らせできることをうれしく思います!

このリリースは、LXCFS 2.0.0 のリリース以来 2 年に渡る作業の結果で、 LXCFS プロジェクトの 2 つ目の LTS リリースとなります。そして 2023 年 6 月までサポートされます。

主な変更点

LXCFS 3.0.0 でのもっとも重要な変更点は、PAM モジュールである libpam-cgfs が削除されたことです。このモジュールは、LXCFS から LXC に移動しました。

これにより、LXCFS の使用の有無に関わらず、すべての LXC ユーザが PAM モジュールを使えるようになります。また、LXCFS 以上に LXC とコードが共有できます。このような理由から LXC へと移されました。

LXCFS 3.0.0 に含まれるその他のすべての変更はバグフィックスであり、これらの変更は LXCFS 2.0 ブランチにすでにバックポートされているか、今後バックポートされる予定です。つまり非常に軽いアップデートです。

サポートとアップグレード

LXCFS 3.0.0 は 2023 年 6 月までサポートされ、最新の LTS リリースとなります。LXCFS 2.0 はより遅いペースでのメンテナンスとなり、致命的なバグ修正とセキュリティ修正のみなされます。

LXCFS チームは、すべての LXCFS ユーザに対して、3.0 ブランチへのアップグレードの計画を立てることを強くおすすめします。libpam-cgfs が LXC へ移動しますので、LXC 3.0 へのアップグレードと同時に LXCFS 3.0 へのアップグレードを行うと、libpam-cgfs の機能を引き続き使えるでしょう。

ダウンロード

コントリビューター

LXCFS 3.0.0 は、全部で 16 名の貢献によりリリースされました。

LXCFS 2.0.8 リリースのお知らせ

19th of October 2017

このリリースは LXCFS 2.0 の 8 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • bindings: 単一階層構造向けのマウントポイントを追加しました
  • bindings: proc//stat 経由で uptime を計算するようになりました
  • bindings: ps コマンドで発生したリグレッションのため、'btime' の仮想化を元に戻しました
  • doc: README を更新しました
  • init: sysvinit の LSB ヘッダに Should-Start/Stop として cgroupfs-mount を追加しました
  • lib: liblxcfs.so のための dlopen の共通のフォールバックを追加しました
  • lib: liblxcfs のインストールディレクトリを ${libdir}/lxcfs に修正しました
  • pam: -c オプションに 'all' が指定できるようになりました
  • pam: 単一階層構造用の cgroup.procs ファイルを chown するようにしました
  • pam: 単一階層構造を検出した時はレポートする (訳注: true を返す) ようにしました
  • tests: 正しくない比較を修正しました
  • uptime: 連続した読みとり時の問題を修正しました

LXCFS 2.0.7 リリースのお知らせ

11th of May 2017

このリリースは LXCFS 2.0 の 7 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • 使われていない変数を削除しました
  • cg_rmdir 関数内の変数 (next) の NULL チェックを行うようにしました
  • /proc/stat 内の 'btime' フィールドの仮想化を行うようにしました
  • cleanup: 返り値が bool と宣言された関数で NULL の代わりに false を返すようにしました
  • memswlimit の値を SwapTotal で制限するようにしました
  • pam_cgfs: 意味のない変数割り当てを削除しました (訳注: プラス、char のサイズをちゃんと sizeof で求めるように修正されている)
  • pam_cgfs: created 変数を直接返すようにしました (訳注: 無駄な条件判断処理を削除しました)
  • pam_cgfs: **p が NULL にならないように確認するようにしました (訳注: ポインタを使う前に NULL チェックを入れました)
  • bindings: int の領域が必要? なら sizeof(int) を呼ぼう! (訳注: int の配列の領域を確保するのに sizeof(int*) としていたのを修正)
  • pam_cgfs: trim() 関数を安全にしました (訳注: 文字列の長さが1以上のときだけtrimするようにした)
  • pam_cgfs: cgv2_init() が失敗したときにエラーで抜けるようにしました
  • pam_cgfs: 意味のない変数割り当てを削除しました (訳注: CPU 数を求める際の意味のない条件文を削除)
  • bindings: guest_nice を実装しました (訳注: /proc/stat の cpu 行の guest_nice 値)
  • bindings: 確保するバッファサイズを増やしました

LXCFS 2.0.6 リリースのお知らせ

23rd of January 2017

このリリースは LXCFS 2.0 の 6 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • ネストした cgroup の swap の値を修正しました
  • tests: ppc64el 上のテストを修正しました
  • memory.stat からの誤った値の読み取りを修正しました

LXCFS 2.0.5 リリースのお知らせ

23rd of November 2016

このリリースは LXCFS 2.0 の 5 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • systemd 用の unit ファイルに "Documentation" キーと値を追加しました
  • bindings: O_WRONLY ファイルへの getattr を許可しました
  • bindings: 意味のないチェックを削除しました
  • /proc/meminfo 内の Active と Inactive の項目のコロン (":") が抜けていたので修正しました
  • macro: 共有のマクロ用のヘッダを追加しました
  • pam_cgfs: 再実装して、cgroupfs v2 をサポートしました
  • pam_cgfs: すでに自身に所属する cgroup がある場合は再利用するようになりました
  • pam_cgfs: cgroupfs v1 の cpuset コントローラを扱うようになりました
  • pam_cgfs: ログ出力を改良しました
  • cgroups: isolcpus ファイルが存在しない場合の処理を追加しました

LXCFS 2.0.4 リリースのお知らせ

5th of October 2016

このリリースは LXCFS 2.0 の 4 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • lxcfs の chroot に対する test_reload の修正を行いました 
  • meminfo 情報のさらなる仮想化を行いました
  • pam: cgroup 作成時の競合を修正しました
  • meminfo: swapfree にマイナスの値を表示しないようにしました
  • bindings: デバッグの改良を行いました
  • bindings: fstatat(), unlinkat() で openat の fd を使うようにしました
  • bindings: エラー時にオープンしている fd をクローズするようにしました
  • bindings: /var/lib/lxcfs にアクセス権を与えました
  • bindings: /var/lib/lxcfs/cgroup へアクセスできるようにしました
  • bindings: /var/lib/lxcfs/proc へアクセスできるようにしました
  • lxcfs, bindings: "." と ".." をディレクトリエントリとして表示するようにしました
  • lxcfs: /var/lib/lxcfs のファイルシステムの振る舞いを改良しました
  • bindings: コード内のホワイトスペースの調整 (機能的な変更はなし)
  • bindings: pick_controller_from_path() 内で errno を設定するようにしました
  • bindings: より一貫性のあるファイルシステムの振る舞いにしました
  • PLD Linux のサポートを追加しました
  • 使用法の出力に argv[0] を使わないようにしました
  • bindings: cgroup のチェックを元に戻しました (訳注: cgroup ディレクトリの権限のチェックを外した)
  • bindings: errno を設定するように改良しました
  • bindings: rmdir の振る舞いをより一貫性のあるものにしました
  • libtool: liblxcfs に lxcfs をリンクしないようにしました
  • bindings, lxcfs: デバッグを改良しました
  • bindings: デバッグマクロを修正しました
  • autotools: -avoid-version を追加しました
  • bindings: 元のワーキングディレクトリに戻るようにしました
  • bindings: ファイルシステムのタイプをチェックする関数を追加しました
  • bindings: 非依存性 (agnostic) なネーミングにしました (訳注: 関数名の変更)
  • bindings: ramfs 上では chroot() を使うようにしました
  • bindings: statfs の f_type の型が様々なコンパイラできちんと使えるように修正しました
  • bindings: pivot_enter() 関数が自身内で全て完結するようにしました (訳注: 引数を無くした)

LXCFS 2.0.3 リリースのお知らせ

15th of August 2016

このリリースは LXCFS 2.0 の 3 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • /proc/self/cgroup の空のエントリをスキップするようにしました (訳注: cgroup v2 をマウントした際に発生するエラーを回避)
  • cgroup のマウントに対して、最小限の chroot とマウント名前空間を設定し、使用するようにしました
  • コードのクリーンアップと小規模なリファクタリングを行いました

LXCFS 2.0.2 リリースのお知らせ

28th of June 2016

このリリースは LXCFS の 2 回目のバグフィックスリリースです。

このリリースには以下のバグ修正が含まれます:

  • --with-pamdir=none を指定した場合は pam/ 以下をビルドしないようにしました
  • libpam_cgfs: ユーザが /user.slice/user-$uid.slice 以下にいる場合は、新しいパスを作成しなくなりました

LXCFS 2.0.1 リリースのお知らせ

16th of May 2016

これは LXCFS 2.0.0 に対する最初のバグフィックスとなるリリースです。

このリリースでは以下のバグが修正されています。

  • s390x での cpuinfo の修正
  • diskstats で cgroup の値として recursive ファイルを使うようにしました
  • コントローラのディレクトリへの traversal (rx) が可能になりました
  • do_mount_cgroups() が失敗時にクラッシュするのを修正しました
  • パスを処理する関数のエラーハンドリングを改良しました
  • スワップの計算でのエラーハンドリングを改良しました

LXCFS 2.0.0 リリースのお知らせ

31st of March 2016

  • lxcfs バージョン 2.0.0 をリリースできてハッピーです!

LXCFS 2.0.0.rc9 リリースのお知らせ

29th of March 2016

  • このリリースは 2.0.0 に対する第 9 のリリース候補版です
  • fuse file info を複数回解放する可能性からの保護を行いました

LXCFS 2.0.0.rc8 リリースのお知らせ

21st of March 2016

  • このリリースは 2.0.0 に対する第 8 のリリース候補版です
  • lxcfs cgfsng ドライバで使う access(2) を実装しました

LXCFS 2.0.0.rc7 リリースのお知らせ

21st of March 2016

  • このリリースは 2.0.0 に対する第 7 のリリース候補版です
  • このリリースには、upstart job と (LXC 用の) マウントフックに関する重要な修正がいくつか含まれています
  • リロードハンドラを async セーフにしました。また、posix 互換に関する修正をいくつか行いました

LXCFS 2.0.0.rc6 リリースのお知らせ

17th of March 2016

  • このリリースは 2.0.0 に対する第 6 のリリース候補版です
  • 14.04 で使用する systemd の cgroup 命名方式のサポートを追加しました

LXCFS 2.0.0.rc5 リリースのお知らせ

14th of March 2016

  • このリリースは 2.0.0 に対する第 5 のリリース候補版です
  • 例えば 'sudo' が実行された場合に、libpam-cgfs が systemd の cgroup を誤って chown する問題を修正しました

LXCFS 2.0.0.rc4 リリースのお知らせ

11th of March 2016

  • このリリースは 2.0.0 に対する第 4 のリリース候補版です
  • Stéphane Graber 氏によるマウントフックと upstart ジョブファイルの修正

LXCFS 2.0.0.rc3 リリースのお知らせ

7th of March 2016

  • このリリースは 2.0.0 に対する第 3 のリリース候補版です
  • このリリースでは以下を修正しました
    • コンテナで /sys/fs/cgroup がマウントされていないときに、lxcfs の proc ファイル群がマウントされない問題
    • まれに free -m の出力が壊れる問題

LXCFS 2.0.0.rc2 リリースのお知らせ

24th of February 2016

  • このリリースは 2.0.0 に対する第 2 のリリース候補版です
  • 前のリリースでリリース tarball に欠けていた config/ ディレクトリを追加しました

LXCFS 2.0.0.rc1 リリースのお知らせ

24th of February 2016

  • このリリースは 2.0.0 に対する最初のリリース候補版です
  • sysvinit、upstart、systemd に対する起動スクリプトを追加しました

LXCFS 2.0.0.beta2 リリースのお知らせ

19th of February 2016

  • アンマウントされたコントローラがある場合に PAM モジュールが引き起こすハングアップのバグを修正しました
  • setns 後の pid を fork する際、不完全な glibc の assert に起因する、まれではあるが起こりうるバグを回避するようにしました。

LXCFS 2.0.0.beta1 リリースのお知らせ

9th of February 2016

変更点

  • /proc/swaps がサポートされました
  • 要求があれば systemd cgroup の作成と chown を行うようになりました
  • liblxcfs.so を /usr/lib/lxcfs へ移動しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.18 リリースのお知らせ

4th of February 2016

変更点

  • ほとんどの場合で lxcfs の再起動がサポートされました。ほとんどの機能をライブラリに移動させたためです。このライブラリは SIGUSR1 でリロードされます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.17 リリースのお知らせ

26th of January 2016

変更点

  • PAM モジュールを追加しました
  • ユーザが自身の init のすべての cgroup ディレクトリを見ることができるようになりました
  • タスク自身の制限でなく、タスクの init プロセスの cgroup の使用量+制限を使うようになりました
  • スワップの計算の改良を行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.16 リリースのお知らせ

8th of January 2016

バグフィックスのためのリリースです。

  • 先の 2 つのリリースにあるメモリアロケーションに関するバグの修正のためのリリースです

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.14 リリースのお知らせ

7th of January 2016

変更点

  • cgroup namespace を LXC が扱えるかどうかをチェックするようになりました
  • libnih からの移行時に混入したいくつかの重要なバグの修正を行いました
  • swap 使用量のレポートの修正を行いました
  • root cgroup 内のタスクに対する過度な可視性のチェックを修正しました
  • テストの多数のバグ修正を行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.15 リリースのお知らせ

7th of January 2016

バグフィックスのためのリリースです。

  • 深刻なメモリアロケーションに関するバグの修正を行いました。このバグがあるので 0.14 は使用に適しません

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.13 リリースのお知らせ

25th of November 2015

バグフィックスのためのリリースです。

  • 新しいバージョンの systemd ベースのコンテナが起動しないバグをいくつか修正しました。加えて他にもバグを修正しています。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.12 リリースのお知らせ

17th of November 2015

LXCFS の重大なバグとセキュリティの修正を行いました。

  • 重大な CVE を 2 つ修正しました
  • 今まで cgmanager 経由で cgroup を扱っていましたが、cgroup ファイルシステムをネイティヴに使うように変更しました。これにより、劇的にスピードアップしました
  • uptime, cpuinfo, meminfo の仮想化でいくつかの改良を行いました
  • コードのコミットの際のテストが有効になりました
  • FUSE オプションでキャッシングの時間を 0.5 秒に設定しました。LXC がリブートする前にも 0.5 秒待つように stop hook で設定するようにしました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.11 リリースのお知らせ

26th of October 2015

変更点

  • libnih と dbus から glib と GDbus の使用に切り替えました。glib と GDbus はスレッドセーフですので、デフォルトでスレッディングが有効になります。
  • 自身を init.scope 内に配置する新しい systemd に対応しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.10 リリースのお知らせ

3rd of September 2015

バグフィックスのためのリリースです。

  • libnih のスレッドサポートを検出し、使える場合は使います
  • DBus 関連のスレッディングの問題を修正しました
  • memory cgroup がない場合も動作ができるようになりました
  • libdbus と使う場合に起こる問題のため、全体的にスレッディングを止めました
  • より systemd に適応するために lxcfs マウントを調整しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.9 リリースのお知らせ

3rd of June 2015

バグフィックスのためのリリースです。

  • lxcfs のクラッシュを修正する Michael McCracken 氏からの修正をマージしました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.8 リリースのお知らせ

7th of May 2015

変更点

  • (FUSE の) direct_io モードを使うようになりました
  • ファイルとディレクトリのオープンにキャッシュを使うようになり、読み書きの際に再利用するようになりました
  • (特に Threading に) 必要な FUSE のオプションを強制するようになりました
  • man ページのエラーをいくつか修正しました
  • cpuset の扱いを修正しました
  • lxc のフックの修正をいくつか行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.7 リリースのお知らせ

3rd of April 2015

バグリックスのリリースです。

  • /proc/diskstatsに対応しました
  • ハングアップの原因となるバグをいくつか修正しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.6 リリースのお知らせ

16th of February 2015

バグフィックスのリリースです。

  • メモリとファイルディスクリプタのリークをいくつか修正しました
  • /proc/stat の cpu-average の修正を行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.5 リリースのお知らせ

28th of January 2015

バグフィックスのリリースです。

このバージョンでは cgmanager のバージョンの検出のために configure.ac を調整しました。また、LXC のフックも調整しました。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.4 リリースのお知らせ

23rd of January 2015

このリリースは LXCFS の重大なバグとセキュリティホールの修正のためのアップデートです。

LXCFS のこれまでのバージョンは、/ が rshared でマウントされているシステム (systemd のデフォルトです) で /proc/uptime が読まれたとき、ホストの /proc をコンテナの /proc で置き換えていました。

このリリースはバグの修正のみを含みます。lxcfsを現在使っている場合はいかなる場合でもすぐに新しいバージョンに置き換えるべきです。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.3 リリースのお知らせ

21st of January 2015

このリリースは LXC 設定ファイルのインストールパスに関する修正をのぞいて 0.2 と同じです。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.2 リリースのお知らせ

20th of January 2015

パッケージの作成がしやすいリリースの LXCFS 0.2 がリリースされました。

このリリースでは、LXC 1.1 で自動的に全てのコンテナに lxcfs が自動的に有効になる /usr/share/lxcfs/lxc.mount.hook と /usr/share/lxc/common.conf.d/00-lxcfs.conf をインストールするようになりました。

さらに、このリリースではテストに対する修正もいくつか含まれています。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXCFS 0.1 リリースのお知らせ

9th of January 2015

これは LXCFS の初めてのリリースです。

LXCFS は CGManager を通して書き込める cgroupfs 風のインターフェースと、cgroup を元にした cpuinfo、meminfo、stat、uptime といった proc ファイルを提供します。

LXCFS の最初のリリースですので、まだ非常に未完成である可能性があり、まだ production 環境で使用しないでください。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。