Sprint 总结

  • 分区工具持续受到关注和改进:现在您可以对 RAID 设备进行分区,并且我们已经开始支持 Bcache。
  • 新的 YaST2 防火墙 UI 即将发布。
  • 自更新功能已扩展到涵盖更多情况。
  • YaST 现在在安装过程中支持您的全新 4K 显示器。

当然,还有一些错误修复(例如,正确处理尝试停用 DASD 通道时出现的问题)和基础设施改进(请查看我们对 Travis 缓存的处理)。

在 MD RAID 设备内管理分区

我们的分区工具是 上一份报告 中的明星,其中包含关于多项改进和完善的消息。 在本次 sprint 期间,它也受到了关注,不仅添加了几个新功能,还进行了更多关于 UI 重新组织以带来更多改进的讨论和原型设计。

在上一 sprint 中引入的一项功能是基于整个磁盘(无分区)创建 RAID 的能力。 现在,我们已经完成了循环,允许管理 RAID 内的分区。 因此,现在可以基于任何磁盘和分区的组合创建 RAID 阵列,然后可以直接使用这些阵列来托管文件系统(或充当 LVM 物理卷),也可以在阵列内创建分区。 这些分区当然可以格式化、加密、用作 LVM 物理卷等。 这样,我们现在可以说分区工具支持所有可能的 MD RAID 设置。

在下面的动画截图中,您可以看到 MD RAID 的分区如何在分区工具的左侧树中以及 RAID 部分的设备表中列出,类似于显示硬盘分区的显示方式。

RAID

正如您可能注意到的,与其他视图的主要区别在于,正如我们上一 sprint 报告中总结的 UI 讨论所预料的那样,按钮集会根据表上选择的项目动态调整,为 MD 阵列和分区提供不同的操作集。

定义分区工具用户界面的未来的一步

在上一张截图中显示的界面,及其动态行为,只是 本文档 中定义的方向的第一步,该文档是上一 sprint 的结果。 拥有第一个完全可用的原型使我们能够重新点燃关于如何以可识别和熟悉的方式在分区工具中提供 storage-ng 的所有新功能的最佳方式的讨论。

经过另一轮讨论和多次模拟图迭代,我们最终得到了 此 gist 中记录的想法。 这将是我们正在实施的 UI 更改的指南,作为下一个 sprint 的一部分,以释放 storage-ng 的更多底层功能。

分区工具中对 Bcache 的初步支持

但除了改造和改进现有技术并提供新的可能性之外,我们还希望分区工具在范围上有所增长,将新的内核技术掌握在我们的用户手中。 其中一项技术就是 Bcache。

Bcache 允许通过使用更快更小的设备(Bcache 术语中的“缓存设备”)来加速读取和写入操作,从而提高任何大型但相对较慢的存储设备(Bcache 术语中的“后端设备”)的性能。 结果 Bcache 设备具有后端设备的大小和(几乎)缓存设备的有效速度。

作为提供完整 Bcache 支持的第一步,分区工具可以可视化所有 Bcache 设备并允许操作其分区。 后续 sprint 将提供更广泛的支持,例如创建新的 Bcache 设备。

Initial Bcache support in the Partitioner

新的 YaST2 防火墙 UI 即将到来

firewalld 替换了久负盛名的 SuSEfirewall2,成为 SUSE Linux Enterprise 15 和 openSUSE Leap 15.0 中的默认防火墙解决方案。 并且您很可能已经注意到 YaST 不再提供用户界面来管理防火墙配置。 相反,它要求用户使用 firewall-config,即官方 firewalld UI。

但是,幸运的是,情况即将改变。 在最近的 sprint 中,我们一直在致力于一个新的 UI 来管理 firewalld 配置。 它仍在开发中,但它能够将接口分配给区域,并为给定的区域打开服务/端口。

Allowed services in a firewall's zone

我们计划在完成与 AutoYaST 用户界面的集成后发布第一个版本。 所以请继续关注!

更好的 HiDPI(4k 显示器)支持

比高屏幕分辨率更好的是什么? 简单:更高的屏幕分辨率。 4k 显示器正在进入消费主流,而 8k 显示器是下一个大趋势。

但其中存在一些实际问题:对于如此高的分辨率,文本和图形可能会变得非常小——太小而无法阅读,太小而无法填充屏幕上的可用空间。

在您的桌面上,您可以调整这些设置——选择更大的字体或更大的图标大小。 但对于安装程序来说,情况就不同了;它需要自动检测这种显示器的存在,然后自动缩放用户界面,使其真正可用。

YaST 中存在一些此类问题;一个是字体大小,另一个是时区选择地图等像素图形的大小。 这些问题现在已经解决。

为了向后兼容,我们用于 YaST 图形用户界面的 Qt 库不会完全自动执行此操作,但我们需要显式启用 HiDPI 模式。 但现在它会自动为 YaST 完成所有操作。

更新附加安装数据

如您所知,YaST 能够在系统安装过程中自我更新,这使我们能够通过发布更新的软件包在官方发布后修复安装程序。

但是,有时我们需要修复不属于安装程序但提供一些附加数据的软件包,例如安装默认值、系统角色定义等。

为了支持这些场景,我们已扩展安装程序,在安装过程中将自更新存储库用作常规(但临时)存储库。 因此,在下一个 SUSE Linux Enterprise 版本中,我们将能够更新这些数据。

修复 DASD 通道停用支持

最近我们发现,当用户尝试在 s390 架构中停用正在使用的 DASD 通道时,YaST 会冻结。 问题在于 dasd_configure,负责停用通道的底层工具,正在等待用户确认。

显然,丢失用户数据不是一个选项,因此从现在开始,该操作将被取消,YaST 将报告该问题,包括所有详细信息,以便用户可以在再次尝试停用通道之前解决该问题。

DASD deactivation details

使用 ccache 加速 Travis 重建

对于 GitHub 上的持续集成,我们使用 Travis,它易于配置和使用。 不幸的是,构建像 libstorage-ng 这样的大型项目需要花费大量时间。 在这种情况下,几乎需要半个小时。

在对代码进行小更改后等待这么长时间来查看结果,非常令人恼火和不方便。 这正是使用 ccache 工具有所帮助的地方。 ccache 是标准 C/C++ 编译器的一个小包装器,它保存了编译结果以供以后使用。 因此,如果稍后再次编译相同的文件,则会立即返回缓存的结果,而无需调用实际编译器。

结合 Travis 缓存机制,我们用于存储和恢复每个构建的 ccache 文件,我们实现了显着的加速。 从 29 分钟到大约 6 分钟,即快了 四倍

当然,这在很大程度上取决于环境(编译器、库)或源代码自上次构建以来发生了多少变化。 变化越大,需要重新编译的越多,因此实际上加速效果可能会更小。

如果您对实现细节感兴趣,请查看 相关的 pull request

更多内容即将到来

下一个 sprint 已经开始,团队正在进行一些真正有趣的工作:完成 bcache 支持,发布新的防火墙 UI 的第一个版本,正确支持在 AutoYaST 中将整个磁盘用作 LVM PV,对 CaaSP/Kubic 的安装程序进行多项改进等。

所以请继续关注!