For the complete documentation index, see llms.txt. This page is also available as Markdown.

FreeBSD 2017 年 10-12 月状态报告(未公开草稿)

引言

这是 2017 年 10-12 月状态报告的草稿。请在最终定稿并向 FreeBSD-Announce 邮件列表发送公告邮件后再查看。

杂项

LibreNMS

链接:

LibreNMS ZFS Addition

联系方式:Zane Bowers-Hadley <vvelox@vvelox.net>

LibreNMS 是一个基于 PHP/MySQL/SNMP 的自动发现网络监控解决方案,支持广泛的网络硬件和操作系统,包括 Cisco、Linux、FreeBSD、Juniper、Brocade、Foundry、HP 等。

除其他功能外,它还可以通过 SNMP 扩展监控服务器上运行的应用程序和其他功能。这是本人目前工作的重点领域。

ZFS 支持已于 12 月底提交,但已来不及纳入 12 月发布版本,不过将包含在 1 月发布版本中。

这带来了监控 ARC 和池信息的能力,每个池都有自己的一组独立图表。

ARC 图表如下:

  • ARC 大小(字节)

  • ARC 大小(最大大小的百分比)

  • ARC 大小细分

  • ARC 效率

  • 按列表分类的 ARC 缓存命中

  • 按类型分类的 ARC 缓存命中

  • 按类型分类的 ARC 缓存未命中

  • ARC 缓存命中

  • ARC 缓存未命中

  • ARC 杂项(已删除、跳过和回收未命中)

池跟踪相对简单得多,使用 zpool list 的输出。

  • 池空间

  • 池容量

  • 池碎片化

待办事项

  1. 需要针对额外统计信息或其他要监控的内容提出建议,无论是 FreeBSD 特定的还是其他方面的。

项目

基于 Linux v4.9 的 RDMA 栈更新

链接:

Subversion Commit Adding the Driver

联系方式:Mellanox Drivers Team <FreeBSD-drivers@mellanox.com>

基于 Linux v4.9 代码的 FreeBSD RDMA 栈更新已于 11 月 4 日合并到 FreeBSD 12-CURRENT,包含许多 bug 修复和新功能,重点是 RoCEv2——可路由 RoCE。

融合以太网上的 RDMA(RoCE)是一种网络协议,利用远程直接内存访问(RDMA)能力来加速服务器集群和存储阵列上托管的应用程序之间的通信。RoCE 融合了 IBTA RDMA 语义,允许设备在应用层执行直接的内存到内存传输,而无需涉及主机 CPU。传输处理和内存转换与放置均由硬件执行,从而与基于软件的协议相比,实现了更低的延迟、更高的吞吐量和更好的性能。

RoCEv2 是 RoCE 的最新版本,由于数据包格式中包含了 IP 和 UDP 头部,因此增加了一些路由功能。为完善 RoCEv2 解决方案,支持 ECN(显式拥塞通知,有损网络)和 PFC(优先级流量控制,无损网络)协议以及速率限制选项将于 2018 年第一季度添加。

该项目还引入以下更新:

  • libibverbs、librdmacm、libibumad 和厂商特定库从 Linux rdma-core v15+ 移植

  • InfiniBand 诊断工具 infiniband-diags,版本 1.6.7

  • InfiniBand 子网管理器——OpenSM,版本 3.3.20+

  • LinuxKPI 支持

重要说明:

  • Linux 代码中仅 GPL(非双许可证)的部分要么被排除,要么由 Hans Petter Selasky 在 BSD 许可证下从头编写。

  • 该代码已由多家同时支持 iWARP 的 RDMA 厂商测试。

该项目由 Mellanox Technologies 赞助。

待办事项

  1. 添加 ECN(显式拥塞通知)和 PFC(优先级流量控制)支持。

FreeBSD 团队报告

来自各官方及半官方团队的报告,见 管理页面。

Ports

链接:

About FreeBSD Ports

Contributing to ports

FreeBSD Ports Monitoring

Ports Management Team

FreeBSD Ports Management Team on Twitter (@FreeBSD_portmgr)

FreeBSD Ports Management Team on Facebook

FreeBSD Ports Management Team on Google+

