Решил сравнить, как работает рейд средствами ZFS и md+(any fs), в виртуалке Vmware создал машину с несколькими дисками разного размера, и начал мониторить их активность.
ZFS: Во время записи файла (dd if=/dev/zero of=file bs=60M), данные записывались (о чем нам подсказывает iotop) сразу на три диска, причем все время обращения были полностью к трем дискам, а по идее, должно быть так: кончается место на первом, пишем на другой и так далее, но как-то ZFS умудряется писать на несколько. Почему? Вообще непонятно.
md: Все работает как и задумано: во время записи сначала пишем на три диска, на первом кончается и записываем на 2 и 3, на 2 заканчивается и дописываются данные в 3 диск.
Если вы создаете ZFS пул из 3 дисков, то сама zfs знает что у нее есть 3 диска. Она знает сколько свободно и сколько занято на каждом из них. Данные в ZFS хранятся блоками, размер блока подбирается для каждого файла, но обычно не больше 256 килобайт. Если файл большой и блоков много, то zfs старается распределить блоки поровну среди участников. Более того, в ZFS некоторые метаданные дублируются - пишется до 3х копий, которые она также старается разбросать среди участников.
А на счет md. Расскажите какой рейд вы сделали, что он так работает? Логично было бы сравнивать страйп со страйпом, но "нормальному" страйпу нужны диски одинакового размера.