经常阅读本博客上 YaST 团队开发冲刺报告的读者已经知道,我们一直在稳步地向 YaST 分区程序添加对 Bcache 技术的支持。我们已经达到了一个可以随 openSUSE Leap 15.1 和 SUSE Linux Enterprise 15 SP1 一起发布的阶段。这听起来是一个很好的场合,可以发布一篇完整的博文,以便我们热爱的用户无需深入研究几篇博文即可了解 YaST 中 Bcache 的未来版本将带来什么。不用说,所有这些都已经适用于 openSUSE Tumbleweed 用户,或者将在未来几周内可用。
Bcache 101
但是,首先,什么是 Bcache?它是一种 Linux 技术,允许通过使用更快更小的设备(在 Bcache 术语中称为“缓存设备”)来加速读写操作,从而提高任何大型但相对较慢存储设备(在 Bcache 术语中称为“后端设备”)的性能。生成的 Bcache 设备具有后端设备的大小和(几乎)缓存设备的有效速度。
换句话说,你可以使用一个或多个固态硬盘,它们通常速度很快但体积小且价格昂贵,作为多个传统的旋转(便宜且大容量)硬盘的缓存……从而有效地获得两者的最佳优势。
在你的 Linux 系统中,这一切看起来是什么样子?让我们用一些经典的 ASCII 艺术来解释一下
(slow hard disk) (faster device, SSD)
/dev/sda /dev/sdb
| |
[Backing device] [Caching device] <-- Actually, this is a set of
| | caching devices (Caching Set)
|__________ __________|
|
[Bcache]
/dev/bcache0
请注意,相同的缓存设备(或相同的“缓存集”,坚持 Bcache 术语)可以由多个 Bcache 设备共享。
如果你正在考虑稍后使用 Bcache,也可以将所有慢速设备设置为 Bcache 后端设备,而无需缓存。然后,你可以在稍后的某个时间点添加缓存设备。
(slow hard disk)
/dev/sda
|
[Backing device]
|
|__________ __________|
|
[Bcache]
/dev/bcache0
最后但并非最不重要的一点,Bcache 技术允许在现有的缓存集之上创建虚拟设备,而无需关联的后端设备。这种设备被称为仅闪存 Bcache,仅在某些非常特定的用例中才有用。
(faster device, SSD)
/dev/sdb
|
[Caching device]
|
|__________ __________|
|
[Flash-only Bcache]
/dev/bcache0
你可能会想:“嗯,所有这些听起来很有趣,但同时也很让人望而却步……我该如何以一种简单的方式开始使用它?”。而且你已经知道答案了。![]()
YaST 分区程序中的 Bcache
在运行 x86 64 位系统时,YaST 分区程序将在其通常的左侧树中提供一个 Bcache 条目。在那里你可以看到两个选项卡。第二个选项卡列出了系统中可用的 Bcache 缓存集,并且纯粹是信息性的。但是第一个选项卡是进入 Bcache 世界所有力量的入口。该选项卡允许你可视化、修改和删除现有的 Bcache 设备。当然,它还允许你在任何不是那么快的现有块设备之上创建新的 Bcache 设备。
所有 Bcache 设备都可以像系统中的其他块设备一样灵活地进行格式化、挂载或分区。请参阅之前的屏幕截图,其中一些设备包含分区,而另一些设备直接格式化。
创建和编辑 Bcache 设备允许你选择要用作后端和缓存的设备,并选择可用的缓存模式之一(稍后会详细介绍)。任何可用的块设备(例如磁盘、分区或 LVM 逻辑卷)都可以用作后端设备或缓存设备。但是,一张截图胜过千言万语。
后端设备是必需的。无法创建仅闪存 Bcache,并且未来没有计划在分区程序中包含对它们的的支持。但是,如前一个屏幕截图所示,缓存设备可以指定为“无缓存”。这允许创建将在未来获得缓存设备的 Bcache 设备,如本文开头所述。
如前所述,第三个字段允许你选择 Bcache 提供的缓存模式之一。如果你不确定特定的缓存模式意味着什么,YaST 还提供了相当详细的帮助文本来解释它们。
此外,在修改设备时,分区程序将限制有风险的组合,防止数据丢失并避免可能导致不可靠结果的操作。例如,它会阻止修改正在被系统使用的缓存设备的 Bcache 设备,因为这需要分离操作。在某些情况下,这可能需要很长时间并干扰分区程序执行的其他操作。
当然,删除 Bcache 设备的选项提供了 YaST 分区程序的其他部分中可用的常用检查和信息,如以下屏幕截图所示(这次使用 SLE 安装程序的界面)。
Bcache 适合所有人吗?
有了上述所有功能,我们可以说 YaST 分区程序降低了所有 (open)SUSE 用户开始享受 Bcache 技术的便利和好处的入门门槛。不幸的是,这对于我们热爱的发行版支持的所有硬件架构来说并不完全正确。
Bcache 仅被认为在 x86_64 系统(即 64 位 x86 架构)中稳定和成熟。如果你不确定你的计算机是否符合此描述,那么几乎可以肯定的是符合的。
我们没有证据表明有人在 32 位系统或任何 ARM 平台上成功使用 Bcache。此外,我们确信该技术在 PPC64LE 和 S390x 架构中不可靠。
因此,即使在找到 Bcache 设备的极不可能的 Unsupported 系统中,YaST 分区程序也仅会在 x86_64 系统中显示左侧树中的“Bcache”部分。如果甚至发生这种情况,YaST 会提醒用户在 Unsupported 场景中使用 Bcache 的危险,并敦促他们使用手动程序来修改现有的设置。
接下来是什么?
显然,当将新技术添加到 YaST 时,在分区程序中管理 Bcache 方面仍然有很大的改进空间。但是现在轮到我们的用户来测试它并提出错误报告和进一步改进和用例的想法。盈利!