联系方式:

René Ladan <portmgr-secretary@FreeBSD.org>

FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>

2017 年最后一个季度结束时,仓库中有超过 27,000 个 Port。目前有不到 2,800 个未关闭的 Port PR,其中 685 个未分配。178 名提交者完成了 6,700 次提交。自上个季度以来统计数据变化不大,但未分配的 PR 数量略有下降。

本季度,我们欢迎 Yuri Victorovich(yuri@)、Jason Bacon(jwb@)和 Wolfram Scheider(wosch@)成为新的或回归的 Port 提交者。没有提交权限被暂时保管。

portmgr 与 postmaster@ 一起更改了 FreeBSD-ports@ 邮件列表的策略。现在要求先订阅列表才能向其发帖。这将有助于减少此列表上的垃圾邮件,并帮助用户在浏览列表存档时找到更好的答案。

本季度 Port 的“flavors”功能正式上线。Flavors 可用于构建一个 Port 的多个变体,例如 py27-sarge 和 py36-sarge。所有 Python Port 和部分其他 Port 现在已使用 flavors。Flavors 的其他用途可以包括包含或排除 X11(foo 与 foo-x11 或 foo-nox11)或选择打印纸张尺寸(A4 与 letter)。

移除了 USES=fmake,因为它不再有用。

部分默认版本已更新:Ruby 更新至 2.4,Samba 更新至 4.6。Firefox 更新至版本 57.0.3,pkg 更新至 1.10.3。

上个季度,antoine@ 运行了 33 次 exp-run,以验证对基本系统的更改、修复 Qt5 Port、测试 Python flavors 和其他 Port 更新,并使 rubygem Port 构建可重现。

待办事项

  1. 正在将 Clang 6 导入基本系统。有一个 PR 跟踪使用此编译器失败的 Port,参见 PR 224669。如果你使用此处提到的任何 Port,请考虑修复之。

架构

FreeBSD 在 PowerNV(ppc64)上运行

链接:

Semihalf PowerNV Official Repository

Skiboot Repository with the Latest OPAL Firmware

联系方式:

Patryk Duda <pdk@semihalf.com>

Wojciech Macek <wma@FreeBSD.org> <wma@semihalf.com>

Michal Stanek <mst@semihalf.com>

Nathan Whitehorn <nw@FreeBSD.org>

Semihalf 很高兴地宣布,FreeBSD 现可在 IBM Power8 处理器上运行。该项目是 Nathan Whitehorn 工作的延续,他为 PowerNV 模拟器提供了基本支持。

IBM Power8 系列 CPU 与 Power 系列中的前代 CPU 相比,提供了卓越的性能。它提供完整的 NUMA 支持,在双路系统中最多可达 128 个执行线程(2 个插槽,每插槽 8 个核心,每核心 8 个线程)。所有 I/O 通信由配备多个 IOMMU 引擎的集成 PCIe 接口处理。

在非虚拟化环境中运行 FreeBSD 的 Power8 系统支持包含:

  • OPAL 虚拟机监控程序的通用驱动程序

  • kboot 加载器修改,允许小端序加载大端序内核 ELF 镜像

  • skiboot 中的 ELF 解析器更新,使其能够理解 FreeBSD 内核文件格式

  • PowerNV 架构的基本支持,包括操作模式、内存管理单元(MMU)和中断控制器

  • 最多 128 个 CPU 的 SMP 操作

  • PCI 主桥子系统驱动程序,包括外部总线的 IOMMU 映射

  • PCIe 主控制器驱动程序

  • USB-3.0 XHCI 驱动程序

  • 重构了多个驱动程序以兼容大端序

  • Chelsio cxgbe(4) 10/25G 网络适配器

  • NVMe SSD 驱动程序

所有工作均可在链接的 GitHub 仓库中找到。将此工作纳入官方仓库的过程已经开始,最终所有提交都将集成到 FreeBSD-12 CURRENT 中。

该项目由 IBM、FreeBSD 基金会、QCM Technologies、Semihalf 和 Limelight Networks(Kevin Bowling)赞助。

FreeBSD 核心团队

联系方式:FreeBSD 核心团队 <core@FreeBSD.org>

