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


    整理 | 祝涛
    出品 | 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/
  • 相关阅读:
    一文详解Redis键过期策略,最全文档
    【SQL】统一训练平台数据库实践--20230927
    分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
    格芯斥资80亿欧元,提高德国德累斯顿的产能,并寻求与台积电相当的政府补贴
    AIDL 如何分片传输大量 Parcelable 数据列表
    线性代数基础-行列式
    对话吴纲:我为什么笃信“大国品牌”的崛起?
    MyBatis配置文件(mybatis-config.xml)简介说明
    hive on spark 的架构和常见问题 - hive on spark 使用的是 yarn client 模式还是 yarn cluster 模式?
    Anconda环境中python默认不是该环境下的python
  • 原文地址:https://blog.csdn.net/super111t/article/details/120675406