关注了就能看到更多这么棒的文章哦~

Growing pains for Fedora CoreOS

By Jake Edge
June 2, 2021
DeepL assisted translation
https://lwn.net/Articles/857933/

我们上次在 12 月时谈论 Fedora CoreOS 的时候,它正被考虑变为 Fedora 的一个官方版本(an official Fedora edition)。但直到现在仍然没有发生这个变化,看起来 CoreOS 这个 "新兴版本(emerging edition)" 仍在经历一些与 Fedora 的其他版本相融合过程中的困难。如果 Fedora CoreOS 要 "毕业 "的话,还是需要先解决容器操作系统(container operating system)和更通用的发行版之间的需求差异。

Catching up

5 月中旬 Dusty Mabe 发布了一份公告,宣布 Fedora CoreOS 的 stable stream 正被修改为 Fedora 34。其中指出了一些注意事项(例如 "systemd-resolved 仍然 enabled 但并未使用")、最近新增功能、以及一些即将到来的新功能。这些都很正常,只不过 Fedora 34 是在 4 月底发布的,而 Mabe 的文章说明 Fedora CoreOS 并没有真正跟上。

事实上,正如 Tomasz Torcz 指出的那样,systemd-resolved 的改动是为 Fedora 33 做的,而其中一个即将启用的功能("缺省使用 cgroup v2")则是之前为 Fedora 31 进行的改动,后者早在 2019 年 10 月就发布了。他说,这似乎表明 Fedora CoreOS 落后于主发行版(main distribution),这可能会给用户带来困惑。所以,"Fedora CoreOS 是不是还应该使用相同的版本号,可是又不包含这个版本号对应的 Fedora Linux 的所有改动?"

但是 Clément Verna 说,Fedora CoreOS 并没有像其他 edition 一样的版本号的概念:

我想这是一个根本区别,Fedora CoreOS 没有版本号。它有 3 个 stream,stable、testing 和 next,这些 stream 基于 Fedora Linux 的某一个版本,但这应该只是大多数终端用户都不需要关心的一个细节。

此外,Fedora CoreOS 有自动更新功能,需要 "完全可靠(rock solid)",这样用户才会信任(并启用)自动更新功能。但是,直到最近为止,Docker 还没有支持 cgroups v2,所以我们主要面向 container 的发行版(很多用户依赖 Docker),不可能在不导致主要用户受害的情况下来强行推出 cgroup v2。Verna 认为,如果用户的困惑会导致他们深入调查 Fedora CoreOS 并了解它的工作原理,这实际上可能是 "一件好事"。

Neal Gompa 认为 Verna 的回答是 "一个逃避和糟糕的答案(a cop-out and a bad answer)"。他说,问题是 Fedora CoreOS(他和其他一些人将其缩写为 FCOS)工作组历来不参与 Fedora 的开发,尤其是不参与决策讨论。FCOS 经常不会及时适配 Fedora 主版本中所做的功能改动,而是简单将这些功能回滚(roll back),"这让几乎所有人都感到沮丧"。此外,不仅 FCOS 需要有稳定可靠的自动升级功能,Fedora 本身如果发生破坏性升级的话也是不可接受的,Gompa 说。

但 Verna 认为,工作组实际上已经在积极参与决策过程了。他指出有四个 GitHub issue 用来跟踪 Fedora 32-35 的改动(也就是说针对 Fedora 32 和针对 Fedora 35 的改动)中需要(或已经)纳入 FCOS 的部分。Vít Ondruch 则回答说不过大部分工作(甚至所有的)对于 Fedora 其他团队来说基本上都不了解。Verna 同意并且建议工作组应该在邮件列表等地方多发表意见。

Verna 还担心那些不向后兼容的改动。普通的 Fedora 可以在发行版的主版本升级时来进行这类改动,但 FCOS 没有这样的机会:

在 Fedora Linux 的主版本之间,是可以出现破坏性或者不向后兼容的改动的。cgroups v2 就是一个很好的例子,使用 Docker 的人不得不手动执行一些步骤来切换回 cgroups v1 从而维持他们现有的工作流程。所以如果你有机会进行主版本升级时,这种改动就可以进行了,但在 FCOS 中并没有这种机会。

