News

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

1st of April 2024

はじめに

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

このリリースは、LXCFS 5.0 リリース以来 2 年の取り組みの結果で、LXCFS プロジェクトの 5 つ目の LTS リリースです。

ハイライト

新しい --enable-cgroup オプション

LXCFS は、コンテナ向けに、仮想的な cgroupfs (v1) ツリーを提供できます。
この機能は cgroup namespace がカーネルに実装される前に実装されており、その機能がないカーネルでも、同様の機能を提供できます。

今では、サポートされているほとんどの Linux ディストリビューションは、すべて cgroup namespace をサポートするカーネルを提供しており、新しいディストリビューションのほとんどは cgroup v1 から(v2 に)切り替わっているので、この機能をデフォルトで有効にし続ける意味がありません。そのため、この機能は新しい起動時の引数である --enable-cgroup で有効にするようになりました。

CPU の /sys/devices/system/cpu での非マスク化

LXCFS 5.0 は、呼び出し元の cpuset で許可されている CPU をもとに、/sys/devices/system/cpu のエントリーをフィルタリングするロジックが存在しました。この動作は、オフラインの CPU であっても /sys/devices/system/cpu に表示される通常のシステムの動作を実際には反映していません。

このため、LXCFS 6.0 ではこのロジックを逆転し、オンライン・オフラインの CPU のリストを最新に保つようになっただけで、個々の CPU ディレクトリーにはすべてアクセス可能なままです。

すべての変更点

すべてのChangeLogを見る
  • lxcfs_fuse: ensure lxcfs_fuse_compat.h is included after including fuse header
  • tree-wide: remove struct stat argument from DIR_FILLER and make it static inline
  • tree-wide: ensure that file information is set even with legacy fuse
  • tests: add test for issue #522
  • meson: Include documentation
  • workflows: disable documentation generation
  • sysfs: Don't incorrectly filter entries
  • tests: Fix sysfs test
  • utils: add and use opathdir()
  • sysfs_fuse: fix indendation
  • sysfs_fuse: generate file info for cpu entries as well
  • meson: bump fuse version
  • github: add fuse3 tests
  • meson: handle fuse versions with buggy dt_type handling
  • init/meson: Use libdir instead of hardcoded /lib path
  • Query systemd system unit dir.
  • support explicit fuse version choice
  • github: Re-organize Github Actions
  • tests: Skip sysfs test on older FUSE versions
  • init: Fix install paths for sysvinit and openrc
  • meson: Support multiple init systems
  • meson: Syntax nit
  • proc_fuse: extra space in /proc/stat
  • util: remove doubled comment
  • sysfs: correct file size of /sys/devices/system/cpu/online.
  • sysfs: cleanup sys_devices_system_cpu_online_getsize
  • cgroup v2: return cpuset cpu count when no quota is set
  • re-initialize library after reload
  • replace opathdir with opendir_flags
  • github: Restrict permissions
  • github: Validate target branch
  • fix reinitialization with fuse3
  • set oom_score_adj of lxcfs process to -1000
  • init: respect --prefix when installing systemd unit files
  • Fix build on ia64
  • doc: guide for mount /sys/devices/system/cpu in docker demo
  • utils: add safe_uint32() helper
  • macro.h: add strnprintf macro
  • utils: add get_task_personality helper
  • cpuview: paththrough personality when reading cpuinfo
  • cpuview: fix possible use-after-free in find_proc_stat_node
  • github: make coverity workflow work with meson
  • README: how to build with sanitizers
  • cpuset_parse: check input string in cpuset_nexttok
  • github: enable ASAN and UBSAN during PR tests
  • lxcfs: explicitly enable direct_IO for libfuse3
  • lxcfs: fix copypaste typo in error message
  • /proc/stat: render physical cpu number in non-view mode
  • sysfs: don't mask cpus in /sys/devices/system/cpu
  • lxcfs: handle NULL path in lxcfs_releasedir/lxcfs_release
  • cpuview: fix ABBA deadlock in find_proc_stat_node
  • build: tools: keep trailing newline in jinja2 renderer
  • Revert "init: respect --prefix when installing systemd unit files"
  • proc: fix /proc/diskstats output format
  • github: start using ubuntu-22.04 image
  • github: remove ubuntu-18.04
  • tests: adapt for cgroup2
  • cpuview: resolve cpu cgroup path separately from cpuset the cgroup path is different in kubernetes with containerd runtime.
  • lxcfs: preparation for FUSE_INTERRUPT support
  • lxcfs: add fuse interruptible locks
  • cpuview: start to use interruptible lock primitives
  • github: Update for main branch
  • proc_loadavg: fix ABBA deadlock between read/refresh
  • proc: Fix /proc/cpuinfo not respecting personality
  • proc_loadavg.c: Fix incompatible integer to pointer conversion
  • cgroups: cleanup and remove unused cgroup2_devices code
  • loadavg: make cleanup of start_loadavg
  • cpuview: pass a correct argument to lxcfs_debug
  • lxcfs: Add startup message
  • proc: fix MemAvailable in /proc/meminfo to exclude tmpfs files
  • systemd: mkdir -p the target mount dir
  • typofix: fix incorrect printing in lxcfs help interface
  • Add macro pivot&bpf for loongarch64
  • lxc.mount.hook: Skip cpu sysfs logic if missing target
  • sysfs: forbid write()
  • lxcfs: introduce new option --enable-cgroup
  • tests: use --enable-cgroup for tests
  • github: workaround CI issue with ASAN
  • Revert "github: workaround CI issue with ASAN"
  • proc_fuse: Fix get_swap_info typo swtotal == 0 -> *swtotal == 0
  • proc: Fix swap handling for cgroups v2 (can_use_swap)
  • proc: Fix swap handling for cgroups v2 (zero limits)
  • cgroup_utils: explicitly check for cgroup2 FDs in cgroup_walkup_to_root

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

