Я слышал, что даже журналируемые файловые системы, такие как EXT3 / EXT4, могут быть повреждены во время сбоя питания, например из википедии [1]:
In the event of a system crash or power failure,
such file systems are quicker to bring back online and
less likely to become corrupted.
Может ли кто-нибудь предоставить более подробную информацию, приведя примеры, например
Повреждение может также произойти на большинстве современных дисков из-за переупорядочения на диске.
Современные диски обычно переупорядочивают запросы, которые используются для повышения производительности (переупорядочивая записи, чтобы сделать весь список запросов менее сложным), это называется Tagged Command Queuing.
Возможно, запись в журнал на диске задерживается, потому что с текущей позиции заголовка более эффективно записывать в другом порядке, чем тот, который запрашивала операционная система в качестве фактического порядка, то есть блоки могут быть зафиксированы раньше, чем журнал.
Способ решить эту проблему - заставить операционную систему явно ждать фиксации журнала перед тем, как совершать какие-либо записи. Это известно как барьер. Большинство файловых систем не используют это по умолчанию, и для этого явно потребуется включить параметр монтирования.
mount -o barrier=1 /dev/sda /mntpnt
Большим недостатком барьеров является то, что они имеют тенденцию замедлять ввод-вывод, иногда резко (около 30%), поэтому они не включены по умолчанию. В дополнение к этому ситуация становится двойной плюсом, когда вы начинаете добавлять логические слои поверх стандартных дисков, таких как LVM или Raid. LVM (относительно недавно) добавил поддержку барьеров для большинства конфигураций LV, и mdadm, похоже, имел это некоторое время.
Большинство журналируемых файловых систем (ext3 / 4, ntfs) только транзакционно защищают метаданные. В случае отключения электроэнергии пользовательские данные могут оказаться несовместимыми, но метаданные в порядке.
Zfs и я думаю, что xfs защищает как метаданные, так и пользовательские данные с помощью транзакций и журналов.
Барьер это способ избежать повреждения при отключении электроэнергии, но эта функция безопасности поставляется с хит производительности. Лучшее из обоих миров (производительность / барьер = выключено, практически отсутствует риск повреждения) стоит немного дороже: используйте устройства с энергонезависимыми кэшами записи с резервным питанием от батареи.