Verna 提出的一个问题仍然没有得到回答:如果一个新的 Fedora 功能与另一个版本(或 emerging edition)的需求相冲突,应该怎么办?这些不同的需求要如何解决?

[……]当一个改动方案会破坏 FCOS(例如 cgroups v2)时,会发生什么?这个方案是否应该被拒绝?据我所知并非所有的改动都需要被每个 edition 都采用的。

随着 Fedora 的发展以及增加更多官方发布的版本(edition),这种情况可能会更加频繁。如果某些开发环境和社区不能快速发展,那么就很难站在新功能的最前沿,而毕竟 Fedora 的使命是成为 Linux 创新的引领者。这是 Fedora 项目今后需要解决的问题。

What's in a name

Joe Doss 也不同意 Verna 的最初回答。既然 FCOS 有 Fedora 的名字,"它应该有与每个 Fedora 版本相同的基本功能和改动"。他发现 Verna 的论点 "相当轻蔑"。Verna 表示歉意,但承认他有一个可能不被普遍认同的偏见:

我是一名开发人员,我对操作系统没有强烈的兴趣,我只是希望它能工作,并为我提供工作所需的工具。对我来说,这就是 FCOS 的魅力所在,我得到的是一个坚实的、经过测试的操作系统,它可以自动更新,而且可以正常工作,说实话,我并不关心它是基于哪个版本的 Fedora Linux 或者它有哪些功能。我想启动一个 instance、确保我的应用能够正常工作,然后就不用去管它了。

我也明白有其他类型的用户比我更关心基础操作系统本身 :-)。

Ron Olson 说,正是 FCOS 名称中包含的 "Fedora "造成了很多问题。"当我得知 Fedora CoreOS 不支持 cgroups v2 时,我很惊讶,这让我感到困惑。它既然是 Fedora,当然会有最新最棒的功能。" 他指出,在 Red Hat 公司收购 CoreOS 之前,他就已经在使用 CoreOS 了,在那些日子里,他并没有现在所有的这种更高期望。他建议也许可以考虑改名,尽管他也明白这个想法可能是无法实现的:

虽然我猜这是不可能做到的,但我还是要建议,也许可以把这个项目改名为 "CoreOS",或者像 "Bowler "之类的新名字,以表明它是它自己,是一个特别的方案,这样人们可以相应地调整一下对它的期望。

Verna 承认 Fedora 的名字确实带来了一些额外预期,他还指出 FCOS 到目前为止建立还不到两年,所以可以预料到会有一些需要解决的摩擦:

FCOS 的发布模式与 Fedora Linux 不同,我认为应该给它一些时间,一方面继续改进 FCOS 的功能,另一方面让人们更熟悉 FCOS 是什么,对它设置合理的期望。

cgroups 问题在讨论中多次出现,尽管 Colin Walters 认为这个问题早已经不是个问题了。此外,正如 Mabe 所指出的,FCOS 已经支持 cgroups v2,只是没有默认启用。在接下来的一个月里,这个情况将会得到改变,从而使 v2 可以成为未来的默认配置:

我们正在努力确保用户有一个良好的体验。Docker 用户是所有用户中的很重要的一部分。在 Docker 支持 cgroups v2 之前改变默认值的话,对当时的我们来说真的不是一个可选项。

把 Fedora CoreOS 做成一个 edition 的建议最初是希望在 Fedora 34 中实现的,但已经不可能了。这个改动的目标版本已经被推到了 Fedora 35,而追踪该变更提案的 Fedora 工程指导委员会(FESCo) issue 已于 2 月底关闭。到目前为止,还没有人向 Fedora 35 提交任何修改提议,尽管还允许有很多时间来提。这次讨论可能表明,现在做这个改变还有点早,让我们拭目以待吧。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