2017 年最后一个季度,核心团队最重要的行动是批准了新的行为准则(Code of Conduct),此前经过了漫长的开发和审查期。核心团队在文本中添加了序言,强调行为准则背后的原则而非规则的详细解释。新准则将投诉处理委托给行为准则审查委员会;我们目前正在最终确定设立审查委员会的实际安排,然后宣布采用新准则。

iXsystems 的 John Hixson 被提议并被接受为今年早些时候通过的新规则下的首位新项目成员。核心团队认为 John 是第一位成员的绝佳选择,并期待后续添加更多项目成员。

安全官员和安全团队周围发生了一些重大变化。Gordon Tetlow 已正式从李鑫手中接任安全官员。李鑫仍是安全团队的活跃成员,Ed Maste 也已加入了安全团队。

Gordon 在安全团队努力处理广为人知的 WPA2 漏洞(FreeBSD-SA-17:07.wpa)时加入,仅通过公开发布回应就产生了立竿见影的影响,尽管技术修复尚未完全就绪。Gordon 来自核心团队的授权是检查安全团队的运作方式,并找出如何管理其案件量,同时避免过去妨碍安全团队效力的倦怠和超载问题。

关键问题之一是安全问题在与一般 PR 完全独立的 bug 处理系统中处理。与大多数类似的操作系统项目相比,这很不寻常,并导致难以从 FreeBSD 开发者群体中引入可用人才以分担工作并快速反应。安全团队正与 Bugmeister 合作,在我们的主 Bugzilla 实例中启用适当的访问控制,以便我们既能遵守 bug 保密和其他保密要求,又能方便地向更广泛的开发者征求修复,并在不再需要保密时将安全 bug 转为与任何其他 bug 一样的公开处理。

本季度还创建了 10.4-RELEASE 分支,并将 11.0-RELEASE 的生命周期延长一个月。前者是应多家重要 FreeBSD 用户的请求,他们需要访问新功能但无法立即升级到 11.0-RELEASE。发布 10.4 允许在不显著延长 10.x 发布系列生命周期的情况下实现这一目标。

11.0-RELEASE EoL 的延长是未能及时传达即将切换到 11.1-RELEASE 的后果。由于这是新发布计划下的首次次要版本过渡,在与安全团队和发行工程团队讨论后,我们得出结论,有必要延迟,使得用户群在 11.0-RELEASE 停止支持前有足够的警告进行升级。这不是一个无成本的决定:正如 portmgr 提醒我们的,这影响了软件包构建并延迟了一些重要更新的实施。

FreeBSD 将再次参加 2018 年谷歌编程之夏。这已成为我们招募新年轻开发者以确保项目长寿命的最重要途径之一。

Pedro Giffuni 提议采用许多其他项目(包括 Linux 内核)使用的 SPDX 许可证标记系统,以便为下游用户提供程序化许可证管理便利。核心团队衷心认同。

核心团队已同意将 MIPS 架构提升至 Tier-2 状态。

一项通过停止所有 FreeBSD 服务的 HTTP 或其他未加密通道来增强安全性的提案,不是核心团队在近期可以批准的。虽然切换到 HTTPS 有明显的安全好处,但我们需要将适当的 CA 证书作为基本系统的一部分分发,并在此可以相对无缝地实现之前进行某些其他更改。所有 FreeBSD 服务已通过安全通道提供,但我们的文档不一定将安全访问方法作为首选途径。正在采取行动解决文档问题,一旦必要的基础工作就绪,将重新审视此问题。

fortune(6) 程序长期以来一直是争议的焦点,往届核心团队不得不对 fortune 数据文件的更新实施锁定。围绕一些明显亲纳粹引用的重新删除,争论再次爆发。核心团队决定适可而止,从基本系统中移除了除 FreeBSD-tips.dat 外的所有 fortune 数据文件。将许多有疑问或争议的意见作为基本系统的一部分隐含认可,是项目无法承受的责任。

本季度未发放新的提交权限,但我们确实看到两位前提交者——Sean Eric Fagan 和 Wolfram Schneider——重新激活了他们的提交权限。一位提交者 Ngie Cooper 已交回其提交权限。

最后更新于