myhand

Рейтинг
278
Регистрация
16.09.2009
netwind:
ни grub, ни grub2, ни lilo не умеют грузиться с md raid отличного от raid1.

Сейчас умеют (grub2), но это неважно. Кроме того, даже если "умеют" - должны быть сконфигурированы соответственно.

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

Добрый дядя из RH говорит обратное, но мы знаем лучше - верно?

Нельзя телепатически определить как сконфигурирован загрузчик, так что считаю данный источник проблемы вполне вероятным.

netwind:
мои проблемы при загрузке не на этапе загрузчика.
кроме того, я приводил сообщения из dmesg, которые возникли уже спустя часы после загрузки.

файловая система всегда проверяется fsck при внезапной перезагрузке?

netwind:
myhand, кажется, пропустили :

Я не пропустил, просто не посчитал нужным отвечать. С учетом последних "откровений" - у вас больше похоже на то, что источником проблемы является загрузчик:

myhand:
Это "многое объясняет". Загрузчик может напрямую ковыряться с диском, не обращая внимание на то, что он в райд.

Подобная причина "рассинхронизации" тоже обсуждалась в багах redhat/debian по поводу mismatch_cnt & raid1. Вынесите /boot отдельно (как делает любой нормальный дистрибутив, если "аптимизаторы" не бъют его по рукам).

Есть что сказать по этому поводу - или данный вариант отмели?

netwind:
разумеется нежурнализируемая ext2 разрушается на отлично при резете. тут и думать нечего.

c ext3/reiserfs также есть такая вероятность, см. зачем опции barrier у mount.

Raistlin:
Данные в данном случае стоят не много.

А вы хотите офигенную отказоустойчивость бесплатно? Если "не много" по сравнению с контроллером - может и не стоит заморачиваться? - защита явно экономически малооправданна.

Raistlin:
До текущего момента мне было не известно о проблемах рассинхронизации md. Придётся пересматривать этот момент.

А что, теперь известно? Можно пример?

Raistlin:
Но не ReiserFS. Она работает несколько быстрее, как раз и за счет того, что пологается на аппаратную начинку. Здесь даже не от ФС зависит. Несколько странно было бы после каждой записи делать Verify.

Вы выглядите как "знаток" файловых систем. Вот только почему-то в reiserfs есть механизмы для обеспечения целостности данных+метаданных, аналогичные ext3, например барьеры. Может перечислите эти самые дополнительные "предположения", требуемые от аппаратной части?

Raistlin:
В штатном случае своп использоваться НЕ должен. Если он настолько активно используется - это значит, что системе не хватает ресурсов и их НАДО добавить. Т.е. использование свопа сигнализирует о проблеме.

Допустим, у меня mismatch_cnt = 1000 за месяц. Товарищ телепат, вам это что-то сказало об "активности использования" swap?

Raistlin:
В данном случае - даже MySQL не пишет несколько раз в секунду на диск данные в один и тот же сектор в течении продолжительного времени.

Пишет в файл, т.к. MySQL о секторах не знает. Пишет часто. Вы назвали конкретную цифирь - я привел пример обычного для нее приложения.

Raistlin:
Софт-рейд в данном случае убьет производительность к чертям. Собственно, поэтому и не делает. Я так понимаю, этот момент там организован хуже даже чем в Fake-RAID.

Поясните почему, пожалуйста.

Raistlin:
Итак, на вполне работающем массиве наблюдается mismatch.

По какой причине - выяснили?

Raistlin:
При перезагрузке данные разные на дисках, но всё же синхронизируется у меня с первого рейда.

Странно, что у вас отваливается только второй диск. Мягко говоря.

Raistlin:
Я так и не смог симулировать ситуацию, когда рейд будет запущен после резета в синхронизированном состоянии.

killall -s 9 kvm

(в случае нагрузки - может поломаться, а для пустой виртуалки у меня получилось только что 3 из 3 взлетело нормально).

Raistlin:
Но как, простите, ФС может перепутать файловые дескрипторы - это мне уже не понятно.

А зачем у ФС журнал - вам понятно? Не затруднит изложить это понимание здесь?

Dimanych:
Ладно, суть понял, что нужно уменьшить интервал как он был до месяца чтобы не рисковать)

Ну, значит ничего не поняли :(

Dimanych:
Ограничивать скорость не хочется по той причине что и так пару дней синхронизируется

Запускайте "понемножку", инкрементами. Я упоминал и этот вариант.

Dimanych:
Спросил вроде нормально всего несколько часов назад, а тут 5 страниц споров, перечитал и однозначного ответа я не услышал :)

Персонально вам ответили.

Dimanych:
И как бы тут не нужно говорить что что-то настроить я должен, тут ничего не настроить, всё и так оптимизированно

Что все "зааптимизированно", я и не сомневаюсь. Тем не менее, нормально настроить - надо. Кстати, возможно имеет смысл и ограничить утилизацию диска проверкой рейда - обычными крутилками sync_speed_max/min. Это помимо приоритетов и вообще, того что написали вам ранее.

Dimanych:
Очень смутил ответ что при полугодовой проверке у меня уже давно не раид.

Диски ломаются, беды появляются.

Dimanych:
Мне не понятно с чего вдруг должны быть расхождения на дисках, система работает себе и работает, сихронизирует и синхронизирует.

