![我们可以将文件系统挂载为主文件系统和次文件系统吗](https://linux22.com/image/1620441/%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E5%B0%86%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%8C%82%E8%BD%BD%E4%B8%BA%E4%B8%BB%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%92%8C%E6%AC%A1%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%90%97.png)
我需要将文件系统挂载为主文件系统和辅文件系统,如果主文件系统发生故障,则应将文件存储在辅文件系统中。这可能吗?如果可能,我应该选择什么?
答案1
答案2
这是一个复杂的问题,(虽然不是很明显)很难回答。情况如下。
RAID - RAID 提供针对硬件故障的保护,是简单情况的非常好的解决方案。它实际上不符合您的标准,因为如果第一个位置死机,它不会写入第二个位置 - 但如果这是问题的宽泛表述并且 RAID 满足您的需求 - 它是值得选择的选项。即使它不能满足您的需求,它也是一个良好的基础 - 因为下面的解决方案将适用于 RAID。
如果主文件系统已关闭,而您想要(并且能够)写入同一台机器上的备用文件系统,则应考虑使用“联合”文件系统。这些虚拟文件系统允许您组合磁盘并合并不同的层。它们是许多“实时 USB 磁盘”的工作方式。它们按给定顺序分层多个文件系统,并以不同的方式组合读取和写入。有许多这样的系统,如 aufs、unionfs 和 overlayfs。这些系统的挑战在于管理它们如何管理不可用的底层文件系统 - 您可能需要定期检查并终止不可用的层并调整 unionfs - 这可能会违背目的。
另外两个被忽视的选项是 drbd 和 MARS(技术上更优越,但几乎不为人所知,而且集成度不是很好)。它们通过在多个系统之间复制磁盘(想想网络 raid)来解决不同的问题。如果您的计划要求能够抵御 PC 故障,那么这些值得一看。您可能希望导出块设备并使用它。
最好的答案可能是查看像 cluster 这样的文件系统(或 moosefs 或类似文件系统)。它们由分布式块构建,具有冗余性,并且将其全部抽象化,因此您的读写操作可以经受住磁盘或硬件故障。不过,我认为这些在块级别上效果不佳。