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。
-
使用实时补丁可以避免服务器和数据中心的宕机,值得效仿。
➡️