У 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, с большей частью хранения данных на ротационных жестких дисках. Для рабочих нагрузок, где рабочий набор данных может быть оценен с достаточной степенью точности, это может обеспечить значительное улучшение производительности ввода-вывода при относительно низкой стоимости и, разумеется, без необходимости использования всех SSD.
- Практически бесплатные файловые системы. В ZFS создание "файловой системы" мало отличается от создания каталога в большинстве современных файловых систем. Файловые системы могут иметь разные квоты, как максимальные, так и гарантированные. По этой причине в ZFS файловые системы часто рекомендуется использовать в качестве административных границ; например, на большом сервере домашний каталог каждого пользователя может быть собственной файловой системой. Это изолирует части дерева каталогов друг от друга без накладных расходов, создаваемых отдельными регулярными разделами и файловыми системами. Я использую файловые системы, например, для разделения почтовых архивов в год или фотографий в месяц.
- Практически бесплатные снимки. Я не знаю, сколько раз тот факт, что я смог вернуться к тому, как файл выглядел несколько часов назад, спас меня от какой-то смущающей ошибки. Резервные копии предоставляют аналогичные возможности (и по-прежнему необходимы, поскольку никакое количество RAID не является резервной копией), но моментальные снимки гораздо более доступны. В ZFS для самого снимка требуется всего несколько килобайт хранилища метаданных, независимо от объема данных в соответствующей файловой системе, и это не приводит к значительным потерям производительности.
Ничто из этого не требуется для использования только потому, что вы используете ZFS. Но они есть, как правило, всего в одной команде, если вы хотите включить их.
Теперь, это "перебор"? Это действительно зависит от того, что вы пытаетесь сделать. Я запускаю ZFS (с ECC RAM) в моей домашней системе. По большей части, он тихо двигался, не создавая больше шума, чем любая другая файловая система (и, вероятно, меньше), но на самом деле он спас меня от повреждения данных хотя бы один раз (очистка обнаружила несколько секторов). которые показывали проблемы, и автоматически и бесшумно восстанавливали данные без какого-либо вмешательства от меня). Лично я полагаю, что я сохранил эти данные по какой-то причине, и, скорее всего, по этой причине я хочу обратиться к этим данным позже. Теперь подумайте, что вселенная ненавидит ваши данные.
Благодаря постоянно увеличивающимся размерам хранилищ и, по существу, постоянным ошибкам в битах (для каждого класса носителей), ошибки ввода-вывода не станут менее распространенными. Глядя на моего предпочтительного реселлера, и Seagate, и HGST предлагают жесткие диски емкостью 8 ТБ по ценам, которые высоки, но не экстремальны и, безусловно, доступны для отдельных лиц. Это около 6,4 × 10 ^ 13 бит. С частотой ошибок 10 ^ -14 бит, даже один проход чтения полного носителя статистически очень вероятен, чтобы столкнуться с проблемой ввода / вывода, делающей нечитаемый весь сектор (4 КиБ). (К тому времени, когда мы установим жесткие диски емкостью 10 ТБ, по статистике, при одном чтении с полного диска будет обнаружен как минимум один нечитаемый сектор.) Были исследования, показывающие, что необнаруженные ошибки чтения случаются гораздо чаще, чем мы хотим признать, - это отчаянные усилия производителей HDD по совершенствованию алгоритмов ECC на диске, хотя у меня нет доступной ссылки. Современные файловые системы, такие как NTFS, ext4, UFS+, HFS+ и т.д., Просто не готовы справиться с такой ситуацией.
Это нишевые файловые системы, такие как ZFS и Btrfs, которые стремятся заполнить.