Возможно ли создать RAID-массив mdadm с параметрами макета и ближайшего макета?

Как вы создаете RAID-массив mdadm с параметрами приближения и дальности?

Вики говорят, что это выполнимо.

Параметры «ближнего» и «дальнего» могут использоваться вместе …

Человеческие страницы для mdadm не упоминают об этом.

Я только могу найти этот пост, где mdadm -detail у кого-то показывает RAID10, используя параметры приближения и далеки. И еще одно сообщение с кем-то спрашивающим, должно ли оно сказать «near = 2, far = 1». К сожалению, не показано, как создавались их массивы.

Я пытался играть с синтаксисом при создании моего массива. Но он каждый раз дает эту ошибку:

mdadm: layout for raid10 must be 'nNN', 'oNN', or 'fNN' where NN is a number, not n2f2(or whatever syntax I tried) 

Я могу создать массив, используя почти или далеко без каких-либо проблем.

 sudo mdadm --verbose --create /dev/md127 --level=10 --layout="What should go here to create an array using near=2 & far=2 layouts?" --chunks=512 --raid-devices=5 /dev/sd[bf]1 

Что мне не хватает? Является ли вики устаревшим, и это невозможно?

Linux Mint 17.3 Cinnamon 64bit; 5x 3.0TB жесткие диски Seagate NAS (используется только для RAID); 8 ГБ оперативной памяти.

Судя по исходному коду mdadm-3.4, он не принимает никаких других входов. Что касается выхода near=2,far=1 , это значение по умолчанию и ничего не изменилось, но значения =1 просто больше не печатаются, потому что это по существу означает «отсутствие дополнительной копии» (отсчет начинается с 1). В случае как near и far равного 1 , он печатает NO REDUNDANCY . Однако на самом деле вы не можете их создать, ядро ​​отклоняет его напрямую с сообщением об ошибке.

Единственный способ, которым я смог это сделать, – это hexedit использовать метаданные. Это RAID-10 4х 128-мегабитных устройств loop с near=2, far=2 копии.

 # mdadm --detail /dev/md42 /dev/md42: Version : 1.2 Creation Time : Sun May 1 01:47:59 2016 Raid Level : raid10 Array Size : 129024 (126.00 MiB 132.12 MB) Used Dev Size : 129024 (126.00 MiB 132.12 MB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sun May 1 01:48:00 2016 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2, far=2 Chunk Size : 512K Name : EIS:42 (local to host EIS) UUID : 7fa3ba1e:dd0f2db9:aaf3977f:0e6dc2cb Events : 17 Number Major Minor RaidDevice State 0 7 0 0 active sync /dev/loop0 1 7 1 1 active sync /dev/loop1 2 7 2 2 active sync /dev/loop2 3 7 3 3 active sync /dev/loop3 

На самом деле это тоже работает. (Предупреждение, метод деструктивных испытаний)

 # yes > /dev/md42 # echo Hello World. > /dev/md42 # grep 'Hello World' -a -b --only-matching /dev/loop[0-3] /dev/loop0:1048576:Hello World /dev/loop1:1048576:Hello World /dev/loop2:67108864:Hello World /dev/loop3:67108864:Hello World 

Я написал эту строку в начале RAID, и на двух устройствах она находится в позиции 1MiB (которая является смещением метаданных), которая должна быть близкой копией, а другая находится в позиции 64MiB (половина емкости диска), которую я предполагаю это далекая копия …

Тем не менее, я бы не рекомендовал редактировать метаданные RAID для чего-либо. Если вы сделаете это, никто другой не проверит это … или, может быть, есть что-то очевидное, мы все пропали без вести, кто знает.

Замена дисков в таком RAID, похоже, сработает. Однако роста нет.

 # mdadm --grow /dev/md42 --raid-devices=8 --add /dev/loop[4567] mdadm: Cannot reshape RAID10 in far-mode 

Я думаю, что слишком много недостатков. Придерживайтесь стандартных макетов RAID, если у вас нет оснований для этого.