Как я могу оптимизировать ext4 для надежности?

Поскольку ext4 был представлен как более надежный, чем ext3 с блочными журналами, есть ли шанс предположить, что он надежный на 100%? Что если включить блокировку журналирования на нем, которая по умолчанию отключена?

Как руководство друга, чтобы объяснить мой случай более подробно: у меня есть встроенное устройство Linux, после установки клавиатура и монитор отсоединяются, и он работает автономно.

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

Что еще может предложить мне ext4, кроме блочного журналирования?

Заранее спасибо.

11
задан 8 March 2011 в 16:00

3 ответа

Нет. Вы никогда не можете предположить, что что-то на 100% надежно.

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

Кроме того, ведение журнала не отключено по умолчанию.

Вот хороший обзор ext4 и его улучшений: http://kernelnewbies.org/Ext4

0
ответ дан 8 March 2011 в 16:00

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

0
ответ дан 8 March 2011 в 16:00

Новая функция, добавленная в ext4 и введенная в ядре 3.5, называется так называемой «контрольной суммой метаданных», которая является еще одной особенностью ext4, которая должна повысить надежность и целостность структуры файловой системы.

Общая реализация хорошо объяснена у Kernel newbies :

Современные файловые системы, такие как ZFS и Btrfs, доказали, что обеспечение целостности файловой системы с использованием контрольных сумм ценная особенность. В Ext4 добавлена ​​возможность хранить контрольные суммы различных полей метаданных. Каждый раз, когда поле метаданных читается, контрольная сумма прочитанных данных сравнивается с сохраненными контрольными суммами, если они отличаются, это означает, что медата повреждена (обратите внимание, что эта функция не охватывает данные, только внутренние структуры метаданных, и у него нет «самовосстанавливающихся» способностей).

Любую файловую систему ext4 можно обновить для использования контрольных сумм с помощью команды «tune2fs -O metadata_csum» или «mkfs -O metadata_csum» во время создания. Когда эта функция включена в файловой системе, старые ядра без поддержки контрольной суммы смогут монтировать ее только в режиме только для чтения.

Статьи, такие как , эта на kernel.org , подробно обсуждают технические детали того, как использование контрольных сумм метаданных может предотвратить повреждение поврежденных метаданных структурой файловой системы.

Однако в статье также предупреждается, что:

Код контрольной суммы метаданных начал поступать в основную линию в Linux 3.5, а с 3.7-rc1 он проходит некоторое пользовательское тестирование. Этот код еще не очень хорош.

Он не включен по умолчанию в Ubuntu 12.10, и, вероятно, лучше не включать его на мгновение после недавних проблем с файловой системой ext4, как отмечено здесь .

0
ответ дан 8 March 2011 в 16:00

Другие вопросы по тегам:

Похожие вопросы: