RAID1比RAID0慢多少
事情背景
之前因为资源不够北京的某个服务后端存储用的SSD没有做RAID1,这次搬过去贵州存储换成了 SSD RAID1。数据的存入速度上感觉比之前慢一些,先看一下RAID0和RAID1的技术原理(RAID技术全解图解-RAID0、RAID1、RAID5、RAID100):
RAID0 是一种简单的、无数据校验的数据条带化技术。实际上不是一种真正的 RAID ,因为它并不提供任何形式的冗余策略。
RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。
RAID1确实比RAID0慢,慢多少需要测一下,上机器,A和B机器型号相同(cpu、内存、RAID卡LSI MegaRAID SAS-3 3108),使用FIO工具实际测一下,参考CSDN:
【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)
实操上图
A机器上RAID1

B机器上RAID0

A机器顺序读

B机器顺序读

A机器顺序写

B机器顺序写

A机器随机读

B机器随机读

A机器随机写

B机器随机写

# 随机读
fio -name=randread -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/设备
# 随机写
fio -name=randwrite -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/设备
# 顺序读
fio -name=read -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/设备
# 顺序写
fio -name=write -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/设备
FIO命令使用

总结对比
machine | RAID | 顺序读 | 随机读 | 顺序写 | 随机写 |
A | 1 | READ: bw=477MiB/s | READ: bw=422MiB/s | WRITE: bw=368MiB/s | WRITE: bw=151MiB/s |
B | 0 | READ: bw=448MiB/s | READ: bw=434MB/s | WRITE: bw=396MiB/s | WRITE: bw=190MiB/s |
顺序读上B比A慢点,其他的随机读、顺序写、随机写都比A强一些,但是没有特别大的差距。