RAID1 与 RAID5:双磁盘阵列的读取性能

RAID1 与 RAID5:双磁盘阵列的读取性能

我正在测试一些用 构建的 RAID 设置mdadm。这是关于 2 磁盘阵列上的并行读取。

RAID1似乎通过进程平衡读取,某种粗粒度平衡,因此使用简单的 读取整个 raid 阵列dd if=/dev/md0 of=/dev/null bs=1M,根据nmon,基本上将所有读取定向到/dev/sda。当多个dd命令并行运行时,一些从 读取,sda一些从 读取sdb

奇怪的是,我测试了RAID5,同样的两个磁盘,同样的冗余度和 50% 的磁盘利用率。单个低级读取均匀dd分布,因此每个读取操作似乎都更好地并行化了。sdasdb

对 CPU 负载的影响似乎可以忽略不计。我还没有检查写入操作。

对于双磁盘阵列使用 RAID5 有意义吗?

顺便说一下,在 1 和 5 之间来回切换就像mdadm --grow /dev/md0 --level 1或一样简单5,没有数据移动,只有并行读取模式发生变化。

答案1

使用 dd 的一次低级读取分布sda均匀sdb,因此每个读取操作似乎都能更好地并行化。

你误解了 RAID-5 中发生的事情。要从 RAID-5 阵列中读取任何数据,必须读取所有磁盘,并从存储在磁盘上的“数据 + 奇偶校验”中提取实际数据全部阵列中的磁盘。

实际上,您必须在 RAID-5 配置中读取两倍的数据才能获取数据,但还具有检测数据损坏的额外优势。(就 RAID-5 防止数据损坏的程度而言。它并不完整。)

在 RAID-1 镜像中,您只能在完全清除阵列后才可检测到数据损坏。

对于双磁盘阵列使用 RAID5 有意义吗?

如果您需要数据损坏检测,可以。但请记住,这需要两倍的读取带宽和两倍的读取 IO 操作数。

答案2

对于双磁盘阵列使用 RAID5 有意义吗?

不,它需要 3 个以上的磁盘。当您想要镜像时,您应该指定 RAID1。不要依赖实现细节,例如 mdadm 会做明智的事情并有效地为 2 个磁盘阵列提供 RAID1。

另外,不要使用 RAID5,重建时可能会再次发生故障。RAID 1 中有两个磁盘,RAID6 或 RAID10 中有两个或以上磁盘。

相关内容