Назад | Перейти на главную страницу

Как BTRFS по сравнению с ZFS?

Я обдумываю, какую ОС и файловую систему использовать на некоторых новых серверах, которые у меня есть, и рассматриваю вариант Free BSD с ZFS или Linux с BTRFS.

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

По состоянию на апрель 2010 года Btrfs все еще находится в разработке и не готов к производственному использованию (на самом деле, это не так - я экспериментировал с ядром 2.6.32). По функциональности btrfs содержит некоторые, но не все функции ZFS. В частности, отсутствуют RAID-Z и дедупликация данных.

Что действительно работает с btrfs, так это создание снимков, копирование при записи, контрольная сумма и использование нескольких дисков как одного тома. GNU cp недавно получил изящную функцию «reflink» для копирования файлов как дубликатов копирования при записи.

ZFS-FUSE кажется более стабильным, чем btrfs, поэтому, если вы используете Linux, это может быть вариантом (http://zfs-fuse.net/). Реализовано большинство функций Solaris ZFS. Однако не могу найти актуальные тесты производительности.

В качестве надежного решения я бы по-прежнему рекомендовал использовать Linux и XFS. Если вам нужен снимок, добавьте LVM2. Если вам нужен программный RAID, добавьте mdadm.

На сегодняшний день (01.02.2012) btrfs по-прежнему не имеет утилиты fsck, что означает, что все ваши данные окажутся под угрозой, если ваша система выйдет из строя (например, паника ядра, потеря питания и многие другие сценарии). Я лично испытал эту потерю данных. Если вы ищете безопасность данных (а кто нет?), Избегайте btrfs. На данный момент BTRFS предназначена для экспериментов с ненужными файловыми системами или несущественными данными.

Конечно, вы все равно должны хранить резервные копии ценных данных, верно?

Для сверхстабильной альтернативы используйте ZFS на ПК / FreeBSD 9. ZFS - это надежная файловая система предприятия, которая существует уже много лет. RAIDZ2 спасает жизнь.

Как уже упоминали другие, Btrfs все еще экспериментальный, поэтому вы, вероятно, пока не хотите полагаться на Btrfs.

Люди в целом кажутся довольными ZFS на BSD, но вы также можете рассмотреть возможность запуска ZFS на Solaris.

BSD-порт ZFS, вероятно, является наиболее зрелым портом, но он все еще на несколько версий отстает от ZFS на Solaris, поэтому вы не получите сразу все новейшие функции. Начиная с FreeBSD 8.0, поддерживается только ZFS версии 13, поэтому, например, вы не получите дедупликацию (которая была представлена ​​в ZFS версии 21). Вы также не получите iSCSI с FreeBSD 8.0.

Если вам нужны новейшие функции ZFS по мере их появления, вы можете выбрать OpenSolaris, Oracle Solaris или Nexenta (производная от Solaris с пользовательским пространством GNU).

Как уже отмечали другие, BTRFS еще не является качественным продуктом, поэтому, если вам нужно что-то, что работает сегодня, ZFS - лучший выбор.

Для получения дополнительной информации о BTRFS и о том, чем она отличается от ZFS, см. эта статья LWN.

Я все еще пользуюсь ZFS (как в Solaris, так и в Linux), однако в последнем случае я бы рассмотрел btrfs в качестве его последней версии (март 2012 г.). включает новые функции, улучшения производительности, исправления ошибок и очень ожидаемый выпуск btrfsfsck с возможностями восстановления.

В соответствии с этим пресс-релиз, файловая система Btrfs теперь готова к работе.

Этот вопрос задавали почти десять лет назад, но он все еще встречается в поисковых системах, поэтому, вероятно, стоит добавить обновленный ответ. ZFS в Linux сейчас достаточно развита: в Ubuntu добавлена ​​базовая поддержка в 2015 году, а в конце 2019 года - установка в корень ZFS. Это означает, что легче сравнивать ZFS и btrfs в одной и той же ОС, не превращая это в обсуждение Linux и FreeBSD. (Если вы не используете Linux, btrfs, вероятно, не вариант.)

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

ZFS в целом более зрелый продукт. Настроить вашу первую систему ZFS на удивление легко: кажется, что требуется дополнительная настройка, но это файловая система с "включенными батареями". ZFS обеспечивает встроенную поддержку шифрования, тогда как btrfs требует, чтобы вы зашифровали собственное блочное устройство с помощью dm-crypt или аналогичного. ZFS может даже позаботиться об экспорте вашей файловой системы через NFS или SMB. Документация ZFS не рассчитана на хакера ядра или случайного пользователя, использующего один загрузочный диск (хотя ZFS может это сделать), но предполагает, что читатель создает серьезный файловый сервер с пользователями, избыточностью и временем безотказной работы.

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

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

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

  • В btrfs блочные устройства образуют файловая система который содержит произвольное количество монтируемых подтомы. А снимок подобъема сам по себе является другим подобъемом; "снимок похож на (полную) копию, за исключением того, что он более экономичен из-за общего хранилища. "Гибкость этого подхода означает, что вам нужно выбрать какой-то соглашение о компоновке если вы хотите использовать моментальные снимки для управления инкрементным резервным копированием.

Если вы рассматриваете как ZFS, так и btrfs в Linux, и вас интересует более передовая альтернатива, вы также можете посмотреть bcachefs.

Пока я искал то же самое, я наткнулся на эту информацию из вики FreeBSD о статусе ZFS во FreeBSD. Похоже, FreeBSD догоняет.

Источник: http://wiki.freebsd.org/ZFSTuningGuide

История выпусков FreeBSD с ZFS выглядит следующим образом:

  • 7.0+ - оригинальный импорт ZFS, ZFS v6; требует значительной настройки для стабильной работы (больше не поддерживается)
  • 7.2 - все еще ZFS v6, улучшенная обработка памяти, amd64 может не нуждаться в настройке памяти (больше не поддерживается)
  • 7.3+ - бэкпорт нового кода ZFS v13, похожего на код 8.0
  • 8.0 - новый код ZFS v13, множество исправлений ошибок - рекомендуется по сравнению со всеми предыдущими версиями. (больше не поддерживается)
  • 8.1+ - ZFS v14
  • 8.2+ - ZFS v15
  • 9.0+ - ZFS v28