Назад | Перейти на главную страницу

ext4 fs выходит из строя после отключения электроэнергии

У меня типичная, но странная проблема: жесткий диск выходит из строя после отключения электроэнергии на моем сервере. Я чувствую, что fsck проделал огромную работу при запуске после сбоя, а потом мой репозиторий Subversion теряет месяцы работы - все это звучит для меня странно. Сервер запускает ext4 на этом жестком диске, поэтому он должен быть безопасным, но это не так. Я начинаю подозревать проблему с жестким диском, но, может быть, могут быть другие причины?

Подходящий fstab линия

/ dev / mapper / vg_data-LV_data / data ext4 по умолчанию 1 2

а система - Fedora 11 x86_64.

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

Мне не ясно, если Fedora 11 поставляется с исправленной ошибкой отложенного выделения памяти ext4 или не. Похоже, что это так, но формулировка FAQ не на 100% ясна (и у меня сейчас нет времени просматривать SRPM ядра для Fedora 11).

Для фона: ядро ​​2.6.30 изменило поведение ext4 по умолчанию, чтобы не использовать отложенное выделение. До версии 2.6.30 такое отложенное распределение действовало по умолчанию и могло вызвать потерю данных, если питание было потеряно до того, как операции с диском были зафиксированы. (Ссылка на http://en.wikipedia.org/wiki/Fedora_(operating_system) и http://en.wikipedia.org/wiki/Ext4#Delayed_allocation_and_potential_data_loss и фон в http://thunk.org/tytso/blog/2009/03/12/delayed-allocation-and-the-zero-length-file-problem/).

Убедитесь, что вы используете самое последнее ядро ​​для Fedora 11 и, если это вообще возможно, не допускайте резкого отключения файловой системы.

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