我知道各种突袭行动的大部分工作。但在研究linux软件raid时,我无意中发现了推荐的raid10 10,f2模式。我真的不明白它是如何在2或3个磁盘上工作的。有人能给我解释一下吗?或者给我看一篇很好的文章来解释它?
发布于 2010-05-11 04:37:51
实际上,我认为维基百科比实际的文档解释得更好。这是这篇文章的正文。
Linux内核软件RAID驱动程序(称为md,用于“多个设备”)可以用于构建一个经典的RAID 1+0数组,但也可以(自2.6.9版本起)作为一个级别使用一些有趣的扩展。标准的“接近”布局(在k路条形数组中每个块重复n次)等同于标准的RAID-10排列,但它不要求n除以k。例如,2、3和4个驱动器上的n2布局如下所示:
2 drives 3 drives 4 drives
-------- ---------- --------------
A1 A1 A1 A1 A2 A1 A1 A2 A2
A2 A2 A2 A3 A3 A3 A3 A4 A4
A3 A3 A4 A4 A5 A5 A5 A6 A6
A4 A4 A5 A6 A6 A7 A7 A8 A8
.. .. .. .. .. .. .. .. ..4-驱动器示例与标准RAID-1+0数组相同,而3-驱动器示例是RAID-1E的软件实现。2驱动器示例是等效的RAID 1。驱动程序还支持“远”布局,其中所有驱动器被划分为f段。所有的块在每个部分重复,但由一个设备抵消。例如,2和3驱动器数组上的f2布局如下所示:
2 drives 3 drives
-------- ------------
A1 A2 A1 A2 A3
A3 A4 A4 A5 A6
A5 A6 A7 A8 A9
.. .. .. .. ..
A2 A1 A3 A1 A2
A4 A3 A6 A4 A5
A6 A5 A9 A7 A8
.. .. .. .. ..这是为镜像数组的条带化性能而设计的;序列读取可以被条带化,就像RAID-0中一样,随机读取有点快(由于使用磁盘的更快的外部扇区和较小的平均搜索次数,可能会有10-20 %的随机读取速度),而顺序写入和随机写入与其他镜像RAID的性能相当。这种布局对于读比写更频繁的系统执行得很好,这在许多系统上是非常常见的情况。每个驱动器的前1/f是一个标准的RAID-0阵列。因此,您可以在只有2个驱动器的镜像集上获得条带化性能。“近距”和“远近”选项可以同时使用。每个区段中的块被n个装置(S)抵消。例如,n2 f2布局存储每个扇区的2×2 =4份副本,因此至少需要4个驱动器:
4 drives 4 drives
-------------- -------------------
A1 A1 A2 A2 A1 A1 A2 A2 A3
A3 A3 A4 A4 A3 A4 A4 A5 A5
A5 A5 A6 A6 A6 A6 A7 A7 A8
A7 A7 A8 A8 A8 A9 A9 A10 A10
.. .. .. .. .. .. .. .. ..
A2 A2 A1 A1 A2 A3 A1 A1 A2
A4 A4 A3 A3 A5 A5 A3 A4 A4
A6 A6 A5 A5 A7 A8 A6 A6 A7
A8 A8 A7 A7 A10 A10 A8 A9 A9
.. .. .. .. .. .. .. .. ..从Linux2.6.18开始,驱动程序还支持偏移量布局,其中每个条带重复o次。例如,2-和3-驱动器阵列上的o2布局如下:
2 drives 3 drives
-------- ----------
A1 A2 A1 A2 A3
A2 A1 A3 A1 A2
A3 A4 A4 A5 A6
A4 A3 A6 A4 A5
A5 A6 A7 A8 A9
A6 A5 A9 A7 A8
.. .. .. .. ..注意:k是驱动器的数量,n#、f#和o#是mdadm -布局选项中的参数.Linux还可以使用md驱动程序(0、1、4、5、6)创建其他标准RAID配置。
发布于 2010-05-05 23:07:16
据我所读,一个f2 RAID10数组保存了每个块的至少两个副本,并且它们彼此存储在很远的地方。
下面是手册页的相关部分。
-p,- layout =此选项配置raid5和raid10数组 ...的详细数据布局,最后,RAID10的布局选项为'n‘、'o’或'p‘,后面跟着一个小数目。默认情况是'n2‘。N个信号“接近”拷贝。一个数据块的多个副本在不同的设备中处于类似的偏移量。没有信号‘偏移’拷贝。整个条纹不是在条内复制,而是由一个设备旋转,因此重复块在不同的设备上。因此,一个块的后续副本在下一个驱动器中,并且是一个更低的块。F信号‘远’副本(多个副本有非常不同的偏移)。有关“近”和“远”的更多细节,请参见md(4)。
RAID10提供了RAID1和RAID0的组合,有时也称为RAID1+0。每个数据库被重复几次,产生的数据库锁集合分布在多个驱动器上。在配置RAID10数组时,需要指定所需的每个数据块的副本数量(通常为2),以及副本应该是“近”、“偏移”还是“远”。(请注意,“偏移”布局只能从2.6.18中获得)。当选择“近”副本时,给定块的多个副本在数组的条纹上连续地排列,因此数据库锁的两个副本很可能在两个相邻设备上处于相同的偏移位置。当选择“远”副本时,给定块的多个副本被放置得非常遥远。所有数据块的第一份副本将以RAID0的方式横穿所有驱动器的早期部分,然后所有块的下一份副本将在所有驱动器的后一节中进行条带化处理,始终确保任何给定块的所有副本都位于不同的驱动器上。“远”排列可以提供与RAID0数组相同的顺序读取性能,但代价是降低了写入性能。当选择“偏移”副本时,给定块的多个副本被放置在连续驱动器和连续偏移量上。有效地,每个条纹被复制和副本被一个设备抵消。如果使用合适的大块大小,这应该会给出类似于“far”的读取特性,但不需要太多的写操作。应该注意的是,RAID10数组中的设备数量不一定是每个数据块的副本数量的倍数,必须至少有与副本相同的设备。例如,如果用5个设备和2个副本创建了一个数组,那么相当于2.5个设备的空间就可用了,每个块将存储在两个不同的设备上。
发布于 2011-02-20 09:40:34
这很有趣,而且解释得很好。然而,普通RAID1还具有这样的特性,至少在Linux软件RAID中,它能够以非常好的性能并行支持多个阅读器:
数据是从任何一个设备读取的。驱动程序试图在所有设备上分发读取请求,以最大限度地提高性能。从理论上讲, ...有一个N磁盘RAID1将允许N个顺序线程从所有磁盘读取.(man 4 md,RAID1科)
它看起来像RAID10,在它的近似布局中,更适合这种行为(加速不是像RAID0那样的单线程I/O而是多线程I/O)。具有4个磁盘的n2f2与具有4个磁盘的RAID1类似。
包含4个磁盘的n2布局将两者兼而有之:一个线程的读取性能提高一倍,两个线程的读取性能翻两番(如果Linux RAID10调度程序实现得很好,一个线程应该在一对线程上读取,另一个线程应该在另一对线程上读取)。
一切都取决于你需要什么!我还没做基准测试。
https://serverfault.com/questions/139022
复制相似问题