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