新闻

LXCFS 6.0.2 LTS 已发布

2024 年 9 月 17 日

介绍

LXCFS 团队很高兴地宣布发布 LXCFS 6.0.2!

这是 LXCFS 6.0 的第二个错误修复版本,它将支持到 2029 年 6 月。

变更

此版本的一些亮点包括

  • 修复在 musl 系统上构建 LXCFS(缺少包含文件)

完整的提交列表如下所示

详细的变更日志
  • 添加缺少的 linux/limits.h 包含文件

支持和升级

LXCFS 6.0 分支将支持到 2029 年 6 月。
只有错误修复和安全问题会被包含在稳定的错误修复版本中,因此始终安全且建议您保持更新并运行最新的错误修复版本。

下载

LXCFS 6.0.1 LTS 已发布

2024 年 6 月 26 日

介绍

LXCFS 团队很高兴地宣布发布 LXCFS 6.0.1!

这是 LXCFS 6.0 的第一个错误修复版本,它将支持到 2029 年 6 月。

变更

此版本的一些亮点包括

  • 支持运行多个 LXCFS 实例(--runtime-dir
  • 检测阻止读取进程个性的 Yama 策略的系统

完整的提交列表如下所示

详细的变更日志
  • github:添加 lxcfs 实时升级兼容性测试
  • proc:在尝试获取个性之前检查系统安全策略
  • lxcfs/bindings:重构 RUNTIME_PATH,以便它可以在启动时被覆盖
  • lxcfs/bindings:添加一个用于覆盖运行时目录的标志
  • github:将 coverity 测试更新为使用 Ubuntu 22.04
  • README.md:添加有关如何收集核心转储的信息
  • github:添加 ISSUE_TEMPLATE.md
  • 测试:针对多个运行时路径进行更新

支持和升级

LXCFS 6.0 分支将支持到 2029 年 6 月。
只有错误修复和安全问题会被包含在稳定的错误修复版本中,因此始终安全且建议您保持更新并运行最新的错误修复版本。

下载

LXCFS 6.0 LTS 已发布

2024 年 4 月 1 日

介绍

LXCFS 团队很高兴地宣布发布 LXCFS 6.0 LTS!

这是自 LXCFS 5.0 发布以来两年工作的成果,是 LXCFS 项目的第五个 LTS 版本。此版本将支持到 2029 年 6 月。

亮点

新的 --enable-cgroup 选项

LXCFS 可以为容器提供虚拟 cgroupfs(v1)树。
此功能是在内核中实现 cgroup 命名空间之前实现的,有效地允许在缺少该功能的内核上提供类似的体验。

由于大多数受支持的 Linux 发行版现在都具有支持 cgroup 命名空间的内核,并且大多数新的发行版甚至已经从 cgroupv1 切换,因此默认情况下启用此功能没有意义。因此,它现在已移至新的启动参数 --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 目录仍然可以访问。

完整的变更日志

变更日志
  • lxcfs_fuse:确保在包含 fuse 标头之后包含 lxcfs_fuse_compat.h
  • 树级:从 DIR_FILLER 中删除 struct stat 参数并使其成为静态内联
  • 树级:确保即使使用旧版 fuse 也设置文件信息
  • 测试:添加对问题 #522 的测试
  • meson:包含文档
  • 工作流程:禁用文档生成
  • sysfs:不要错误地过滤条目
  • 测试:修复 sysfs 测试
  • 工具:添加并使用 opathdir()
  • sysfs_fuse:修复缩进
  • sysfs_fuse:为 cpu 生成文件信息以及条目
  • meson:提升 fuse 版本
  • github:添加 fuse3 测试
  • meson:处理具有错误 dt_type 处理的 fuse 版本
  • init/meson:使用 libdir 而不是硬编码的 /lib 路径
  • 查询 systemd system unit 目录。
  • 支持明确的 fuse 版本选择
  • github:重新组织 Github Actions
  • 测试:在较旧的 FUSE 版本上跳过 sysfs 测试
  • init:修复 sysvinit 和 openrc 的安装路径
  • meson:支持多个 init 系统
  • meson:语法细微差别
  • proc_fuse:/proc/stat 中的额外空格
  • 工具:删除重复的注释
  • sysfs:更正 /sys/devices/system/cpu/online 的文件大小。
  • sysfs:清理 sys_devices_system_cpu_online_getsize
  • cgroup v2:在没有设置配额时返回 cpuset cpu 计数
  • 在重新加载后重新初始化库
  • 用 opendir_flags 替换 opathdir
  • github:限制权限
  • github:验证目标分支
  • 修复与 fuse3 的重新初始化
  • 将 lxcfs 进程的 oom_score_adj 设置为 -1000
  • init:在安装 systemd unit 文件时尊重 --prefix
  • 修复 ia64 上的构建
  • doc:在 docker 演示中引导安装 /sys/devices/system/cpu
  • 工具:添加 safe_uint32() 帮助器
  • macro.h:添加 strnprintf 宏
  • 工具:添加 get_task_personality 帮助器
  • cpuview:在读取 cpuinfo 时传递个性
  • cpuview:修复 find_proc_stat_node 中可能发生的释放后使用问题
  • github:使 coverity 工作流程适用于 meson
  • README:如何使用 sanitizers 构建
  • cpuset_parse:在 cpuset_nexttok 中检查输入字符串
  • github:在 PR 测试期间启用 ASAN 和 UBSAN
  • lxcfs:为 libfuse3 明确启用 direct_IO
  • lxcfs:修复错误消息中的复制粘贴错误
  • /proc/stat:在非视图模式下呈现物理 cpu 编号
  • sysfs:不要在 /sys/devices/system/cpu 中屏蔽 cpu
  • lxcfs:在 lxcfs_releasedir/lxcfs_release 中处理 NULL 路径
  • cpuview:修复 find_proc_stat_node 中的 ABBA 死锁
  • 构建:工具:在 jinja2 渲染器中保留尾随换行符
  • 恢复“init:在安装 systemd unit 文件时尊重 --prefix”
  • proc:修复 /proc/diskstats 输出格式
  • github:开始使用 ubuntu-22.04 镜像
  • github:删除 ubuntu-18.04
  • 测试:适应 cgroup2
  • cpuview:分别解析 cpu cgroup 路径和 cpuset cgroup 路径不同于带有 containerd 运行时的 kubernetes。
  • lxcfs:为 FUSE_INTERRUPT 支持做准备
  • lxcfs:添加 fuse 可中断锁
  • cpuview:开始使用可中断锁原语
  • github:更新主分支
  • proc_loadavg:修复读/刷新之间的 ABBA 死锁
  • proc:修复 /proc/cpuinfo 未尊重个性
  • proc_loadavg.c:修复整数到指针的转换不兼容问题
  • cgroups:清理并删除未使用的 cgroup2_devices 代码
  • loadavg:使 start_loadavg 的清理
  • cpuview:将正确的参数传递给 lxcfs_debug
  • lxcfs:添加启动消息
  • proc:修复 /proc/meminfo 中的 MemAvailable,以排除 tmpfs 文件
  • systemd:mkdir -p 目标挂载目录
  • typofix:修复 lxcfs 帮助界面中的错误打印
  • 为 loongarch64 添加宏 pivot&bpf
  • lxc.mount.hook:如果缺少目标,跳过 cpu sysfs 逻辑
  • sysfs:禁止 write()
  • lxcfs:引入新的选项 --enable-cgroup
  • 测试:对测试使用 --enable-cgroup
  • github:解决 ASAN 的 CI 问题
  • 恢复“github:解决 ASAN 的 CI 问题”
  • proc_fuse:修复 get_swap_info 错字 swtotal == 0 -> *swtotal == 0
  • proc:修复 cgroups v2 的交换处理(can_use_swap)
  • proc:修复 cgroups v2 的交换处理(零限制)
  • cgroup_utils:在 cgroup_walkup_to_root 中显式检查 cgroup2 FD

支持和升级

LXCFS 6.0 将支持到 2029 年 6 月,我们当前的 LTS 版本 LXCFS 5.0 现在将切换到更慢的维护速度,只获取关键的错误修复和安全更新。

我们强烈建议所有 LXCFS 用户计划升级到 6.0 分支。

未来的发布节奏

为了使新的 LXCFS 功能更容易被用户使用,我们决定重新开始发布非 LTS 版本。计划的间隔为每 6 个月一次,计划在 10 月发布 LXCFS 6.1。

这些版本将不会从围绕稳定性、支持和安全维护的 LTS 保证中受益,并且只会在下一个版本发布之前得到支持。

生产用户可能希望留在 LTS 版本上。

下载

贡献者

LXCFS 6.0 版本由 25 位贡献者共同完成。

LXCFS 5.0.4 LTS 已发布

2023 年 7 月 25 日

简介

LXCFS 团队很高兴地宣布发布 LXCFS 5.0.4!

这是 LXCFS 5.0 的第四个错误修复版本,它将支持到 2027 年 6 月。

错误修复

此版本的一些亮点包括

  • 修复了 /proc/diskstats 的输出格式
  • 修复了与 containerd 一起使用时的 cpuset 路径跟踪问题

完整的提交列表如下所示

详细的变更日志
  • 构建:工具:在 jinja2 渲染器中保留尾随换行符
  • 恢复“init:在安装 systemd unit 文件时尊重 --prefix”
  • proc:修复 /proc/diskstats 输出格式
  • github:开始使用 ubuntu-22.04 镜像
  • github:删除 ubuntu-18.04
  • 测试:适应 cgroup2
  • cpuview:分别解析 cpu cgroup 路径和 cpuset cgroup 路径不同于带有 containerd 运行时的 kubernetes。
  • github:更新主分支

支持和升级

LXCFS 5.0 分支将支持到 2027 年 6 月。
只有错误修复和安全问题会被包含在稳定的错误修复版本中,因此始终安全且建议您保持更新并运行最新的错误修复版本。

下载

LXCFS 5.0.3 LTS 已发布

2023 年 1 月 17 日

简介

LXCFS 团队很高兴地宣布发布 LXCFS 5.0.3!

这是 LXCFS 5.0 的第三个错误修复版本,它将支持到 2027 年 6 月。

错误修复

此版本的一些亮点包括

  • 修复了在 FUSE3 下运行时的 VFS 缓存问题
  • 修复了新的 /sys/devices/system/cpu 过滤的一些行为问题
  • 修复了在 ia64 上的构建
  • 为 /proc/cpuinfo 正确处理跨人格内容

完整的提交列表如下所示

详细的变更日志
  • 将 lxcfs 进程的 oom_score_adj 设置为 -1000
  • init:在安装 systemd unit 文件时尊重 --prefix
  • 修复 ia64 上的构建
  • doc:在 docker 演示中引导安装 /sys/devices/system/cpu
  • 工具:添加 safe_uint32() 帮助器
  • macro.h:添加 strnprintf 宏
  • 工具:添加 get_task_personality 帮助器
  • cpuview:在读取 cpuinfo 时传递个性
  • cpuview:修复 find_proc_stat_node 中可能发生的释放后使用问题
  • github:使 coverity 工作流程适用于 meson
  • README:如何使用 sanitizers 构建
  • cpuset_parse:在 cpuset_nexttok 中检查输入字符串
  • github:在 PR 测试期间启用 ASAN 和 UBSAN
  • lxcfs:为 libfuse3 明确启用 direct_IO
  • lxcfs:修复错误消息中的复制粘贴错误
  • /proc/stat:在非视图模式下呈现物理 cpu 编号
  • sysfs:不要在 /sys/devices/system/cpu 中屏蔽 cpu
  • lxcfs:在 lxcfs_releasedir/lxcfs_release 中处理 NULL 路径
  • cpuview:修复了 find_proc_stat_nod 中的 ABBA 死锁

支持和升级

LXCFS 5.0 分支将支持到 2027 年 6 月。
只有错误修复和安全问题会被包含在稳定的错误修复版本中,因此始终安全且建议您保持更新并运行最新的错误修复版本。

下载

旧闻