专用于仅交换的 SSD 在 Debian 或 Ubuntu 上失败

专用于仅交换的 SSD 在 Debian 或 Ubuntu 上失败

这还没有发生在我身上,但如果我将单个 SSD(非 RAID)专用于仅交换,并且服务器系统正在使用它的全部容量 - 接下来会发生什么?假设我手里有一块相同的、经过测试且可以正常工作的 SSD,我该如何恢复呢?

假设我有一个 i3、32GB RAM 服务器,运行带有 xfce 的最新 XUbuntu。除此之外,我正在运行 Oracle 的 4.3.20 VirtualBox (vbox),它是许多 Windows 和 Linux 服务器和客户端的所在地。

据我了解,有几种情况。

场景 A:我将 XUbuntu 主机使用的 SSD 仅交换驱动器与 vbox Linux 客户端的交换文件和 Windows 客户端的页面文件共享。

场景 B:我将 XUbuntu 主机与 VirtualBox 隔离:我的 vbox 客户端从不使用托管 Linux 的 SSD 驱动器进行交换。相反,我重新启动虚拟客户端以使用更多物理资源。

场景 C:我从不允许任何 vbox 客户端超过 32GB 的一半,并且我强制 vbox 客户端使用它们自己的虚拟交换。

无论哪种情况,SSD 现在都消失了,我需要处理它。

我非常倾向于使用场景 A,因为它是最适合交换和页面文件的驱动器,但如果从此类故障中恢复很复杂或不可能,请告诉我。 B 和 C 是安全的,但非常有限。

再说一次,这只是一个场景,它还没有发生在我身上。谢谢阅读!

答案1

Linux 可以使用多个交换分区或交换文件,因此如果您担心 SSD 空间不足,只需准备一个备用交换分区或文件供其使用即可。通常,交换使用量在所有可用交换设备和文件之间交错,但您可以通过为交换设备分配优先级来覆盖这一点。

http://linux.die.net/man/8/swapon

-p, --priority 优先级

指定交换设备的优先级。优先事项是 0 到 32767 之间的值。数字越大表示优先级越高。有关交换优先级的完整说明,请参阅 swapon(2)。添加pri=value到 的选项字段以/etc/fstab与 一起使用swapon -a

并从http://linux.die.net/man/2/swapon

交换页按优先级顺序从区域中分配,优先级最高的在前。对于具有不同优先级的区域,先用完较高优先级的区域,然后再使用较低优先级的区域。如果两个或多个区域具有相同的优先级,并且这是可用的最高优先级,则页面将在它们之间循环分配。

因此,只需让 SSD 上的主交换分区/文件具有相同的优先级,并为普通 HD 上的“紧急”交换提供较低的优先级即可。

IIRC,使用交换分区比交换文件更有效; OTOH,使用文件稍微更灵活,并且额外的开销非常小,但我想使用 SSD 而不是传统 HD 时,轻微的速度差异可能会更明显,因为 SSD 太快了。

FWIW,这是不是如果您正在使用休眠模式,那么在不同操作系统之间共享交换空间是个好主意!

相关内容