Ну, непонятно - и ладно. Кто хотел и в состоянии понять - давно осилил хоть man md прочитать.

netwind:
ситуацию, когда на диске записано черти что, но носитель ведет себя адекватно исходя из описанных предположений, программисты reiserfs все-таки предусмотрели.

Получая данные из астрала? :)

netwind:
да, я же писал про то, что не грузилось.

Это "многое объясняет". Загрузчик может напрямую ковыряться с диском, не обращая внимание на то, что он в райд.

Подобная причина "рассинхронизации" тоже обсуждалась в багах redhat/debian по поводу mismatch_cnt & raid1. Вынесите /boot отдельно (как делает любой нормальный дистрибутив, если "аптимизаторы" не бъют его по рукам).

netwind:
Они всплывают только случайно, как в описываемом случае.

И вполне возможно - md только повод для того, чтобы проблема стала очевидной.

netwind:
должен. я либо вынимаю диск

Так по вашему же предположению - на диске записано местами черти-что. "Этот блок хороший, годный - а вон тот оказался на другом блине". Выходит, вам всегда везет - или поясните?

netwind:
мне достаточно того, что вы перестанете гнать хулу на рейзерфс и признаете свои доводы неверными.

Не обязан, т.к. проблема может быть связана с ней. Воспроизведите хоть проблему (qemu вам в помощь), лучше - с другой fs. Вот тогда будет очевидно, что мое предположение неверно.

Кстати, /boot у вас случайно не на том же md+reiserfs?

netwind:
а по-моему очень глобально и надежно. просто проверять придется чаще.

Данные будете терять + лишнии синхронизации.

Ну и зачем вам такой "райд"?

netwind:
тем, что reiserfschk и все остальные части reiserfs написаны исходя из допущения, что устройство адекватно себя ведет: повторные чтения одного и того же блока выдают одну и ту же информацию, а не различную.

И это единственное предположение - запись ему вообще не интересна?

netwind:
делаем нормальный массив и reiserfschk нормально работает.

А не должен - там же каша. Один блок такой - другой сякой, если уж у вас были mismatch_cnt.

netwind:
файловая система не может ничего знать о нижележащем уровне абстракции и что там вообще в md творится.

Для этого не нужно знать "творимое в md" - нужно просто сделать в приложении (fs в данном случае) некорректные в общем случае допущения. Может и один диск у вас отвалится - просто с парой в рейд такое случается чаще, а статистика невелика.

К примеру выше с mmap - программист неправ, если подразумевает, что предыдущие данные уже записаны, к моменту когда он затеял записать в mmap-ный файл новые.

netwind:
меня не устраивает ответ

Бага нет. О проблеме никому, кроме вас не известно. Ну и напрасно ждете, что добрый дядя будет бесплатно ковыряться.

netwind:
там написано слово "будет" - это предложение как избежать подобной проблемы разработчикам.

я уже объяснял вам, что это "предложение" - создать другую проблему, похлеще?

netwind:
Так почему именно синхронизация массива приводит к тому, что reiserfschk начинает работать нормально, а не останавливается как до синхронизации?

Спрашивайте reiserfschk, а точнее reiserfs.

Интересно, а как вы объясняете то, что синхронизация массива вам всегда помогает?

netwind:
хотя я и не проверял другую fs, но выбор fs не должен влиять на md.

Если в работе fs нет ошибок.

netwind:
вы там написали "md при repair просто выберет один блок случайным образом".

Ну, в этом случае также получится случайно. Мы же не всегда записали нужные блок на "первый диск"?

netwind:
в тот момент когда вынул один из дисков в одном случае и запустил синхронизацию насильно в другом.

fs никуда не делась. Статистика у вас не ахти большая - так что увы.

netwind:
при внезапной перезагрузке любой raid1 будет считаться грязным и поэтому работа будет идти только с одним диском.

Нет, объясняли же. Рейд считается "грязным" (грубо говоря) пока на него что-то пишет. Есть немалая вероятность "попасть" в момент, когда все чисто. Особенно, если система нагружена слабо.

Raistlin:
вы предлагаете держать тонну контроллеров и запчасти к ним? Или что делать с этим барахлом, когда через 5 лет выйдет из строя контроллер? закупать еще 2 новых? та не вопрос. Прошу понять, что под надежностью понимается не только вероятность выхода из строя детальки, но так же вероятность проблем любых.

Гарантия. Бекап. Цена контроллера << стоимости данных.

Raistlin:
какая разница? Метаданные - те же часто меняющиеся данные. И не важно, файл это или нет.

Важно. Система с метаданными fs, с ее журналом - должна работать иначе. Ее драйвер явно будет интересовать в нужных местах: что данные записаны.

Так что увы, пока незачет. Только словечки знакомые углядели - перевод не осилили ;)

Raistlin:
От обрыва питания рейд спасать и не должен

Вообще-то - должен. В том смысле, что хоть не должен допускать скрытой рассинхронизации массива.

Raistlin:
Свопа в правильно настроенной системе быть не должно.

Должен. Программы люди пишут, а не олимпийские боги.

Raistlin:
А если приложение по несколько раз в секунду пишет один и тот же файл - с ним что-то не то...

"Вы мне запрещаете?" // mysql

Всего: 4890