Meta 如何在超大规模系统中为 Linux 打补丁

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

在Linux Plumbers Conference上,Meta Linux内核工程师解释了Facebook如何使用Kpatch来为数百万台服务器打补丁。Kpatch是一种内核实时补丁,可以在不停机的情况下将最新的安全更新应用到Linux内核。Meta还使用Kpatch来检查服务器的健康状况,并撤消补丁以恢复旧内核。其他替代方案包括kGraft、Ksplice和Livepatch。使用实时补丁可以避免服务器和数据中心的宕机。

🎯

关键要点

  • Meta Linux内核工程师在Linux管道工大会上介绍了如何为数百万台服务器打补丁。

  • 使用普通技术向所有机器推出新内核需要超过45天,尤其在安全补丁方面困难重重。

  • Meta与Red Hat的Kpatch一起使用内核实时补丁(KLP),可以在不停机的情况下应用安全更新。

  • 内核实时补丁以包含修改代码的软件包形式交付,且是累积性的。

  • 实时补丁不适用于所有内容,制作实时补丁需要额外的工程工作。

  • Kpatch通过比较原始内核和打补丁的内核,使用定制的内核模块进行修补。

  • 在Meta,应用实时补丁通常需要一到两秒,速度比启动新内核的机制kexec还快。

  • Meta在推出补丁过程中会检查服务器的健康状况,发现问题时会撤消补丁并恢复旧内核。

  • Meta使用Kpatch,其他替代方案包括kGraft、Ksplice和Livepatch。

  • 使用实时补丁可以避免服务器和数据中心的宕机,值得效仿。

➡️

继续阅读