Intereting Posts
Возврат статуса команды Busybox `timeout` Как измерить, сколько времени требуется, чтобы мой скрипт запускался и включал это в созданное им письмо? Мониторинг серверов Проблемы с установкой Samba под пользователем без полномочий root Проблема с установкой input-wacom-0.20.0 Есть ли способ рассказать, как пользователь аутентифицировал свое соединение SSH? т.е. будь то по паролю или с помощью открытого ключа? Почему «tar -exclude» не использует несколько опций? Общие вопросы о zfs Расширение брекета не работает при менее чем 2 аргументах Батарея в URxvt? Как скомпилировать пакет dev из исходного кода? start-stop-daemon всегда возвращает «0», хотя процесс не выполняется выйти из окна tmux без выхода из программы терминала Создание каталога ChrootDirectory, доступного для записи пользователем SFTP Любые потенциальные проблемы при настройке нескольких сетевых адаптеров для изолированных сетей на одну и ту же подсеть?

Предотвращение повреждения файловой системы в встроенной системе Linux

В наши дни я работаю над встроенной системой. Необходимо отключить питание без надлежащего отключения. Мы думаем об Aufs как файловой системе только для чтения. Но проблема в том, что в приложении есть некоторые обновляемые данные, а также пользователю разрешено изменять IP, дату и т. Д. Таким образом, системе нужен дополнительный раздел R / W.

У меня есть несколько вопросов для уточнения.

  1. Как мы можем защитить повреждение системы при внезапном сбое питания?
  2. Я хочу знать, какова лучшая файловая система для встроенной системы?
  3. Может ли ext3 / ext4, как файловая система журнала, автоматически восстанавливать неполный файл обратно?
  4. Является ли BTRFS в RAID1 лучшим решением на данный момент?
  5. Есть ли какое-либо другое широко используемое решение во встроенных системах для предотвращения коррупции системы?

С точки зрения файловой системы с помощью ext3 или ext4 с параметрами по умолчанию, как правило, вы получите достаточную последовательность сбоев. Вы, конечно же, не пострадают от потери файловой системы или повреждения любых файлов, которые не были записаны непосредственно перед потерей мощности.

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

Если приложение должно гарантировать согласованность между метаданными файлов и данными, не заботясь о производительности, вы можете использовать data = journal, чтобы все изменения в файлах и метаданных файловой системы записывались в журнал, а не только метаданные. Это позволит избежать неполных ситуаций записи, таких как размер файла, который увеличивается, но данные, которые были добавлены, теряются и заменяются нулевыми символами.