Swap 和 RAID-1 应该混合使用吗?

LRE*_*LRE 12 swap raid 12.04

我有一个带有用于交换空间的小型 RAID-1 阵列的盒子。我这样做是因为我为系统中的每个其他分区设置了镜像。

今天我读到了这个问题,它让我想知道:“在 RAID-1 上进行交换是否理想/可取?”。

Eli*_*gan 20

您应该(可能)不要将交换从 RAID 1 上取下。

有时在 RAID 1 上进行交换并不重要,但它很好,通常很有帮助,而且通常是必要的。如果您已经在使用 RAID 1,很少有任何理由故意将您的交换放在其他地方。

在 RAID 1 上交换可能会表现得更好

可以预期 RAID 1 上的 SWAP 比 RAID 外的单个交换分区的性能更好,但不如设置为相同优先级的两个交换分区。

写入 RAID 1 有时比写入单个磁盘慢,因为所有数据都必须写入两个磁盘。通常它并不是真的变慢——通常减速可以忽略不计。如果在同一个 IDE 控制器上有两个磁盘的 RAID 1,它会更慢。但是当访问一个磁盘不会减慢对另一个磁盘的访问时,写入 RAID 1 不会显着变慢。

从 RAID 1 读取几乎总是比从单个磁盘读取更快,因为当一个磁盘被读取占用时,可以从另一个磁盘读取更多数据。从由两个驱动器组成的 RAID 1中读取的速度通常几乎是从单个驱动器读取的两倍

我不知道有任何测试可以将两个单独的交换分区与 RAID 1(或任何其他 RAID)上的单个交换分区进行比较。没有理由认为单个交换分区的性能会与 RAID 1 上的交换一样好或更好。如果在不同的磁盘上有两个交换,情况会更加复杂:

  • 如果交换在 中被赋予不同的优先级/etc/fstab,则将单独的页面交换给它们;同一页面不会同时交换到两个页面。我希望两个交换同时访问不相关的交换数据会更快,但访问单个页面会更慢。

  • 如果交换在 中被赋予相同的优先级/etc/fstab数据(甚至来自单个页面)将被条带化。这类似于 RAID 0,并且很可能比将交换放在 RAID 1 上执行得更好。

    从理论上讲,如果您有硬件 RAID 1,软件条带化可能效率较低,但除非您有不寻常的应用程序,其中从交换区读取比写入更常见,否则我希望非 RAID 软件条带化交换优于交换分区在 RAID 1 上。

    (因为内核可以在多个交换分区之间条带化交换数据,所以没有理由只为交换设置软件 RAID 0。)

有关 RAID 1 性能的更多信息,请参阅Wikipdia 文章“标准 RAID 级别”的这一部分

感谢gertvdijk提供有关条带交换的至关重要的信息。

您可能真的需要在 RAID 1 上进行交换

您是否需要在 RAID 1 上进行交换首先取决于您为什么需要 RAID 1。掉期中的数据通常非常不稳定,丢失它通常并不代表资产的重大损失。然而。:

  1. RAID 的一个好处(RAID 0 除外)是,如果驱动器出现故障,您的计算机会继续运行(只是稍微慢一些)。如果您正在运行的程序将页面交换到磁盘(如果启用了交换,情况几乎总是如此),则包含交换分区(无论它是否是唯一的交换分区)的驱动器将出现故障,并且它没有冗余备份,您的系统将立即停止正常工作(并且在重新启动之前可能完全无法使用,具体取决于交换的使用方式)。如果您将机器用作生产服务器或执行任何其他重要任务,则会导致停机

    如果您可以容忍单个常见不良事件(一个驱动器发生故障)导致的全部交换失败,您应该问问自己为什么要使用 RAID 1。你可能有一个很好的答案……也可能没有。RAID(RAID 0 除外)可防止磁盘故障,但RAID 不是备份解决方案。如果您更改或删除 RAID 上的文件,或者恶意软件感染了 RAID 上的系统,则会立即在任何地方进行更改——RAID 将无法让您从中恢复。

    如果您需要的是备份而不是冗余,并且您还没有高度可靠、易于访问的备份,那么您应该完全从 RAID 中取出一个驱动器并将其用于备份。(当然,有时也需要异地备份。)

  2. 如果您使计算机休眠(即挂起到磁盘),RAM 的内容将复制到交换分区。因此,如果您的机器在发生磁盘故障时处于休眠状态,您实际上可能会因为丢失交换分区而丢失数据。