Какая из файловых систем, поддерживаемых Ubuntu, является самой стойкой к повреждению файла?

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

Например: Я хочу, чтобы мои данные были безопасны, если кто-то разъединяет мою машину Ubuntu от розетки случайно.

2
задан 4 April 2014 в 23:15

2 ответа

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

1
ответ дан 8 October 2019 в 09:47

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

  1. Файловые системы без журналирования.

    Примеры: ext2, fat32, fat16

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

  2. Файловые системы с режимом журналирования обратной записи.

    Примеры: ext3/ext4 с data=writeback, NTFS

    Записи к метаданным для файлов журналируются. После потерь мощности во время записи метаданные для файла могут откатываться, оставляя файловую систему в согласованном состоянии, требующем никакого восстановления. Однако любые изменения в фактических данных файла не смогут откатываться, и файл можно оставить в непоследовательном состоянии.

    Файл можно даже оставить со старыми данными до операции записи, даже если ее метаданные успешно фиксируются.

  3. Файловые системы с заказанным режимом журналирования.

    Примеры: ext3/ext4 с data=ordered

    Довольно подобный режиму обратной записи. Записи к метаданным для файлов журналируются, и система гарантирует, что данные файла записаны, прежде чем изменение метаданных фиксируется в журнале. После потерь мощности во время записи метаданные могут откатываться, оставляя файловую систему в согласованном состоянии, требующем никакого восстановления. Любые изменения в фактических данных файла не смогут откатываться, и файл можно оставить в непоследовательном состоянии.

    То, где это отличается от режима обратной записи, - то, что Вас, по крайней мере, никогда не будут оставлять с более старыми данными в файле, чем его метаданные и никогда не будут оставлять с данными, которые ранее не принадлежали тому файлу. Если метаданные будут фиксироваться, то гарантируется, что данные файла, по крайней мере, актуальны с метаданными, хотя это может все еще содержать некоторые более новые данные из части более поздней записи в тот файл.

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

  4. Файловые системы с полным журналируемым режимом.

    Примеры: ext3/ext4 с data=journal, Reiser4

    Записи и к метаданным и ко всем данным файла оба журналируются. После потерь мощности во время записи и метаданные файла и все его данные могут откатываться к состоянию, в котором это было до отказа.

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

  5. Особое упоминание: журналируемые файловые системы или копия на записи

    Примеры: btrfs, ZFS

    Некоторые файловые системы, такие как btrfs предлагают подобную защиту полной журналируемой файловой системе без такой же потери производительности. btrfs журналируемая файловая система. Записи и к метаданным и ко всем данным файла записаны в большой длинный журнал записи, который позволяет и метаданным файла и содержанию откатываться полностью, но это не требует никакого отдельного шага "фиксации" для данных файла, поскольку данные файла дублированы, как это записано в, допуская откат, не пишущий дважды. Если запись перестала работать из-за потерь мощности, журнал только воспроизводится к последней успешной предшествующей записи, который все еще обеспечит доступ к старой версии файла в полностью согласованное состояние.

    ZFS файловая система копии на записи, которая обладает подобными преимуществами для журналируемой файловой системы.


Примечание: Запишите кэширование и Барьеры

Независимо от файловой системы запишите, что кэширование на самом диске может оптимизировать производительность путем выполнения поставленных в очередь команд записи в другом порядке к их месту в очереди. Однако это эффективно представило бы все бесполезное журналирование, или по крайней мере все режимы журналирования кроме обратной записи, которая вряд ли будет затронута очень этой оптимизацией.

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

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

Некоторые дисководы разработаны с их собственным выделенным back-up-battery, который может использоваться для окончания любых записей в очереди записи в случае потерь мощности. Если Вы имеете такой диск и доверяете резервной батарее, чтобы сделать это, можно безопасно отключить барьеры записи и извлечь выгоду больше из неисправных записей в диске.


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

btrfs был разработан как замена для ext3/4, и будущие дистрибутивы Linux могут переключиться на него как значение по умолчанию, хотя это - конечно, не уверенность. Если это действительно произойдет, то это принесет лучшую способность чисто откатывать без значительной потери производительности.

2
ответ дан 8 October 2019 в 09:47

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

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