当我search例如RAID1安装时,pipe理员似乎倾向于将他们的交换分区放在RAID1下。
对于我来说,拥有两个磁盘更为直观,每个磁盘在RAIDarrays之外有一个用于RAID1和系统分区的较大分区,以及一个用于交换的较小分区。
如果我在系统运行时丢失了一个磁盘,而且实际上有一半交换空间,那么最糟糕的情况是什么?
在镜像交换卷时,我是否应该看到性能增加或减less,而在RAID之外有两个单独的交换卷?
如果交换应该被镜像,交换自己的RAID1arrays是否更有意义,还是使用LVM分割一个大的RAID1arrays更有意义?
(注意4,我不确定mdX是否可以在没有LVM的情况下进行分区,但是debian安装程序让我相信它不能)
如果您使用的是RAID1,则不会失去一半的交换空间,只有两个镜像中的一个。 最糟糕的情况是你会失去任何你可能获得的性能好处。 如果在单个驱动器上有两个独立的交换区域,则内核将以与RAID0类似的方式(如果它们具有相同的优先级集合)或JBOD(如果优先级不同,则使用最高优先级区域直到完整,然后下一个)使用如果其中一个驱动器死亡,则只要需要访问交换区域,系统就可能会崩溃。 这就是为什么交换空间通常位于RAID1卷上的原因 – 它更安全,通常比性能更重要。
两个单独的交换区域将被用于类似于RAID0,所以你会希望看到一个性能的增加,虽然这取决于你的驱动器在当时的其他负载。 使用现代内核,RAID1驱动程序可以尝试猜测哪个驱动器最适合从每个块读取,因此您可能会获得一些读取性能提升,但显然对于写入交换,您将不会因为两个镜像都必须更新。 在大多数现代设置中,swap的性能并不像安全性那么重要 – 现在的RAM相对便宜,所以除非你对抗主板可以承受多less内存的限制,否则你应该有足够的内存,以便交换空间是反正尽可能less使用。
如果您使用同一对磁盘,则几乎没有区别。 在单独arrays上交换的一个常见原因是,当使用RAID5 / 6作为主arrays时(在你的情况中不是这样),以避免和调出RAID5 / 6写性能问题的交换区域。 您可以通过尝试确保交换区域靠近磁盘最繁忙的部分来调整性能(因此,如果您有一个用于最繁忙的活动数据库文件的250Gb逻辑卷的1TBarrays,请将交换卷放到),以减less交换时的头部动作 – 但实际上这样的调整是不是花时间,因为当你交换大量的时间 – 或者 – 两个好处不足以使执行好与不好之间的区别。
我相信, 就内核而言,您可以将软件RAID卷进行分区,但这并不意味着安装程序可以理解这样的安排。 在没有使用LVM的例子中,我总是看到驱动器被分为多个分区,每个分区有一个单独的RAIDarrays,而不是一个分区的大型RAID卷。 我build议LVM的方法,除非你有特定的理由避免它,因为它更灵活,(根据我的经验)不低于其他安排。
如果您使用RAID10,则可以享受RAID0的快速访问(尽pipe只读)和Linux上RAID1的安全性。 Linux MD驱动程序可以在2个以上的任意数量的驱动器上创buildRAID10卷。 为了获得速度优势,您需要将arrays的布局指定为“far”(- -p f2 ),这样读取性能与RAID0类似,而写入性能只比RAID1稍慢。