[Sysadmins] [грязный хак для объезда] P7: Проблема с softRAID при старте системы
Michael A. Kangin
mak на complife.ru
Чт Авг 15 13:41:30 MSK 2013
13.08.2013 17:55, Alex Moskalenko пишет:
> По результатам дискуссии поправил /etc/rc.d/scripts/raidstart следующим
> образом:
Да, у меня похожий хак вышел:
if [ -x "$f" ]; then
echo -n "(using mdadm) "
for i in 1 2 3 4 5 6 7 8 9 10; do
grep -q inactive /proc/mdstat || break
echo wait arrays ready...
sleep 1s
done
Тут ждём потому что иногда у меня очень долго стартует модуль для
четырёх дисков из восьми всего (они на другом чипе)
sleep 1s
if grep -q inactive /proc/mdstat ; then
problem_md=$(grep inactive /proc/mdstat |cut -f1
-d:)
"$f" --stop /dev/$problem_md
"$f" --assemble /dev/$problem_md
fi
return $?
fi
> --- raidstart.orig 2013-02-07 02:27:40.000000000 +0400
> +++ raidstart 2013-08-13 14:38:03.000000000 +0400
> @@ -32,11 +32,16 @@
>
> start_raid_using_mdadm()
> {
> - local f
> + local f arr
>
> f="$(absolute mdadm 2>/dev/null)"
> if [ -x "$f" ]; then
> echo -n "(using mdadm) "
> +#fix bitmap on ro root fs
> + for arr in $(awk '/^m.*: inactive/{print "/dev/"$1}'
> /proc/mdstat); do
> + "$f" --stop "$arr"
> + done
> +#end fix
> "$f" --assemble --scan
> return $?
> fi
>
> То есть тупо останавливаются все найденные массивы в состоянии inactive,
> после чего продолжается штатное исполнение - запускается mdadm
> --assemble --scan.
>
> Мыслей о правильном решении проблемы так и не появилось... Думал о 2х
> вариантах - 1) не собирать массивы udev'ом вообще или 2) запускать udev
> после того, как / будет перемонтирован в rw. Оба варианта не нравятся.
>
> Еще вариант объезда - не использовать external bitmap.
>
> Прошу сообщество поделиться мыслями на этот счет. Возможно, есть смысл
> завести багу на что-нибудь?...
>
--
wbr, Michael A. Kangin
Подробная информация о списке рассылки Sysadmins