Восстановление после повреждения файловой системы ext2

Восстановление после повреждения файловой системы ext2

На моем устройстве установлен дистрибутив Linux TinyCore (3.6), который использует диск-на-модуле или компактный флэш-накопитель.

Файловая система — ext2.

У меня есть стек LAMP на этом устройстве, и я играю с базой данных MySQL, содержащей более 400 таблиц (myisam). Операции записи происходят систематически каждые 15 минут.

Эти таблицы генерируются моим веб-приложением в соответствии с моими настройками.

Бывает, что это устройство может внезапно отключиться из-за отсутствия питания.

Происходит следующее: если MySQL выполняет какую-либо операцию записи (например update, , delete, insert), некоторые данные, а также файлы индексов могут быть повреждены.

Конечно, это не такая уж большая проблема, но выполнение repair tableоперации не так уж и плохо; таблицы восстанавливаются, и приложения могут продолжать работать, даже если, к сожалению, некоторые данные будут утеряны (что в моем случае могло быть приемлемым).

Проблема в том, что часто, когда происходит внезапное отключение, несколько файлов таблиц mysql (FRM или MYI или MYD) находятся в состоянии "Ошибка ввода/вывода", и мой фронтенд MySQL сообщает о "ошибке механизма хранения 5" (ошибка ввода/вывода) для этих таблиц. Приложения, использующие базу данных, очевидно, не могут работать правильно.

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

Есть идеи?

РЕДАКТИРОВАТЬ: К сожалению, я не могу перейти на ext3, мне придется остаться с ext2, еще и потому, что ext3 сильно повлияет на циклы записи твердотельной памяти.

решение1

Я думаю, если вы используете CF, без возможности использоватьDM-MultiPathили другие функции с более высокой доступностью, то вам следует, по крайней мере, монтировать эти файловые системы с опцией «noatime», чтобы продлить срок их службы (когда вы не полагаетесь на atime для своих собственных скриптов и т. д.).

В остальном это не похоже на самую надежную платформу.

Связанный контент