С RAID10 в данной ситуации я вижу только две переменные, которые могут быть оптимизированы:
Размер блока. Установите для него значение, превышающее значение по умолчанию 512KiB, чтобы минимизировать накладные расходы для линейных операций чтения / записи больших файлов. Вы должны попробовать это на небольшом разделе на вашем компьютере, чтобы узнать, что дает лучшую производительность, например. 1MB, 2MB, 5MB, 10MB ... Near vs Far, сопоставимый с RAID1 + 0 и RAID0 + 1. Далеко немного быстрее, так как производительность для чтения больше похожа на RAID0. Тем не менее, макет Near располагается по умолчанию, потому что он имеет несколько более высокий шанс выжить в маловероятном случае, когда все зеркальные диски будут разбиты (здесь есть математика с вероятностью). Некоторая более наглядная идея о различиях ниже, счастливо украдена из документации SLES mdadm: Near выглядит какsda1 sdb1 sdc1 sdd1
0 0 1 1
2 2 3 3
4 4 5 5
Far выглядит как sda1 sdb1 sdc1 sdd1
0 1 2 3
4 5 6 7
. . .
3 0 1 2
7 4 5 6
Обновление о далекой близости от избыточности от обсуждение в комментариях. Предположим, что sda терпит неудачу:
near
sda1 sdb1 sdc1 sdd1
- 0 1 1
- 2 3 3
- 4 5 5
, тогда sdc или sdd все еще могут выйти из строя, а далеко:
far
sda1 sdb1 sdc1 sdd1
- 1 2 3
- 5 6 7
. . .
- 0 1 2
- 4 5 6
теперь только sdc может выйти из строя, поскольку неудачный диск sdb делает блок 4 недоступным, а сбойный диск sdd сделает блок 3 недоступным.
Заключение: шансы на выживание с 2-дисковым сбоем выше при использовании ближайшего макета. (может ли кто-нибудь сделать математику здесь для количественного числа?)