存储重构:提案适应,你成功
正如我们在之前的冲刺中宣布的,并且您可能已经知道,YaST 团队正在努力为 SLE15 和 openSUSE Leap 15 及时重写整个存储堆栈。作为此重构的一部分,我们设计了一个全新的存储提案,它可以根据系统的当前配置和用户偏好自动为用户提供最佳的分区和 LVM 卷组合。
当我们使用非常小的磁盘或使用 DASD 等特殊技术(每设备不接受超过三个分区)时,存储提案可能无法生成有效的初始提案,从而满足产品的初始要求(例如,在 openSUSE Leap 的情况下,创建单独的 home 分区并为根分区启用 btrfs 快照)。现在,该提案不再局限于在无法满足默认产品要求时失败。在放弃之前,新系统会寻找替代方案,例如放弃单独的 home 分区或禁用快照。此外,现在该提案能够自动调整根目录、交换分区和 home 分区的大小要求。当然,引导设置会继续在那里进行,以微调提案设置。
桌面选择改进
正如我们常读的读者也知道,我们最近为 openSUSE 引入了一个更公平的桌面选择屏幕,包括 Leap 42.3 和 Tumbleweed。我们在本次冲刺中使用了一部分时间来实施我们收集到的关于该对话框的措辞和行为的反馈。
该反馈收集包括关于如何使在选择通过“自定义”选项提供的可用用户界面之一后,用户体验更美好的讨论。因此,优秀的 openSUSE 团队创建了一种新的机制,用于在每个图形登录时选择默认窗口管理器,以便 YaST 可以将细节委托给这些替代界面的维护者。
现在一切是如何工作的?很高兴你问。 ![]()
如果用户在 YaST 对话框中选择 KDE 或 GNOME,则 /etc/sysconfig/windowmanager 会被配置为默认指向该桌面。如果选择了“自定义”选项,那么 YaST 不会强制在该文件中执行任何界面,新的机制就会生效。它依赖于 default.desktop 文件,该文件定义了默认窗口管理器,并且可以由通用的 update-alternatives 工作流程进行管理。这意味着它可以被软件包维护者和用户轻松调整,特别是由于 YaST 包含一个用于管理替代方案的不错的模块。
存储重构:专家分区器改进
虽然,如上所述,我们继续改进存储自动提案以支持更多情况,但我们不能忽视灵活性和适应性一直是 (open)SUSE 的两大亮点。而最突出的例子之一就是 YaST 专家分区器。
如 我们在 36 冲刺的报告 中详细介绍的那样,我们一直在使用新的存储堆栈重写这个强大的瑞士军刀,同时保持相同用户界面和功能。到目前为止,新的实现只能显示有关现有分区、LVM 系统和 MD RAID 的信息。但现在我们添加了许多创建、编辑和删除分区的功能。
这仍然是一个正在进行中的工作,因为 YaST 分区器提供的可能性有时会让人不知所措,并且实现所有这些可能性需要时间,但进展顺利。
除了分区器本身的改进之外,我们还致力于将其集成到安装工作流程中。现在,专家分区器可用于完善安装程序自动提出的方案。作为奖励,与 (open)SUSE 中当前可用的专家分区器相比,"中止" 和 "完成" 按钮的行为得到了改进,后者在可用性方面存在不一致性。
修复自动补丁安装
在 SLE 和 openSUSE Leap 中,在线更新可以手动或自动定期安装。对于自动安装,我们提供了 yast2-online-update-configuration 包,该包提供了一个 cron 作业脚本和一个 YaST 模块来配置它(提示:默认情况下未安装它,您可能想尝试一下,也许对您来说是“新”的东西)。
您可以在 YaST 模块中配置补丁应该安装的频率或过滤补丁类别,但我们收到一个错误报告,说当选择多个补丁类别时,实际上只使用了一个。
事实证明这是 cron 作业中的一个微不足道的错误,我们已经为 SLE12-SP2 和 Leap 42.2 以及即将到来的 SLE12-SP3 和 Leap 42.3 修复了它。因此,如果您使用此模块并希望使用类别过滤器,建议您升级该软件包。
存储重构:AutoYaST 集成方面取得了许多进展
回到我们新的存储堆栈,我们继续努力将其更好地与其他 YaST 部分集成,特别是 AutoYaST。在本次冲刺中,我们完善了一些粗糙的边缘,并添加了对 MD RAID 的支持。有了所有这些,现在可以自动设置基于包含任何分区、LVM 系统和 MD 数组组合的 AutoYaST 配置文件,包括任何级别的加密。
但是 AutoYaST 与系统的关系是双向的。除了能够基于 AutoYaST 配置文件安装系统之外,它还提供了将当前系统配置(包括存储布局)导出到配置文件以稍后重现系统的接口。在本次冲刺中,我们还移植了该逻辑以依赖于新的存储层。
这比听起来更难,因为需要保持与 AutoYaST 历史记录中引入的几种行为的向后兼容性,以适应几种特定情况。好的一面是,新的代码更容易遵循,包括基于行为的自动化测试(RSpec),并且包含有关每个决策的理由的信息……在某些情况下,这需要一些考古学研究。
存储重构:修复 S/390 和 PowerPC 中的引导程序提案
我们不断努力将 YaST 的另一部分更好地与新的存储堆栈集成,即 yast2-bootloader。虽然新的存储系统已经能够为大多数情况和架构正确设置有效的磁盘布局(每个架构都有其自身的启动要求),但我们的引导程序模块仍然与新的系统在所有这些场景中完全兼容。
在本次冲刺中,我们对其进行了调整,以确保新的存储堆栈建议的所有组合(分区、LVM、加密等)都由 YaST2-Bootloader 正确覆盖。因此,我们可以说我们的测试 ISO 镜像只需单击“下一步”几次即可在任何 x86_64、PowerPC 和 S/390 系统上完全安装。
UDEV 设备 ID 在 PowerPC 上
我们知道一些读者喜欢我们更技术性的帖子,并且喜欢窥探厨房,看看我们如何维护像 YaST 这样复杂的工具来应对各种惊喜。今天在这个方面的章节始于一个关于引导程序在 openQA 的模拟 PowerPC 机器上安装到错误设备名称(/dev/vda 而不是 /dev/vdb)的错误报告。
经过大量的调查,并在我们的 PowerPC 专家的帮助下,我们找到了罪魁祸首,结果证明是一个模拟器怪癖。接下来的几段文字可能取决于您对虚拟化和 PowerPC 术语的了解程度,会很有趣或令人沮丧。请注意。
在 POWER 上,包含引导程序的 PReP 分区没有唯一的标识符,只有磁盘的序列号。QEMU 虚拟化在用户未显式指定序列号时不会提供任何磁盘序列号。这意味着 QEMU 安装中的 PReP 分区没有唯一的标识,并且当虚拟机的磁盘被添加或删除或存储配置发生其他更改时,分区名称可能会更改。这可能导致与引导程序安装和更新相关的系统错误。
建议在 QEMU 虚拟机上为每个磁盘分配一个唯一的序列号,当预计虚拟机的存储配置可能会更改时。否则,YaST 或虚拟机内运行的任何其他工具都无法避免问题。所以这次我们只完成了调查部分,修复来自 openQA 方面,它被改进为在需要时显式设置序列号。
存储重构:更好地支持高级场景
如上所述,我们的 StorageNG 测试镜像已经在所有受支持的架构和组合普通分区、LVM、RAID 和加密的场景中工作。但还有更多 YaST 当前支持的情况和技术,我们需要将其合并到新的堆栈中。
首先,我们在此冲刺中将 多路径 I/O 支持添加到新的 libstorage。现在,它也可以与所有其他提到的技术(例如,在加密的多路径设备之上拥有 LVM 系统)结合使用,尽管存储提案仍然需要进行调整才能与预先存在的多路径设置配合良好。
与库相关的材料一样,我们能提供的最好的“屏幕截图”是其怪异的自动生成图表之一。
另一个超出最常见用例的场景是将系统安装到网络存储设备,而不是本地硬盘。现在,新的存储系统可以报告是否使用了通过网络的根文件系统。当发生这种情况时,YaST 会将网络接口设置为启动模式 nfsroot,这用于避免接口关闭,从而避免系统不可用。
就这样,各位!
再次声明,我们省略了关于修复错误(yast2-ntp-client 在这方面是明星)以及类似无聊的部分。我们希望您喜欢这份报告,并希望在两周后再次与您联系。与此同时…
尽情测试 Leap 42.3 的预发布版本并报告错误吧!





