我计划在 raid10 配置中设置 4 个驱动器,但在每个驱动器上放置单独的交换分区(无 raid),并让内核执行类似于 raid0 的操作。当/如果其中一个驱动器发生故障并且其上有交换数据:
- 内核可能会崩溃。
- 当前正在运行的进程的内存中存储的任何数据都可能会丢失。
到目前为止,这似乎是一个可以接受的失败案例。还有其他的失败案例吗?坏事有没有可能发生我还没有考虑到的事情?
答案1
还可能发生另一件事:如果必须将部分或全部交换的进程(即:由于不活动)重新加载到 RAM 中(即:由于外部因素,如用户迭代)并且交换分区死机,则换入进程无法完成,并且该进程将崩溃或变得疯狂。
出于所有这些原因,我强烈建议不要在服务器上使用 RAID-0 交换分区。在工作站/客户端上,这可能是合理的,但实际情况是,即使是 RAID-0 形式的大规模磁盘阵列与 RAM 相比也非常慢,因此在功能上与使用 RAID-10 没有什么不同
答案2
抱歉,我从来没有勇气涉足非冗余交换领域。所以除了“不要这样做”之外,这不是对你问题的直接回答。
我想分享我的观点:一般来说,如果你依赖 swap 的性能,那么你可能做错了什么。如果你不关心 swap 的性能,那么就让它变得多余吧。
更多的 RAM 总是比更多的交换性能更便宜!