Как утверждает ZFS ,ZFS считается неуязвимым ZFS признает, что он может быть уязвим к сбоям питания.
Я не мог найти такое заявление для BTRFS. Является ли он (или разработан / планируется / будет) долговечным между отключениями электроэнергии?
btrfs
failure-resistance
ceremcem
источник
источник
zpool clear -F
командыsync
или,flush
который записывает кэши на диск, или нет во время отключения питания, эти данные будут потеряны. ZFS может отлично работать, если жесткий диск исправен и нет перебоев в питании (или ИБП подключен для правильного выключения компьютера при сбое). Что вы не можете сказать о FAT32 или около того.should be ok if your hw isn't "buggy"
означает "не глючит"your hw has correct flush/barrier semantics
. Я разместил ссылку на этот вопрос в IRC, надеюсь, кому-нибудь понадобится время на разработку; но пока это все.Ответы:
TL; DR: это означает, что btrfs защищен от повреждения данных из-за потери питания аналогично ZFS.
И вот почему: общая идея ZFS и btrfs похожа. Оба используют деревья Меркле в качестве структуры данных . Запись может потребовать обновления нескольких блоков на диске (ах). Файловая система обрабатывает это, записывая новые данные в пустые блоки (даже если существующий файл изменяется, поэтому не нужно изменять блоки, отражающие старое состояние) и создавая новое обновленное дерево. Как только все тяжелые работы будут выполнены, и данные + обновленное дерево будут записаны на диск, указатель головы будет обновлен до нового дерева, что сделает изменение видимым.
Вот как все должно вести себя при записи в файл:
Если питание потеряно после (4) транзакция завершена. Если во время шагов (1) - (3) питание будет потеряно, файловая система перейдет в старое состояние (данные, записанные на шаге (1), будут потеряны, но файловая система непротиворечива). Обратите внимание, что нет необходимости проверять ошибки файловой системы, что означает, что файловая система доступна немедленно, что является большим преимуществом (проверка больших файловых систем может занять очень много времени!).
Вот пример того, как что-то может пойти не так с «глючным» оборудованием:
Файловая система станет несовместимой, если пропадет питание между (4) и (5) или во время выполнения шага (5). Как следствие, дерево Меркле и / или данные могут быть записаны только частично, что приведет к несовместимости файловой системы.
На практике вы должны быть особенно осторожны при использовании RAID-контроллеров . Обычно они отключают кэши обратной записи на диске и вместо этого используют собственный кэш обратной записи. Есть два распространенных способа ошибиться:
* Я упрощаю вещи здесь. На самом деле нет необходимости копировать все дерево. Необходимо добавить только те части, которые изменились - оставшиеся части могут быть разделены между старым и новым деревом .
источник