RAID1是否可以通过Linux mdadm提高性能?

杰西

我有一个带有2TB HDD的廉价2盘位NAS。为了防止磁盘故障,我正在考虑购买第二个2TB HDD,并将其放入带有Linux mdadm的RAID1中。文件系统是ext4。

这会增加还是降低NAS的性能?读或写性能如何?

网上似乎对此有很多意见,但没有达成共识。

谢谢。

编辑:

因此,我已经有了三个不同的答案:“更快一点”,“您不会注意到”和“将降低性能(如果有的话)”。(我主要对读取性能感兴趣。)维基百科说:“读取性能可以大致按副本数量的线性倍数提高”。哪一个?

编辑2:

我发现越来越多的证据支持RAID1提高读取性能,包括MD手册页:

更改将并行写入所有设备。从任何一台设备读取数据。驱动程序尝试在所有设备上分配读取请求,以最大程度地提高性能。

我还发现了MD的RAID10 with --layout=f2,它提供RAID1的冗余和RAID0的读取性能,并且只能与两个驱动器一起使用。但是,由于顺序写入涉及两个驱动器在驱动器的较远部分之间来回搜索,因此写入性能会降低。man md有关详细信息。

诺瓦克

是的,只要同时执行两个单独的磁盘读取操作Linux的RAID1实现将磁盘读取操作的速度提高了两倍这意味着在RAID1上读取一个10GB文件不会比在单个磁盘上快,但是读取两个不同的10GB文件*会更快。

为了演示它,只需使用读取一些数据dd在执行任何操作之前,请使用清除磁盘读取缓存sync && echo 3 > /proc/sys/vm/drop_caches否则hdparm将要求超快速读取。

单个文件:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

两个文件:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

读取10 GB数据花费了65秒,而读取10 GB + 10 GB = 20 GB数据总共花费了68.7秒,这意味着Linux上的RAID1极大地受益于多个磁盘读取skip=$COUNT部分非常重要。第二个过程从10 GB的偏移量读取10 GB的数据。

参考http://www.unicom.com/node/459的Jared的答案和ssh的评论是错误的。那里的基准测试证明磁盘读取不能从RAID1中受益。但是,该测试是使用bonnie ++基准测试工具执行的,该工具不会一次执行两次单独的读取。作者明确指出bonnie ++无法用于对RAID阵列进行基准测试(请参阅readme)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过选择VBA提高性能

Java crypto,是否可以重设IV以提高性能?

更具体的异常处理是否可以提高性能?

使用可为空的结构是否可以提高性能?

连接池是否总是可以提高性能?

分区2磁盘RAID0阵列以提高性能

通过删除全部清除来提高性能

通过远离for循环来提高性能

通过预取提高性能并选择相关

如何在MySQL中通过连接提高性能

通过使用公共变量来提高性能?

通过使用多个线程/核心来提高性能

通过数百万条记录提高性能

可以缓存JSON以提高性能/加载时间吗?

带有ListenAndServe的Goroutine可以提高性能吗?

使用C ++ 11的“自动”可以提高性能吗?

numpy是否有可能替换for循环以提高性能?

禁用“是否要更改配色方案以提高性能?” 警告

jQuery:选择器专一性是否可以通过.on()委派提高性能?

什么时候对象足够大,可以通过引用而不是通过值来提高性能?

存储在变量中会提高性能吗?var,let,const是否也会影响性能?

我可以通过并发与Flask相结合来提高性能

通过多个UDP端口传递数据是否会提高性能

将const调用应用于原始类型时,是否可以提高性能?

在隐式类上扩展AnyVal是否可以提高性能?

在Java中使用final关键字是否可以提高性能?

在加密卷上使用压缩文件系统是否可以提高性能?

在log4j中,在记录之前检查isDebugEnabled是否可以提高性能?

是否可以“缓冲”循环中发生的DOM更改(以提高性能)?