跨越 3 个分区的 Raid 1,这是什么意思?

跨越 3 个分区的 Raid 1,这是什么意思?

我看到一台服务器有这种配置。这是什么意思?

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sda1[0] sdc1[2] sdb1[1]
      48827264 blocks super 1.0 [3/3] [UUU]

这是否意味着将数据镜像到 3 个驱动器上,这样 3 个磁盘上的数据就相同了?这样做有什么好处?更高的读取性能是好处之一吗?

答案1

Linux 软件 RAID 1 实现是一种非标准 RAID 级别,可以由奇数个磁盘组成,也称为 RAID 1E。每个条带都经过镜像,通常跨越两个磁盘,这样您就可以从一个磁盘故障中恢复。与所有 RAID 1 一样,与单个磁盘相比,它的潜在读取性能提高了一倍。使用 3 个磁盘,您的有效容量相当于 2 个磁盘。将 RAID1 从一个磁盘扩展到四个磁盘会将其变成 RAID 1-0 卷。

2 drives (RAID1)   3 drives (RAID 1E)   4 drives (RAID 10)
--------           ----------          --------------
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
..  ..             ..  ..  ..          ..  ..  ..  ..

此设置的可靠性和容量与 3 磁盘 RAID 5 相同,但镜像条带比计算奇偶校验条带更便宜。

理论上,您的设置也可以是 RAID1,其中每个条带都镜像三次,但这似乎不太可能,您可以获得三倍的读取性能,但只有单个磁盘的容量:

3 drives (RAID1)
--------------
A1  A1  A1
A2  A2  A2
A3  A3  A3 
A4  A4  A4
..  ..  .. 

该命令mdadm --detail /dev/md0将显示布局。RAID10 的布局选项是 'n'、'o' 或 'f' 之一,后面跟着一个小数字。数字表示复制数据块的次数,冗余级别。默认值为 'n2'。支持的选项有:

n表示“接近”副本。一个数据块的多个副本在不同设备中的偏移量相似。

o发出“偏移”副本信号。不是在条带内复制块,而是复制整个条带,但由一个设备旋转,因此重复的块位于不同的设备上。因此,块的后续副本位于下一个驱动器中,并且位于下一个块下方。

f表示“远”副本(多个副本具有非常不同的偏移量)。有关“近”、“偏移量”和“远”的更多详细信息,请参阅 md(4)

“”。

答案2

对于需要快速访问的重要数据以及一般数据库负载,这是典型的配置。

如果您有一个带有两个磁盘的 RAID1,并且其中一个磁盘发生故障,则在重建完成之前您将没有任何冗余,因此剩余磁盘上的任何有缺陷的扇区都会导致错误(这也是 RAID5 系统经常死机的原因)。

此外,在数据库设置中,随机读取性能至关重要。拥有三个磁盘可为您提供三组可独立定位的读/写头,从而大大提高性能。

答案3

这是使用 3 个磁盘的 RAID,可为您提供额外的读取速度和更高的容错能力。

答案4

我在数据库服务器上见过这种设置,管理员想要进行完整备份,但又不想延长数据库的停机时间。他们创建了带有 3 个镜像的 raid 设置,当需要备份时,先让数据库静止,从 raid 中移除一个磁盘,然后从该磁盘进行备份,备份完成后,再将磁盘放回 raid,让 raid 控制器处理重新镜像。

这已是近 20 年前的事了;当然,现在您更愿意使用逻辑卷和快照。

相关内容