I want to create (and test) mdadm raid10 with 4 nvme enterprise ssd's in 2 mirrors striped (raid10).
I intend to create:
I found the following might help improve performance:
As for the questions about this:
1: Do I set the sysctl on md2 only (the stripe) or for each one?
2: I'm pretty sure I still need to align a partition right?
3: Chunk size: I see people pick large chunk sizes to improve throughput, but I want to tune for random small block (4k - 16k) IOPS. I don't think a 1M chunk will help but Im not sure so, open to suggestions.
Thanks!
I intend to create:
Code:
mdadm --create /dev/md0 --level 1 --name mirror1 --raid-devices 2 /dev/nvme1n1 /dev/nvme2n1
mdadm --create /dev/md1 --level 1 --name mirror2 --raid-devices 2 /dev/nvme3n1 /dev/nvme4n1
mdadm --create --chunk-size 64K /dev/md2 --level 0 --name stripeset -raid-devices 2 /dev/md0 /dev/md1
Code:
# Tune md0
echo 16 > /sys/block/md0/md/group_thread_cnt
echo 16384 > /sys/block/md0/md/stripe_cache_size
echo 5000000 > /proc/sys/dev/raid/speed_limit_min;
echo 10000000 > /proc/sys/dev/raid/speed_limit_max
1: Do I set the sysctl on md2 only (the stripe) or for each one?
2: I'm pretty sure I still need to align a partition right?
3: Chunk size: I see people pick large chunk sizes to improve throughput, but I want to tune for random small block (4k - 16k) IOPS. I don't think a 1M chunk will help but Im not sure so, open to suggestions.
Thanks!