У ZFS нет особо высоких требований к памяти.
Как указано в комментариях, определенные особенности ZFS (в частности, дедупликация, но также L2ARC) требует определенного объема памяти, чтобы быть полезным.
Тем не менее, эти функции не являются теми, которые вы, вероятно, будете использовать, если у вас нет конкретного варианта использования, который подразумевает их использование.
ZFS с ARC первого уровня (Adaptive Replacement Cache) не намного больше потребляет память, чем любая другая файловая система и кэш. Из-за использования ARC вместо, например, Наименее недавно использованный алгоритм кэширования, в некоторых рабочих нагрузках он может более эффективно использовать доступную кэш-память.
Что такое ZFS делает требовать ECC RAM Это повсеместно распространено на серверах, но редко встречается в персональных системах (многие младшие процессоры Intel даже не поддерживают ECC RAM). Это требование вытекает из свойств самовосстановления ZFS, потому что Проблемы с ОЗУ потенциально могут уничтожить ваши данные при запуске ZFS. Нет кода для проверки этого в ZFS, возможно, отчасти потому, что кажется, нет 100% определенного способа узнать из программного обеспечения использует ли система ECC RAM.
То, имеет ли смысл ZFS, зависит от того, что вы пытаетесь сделать, так же, как имеет смысл NTFS, также зависит от того, что вы пытаетесь сделать. ZFS, тем не менее, предлагает несколько функций, которые предлагают немногие или никакие другие файловые системы, и которые могут быть очень полезны в определенных сценариях. Немного из них:
- Гарантированная сквозная целостность данных. Вы наверняка будете знать, что если определенное чтение завершится успешно, оно вернуло те же данные, которые были первоначально записаны в это место. Это означает, что не существует такого понятия, как тихое повреждение данных; вы либо вернете свои данные, либо получите ошибку ввода-вывода.
- Чередование и резервирование с учетом файловой системы. Обычные RAID-контроллеры обрабатывают все устройство хранения данных как большую группу блоков, не имея представления о каких-либо структурах данных на диске. Поскольку ZFS объединяет управление томами и файловую систему, она может принимать более разумные решения перед лицом ошибок. Он также имеет режим «наиболее важный первый», который означает, что данные, критически важные для функционирования файловой системы, сначала восстанавливаются после сбоя, и менее важные данные ждут, независимо от того, где на диске находятся данные сохраняются.
- Многоуровневое кеширование. Например, у вас может быть RAM ARC, дополненная быстрым SSD L2ARC, с большей частью хранения данных на ротационных жестких дисках. Для рабочих нагрузок, где рабочий набор данных может быть оценен с разумной степенью точности, это может обеспечить значительное улучшение производительности ввода-вывода при относительно низкой стоимости и, конечно, без необходимости использовать все твердотельные накопители.
- Практически бесплатные файловые системы. В ZFS создание «файловой системы» мало отличается от создания каталога в большинстве современных файловых систем. Файловые системы могут иметь разные квоты, как максимальные, так и гарантированные. По этой причине в ZFS файловые системы часто рекомендуется использовать в качестве административных границ; например, на большом сервере домашний каталог каждого пользователя может быть собственной файловой системой. Это изолирует части дерева каталогов друг от друга без накладных расходов, создаваемых отдельными регулярными разделами и файловыми системами. Я использую файловые системы, например, для разделения почтовых архивов в год или фотографий в месяц.
- Практически бесплатные снимки. Я не знаю, сколько раз тот факт, что я смог вернуться к тому, как файл выглядел несколько часов назад, спас меня от какой-то смущающей ошибки. Резервные копии предоставляют аналогичные возможности (и все еще необходимы, потому что никакое количество RAID не является резервной копией ), но снимки гораздо более доступны. В ZFS для самого снимка требуется всего несколько килобайт хранилища метаданных независимо от объема данных в соответствующей файловой системе, и это не приводит к значительным потерям производительности.
Ничто из этого не требуется для использования только потому, что вы используете ZFS. Но они есть, как правило, всего в одной команде, если вы хотите включить их.
Теперь, это "перебор"? Это действительно зависит от того, что вы пытаетесь сделать. Я запускаю ZFS (с ECC RAM) в моей домашней системе. По большей части, он тихо двигался, не создавая больше шума, чем любая другая файловая система (и, вероятно, меньше), но он фактически спас меня от повреждения данных хотя бы один раз (очистка обнаружила несколько секторов). которые показывали проблемы, и автоматически и бесшумно восстановил данные без вмешательства требуется от меня). Лично я считаю, что Я сохранил эти данные по причине, и эта причина, скорее всего, я хочу обратиться к данным позже. Рассмотрим теперь, что вселенная ненавидит ваши данные ,
Благодаря постоянно увеличивающимся размерам хранилищ и, по существу, постоянным ошибкам в битах (для каждого класса носителей), ошибки ввода-вывода не станут менее распространенными. Глядя на моего предпочтительного реселлера, и Seagate, и HGST предлагают жесткие диски емкостью 8 ТБ по ценам, которые высоки, но не экстремальны и, безусловно, доступны для отдельных лиц. Это около 6,4 × 10 ^ 13 бит. С частотой ошибок 10 ^ -14 бит, даже один полный прочитанный проход СМИ является статистически очень вероятно столкнуться с проблемой ввода / вывода, делающей нечитаемый весь сектор (4 КиБ). (К тому времени, когда мы получили 10 ТБ жестких дисков, статистически при одном чтении на полный диск будет встречаться хотя бы один нечитаемый сектор .) Были исследования, показывающие, что незамеченной Ошибки чтения случаются гораздо чаще, чем мы хотим признать, несмотря на усилия производителей жестких дисков по улучшению алгоритмов ECC на диске, хотя у меня нет доступной ссылки. Современные файловые системы, такие как NTFS, ext4, UFS +, HFS + и т. Д., Просто не готовы справиться с такой ситуацией.
Это нишевые файловые системы, такие как ZFS и Btrfs, которые стремятся заполнить.