在Linux上使用软件RAID4写入特定驱动器


0

编辑以反映评论的结论:

我想构建一个类似于软件RAID的阵列,其中包含2个存储设备和一个奇偶校验设备,其中奇偶校验设备保持其他两个设备的XOR。

这让人想起RAID3或RAID4,除了我希望能够像往常一样安装两个底层设备并写入它们,每次写入设备时都会更新XOR。这也意味着我这样做 想要我的数据条纹。

总之,我想要一种允许我自由存储两个已安装设备的数据的安排,以及一个具有这两个设备的最新XOR的第三个设备。

标准Linux RAID4 / mdadm对我不起作用,因为它(1)磁盘上的条带文件(2)阻止了单个磁盘的安装。


1
如果您编写的实现允许您直接写入底层磁盘,则它不会是RAID4,因为您实际上是在破坏阵列。 md设备允许RAID发生 - 如果你绕过它,你就不使用RAID。
Paul

你想达到什么目的?从你的问题来看,你似乎想要实现一些不可能或对你的数据没有好处的东西。
Uwe Plonus

我想构建一个数组,以便对于我选择的一个磁盘上的每次写入,奇偶校验在另一个磁盘上更新。
eitan27

这正是你所做的。当您写入/ dev / md0时,它会将数据写入条带中的前两个磁盘,并将奇偶校验写入最后一个磁盘。
Paul

@Paul好的,所以这里是问题的症结所在:我有一些我希望存储在文件中的文件 具体 设备。写入/ dev / md0可以 让我自由选择存储给定文件的设备。不仅如此,文件将被条带化,这意味着文件的片段将在不同的设备上。
eitan27

Answers:


1

你不能。唯一的 标准形式的RAID 不做条纹的是RAID-1,直镜。

EMC RAID-S可能会满足您的需求,但这是在EMC硬件中实现的专有解决方案(不再使用)。

所以,是的,你必须自己写。但请注意,您和物理媒体之间始终存在伪设备。这是因为为了确保保持完整性,对磁盘的写入以及对奇偶校验磁盘的写入必须被视为原子 - 即,两者都发生或两者都不发生。

所以在这种情况下,你不能只是写入物理媒体,并让raid系统以某种方式检测到这一点,并在事件发生后计算奇偶校验。如果这是可能的,那么如果奇偶校验写入部分被中断,则不可能知道数据是否已损坏。即,奇偶校验是不同的,因为奇偶校验没有写入,或者奇偶校验不同,因为磁盘上的数据已损坏。


0

UNRAID可能就是您所需要的。他们有3个磁盘的免费版本(2data / 1parity)。系统从USB笔启动/运行。关于它的好处是,在只读取磁盘时,正在访问的文件会旋转,而在写入时只会写入正在写入的磁盘并且聚会磁盘会旋转。你可以在 这里 。维基有一些过时的信息所以要小心。但论坛非常活跃,社区似乎非常友好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.