У меня есть RAID5-массив, состоящий из 6 дисков по 1 ТБ. Недавно при изменении оборудования мне потребовалось воссоздать рейд, чтобы перезаписать загрузчик на каждом диске.
Теперь проблема начинается. При запуске системы восстановления Debian произошла ошибка mdadm --create. До сих пор, плохая ситуация.
Пытался собрать устройство заново, но исходные настройки больше не доступны. Когда я использую
mdadm --examine --scan
в выходных данных отображается только массив, созданный 27 апреля 2015 года, исходный рейд был создан в декабре 2012 года.
Я понял, что во время команды сборки порядок дисков важный. Это поставило меня в ситуацию, когда я исследую каждую комбинацию. Пока у нас есть 6! = 720 разные возможности подключения всех устройств.
Автоматизировал его итерациями по разделам с:
mdadm --create /dev/md0 --readonly --level=5 --assume-clean --raid-devices=6 /dev/sdd2 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdf2 /dev/sde2
Получил только 44 комбинации, которые адресовали рабочие записи LVM за его пределами. Я думал, что у меня это есть.
Настоящая проблема начинается сейчас. Когда я бегу:
pvscan
Отображается и активируется том, перечислены все три тома:
nas-root
nas-swap
nas-storage
Проблема теперь в том, что в каждой из 44 комбинаций я не могу смонтировать систему.
Он показывает мне ошибку, что подпись NTFS недействительна. Но на нем должна быть файловая система ext3 / 4.
Возможно ли, что при сборке массива в правильном порядке, но с неправильным размером полосы это могло произойти?
Поскольку я создал массив в декабре 2012 года, я предполагаю, что использовал настройки по умолчанию, это означает 512 кусков, левосимметричный рейд5.
Безопасно ли для базовых данных, когда я запускаю несколько
mdadm --create ... --chunk=X /dev/sd* (in different order)
Дополнительное примечание:
vgscan с параметром -d выводит сообщение о том, что он работает в пониженном состоянии. Может в этом проблема? Но как это исправить?
Дополнительная помощь:
Для поддержки полных тестов я создал на рейде оверлей только для чтения (так как у меня нет места для изображения всех дисков 1 ТБ).
Для других пользователей это может быть полезно:
#!/bin/bash
dev=$1
tmp="/tmp"
if [ "no$dev" == "no" ]; then
echo "Usage $0 /dev/sdx."
echo "Overlays are placed in $tmp"
exit 1
fi
base=`basename $dev`
ovl="$tmp/overlay.$base"
if [ -e $ovl ]
then
rm $ovl
fi
truncate -s50G $ovl
newdev="$base-ovl"
size=$(blockdev --getsize "$dev")
# you need to have enough loop devices
loop=$(losetup -f --show "$ovl")
printf '%s\n' "0 $size snapshot $dev $loop P 8" | dmsetup create "$newdev"
Вы также можете привязать изображение к обратной петле и подключить его к наложению.
Что мне помогло до сих пор:
При сборке массива обе порядок дисков и размер фрагментов имеют первостепенное значение. Учтите, что если программный RAID Linux недавно перешел на использование блоков размером 512 КБ, то несколько лет назад он использовал блоки размером 64 КБ.
Это означает, что ваш предыдущий массив, вероятно, был создан с использованием старого по умолчанию блока размером 64 КБ. Повторите попытку собрать массив, используя блоки размером 64 КБ, и сообщить о результатах.