Как я могу настроить свою файловую систему так, чтобы она была более устойчивой к потере данных?

408

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

Я очень редко записываю данные в него, но я очень часто читаю данные из него.

Теперь я просто хочу знать, что я могу сделать, на уровне FS или на уровне ОС (только для чтения ...), чтобы избежать потери данных в очень специфическом случае потери питания. Нет ИБП.

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

1
Читайте о [журнальные файловые системы] (http://en.wikipedia.org/wiki/Journaling_file_system). Несмотря на то, что журнал обеспечит сохранение целостности FS, я не понимаю, как можно полностью предотвратить повреждение данных в случае внезапного отключения питания во время записи файла. Также см. [Здесь] (http://unix.stackexchange.com/questions/12699/do-journaling-filesystems-guarantee-against-corruption-after-a-power-failure) для получения дополнительной информации. Karan 11 лет назад 1
Да, это то, о чем я слышал. Но в настоящее время это действительно стандарт: каждая недавняя ФС, о которой я могу думать, обеспечивает ведение журнала. Позвольте мне дать вам немного предыстории: у меня есть диск, отформатированный с помощью FS * foo *. Я смотрел ТОЛЬКО фильм (без других IO). Потеря мощности. Результат: каталог, содержащий 26 фильмов, был уничтожен. fsck нашел несоответствия, но мои фильмы нигде не были найдены. Это то, что я называю повреждением данных или, если быть более точным, повреждением ФС. И это то, чего я хочу избежать. Кстати * foo * предоставляет журнал. 11 лет назад 0
Где * foo * = ext4? Я оставлю это для экспертов FS, чтобы дать подробный ответ, так как я не знаю, каким образом вы, как конечный пользователь, можете улучшить устойчивость журналирования FS к повреждению данных в случае катастрофического события, такого как внезапное отключение питания потеря во время ввода / вывода. Karan 11 лет назад 0
Где * foo * неизвестно, так как я только что провел интересную дискуссию с другим пользователем по поводу другого вопроса, который я задал и был закрыт почти сразу, поскольку это вызвало бы «бесконечные и бесполезные дискуссии». 11 лет назад 0
Да, я видел ваши [Каковы наиболее полезные атрибуты файловой системы, чтобы избежать потери данных?] (Http://superuser.com/questions/526431/whatre-the-most-useful-attributes-of-a-filesystem вопрос о том, чтобы избежать потери данных только сейчас. Я не знаю, останется ли этот вопрос открытым или будет классифицирован как дубликат этого. Karan 11 лет назад 0
Надеюсь нет. Я действительно хотел бы получить некоторую информацию от гуру FS. Может быть, здесь не то место. Но я подумал, что должен попытаться, и дискуссии по IRC исчезнут ... Кстати, спасибо за ваш ответ. :) 11 лет назад 0
Я не эксперт по ФС, но я немного искал для себя ФС для NAS. Я нашел два хороших варианта - ReFS (новый Microsoft FS) и ZFS (OpenSource). Если вы хотите найти себя, вы должны посмотреть здесь: http://en.wikipedia.org/wiki/List_of_file_systems. Есть список отказоустойчивых ФС. Возможно, вы должны рассмотреть некоторые RAID тоже. EliadTech 11 лет назад 0
CoW. (Копировать при записи). qasdfdsaq 8 лет назад 0

1 ответ на вопрос

1
Josef

Как вы можете настроить свою файловую систему? Вероятно, вы не можете.

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

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

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

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

Файловыми системами, которые поддерживают это, являются ZFS, BtrFS, ReFS и другие. Я только когда-либо использовал ZFS.

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