经过编辑以反映评论的结论:
我想构建一个类似软件 RAID 的阵列,其中包含 2 个存储设备加一个奇偶校验设备,其中奇偶校验设备维护另外两个设备的 XOR。
这让人想起 RAID3 或 RAID4,但我希望能够挂载两个底层设备并像平常一样写入它们,每次写入设备时 XOR 都会更新。这也意味着我不是想要对我的数据进行条带化。
总之,我想要一种可以让我自由地存储两个已安装设备的数据的安排,并且第三个设备具有这两个设备的最新 XOR。
标准 Linux RAID4/mdadm 对我来说不起作用,因为它 (1) 将文件分拆到多个磁盘 (2) 阻止安装单个磁盘。
答案1
你不能。唯一的RAID 的标准形式不进行条带化的是 RAID-1,即直接镜像。
EMC 的 RAID-S 有可能满足您的要求,但这是在 EMC 硬件中实现的专有解决方案(不再使用)。
所以是的,你必须自己编写。但请注意,你和物理介质之间总是会有一个伪设备。这是因为为了确保完整性,对磁盘的写入以及对奇偶校验磁盘的写入必须被视为原子的 - 即,要么两者都发生,要么都不发生。
因此在这种情况下,您不能只写入物理介质,然后让 RAID 系统以某种方式检测到这一点并在事件发生后计算奇偶校验。如果这是可能的,那么如果奇偶校验写入部分被中断,就不可能知道数据是否被损坏。也就是说,奇偶校验不同是因为奇偶校验没有被写入,还是因为磁盘上的数据被损坏而导致奇偶校验不同。
答案2
UNRAID 可能正是您所需要的。他们有一个适用于 3 个磁盘(2 个数据/1 个奇偶校验)的免费版本。系统从 USB 笔启动/运行。它的优点在于,在读取时,只有正在访问文件的磁盘旋转,在写入时,只有正在写入的磁盘和派对磁盘旋转。您可以在以下位置找到更多信息这里。维基百科上有一些过时的信息,所以要小心。但论坛相当活跃,社区似乎也相当友好。