首页>数码 >内容

脸书开源一系列Linux核心元件与工具助企业管理资料中心资源

数码2021-02-26 20:04:10
最佳答案

脸书开源了一套Linux内核元件和相关工具,来解决关键队列管理(Fleet Management)问题,包括资源控制、资源利用、工作负载隔离、负载平衡、测量和监控等工具。

为确保用户可以快速可靠的存取服务,脸书基础设施工程师开发了流量最佳化系统,而BPF则在其中扮演重要的角色。BPF是Linux核心中一个高度灵活且高效能的程式码执行引擎,允许位元组码在各种勾点(Hook Point)执行,让客製化的程式码也可以简单并安全的修改核心行为。虽然BPF已经广泛的应用在资料封包过滤上,但BPF的指令集具通用性且足够灵活,可支援网路追蹤和安全性之外的应用。

使用BPF的最佳化系统Katran就是其中一种应用,Katran是软体定义的负载平衡解决方案,具有完全重新设计的转发平面(Forwarding Plane),充分利用了BPF虚拟机器的优点。Katran转发平面软体函式库强化了脸书基础设施,同时也帮助改进效能和网路负载平衡可扩充性,大幅减少低效率的发生。

脸书还开源了Btrfs,这是新一代的档案系统,以当今的资料中心作为设计基础,支援写入时複製(Copy-on-write,COW)功能,能实现许多进阶功能,具有高容错、修复和易于管理的特性。Btrfs目的在解决和管理大型储存子系统,支援快照、线上资料重组、池化(Pooling)和整合多重装置支援。

Btrfs在脸书资料中心应用程式效率和资源使用率上扮演重要角色,近期的使用案例是Cgroup2进行I/O控制的时候,Btrfs会帮忙消除由前一个档案系统的日誌行为,引起的优先顺序倒置状况。Btrfs是目前唯一可用于资源隔离的档案系统实作,目前在脸书的百万伺服器都有部署,显着提升执行效率。

另外,Netconsd是一个基于UDP的Netconsole守护行程,为Linux Netconsole讯息提供轻量级的传输服务。Netconsd可以接收并处理来自Linux核心的日誌资料,并帮助产品工程师快速识别丛集中的问题。在脸书中,Netconsd提供重要的资料中心统计资料,该系统可以连续纪录数百万台主机的资料,并允许工程师从核心中产生大量的日誌资料,以提取有意义的讯号,协助产品工程师快速识别和诊断有状况的服务。

在7月的时候,脸书开源了内部记忆体不足解决方案Oomd,其中提到了两项关键的功用工具PSI(Pressure Stall Information)和Cgroup2,现在也都开源给外部使用。Cgroup2是用于分组以及结构工作负载的Linux核心机制,能够控制分配给每个群组的系统资源量,其具有记忆体、I/O和CPU等控制器,允许使用者隔离工作负载,并确定每个工作负载分配的资源以及优先顺序。Cgroup2能良好处理记忆体中,过量使用以及记忆体稀缺的问题,改善了脸书资料中心的多租户服务,

而PSI则提供一种规範方法,以三种主要资源指标量化资源短缺,分别是记忆体、I/O和CPU,这些压力指标将作为此开源的一部分,能与其他核心和使用者空间工具结合使用。当在进行开发和回应时,能智慧地侦测资源短缺。PSI统计资料为即将发生的资源短缺提供早期预警,从而实现更积极主动,更细緻的回应。脸书将PSI与Cgroup2结合使用,监控每个Cgroup各种工作负载的资源使用,进而在资源不足的情况下提高利用率和可靠性。

脸书核心和核心应用程式开发人员,会与各内部团队合作,共同开发解决脸书资料中心问题的技术,而这些问题也是同样产业都会遇到的,脸书现在开源这些已经用于内部产品阶段的专案,供其他企业使用。而脸书提到,开源解决方案是他们工程文化的一部分,这些解决方案解决了实际的产品问题,同时也解决了现代大规模云端计算的挑战。

免责声明:本文由用户上传,如有侵权请联系删除!