LWN: Fedora CoreOS 成长的烦恼!相关推荐

  1. 从Fedora CoreOS(Fedora35)到CentOS-Stream9的重构

    从Fedora CoreOS(Fedora35)到CentOS-Stream9的重构 荣涛 2022-03-16 文档修改日志 日期 修改内容 修改人 备注 2022-03-16 创建 荣涛 2022 ...

  2. Fedora CoreOS to CentOS7 问题汇总1

    ================================================================================ 这在 Fedora CoreOS 上也 ...

  3. Build your own distribution based on Fedora CoreOS

    Build your own distribution based on Fedora CoreOShttps://www.itix.fr/blog/build-your-own-distributi ...

  4. OpenShift 4 - Fedora CoreOS (6) - 用rpm-ostree安装软件、升级回滚CoreOS

    <OpenShift 4.x HOL教程汇总> 文章目录 什么是 rpm-ostree 升级更新CoreOS操作系统 自动更新升级 手动升级更新 比较更新前后差别 回滚系统更新 切换当前的 ...

  5. OpenShift 4 - Fedora CoreOS (5) - CoreOS的常规操作

    <OpenShift 4.x HOL教程汇总> 文章目录 常规操作 查看CoreOS操作系统信息 查看网络配置 修改IP Docker 环境 podman 使用toolbox 什么是too ...

  6. OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置

    <OpenShift 4.x HOL教程汇总> 文章目录 设置 FCC 配置文件 验证 CoreOS 配置 参考 Fedora CoreOS是通过Ignition定制操作系统的配置的,而I ...

  7. OpenShift 4 - Fedora CoreOS (2) - 准备 Fedora CoreOS 安装环境的三个工具

    <OpenShift 4.x HOL教程汇总> 我们在<OpenShift 4 - Fedora CoreOS (1) - 最简安装>中采用了一种FCOS的安装方式,其中使用到 ...

  8. OpenShift 4 - Fedora CoreOS (3) - 定制 CoreOS ISO

    <OpenShift 4.x HOL教程汇总> 文章目录 定制 CoreOS ISO 文件 获得 coreos_installer 文件 生成定制 CoreOS ISO 文件 安装定制 C ...

  9. OpenShift 4 - Fedora CoreOS (1) - 最简安装

    <OpenShift 4.x HOL教程汇总> 文章目录 OpenShift 和 CoreOS 安装环境说明 下载 Fedora CoreOS 相关介质 下载 Fedora CoreOS ...

最新文章

  1. Fragment 和 FragmentActivity的使用
  2. LeetCode--258--各位相加*
  3. 洛谷 P2746 [USACO5.3]校园网Network of Schools
  4. 类加载器-启动类加载器
  5. 发生身份验证错误_Python MySQL8.0 错误
  6. struts2核心配置
  7. Leetcode算法题(C语言)18--字符串转换整数 (atoi)
  8. 力扣350.两个数组的交集 II(JavaScript)
  9. 使用Pix For Windows调试Shader傻瓜教程
  10. 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)
  11. java生成随机数方法
  12. 收藏几个漂亮的管理后台模板
  13. $.ajax返回报错,请求ajax报错 返回readyState0
  14. 树莓派4B(ubuntu)无线网络配置
  15. 美国Linux服务器系统内核的详细介绍
  16. 2018互联网金融公司排名——Top100(附完整榜单)
  17. 大数据架构师拿50W的方法诀窍
  18. 使用GDI+将24位真彩色图像转换为8位灰度图像
  19. JS 正则表达式常用方法
  20. Win10 MySQL5.7中文乱码问题

热门文章

  1. python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
  2. 1480 D2. Painting the Array II(贪心)
  3. 2.6.30内核Netfilter的简单例子、四(filterIp)
  4. touchgfx将图片资源存放外部先遣测试
  5. 用JpaTransactionManager操作数据库事务
  6. BCL-LWG皮革认证是啥?
  7. 服务器网页版上位机设计 - 03 - 上位机 (完结)
  8. Vite使用vw适配方案
  9. MATLAB rng(0)
  10. Yolov8涨点神器:创新卷积块NCB和创新Transformer 块NTB,助力检测,提升检测精度