Безопасная файловая система для сбоя питания?

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

7 ответов

Решение

На самом деле, нет. Однако есть несколько способов уменьшить риск.

  • Используйте журнализированную файловую систему (ext3, reiserfs, zfs, ntfs и т. Д.)
  • Убедитесь, что вы используете рейдовую карту с батарейным питанием
  • Используйте ИБП, черт побери. Если вы беспокоитесь о своих данных, это стоит денег. О, а также убедитесь, что на вашем сервере настроена и протестирована функция автоматического выключения ИБП.

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

Реальность: Несмотря на все усилия некоторых действительно великих разработчиков, мы все еще страдаем от повреждения файловой системы из-за перебоев в питании.

ZFS определенно то, что вы ищете.

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

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

Кроме того, RAID-карты с батарейным питанием - это действительно легкая задача...

Другим вариантом, который стоит рассмотреть, является настоящая транзакционная файловая система, такая как Datalight Reliance или Reliance Nitro. В отличие от журнальной файловой системы, как рекомендуется в других публикациях, которая защищает структуры файловой системы, настоящая транзакционная файловая система защищает как пользовательские данные, так и структуры файловой системы от повреждения из-за потери питания. Кроме того, Reliance и Reliance Nitro не страдают от недетерминированного времени запуска после сбоя питания, вызванного требованием воспроизведения журнала.

Обе файловые системы семейства Reliance могут использоваться с любыми носителями: HDD, SSD,CF-карты, NOR-флэш-память, NAND-флэш-память и т. Д.

Больше информации, включая сравнение файловой системы на Datalight.com

[полное раскрытие: я директор по продажам и маркетингу Datalight]

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

  1. От HCC Embedded они предлагают два решения для файловой системы - SafeFAT и SafeFLASH, которые, как утверждается, полностью безопасны при сбое питания. Первый вариант совместим с FAT, а затем оптимизирован для выравнивания износа и производительности. Несмотря на то, что эти продукты хороши, они, как правило, рассчитаны на крупных пользователей.

  2. От QNX Software Systems и обзоров здесь, они предлагают ряд различных решений для файловых систем, одно из которых потенциально защищено от сбоя питания из того, что я прочитал. Эта компания предлагает как коммерческое лицензирование, так и лицензирование с открытым исходным кодом, что было приятно видеть. К сожалению, они поддерживают драйверы только для вариантов 'nix.

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

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

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