我看到一台服务器有这种配置。这是什么意思?
# 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 年前的事了;当然,现在您更愿意使用逻辑卷和快照。