Проблемы с потерей данных на Ext4 разделах в тестовой версии Ubuntu 9.04

При тестировании экспериментальной версии Ubuntu 9.04 всплыли неожиданные проблемы с надежностью работы Ext4. В Ubuntu по умолчанию включена возможность отложенного распределения информации в ext4 (Delayed allocation), при которой данные и мета-данные могут оставаться не записанными до 60 секунд.

Данная возможность является одним из главных факторов значительного повышения производительности ext4 по сравнению с ext3. Но пользователи экспериментальной ветки Ubuntu отметили случаи произвольного краха системы, после которого терялось содержимое большого числа файлов, в основном связанных с работой KDE или GNOME. Разбор ситуации показал, что при загрузке KDE и GMOME пересоздают большое число мелких файлов, и если системный крах произойдет через небольшое после загрузки время, эти файлы окажутся обнуленными (в журнал изменения вносятся сразу, но сами данные на диск записаться не успевают), а десктоп-окружения неработоспособными из-за потери файлов конфигурации.

Подобные проблемы с потерей пересоздаваемых перед крахом файлов также свойственны таким файловым системам как XFS и Btrfs. Ted Ts'o, разработчик ext4, считает, что отчасти в проблеме виноваты авторы программ, целиком перезаписывающих без необходимости содержимое файлов конфигурации, полагаясь на особенности работы ext3 в стандартном режиме журналирования “data=ordered”, при котором вначале изменяются данные, а потом изменения отражаются в журнале. Тем не менее Ted пообещал выпустить патч, изменяющий поведение отложенной записи в ext4 при фиксировании фактов обнуления или переименования файлов. Патч не успеет войти в состав ядра 2.6.29, но намечен для включения в ядро 2.6.30.

Источник: www.opennet.ru