5

谷歌数据中心尝试转向主线内核,发起新的项目Project Icebreaker

 2 years ago
source link: https://blog.csdn.net/super111t/article/details/120675406
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

谷歌数据中心尝试转向主线内核,发起新的项目Project Icebreaker

original.png
TerryChu1 2021-10-09 17:34:22 241
文章标签: 谷歌 内核

整理 | 祝涛
出品 | CSDN(ID:CSDNnews)

近日Google发起了一个新的内核项目Project Icebreaker,旨在解决两个问题:紧跟主线内核,让Google为产品引入的新特性能更容易递交到上游的主线内核;能在内核生产环境中运行任意 Google 程序,在Prodkernel变更内核版本前验证上游变化

在这里插入图片描述

来源于谷歌数据中心官网

Google数据中心(Google Data Centers)是谷歌用来提供服务的计算机软件和大型硬件资源等技术基础设施。美国有13间;欧洲有6间;亚洲有2间;南美洲有1间。

Google数据中心产品系统运行的内核被称为Prodkernel,它是基于旧版本的Linux kernel,加上Google打上的大约9000个补丁,补丁包括各种内部API、硬件支持、性能优化,以及其它必要的微调。每隔两年左右时间,这些补丁会移植到较新版本的Linux kernel。

Project Icebreaker的提出

Google发现这种工作模式面临越来越大的挑战,原因包括:内核在两年中变化很大,跟踪bug会耗费大量时间。但Google也无法直接使用主线内核,因为它的工作负荷需要的某个特性在主线内核中可能并不存在。雪上加霜的是,Google为其产品开发的每一个特性都是在Prodkernel上开发和测试的。Prodkernel与主线内核之间的巨大差异给开发增加了越来越多的难度

为了解决这个问题,谷歌的两位工程师Andrew Delgadillo 和Dylan Hatch来到2021年的北美开源峰会,讨论一个项目——破冰计划Project Icebreaker。

Project Icebreaker有两个主要目标:

  • 首先,与上游内核保持紧密的距离。这个想法旨在为每一个主要的上游内核版本发布一个新内核,让Google为产品引入的新特性能更容易递交到上游的主线内核。
  • 第二个目标是能够在该内核的生产环境中运行任意谷歌二进制文件,这将是一个“真正的生产内核”,在Prodkernel变更内核版本前验证上游变化。

这些目标很重要,因为团队需要“更好的上游参与”。

工程师说,在考察Icebreaker的工作结构时,要考虑两方面:

  • 一方面是如何开发特性以便将它们部署到Icebreaker内核上。
  • 另一方面是那些补丁需要如何升级,以便将它们放到下一个Icebreaker版本的新主线内核中。

工程师Hatch认为,Icebreaker比目前的prokernel方案更有利于上游。Icebreaker特性分支是在一个最新的主线内核上完成的,它们通过这种方式进行测试,所以测试结果与上游更相关。这将允许开发者更容易地为主线提供特性。

Icebreaker也存在一些风险:

  • 其中一个较大的问题是需要大量的特性分支测试
  • 此外,功能之间的依赖关系也可能是Icebreaker的风险。
  • 另一个风险是Icebreaker的集中化程度远低于Prodkernel进程
  • 最后一个风险是,Icebreaker的功能确实需要靠近上游,否则它将再次退化到Prodkernel。但如果越来越多的补丁加入到Icebreaker中,而不减少被合并的补丁,团队将无法跟上主线

现状与未来

目前Icebreaker是基于5.13 kernel,而最新的内核版本是 5.14,而5.15内核还处于发布候选阶段。

Icebreaker计划在5.15或5.16紧紧抓住上游,这将是项目的转折点。工程师说,到那时,它将“乘风而上”。可能会出现的一个问题是,功能维护者不得不每隔三、四周重新调整并修复冲突——在Prodkernel模型中,这种情况大约每两年发生一次一旦项目赶上进度,就只需要每十周左右进行一次调整,并与主线计划保持一致。

参考链接:

  • https://lwn.net/SubscriberLink/871195/d7e9acf5894446e6/
  • https://www.google.com/intl/zh-CN/about/datacenters/

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK