netwind

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

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

---------- Добавлено в 23:05 ---------- Предыдущее сообщение было в 23:05 ----------

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

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

---------- Добавлено в 23:14 ---------- Предыдущее сообщение было в 23:05 ----------

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

Я правильно понимаю, что ваше предположение подразумевает, что reiserfs "сам себя рушит" и в следствии ошибок в коде записывает на разные диски md разную информацию?

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

не единственное.

---------- Добавлено в 22:43 ---------- Предыдущее сообщение было в 22:41 ----------

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

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

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

Это невозможно сделать в приложении. Старательно построенные программистами абстракции тщательно скрывают такие тонкости. Они всплывают только случайно, как в описываемом случае.

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

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

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

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

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

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

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

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

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

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

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

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

myhand:
Речь ведь у вас шла о "чистом" массиве, или уже забыли?

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

я думал уже другую ситуацию обсуждаете.

myhand:
Почему "принципиальная проблема md" - не бред? Где вы исключили reiserfs?

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

Но не память?

согласно mcelog, вроде нет, хотя мне не удалось добиться от вендора ответа и я плюнул. к тому же по полгода работает без проблем. Память правда не ECC.

myhand:
Каким образом "решит" - потерей данных случайным образом?

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

Raistlin:
если система физически выключена по причине сбоя - как раз так и надо. выдергаем из одной и пихаем в другую.

допустим, ваша трагедия понятна. ну а от меня то вы что хотите?

Raistlin:
Блок питания сгорит? Контроллер на мамке умрёт? И т.п.?

поставьте нормальный raid с батарейкой.

Raistlin:
А система рассчитана так, что диск выдергивается немедленно и втыкается в другой аналогичный аппарат

В md так делать не надо. Нужно пометить диск как свободный. Потом подать команду на отключение в порт sata и уже потом выдергивать.

myhand:
Никак mismatch_cnt!=0 не устранить для raid1, если оба блока читаются. md при repair просто выберет один блок случайным образом.

написано, что для raid1 выбирается первый For RAID1, this involves copying the contents of the first drive onto all other drives.

myhand:
Значит так пишет его.

выглядит как бред.

myhand:
Если загрузилось - всегда? А если вообще перезагрузить штатно - точно все всегда взлетит?

Если штатно или по команде от ups, то все нормально.

myhand:
А какая у вас вообще статистика, сколько ребутов?

допустим, около 15 раз за 3 года. Проблема с железом, но менять материнку накладно будет.

myhand:
Самый интересный вопрос: почем "принципиальная проблема" - cофтрейд принципиально невозможен, или просто руки у линуксячих программистов принципиально кривые?

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

еще можно любой примонтированный md считать грязным, тогда наверное это решит проблему 100%, но приведет к слишком частым проверкам.

Raistlin, ну что вы как маленький - тогда ups с уведомлением сделайте.

Raistlin, не нажимай на резет и все.

Всего: 6293