CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER

Сбой на ФС ext4 во время ребилда — проблема в железе или моих кривых руках?

Есть сервер на линухе (ведро 5.15.82). Bare-metal установка, Supermicro X9DRD-iF, 48G рамы, два ксеона 2620, адаптек 5805, в котором шесть дисков в RAID6, массив 18Tb.
Пахал себе сервак свои задачи больше года, но потом у него как обычно вдруг сдох один из винтов. Ну сдох и сдох, массив подхватил хотспар и ушел в ребилд, я в отпуске, инженер ничтоже сумняшеся вынимает сдохший, ставит новый.

Вечером я захожу и ох#еваю - на разделе с данными (для которых собственно и RAID) - сбой! Ошибки ФС, причем множественные! Вот такие, например:
Oct 15 20:00:23 nakivo kernel: EXT4-fs error (device sdb1): ext4_find_extent:929: inode #3736241: comm bh: pblk 3435773917 bad header/extent: invalid magic - magic b074, entries 31441, max 60113(0), depth 39622(0)
Oct 15 20:00:23 nakivo kernel: EXT4-fs error (device sdb1): ext4_find_extent:929: inode #3736241: comm bh: pblk 3435773917 bad header/extent: invalid magic - magic b074, entries 31441, max 60113(0), depth 39622(0)
Oct 15 20:00:30 nakivo kernel: EXT4-fs error (device sdb1): ext4_ext_remove_space:2993: inode #3738362: comm bh: pblk 3281567223 bad header/extent: invalid magic - magic a25e, entries 52767, max 15585(0), depth 38526(0)
Oct 15 20:00:30 nakivo kernel: EXT4-fs error (device sdb1) in ext4_setattr:5523: Corrupt filesystem

И таких ошибок херова туча. (В это время идет ребилд массива). Я тихо паникую - на массиве ценные данные - сервак перегружаю, ухожу в single, стартую fsck. fsck идет несколько часов, валит туеву хучу ошибок (а ребилд все идет). Наконец fsck заканчивается, все хорошо, монтирую - данные на месте, хотя битые они или нет - непонятно. Стартую программу работы с данными (через некоторое время) - она не идет - опять на разделе ошибки! (ребилд к этому времени закончился). Опять стартую fsck, опять куча ошибок (но много меньше), опять успешно.
Запускаю программу - заработало.

Худо-бедно проскрипели полтора месяца, множество данных потеряно, но слава Богу они восстановимы. И вот позавчера - сдох другой диск. Опять ребилд, опять... правильно - ошибки на ФС, опять fsck на несколько часов, опять потеря данных, опять до тех пор, пока ребилд не закончился - сбои на ФС (возможно, если бы я тупо дождался завершения ребилда - и fsck не понадобился бы)

Собственно вопрос - почему так и можно ли что-то сделать, чтобы так не было? Мне всегда казалось, что RAID для того и нужен, чтобы мне (пользователю) было поуху состояние массива - оптимальный он или ребилдится. Что собственно я и плачу за то, что покупаю контроллер, который сам займется ребилдом массива и параллельно будет работать с данными - выходит я неправ и это не так? Или это касается только линуховых дров на адаптек и их нужно настраивать?

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

Или я просто упускаю что-то существенное?
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
(В это время идет ребилд массива). Я тихо паникую - на массиве ценные данные - сервак перегружаю, ухожу в single, стартую fsck. fsck идет несколько часов, валит туеву хучу ошибок (а ребилд все идет).

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

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

У меня сравнительно небольшой опыт эксплуатации серверного железа под линуксом, но в целом я склоняюсь к точке зрения, что если нужно что-то восстановить, сохранить, сберечь, fsck не сильно лучше его виндового собрата (checkdisk), который обращается с данными, аки годзилла.

У нас были заказы на восстановление RAID, по которым в т.ч. прошлись fsck.

Исправление же файловой системы (т.е. её изменение) во время rebuild вообще отдаёт мистикой.
Насколько чётко контроллер сумеет такое отработать? Не начнёт ли фсчк "исправлять" живые данные на основе нулей или чего-то ещё, появившегося в процессе? Не возникнет ли при этом циклов "перестроение-исправление"? И так далее.

можно ли что-то сделать, чтобы так не было?

Думаю, что в идеале было бы дать рейду перестроиться с минимумом дополнительной нагрузки, или вообще без неё, раз вы подключались вечером.
При этом понятно, что нерабочего времени на full rebuild может быть недостаточно, либо система боевая и даунтайма не терпит.

P.S.
Нет худа без добра: посмотрели что реально происходит в околокритической ситуации, лишний раз подчеркнули для всех важность резервного копирования, цвет волос, надеюсь, тоже сохранили :)
Ответ написан
MaxLK
@MaxLK
сети, виртуализация, СХД...
проблема скорее всего в вашей голове. там слишком мало знаний и слишком много брани.
на подобные выражения ни малейшего желания отвечать по существу. тем более что ответом будет пересказ учебника.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы