我使用 4 个磁盘分区设置了一个 RAID5 阵列。所有磁盘都是 2TB。当 RAID5 阵列最初同步时,速度太慢了。所以我做了一个
回显 32768 > /sys/block/md2/md/stripe_cache_size
然后就很快了。但仍然需要一天的时间才能完成同步。现在我想做一个
dd if=/dev/zero of=/dev/md2 bs=1024k
到 RAID5 阵列上,一天过去了,但还没有完成。这会花太多时间吗?我做错了什么。
我的突袭详情在这里http://dpaste.com/749742/
Iostat 详细信息请点击此处http://dpaste.com/749761/
硬盘分区详细信息请点击此处http://dpaste.com/749765/
我有一台完全相同的机器,细节也类似。但速度更快。
更新:我已经添加了我的硬盘分区详细信息。
答案1
构建此类阵列的正常时间为 5.5-6 小时。有几件事可能会减慢阵列重建过程 - 同一磁盘上的并发 IO、系统上的高 CPU 使用率、硬盘或电缆故障。
dd if=/dev/zero of=/dev/md2 bs=1024k
- 会减慢重建速度。如果您确实需要用零重写数组 - 请在数组构建后进行。
检查其他分区上是否有负载 - 使用atop
或iostat -nx 1
检查您的平均负载atop
或top
检查系统日志中是否存在 HDD 错误smartctl
。
答案2
在 raid 5 中您应该查看 raid 块大小。运行:cat /proc/mdstat
来检查您的。
要更改它,请运行:
mdadm --grow /dev/md0 --chunk=16
这将重建您的阵列,需要很长时间才能完成。您可以阅读本文以了解更多相关信息: https://raid.wiki.kernel.org/index.php/RAID_setup#Chunk_sizes
然后您可以再次使用 dd 测试您的写入性能。
我编写了一个小脚本来测试读写:
#!/bin/bash
MDDEV="`cat /proc/mdstat | grep md | head -1 | awk '{print $1}'`"
if [ -z "$MDDEV" ]
then
echo "I can\'t find any md"
exit 1
fi
DEVS="`cat /proc/mdstat | grep $MDDEV | tr " " "\n" | grep '^sd' | grep -v \(S\)$ | awk '{print substr($0,3,1)}' | tr -d "\n"`"
NUMDEVS=${#DEVS}
# write dd performance
echo 3 > /proc/sys/vm/drop_caches
dd if=/dev/zero of=/dev/$MDDEV bs=1M count=1024 conv=fdatasync,notrunc
for RASIZE in 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
do
echo $RASIZE
MDRASIZE=$[$RASIZE*$NUMDEVS]
blockdev --setra $MDRASIZE /dev/$MDDEV
blockdev --setra $RASIZE /dev/sd[$DEVS]
blockdev --setra $RASIZE /dev/sd[$DEVS]1
echo 3 > /proc/sys/vm/drop_caches
hdparm -t /dev/$MDDEV | grep "Timing"
#echo 3 > /proc/sys/vm/drop_caches
#dd if=/dev/$MDDEV of=/dev/null bs=1M count=1024 | grep "bytes"
done
对于读取性能,此脚本将为您提供最佳的预读值。然后将 blocdev 命令放入您的 /etc/rc.local 文件中以使其持久
答案3
软件 RAID-5 的速度非常慢,正如 DukeLion 指出的那样,系统上的任何其他负载(CPU 或 IO)都会使其速度进一步降低。如果您必须使用 RAID-5,我强烈建议您使用硬件(并且是合适的硬件,而不是驱动程序使用系统 CPU 在软件中执行的卡之一);或者耸耸肩,准备丢失三分之一的阵列,然后使用软件 RAID-1(从性能角度来看,这很好)。
编辑:我不是说 RAID-5 很慢;我说的是 RAID-5在软件中很慢。如果你将其他(不错的)系统的 IO 统计数据与硬件 RAID-5 的 IO 统计数据进行比较,我想你会发现差异很明显。我这里有一个新系统,带有一个不错的硬件 RAID 卡(Dell H700),如果你愿意的话,我很乐意和你一起做一些时间测试。
我承认,两个软件 RAID-5 的性能差异确实令人沮丧,但是,如果不了解每个软件 RAID-5 的物理和逻辑设置,就很难提出调整建议,而且我不确定我是否会这么做,因为根据我的经验(请原谅我的表达),调整软件 RAID-5 有点像给粪便镀金。