LXCFS 6.0 は 2029 年 6 月までサポートされる、最新の LTS リリースです。LXCFS 5.0 は、より遅いメンテナンスペースに変更され、重要なバグ修正とセキュリティ更新のみが提供されます。

LXCFS のユーザーはすべて、6.0 ブランチへのアップグレードを計画することを強くおすすめします。

今後のリリースについて

ユーザーが新しい LXCFS の機能をより簡単に利用できるように、今後は LTS ではないリリースの作成を開始することにしました。計画している間隔は 6 ヶ月ごとで、LXCFS 6.1 は 10 月に予定されています。

この LTS ではないリリースでは、安定性、サポート、セキュリティメンテナンスに関する LTS の保証は受けられず、次のリリースが出るまでのみサポートされます。

本番環境のユーザーは LTS リリースを利用し続けたいと思うでしょう。

ダウンロード

コントリビューター

LXCFS 6.0 は、合計 25 名のコントリビューターによってリリースしました。

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

25th of July 2023

はじめに

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

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

バグ修正

このリリースのいくつかのハイライトは次の通りです:

  • /proc/diskstats の出力フォーマットの修正
  • containerd で使用する場合の cpuset のパストラッキングの問題を修正

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

すべてのChangeLogを見る
  • build: tools: keep trailing newline in jinja2 renderer
  • Revert "init: respect --prefix when installing systemd unit files"
  • proc: fix /proc/diskstats output format
  • github: start using ubuntu-22.04 image
  • github: remove ubuntu-18.04
  • tests: adapt for cgroup2
  • cpuview: resolve cpu cgroup path separately from cpuset the cgroup path is different in kubernetes with containerd runtime.
  • github: Update for main branch

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

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

ダウンロード

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

17th of January 2023

はじめに

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

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

バグ修正

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

  • FUSE3 で実行した場合の VFS キャッシングの問題を修正
  • /sys/devices/system/cpu フィルタリングの動作に関する問題をいくつか修正
  • ia64 でのビルドの問題を修正
  • /proc/cpuinfo のパーソナリティをまたがるコンテンツを適切に扱うようにした

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

すべてのChangeLogを見る
  • set oom_score_adj of lxcfs process to -1000
  • init: respect --prefix when installing systemd unit files
  • Fix build on ia64
  • doc: guide for mount /sys/devices/system/cpu in docker demo
  • utils: add safe_uint32() helper
  • macro.h: add strnprintf macro
  • utils: add get_task_personality helper
  • cpuview: paththrough personality when reading cpuinfo
  • cpuview: fix possible use-after-free in find_proc_stat_node
  • github: make coverity workflow work with meson
  • README: how to build with sanitizers
  • cpuset_parse: check input string in cpuset_nexttok
  • github: enable ASAN and UBSAN during PR tests
  • lxcfs: explicitly enable direct_IO for libfuse3
  • lxcfs: fix copypaste typo in error message
  • /proc/stat: render physical cpu number in non-view mode
  • sysfs: don't mask cpus in /sys/devices/system/cpu
  • lxcfs: handle NULL path in lxcfs_releasedir/lxcfs_release
  • cpuview: fix ABBA deadlock in find_proc_stat_nod

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

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

ダウンロード

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

9th of August 2022

はじめに

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

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

FUSE3 と同時に使用した場合に LXCFS 5.0.1 がクラッシュする重大な問題を修正しました。

バグ修正

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

  • FUSE3 上でロード・リロード中にクラッシュする問題の修正

コミットの全リストは次の通りです:

すべてのChangeLogを見る
  • fuse3 での再初期化時の問題の修正

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

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

ダウンロード

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

26th of July 2022

はじめに

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

これは 2027 年 6 月までサポートされる LXCFS 5.0 の初めてのバグフィックスリリースです。

バグ修正

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

  • meson 移行に関連したさまざまな修正
  • FUSE2 での /sys/devices/system/cpu の扱いの修正
  • /proc/stat のフォーマットの問題の修正
  • CPU 制限をしない cgroup を扱う際の cgroup2 の問題の修正
  • ライブラリーのリロードロジックの修正

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

すべてのChangeLogを見る
  • lxcfs_fuse: ensure lxcfs_fuse_compat.h is included after including fuse header
  • tree-wide: remove struct stat argument from DIR_FILLER and make it static inline
  • tree-wide: ensure that file information is set even with legacy fuse
  • tests: add test for issue #522
  • meson: Include documentation
  • workflows: disable documentation generation
  • sysfs: Don't incorrectly filter entries
  • tests: Fix sysfs test
  • utils: add and use opathdir()
  • sysfs_fuse: fix indendation
  • sysfs_fuse: generate file info for cpu entries as well
  • meson: bump fuse version
  • github: add fuse3 tests
  • meson: handle fuse versions with buggy dt_type handling
  • init/meson: Use libdir instead of hardcoded /lib path
  • Query systemd system unit dir.
  • support explicit fuse version choice
  • github: Re-organize Github Actions
  • tests: Skip sysfs test on older FUSE versions
  • init: Fix install paths for sysvinit and openrc
  • meson: Support multiple init systems
  • meson: Syntax nit
  • proc_fuse: extra space in /proc/stat
  • util: remove doubled comment
  • sysfs: correct file size of /sys/devices/system/cpu/online.
  • sysfs: cleanup sys_devices_system_cpu_online_getsize
  • cgroup v2: return cpuset cpu count when no quota is set
  • re-initialize library after reload
  • replace opathdir with opendir_flags
  • github: Restrict permissions
  • github: Validate target branch

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

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

ダウンロード

Older news