stringtranslate.com

ЗФС

ZFS (ранее Zettabyte File System ) — файловая система с возможностями управления томами . Она появилась как часть операционной системы Sun Microsystems Solaris в 2001 году. Большие части Solaris, включая ZFS, были опубликованы под лицензией с открытым исходным кодом как OpenSolaris в течение примерно 5 лет с 2005 года, прежде чем были помещены под закрытую лицензию, когда Oracle Corporation приобрела Sun в 2009–2010 годах. В течение 2005–2010 годов версия ZFS с открытым исходным кодом была портирована на Linux , Mac OS X (продолженная как MacZFS ) и FreeBSD . В 2010 году проект illumos отделил последнюю версию OpenSolaris, включая ZFS, чтобы продолжить ее разработку как проекта с открытым исходным кодом. В 2013 году была основана OpenZFS для координации разработки ZFS с открытым исходным кодом. [3] [4] [5] OpenZFS поддерживает и управляет основным кодом ZFS, в то время как организации, использующие ZFS, поддерживают определенный код и процессы проверки, необходимые для интеграции ZFS в их системы. OpenZFS широко используется в Unix-подобных системах. [6] [7] [8]

Обзор

Управление хранимыми данными обычно включает в себя два аспекта: управление физическими томами одного или нескольких блочных устройств хранения данных (таких как жесткие диски и SD-карты ), включая их организацию в логические блочные устройства как VDEV (виртуальные устройства ZFS) [9] , как их видит операционная система (часто с участием менеджера томов , RAID-контроллера , менеджера массивов или подходящего драйвера устройства ); и управление данными и файлами, которые хранятся на этих логических блочных устройствах ( файловая система или другое хранилище данных).

Пример: RAID- массив из 2 жестких дисков и кэширующего SSD-диска управляется системой RST от Intel , частью чипсета и встроенного ПО, встроенного в настольный компьютер. Пользователь Windows видит это как один том, содержащий диск с форматированием NTFS с его данными, и NTFS не обязательно знает о манипуляциях, которые могут потребоваться (например, чтение с/запись на кэш-диск или перестроение RAID-массива в случае отказа диска). Управление отдельными устройствами и их представление как единого устройства отличается от управления файлами, хранящимися на этом кажущемся устройстве.

ZFS необычна, поскольку, в отличие от большинства других систем хранения, она объединяет обе эти роли и действует как менеджер томов и файловая система . Поэтому она имеет полное представление как о физических дисках и томах (включая их статус, состояние и логическое расположение в томах), так и обо всех файлах, хранящихся на них. ZFS разработана для обеспечения (при условии достаточной избыточности данных ), что данные, хранящиеся на дисках, не могут быть потеряны из-за физических ошибок, неправильной обработки оборудованием или операционной системой или событий битовой порчи и повреждения данных , которые могут произойти с течением времени. Ее полный контроль над системой хранения используется для обеспечения того, чтобы каждый шаг, связанный с управлением файлами или дисками , был проверен, подтвержден, исправлен при необходимости и оптимизирован таким образом, которого не могут достичь карты контроллера хранения и отдельные тома и файловые системы.

ZFS также включает механизм моментальных снимков и репликации на уровне наборов данных и пулов , включая клонирование моментальных снимков , которое описывается в документации FreeBSD как одна из его «самых мощных функций» с функциональностью, которой «недостает даже другим файловым системам с функциональностью моментальных снимков». [10] Очень большое количество моментальных снимков может быть сделано без ухудшения производительности, что позволяет использовать моментальные снимки до рискованных системных операций и изменений программного обеспечения, или полностью делать моментальные снимки всей производственной («живой») файловой системы несколько раз в час, чтобы смягчить потерю данных из-за ошибки пользователя или вредоносной активности. Моментальные снимки можно откатывать «живыми» или просматривать предыдущие состояния файловой системы, даже на очень больших файловых системах, что приводит к экономии по сравнению с формальными процессами резервного копирования и восстановления. [10] Моментальные снимки также можно клонировать для формирования новых независимых файловых систем. ZFS также имеет возможность делать моментальный снимок на уровне пула (известный как «контрольная точка»), что позволяет откатывать операции, которые могут повлиять на всю структуру пула или которые добавляют или удаляют целые наборы данных.

История

2004-2010: Разработка в Sun Microsystems

В 1987 году корпорации AT&T и Sun объявили о сотрудничестве в проекте по объединению самых популярных на тот момент вариантов Unix на рынке: Berkeley Software Distribution , UNIX System V и Xenix . Это стало Unix System V Release 4 (SVR4). [11] Проект был выпущен под названием Solaris , который стал преемником SunOS 4 (хотя микрорелизы SunOS 4.1. x были ретроспективно названы Solaris 1 ). [12]

ZFS была разработана и реализована командой Sun под руководством Джеффа Бонвика , Билла Мура [13] и Мэтью Аренса. Она была анонсирована 14 сентября 2004 года [14] , но разработка началась в 2001 году [15]. Исходный код ZFS был интегрирован в основную ветку разработки Solaris 31 октября 2005 года [16] и выпущен для разработчиков как часть сборки 27 OpenSolaris 16 ноября 2005 года. В июне 2006 года Sun объявила, что ZFS была включена в основное обновление 6/06 для Solaris 10 [17] .

Solaris изначально разрабатывался как проприетарное программное обеспечение , но Sun Microsystems была одним из первых коммерческих сторонников программного обеспечения с открытым исходным кодом и в июне 2005 года выпустила большую часть кодовой базы Solaris под лицензией CDDL и основала проект с открытым исходным кодом OpenSolaris . [18] В Solaris 10 6/06 («U2») Sun добавила файловую систему ZFS и часто обновляла ZFS новыми функциями в течение следующих 5 лет. ZFS была портирована на Linux , Mac OS X (продолженная как MacZFS ) и FreeBSD под этой лицензией с открытым исходным кодом.

В какой-то момент считалось, что это название расшифровывается как «Zettabyte File System» [19] , но к 2006 году оно уже не считалось аббревиатурой. [20] Файловая система ZFS может хранить до 256 квадриллионов зеттабайт (ZB).

В сентябре 2007 года NetApp подала в суд на Sun, утверждая, что ZFS нарушает некоторые патенты NetApp на Write Anywhere File Layout . Sun подала встречный иск в октябре того же года, утверждая обратное. Судебные тяжбы были прекращены в 2010 году нераскрытым соглашением. [21]

2010-настоящее время: Разработка в Oracle, OpenZFS

Портированные версии ZFS начали появляться в 2005 году. После приобретения Sun корпорацией Oracle в 2010 году версия ZFS от Oracle стала иметь закрытый исходный код, а разработка версий с открытым исходным кодом продолжалась независимо, координируемая OpenZFS с 2013 года.

Функции

Краткое содержание

Примеры функций, специфичных для ZFS, включают в себя:

  • Разработано для долгосрочного хранения данных и неограниченного масштабирования размеров хранилища данных с нулевой потерей данных и высокой степенью настраиваемости.
  • Иерархическое контрольное суммирование всех данных и метаданных , гарантирующее, что вся система хранения может быть проверена при использовании и подтверждена для правильного хранения или исправлена ​​в случае повреждения. Контрольные суммы хранятся с родительским блоком блока , а не с самим блоком. Это контрастирует со многими файловыми системами, где контрольные суммы (если они есть) хранятся с данными, так что если данные потеряны или повреждены, контрольная сумма также, скорее всего, будет потеряна или неверна.
  • Может хранить указанное пользователем количество копий данных или метаданных, или выбранных типов данных, чтобы улучшить возможность восстановления важных файлов и структур после повреждения данных.
  • Автоматический откат последних изменений в файловой системе и данных в некоторых случаях в случае ошибки или несоответствия.
  • Автоматическое и (обычно) тихое самовосстановление несоответствий данных и сбоев записи при их обнаружении для всех ошибок, где данные можно восстановить. Данные могут быть восстановлены с использованием всего следующего: контрольные суммы обнаружения и исправления ошибок, хранящиеся в родительском блоке каждого блока; несколько копий данных (включая контрольные суммы), хранящихся на диске; намерения записи, зарегистрированные в SLOG (ZIL) для записей, которые должны были произойти, но не произошли (после сбоя питания); данные четности с дисков и томов RAID/RAID-Z; копии данных с зеркальных дисков и томов.
  • Собственная обработка стандартных уровней RAID и дополнительных схем ZFS RAID («RAID-Z»). Уровни RAID-Z распределяют данные только по требуемым дискам для эффективности (многие системы RAID распределяют данные без разбора по всем устройствам), а контрольное суммирование позволяет восстанавливать несогласованные или поврежденные данные, сводя их к минимуму для блоков с дефектами;
  • Собственная обработка многоуровневых устройств хранения и кэширования, что обычно является задачей, связанной с томом. Поскольку ZFS также понимает файловую систему, она может использовать знания, связанные с файлами, для информирования, интеграции и оптимизации своей многоуровневой обработки хранилища, чего не может сделать отдельное устройство;
  • Собственная обработка снимков и резервного копирования/ репликации , которая может быть сделана эффективной за счет интеграции обработки томов и файлов. Соответствующие инструменты предоставляются на низком уровне и требуют внешних скриптов и программного обеспечения для использования.
  • Встроенное сжатие данных и дедупликация , хотя последняя в основном выполняется в оперативной памяти и требует много памяти.
  • Эффективная перестройка массивов RAID — RAID-контроллеру часто приходится перестраивать весь диск, но ZFS может объединять сведения о диске и файле, чтобы ограничить перестройку данными, которые фактически отсутствуют или повреждены, что значительно ускоряет перестройку;
  • Не подвержен изменениям оборудования RAID, которые влияют на многие другие системы. Во многих системах, если автономное оборудование RAID, такое как карта RAID, выходит из строя или данные перемещаются в другую систему RAID, в файловой системе будет отсутствовать информация, которая была на исходном оборудовании RAID, которая необходима для управления данными в массиве RAID. Это может привести к полной потере данных, если только не будет приобретено почти идентичное оборудование и использовано в качестве «трамплина». Поскольку ZFS сама управляет RAID, пул ZFS можно перенести на другое оборудование или переустановить операционную систему, а структуры RAID-Z и данные будут распознаны и немедленно доступны ZFS снова.
  • Возможность идентифицировать данные, которые могли бы быть найдены в кэше, но недавно были удалены; это позволяет ZFS пересматривать свои решения по кэшированию с учетом последующего использования и способствует достижению очень высоких уровней попаданий в кэш (уровень попаданий в кэш ZFS обычно превышает 80%);
  • Альтернативные стратегии кэширования могут использоваться для данных, которые в противном случае вызывали бы задержки в обработке данных. Например, синхронные записи, которые способны замедлить систему хранения, могут быть преобразованы в асинхронные записи путем записи на быстрое отдельное устройство кэширования, известное как SLOG (иногда называемое ZIL – ZFS Intent Log).
  • Широкие возможности настройки — многие внутренние параметры можно настроить для оптимальной функциональности.
  • Может использоваться для кластеров и вычислений высокой доступности , хотя и не полностью предназначен для этого использования.

Целостность данных

Одной из основных особенностей, отличающих ZFS от других файловых систем , является то, что она разработана с упором на целостность данных, защищая данные пользователя на диске от скрытого повреждения данных , вызванного ухудшением качества данных , скачками напряжения , ошибками в прошивке диска , фантомными записями (предыдущая запись не попала на диск), неправильно направленными чтениями/записями (диск обращается к неправильному блоку), ошибками четности DMA между массивом и памятью сервера или из-за драйвера (поскольку контрольная сумма проверяет данные внутри массива), ошибками драйвера (данные попадают в неправильный буфер внутри ядра), случайными перезаписями (например, при переключении на работающую файловую систему) и т. д.

Исследование 1999 года показало, что ни одна из основных и распространенных на тот момент файловых систем (таких как UFS , Ext , [22] XFS , JFS или NTFS ), ни аппаратный RAID (имеющий некоторые проблемы с целостностью данных ) не обеспечивали достаточной защиты от проблем с повреждением данных. [23] [24] [25] [26] Первоначальные исследования показывают, что ZFS защищает данные лучше, чем более ранние попытки. [27] [28] Она также быстрее, чем UFS [29] [30] , и может рассматриваться в качестве ее замены.

В ZFS целостность данных достигается с помощью контрольной суммы на основе Флетчера или хэша SHA-256 по всему дереву файловой системы. [31] Каждый блок данных проходит контрольную сумму, а затем значение контрольной суммы сохраняется в указателе на этот блок, а не в самом блоке. Затем указатель блока проходит контрольную сумму, а значение сохраняется в его указателе. Это контрольное суммирование продолжается по всей иерархии данных файловой системы до корневого узла, который также проходит контрольную сумму, таким образом создавая дерево Меркла . [31] Повреждение данных в процессе выполнения или фантомные чтения/записи (данные записаны/прочитаны с правильной контрольной суммой, но на самом деле неверны) не обнаруживаются большинством файловых систем, поскольку они хранят контрольную сумму вместе с данными. ZFS хранит контрольную сумму каждого блока в указателе родительского блока, так что весь пул самопроверяется. [31]

При доступе к блоку, независимо от того, данные это или метаданные, его контрольная сумма вычисляется и сравнивается с сохраненным значением контрольной суммы того, каким он «должен» быть. Если контрольные суммы совпадают, данные передаются вверх по программному стеку процессу, который их запросил; если значения не совпадают, то ZFS может восстановить данные, если пул хранения обеспечивает избыточность данных (например, с помощью внутреннего зеркалирования ), предполагая, что копия данных не повреждена и с совпадающими контрольными суммами. [32] При желании можно обеспечить дополнительную избыточность в пуле, указав copys=2 (или copys=3 ), что означает, что данные будут храниться на диске дважды (или трижды), эффективно уменьшая вдвое (или, для copys=3 , уменьшая до одной трети) емкость хранения диска. [33] Кроме того, некоторые виды данных, используемые ZFS для управления пулом, по умолчанию сохраняются несколько раз для безопасности даже при настройке по умолчанию copys=1.

Если существуют другие копии поврежденных данных или их можно восстановить из контрольных сумм и данных четности , ZFS будет использовать копию данных (или воссоздаст ее с помощью механизма восстановления RAID) и пересчитает контрольную сумму — в идеале это приведет к воспроизведению изначально ожидаемого значения. Если данные пройдут эту проверку целостности, система сможет обновить все неисправные копии заведомо хорошими данными, и избыточность будет восстановлена.

Если копий поврежденных данных нет, ZFS переводит пул в неисправное состояние [34] , что делает невозможным его дальнейшее использование и не предоставляет документированных способов восстановления содержимого пула.

Согласованность данных, хранящихся в памяти, таких как кэшированные данные в ARC, по умолчанию не проверяется, поскольку ожидается, что ZFS будет работать на оборудовании корпоративного качества с оперативной памятью с исправлением ошибок . Однако возможность проверки данных в памяти существует и может быть включена с помощью «флагов отладки». [35]

RAID ("RAID-Z")

Чтобы ZFS могла гарантировать целостность данных, ей необходимо несколько копий данных, обычно распределенных по нескольким дискам. Обычно это достигается с помощью RAID- контроллера или так называемого «мягкого» RAID (встроенного в файловую систему ).

Избегание использования аппаратных RAID-контроллеров

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

Диски, подключенные к системе с помощью оборудования, прошивки, другого «мягкого» RAID или любого другого контроллера, который изменяет путь ввода-вывода ZFS-диск , повлияют на производительность ZFS и целостность данных. Если стороннее устройство выполняет кэширование или представляет диски в ZFS как единую систему без низкоуровневого представления, на которое полагается ZFS, существует гораздо большая вероятность того, что система будет работать менее оптимально и что ZFS будет менее склонна предотвращать сбои, восстанавливаться после сбоев медленнее или терять данные из-за сбоя записи. Например, если используется аппаратная карта RAID, ZFS может не иметь возможности определять состояние дисков, определять, деградировал ли массив RAID или перестраивается, обнаруживать все повреждения данных, оптимально размещать данные на дисках, выполнять выборочный ремонт, контролировать, как ремонты сбалансированы с текущим использованием, или выполнять ремонт, который ZFS обычно может выполнить. Аппаратная карта RAID будет мешать алгоритмам ZFS. Контроллеры RAID также обычно добавляют на диски данные, зависящие от контроллера, что не позволяет программному RAID получать доступ к пользовательским данным. В случае отказа аппаратного RAID-контроллера может быть возможно считать данные с помощью другого совместимого контроллера, но это не всегда возможно, и замена может быть недоступна. Альтернативные аппаратные RAID-контроллеры могут не понимать пользовательские данные оригинального производителя, необходимые для управления и восстановления массива.

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

Если диски должны быть подключены через RAID или другой контроллер, рекомендуется минимизировать объем обработки, выполняемой в контроллере, используя простой HBA (хост-адаптер) , простую карту разветвления или настроить карту в режиме JBOD (т. е. отключить функции RAID и кэширования), чтобы устройства можно было подключать с минимальными изменениями в пути ввода-вывода ZFS-диск. Карта RAID в режиме JBOD может по-прежнему мешать, если у нее есть кэш, или, в зависимости от ее конструкции, может отсоединять диски, которые не отвечают вовремя (как это было замечено со многими энергоэффективными жесткими дисками потребительского класса), и, как таковая, может потребовать дисков с поддержкой Time-Limited Error Recovery (TLER)/CCTL/ERC для предотвращения выпадений дисков, поэтому не все карты подходят даже с отключенными функциями RAID. [36]

Подход ZFS: RAID-Z и зеркалирование

Вместо аппаратного RAID, ZFS использует "мягкий" RAID, предлагая RAID-Z ( на основе четности , как RAID 5 и подобные) и зеркалирование дисков (похожее на RAID 1 ). Схемы очень гибкие.

RAID-Z — это схема распределения данных/четности, как RAID-5 , но с динамической шириной полосы: каждый блок — это собственная полоса RAID, независимо от размера блока, в результате чего каждая запись RAID-Z является записью полной полосы. Это, в сочетании с транзакционной семантикой копирования при записи ZFS, устраняет ошибку дыры записи . RAID-Z также быстрее традиционного RAID 5, поскольку ему не нужно выполнять обычную последовательность чтения-изменения-записи . [37]

Поскольку все полосы имеют разные размеры, реконструкция RAID-Z должна пройти через метаданные файловой системы, чтобы определить фактическую геометрию RAID-Z. Это было бы невозможно, если бы файловая система и массив RAID были отдельными продуктами, тогда как это становится возможным, когда есть интегрированное представление логической и физической структуры данных. Прохождение через метаданные означает, что ZFS может проверять каждый блок по его 256-битной контрольной сумме по мере его поступления, тогда как традиционные продукты RAID обычно не могут этого сделать. [37]

Помимо обработки сбоев всего диска, RAID-Z также может обнаруживать и исправлять скрытое повреждение данных , предлагая «самовосстановление данных»: при чтении блока RAID-Z ZFS сравнивает его с контрольной суммой, и если диски данных не вернули правильный ответ, ZFS считывает четность, а затем выясняет, какой диск вернул плохие данные. Затем он восстанавливает поврежденные данные и возвращает хорошие данные запрашивающей стороне. [37]

RAID-Z и зеркалирование не требуют специального оборудования: им не нужна NVRAM для надежности, и им не нужна буферизация записи для хорошей производительности или защиты данных. С RAID-Z ZFS обеспечивает быстрое и надежное хранение с использованием дешевых, массовых дисков. [ продвижение? ] [37]

Существует пять различных режимов RAID-Z: чередование (аналогично RAID 0, не обеспечивает избыточности), RAID-Z1 (аналогично RAID 5, допускает отказ одного диска), RAID-Z2 (аналогично RAID 6, допускает отказ двух дисков), RAID-Z3 (конфигурация RAID 7 [a] , допускает отказ трех дисков) и зеркалирование (аналогично RAID 1, допускает отказ всех дисков, кроме одного). [39]

Потребность в RAID-Z3 возникла в начале 2000-х годов, когда накопители емкостью в несколько терабайт стали более распространенными. Это увеличение емкости — без соответствующего увеличения пропускной способности — означало, что восстановление массива из-за отказавшего диска могло «легко занять недели или месяцы». [38] В это время старые диски в массиве будут подвергаться дополнительной нагрузке, что может привести к повреждению данных или отказу диска. Увеличивая четность, RAID-Z3 снижает вероятность потери данных, просто увеличивая избыточность. [40]

Ресилверинг и очистка (синхронизация массива и проверка целостности)

ZFS не имеет эквивалента fsck (стандартный инструмент проверки и восстановления данных Unix и Linux для файловых систем). [41] Вместо этого ZFS имеет встроенную функцию очистки , которая регулярно проверяет все данные и исправляет скрытые повреждения и другие проблемы. Некоторые отличия:

Официальная рекомендация Sun/Oracle — очищать диски корпоративного уровня раз в месяц, а более дешевые массовые диски — раз в неделю. [42] [43]

Емкость

ZFS — это 128-битная файловая система, [44] [16], поэтому она может адресовать в 1,84 × 10 19 раз больше данных, чем 64-битные системы, такие как Btrfs . Максимальные пределы ZFS разработаны так, чтобы быть настолько большими, что они никогда не должны встречаться на практике. Например, полное заполнение одного zpool 2 128 битами данных потребует 3 × 10 24  ТБ жестких дисков. [45]

Некоторые теоретические ограничения в ZFS:

Шифрование

В Oracle Solaris возможность шифрования в ZFS [47] встроена в конвейер ввода-вывода. Во время записи блок может быть сжат, зашифрован, проконтролирован и затем дедуплицирован в указанном порядке. Политика шифрования устанавливается на уровне набора данных при создании наборов данных (файловых систем или ZVOL). Ключи оболочки, предоставленные пользователем/администратором, могут быть изменены в любое время без перевода файловой системы в автономный режим. Поведение по умолчанию заключается в том, что ключ оболочки наследуется любыми дочерними наборами данных. Ключи шифрования данных генерируются случайным образом во время создания набора данных. Только дочерние наборы данных (снимки и клоны) совместно используют ключи шифрования данных. [48] Предоставляется команда для переключения на новый ключ шифрования данных для клона или в любое время — это не перешифровывает уже существующие данные, а вместо этого использует зашифрованный механизм главного ключа.

По состоянию на 2019 год функция шифрования также полностью интегрирована в OpenZFS 0.8.0, доступную для дистрибутивов Debian и Ubuntu Linux. [49]

Были отдельные сообщения конечных пользователей о сбоях при использовании собственного шифрования ZFS. Точная причина не установлена. [50] [51]

Эффективность чтения/записи

ZFS автоматически распределит хранилище данных по всем vdev в пуле (и всем устройствам в каждом vdev) таким образом, чтобы в целом максимизировать производительность пула. ZFS также обновит свою стратегию записи, чтобы учесть новые диски, добавленные в пул, когда они будут добавлены.

Как правило, ZFS распределяет записи по vdev на основе свободного пространства в каждом vdev. Это гарантирует, что vdev, которые уже имеют пропорционально меньше данных, получат больше записей, когда новые данные должны быть сохранены. Это помогает гарантировать, что по мере того, как пул становится более используемым, ситуация не будет развиваться так, что некоторые vdev станут заполненными, заставляя запись происходить на ограниченном количестве устройств. Это также означает, что когда данные считываются (а считывания происходят гораздо чаще, чем записи в большинстве случаев использования), различные части данных могут быть считаны с максимально возможного количества дисков одновременно, что обеспечивает гораздо более высокую производительность чтения. Поэтому, как правило, пулы и vdev должны управляться, а также добавляться новые хранилища, чтобы не возникало ситуации, когда некоторые vdev в пуле почти полны, а другие почти пусты, так как это сделает пул менее эффективным.

Свободное пространство в ZFS имеет тенденцию фрагментироваться по мере использования. ZFS не имеет механизма дефрагментации свободного пространства. Существуют отдельные сообщения конечных пользователей о снижении производительности, когда высокая фрагментация свободного пространства сочетается с чрезмерным использованием дискового пространства. [52] [53]


Другие особенности

Устройства хранения, запасные части и квоты

Пулы могут иметь горячие резервы для компенсации отказа дисков. При зеркалировании блочные устройства могут быть сгруппированы по физическому шасси, так что файловая система может продолжать работу в случае отказа всего шасси.

Состав пула хранения не ограничивается похожими устройствами, а может состоять из разрозненных, гетерогенных наборов устройств, которые ZFS бесшовно объединяет вместе, впоследствии распределяя пространство между наборами данных (экземплярами файловой системы или ZVOL) по мере необходимости. Произвольные типы устройств хранения могут быть добавлены к существующим пулам для расширения их размера. [54]

Емкость хранилища всех vdev доступна всем экземплярам файловой системы в zpool. Можно установить квоту , чтобы ограничить объем пространства, который может занимать экземпляр файловой системы, а также можно установить резервирование, чтобы гарантировать, что пространство будет доступно экземпляру файловой системы.

Механизмы кэширования: ARC, L2ARC, группы транзакций, ZIL, SLOG, специальный VDEV

ZFS использует различные уровни дискового кэша для ускорения операций чтения и записи. В идеале все данные должны храниться в оперативной памяти, но это обычно слишком дорого. Поэтому данные автоматически кэшируются в иерархии для оптимизации производительности по сравнению со стоимостью; [55] их часто называют «гибридными пулами хранения». [56] Часто используемые данные будут храниться в оперативной памяти, а реже используемые данные могут храниться на более медленных носителях, таких как твердотельные накопители (SSD). Данные, к которым редко обращаются, не кэшируются и остаются на медленных жестких дисках. Если старые данные внезапно начинают много читать, ZFS автоматически переместит их на твердотельные накопители или в оперативную память.

Механизмы кэширования ZFS включают по одному для чтения и записи, и в каждом случае могут существовать два уровня кэширования: один в памяти компьютера (ОЗУ) и один на быстром хранилище (обычно твердотельных накопителях (SSD)), что в общей сложности дает четыре кэша.

В ZFS также существует ряд других кэшей, разделов кэша и очередей. Например, каждый VDEV имеет свой собственный кэш данных, а кэш ARC разделен между данными, хранящимися пользователем, и метаданными, используемыми ZFS, с контролем баланса между ними.

Специальный класс VDEV

В OpenZFS 0.8 и более поздних версиях можно настроить специальный класс VDEV для предпочтительного хранения метаданных файловой системы и, при необходимости, таблицы дедупликации данных (DDT) и небольших блоков файловой системы. [58] Это позволяет, например, создать специальный класс VDEV на быстром твердотельном накопителе для хранения метаданных, в то время как обычные данные файлов хранятся на вращающихся дисках. Это ускоряет операции с интенсивным использованием метаданных, такие как обход файловой системы, очистка и восстановление, без расходов на хранение всей файловой системы на твердотельном накопителе.

Транзакционная модель копирования при записи

ZFS использует транзакционную объектную модель копирования при записи . Все указатели блоков в файловой системе содержат 256-битную контрольную сумму или 256-битный хэш (в настоящее время выбор между Fletcher-2 , Fletcher-4 или SHA-256 ) [59] целевого блока, который проверяется при чтении блока. Блоки, содержащие активные данные, никогда не перезаписываются на месте; вместо этого выделяется новый блок, в него записываются измененные данные, затем любые блоки метаданных, ссылающиеся на него, аналогичным образом считываются, перераспределяются и записываются. Чтобы уменьшить накладные расходы этого процесса, несколько обновлений группируются в группы транзакций, а кэш записи ZIL ( Intent Log ) используется, когда требуется семантика синхронной записи. Блоки организованы в дерево, как и их контрольные суммы (см. схему подписи Меркла ).

Снимки и клоны

Преимущество копирования при записи заключается в том, что когда ZFS записывает новые данные, блоки, содержащие старые данные, могут быть сохранены, что позволяет поддерживать версию снимка файловой системы. Снимки ZFS являются согласованными (они отражают все данные, которые существовали в определенный момент времени), и могут быть созданы чрезвычайно быстро, поскольку все данные, составляющие снимок, уже сохранены, при этом весь пул хранения часто делается снимок несколько раз в час. Они также экономят место, поскольку любые неизмененные данные распределяются между файловой системой и ее снимками. Снимки по своей сути доступны только для чтения, что гарантирует, что они не будут изменены после создания, хотя на них не следует полагаться как на единственное средство резервного копирования. Можно восстановить целые снимки, а также файлы и каталоги внутри снимков.

Также можно создавать записываемые снимки («клоны»), что приводит к двум независимым файловым системам, которые совместно используют набор блоков. При внесении изменений в любую из клонированных файловых систем создаются новые блоки данных, отражающие эти изменения, но любые неизмененные блоки продолжают совместно использоваться, независимо от того, сколько клонов существует. Это реализация принципа копирования при записи .

Отправка и получение снимков

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

Динамическое чередование

Динамическое чередование на всех устройствах для максимизации пропускной способности означает, что по мере добавления дополнительных устройств в zpool ширина полосы автоматически расширяется, чтобы включить их; таким образом, используются все диски в пуле, что уравновешивает нагрузку записи между ними. [60]

Переменные размеры блоков

ZFS использует блоки переменного размера, с размером по умолчанию 128 КБ. Доступные функции позволяют администратору настраивать максимальный размер используемого блока, поскольку определенные рабочие нагрузки не работают хорошо с большими блоками. Если включено сжатие данных , используются переменные размеры блоков. Если блок можно сжать, чтобы он поместился в блок меньшего размера, меньший размер используется на диске для использования меньшего хранилища и повышения пропускной способности ввода-вывода (хотя и за счет увеличения использования ЦП для операций сжатия и распаковки). [61]

Создание облегченной файловой системы

В ZFS манипуляции с файловой системой в пуле хранения проще, чем манипуляции с томами в традиционной файловой системе; время и усилия, необходимые для создания или расширения файловой системы ZFS, ближе к созданию нового каталога, чем к манипуляциям с томами в некоторых других системах. [ необходима цитата ]

Адаптивный порядок байтов

Пулы и связанные с ними файловые системы ZFS можно перемещать между различными архитектурами платформ, включая системы, реализующие различные порядки байтов. Формат указателя блока ZFS хранит метаданные файловой системы адаптивным к порядку байтов способом; отдельные блоки метаданных записываются с собственным порядком байтов системы, записывающей блок. При чтении, если сохраненный порядок байтов не соответствует порядку байтов системы, метаданные меняются местами в памяти.

Это не влияет на хранимые данные; как это обычно бывает в системах POSIX , файлы отображаются для приложений как простые массивы байтов, поэтому приложения, создающие и считывающие данные, несут за это ответственность независимо от порядка байтов базовой системы.

Дедупликация

Возможности дедупликации данных были добавлены в исходный репозиторий ZFS в конце октября 2009 года [62] , а соответствующие пакеты разработки OpenSolaris ZFS стали доступны с 3 декабря 2009 года (сборка 128).

Эффективное использование дедупликации может потребовать большой емкости ОЗУ; рекомендации варьируются от 1 до 5 ГБ ОЗУ на каждый ТБ хранилища. [63] [64] [65] Точная оценка памяти, необходимой для дедупликации, производится на основе количества уникальных блоков в пуле и количества байтов на диске и в ОЗУ («ядро»), необходимых для хранения каждой записи — эти цифры сообщаются встроенными командами, такими как zpoolи zdb. Недостаток физической памяти или отсутствие кэша ZFS может привести к перегрузке виртуальной памяти при использовании дедупликации, что может привести к резкому падению производительности или к полному нехватке памяти. [ необходима цитата ] Поскольку дедупликация происходит во время записи, она также очень интенсивно использует процессор, и это также может значительно замедлить работу системы.

Другие поставщики хранилищ используют модифицированные версии ZFS для достижения очень высоких коэффициентов сжатия данных . Двумя примерами в 2012 году были GreenBytes [66] и Tegile. [67] В мае 2014 года Oracle купила GreenBytes для своей технологии дедупликации и репликации ZFS. [68]

Как описано выше, дедупликация обычно не рекомендуется из-за ее высоких требований к ресурсам (особенно к оперативной памяти) и влияния на производительность (особенно при записи), за исключением особых обстоятельств, когда система и данные хорошо подходят для этого метода экономии пространства.

Дополнительные возможности

Ограничения

Восстановление данных

ZFS не поставляется с такими инструментами, как fsck , поскольку сама файловая система была разработана для самовосстановления. Пока пул хранения был построен с достаточным вниманием к дизайну хранения и избыточности данных, базовые инструменты, такие как fsck, никогда не требовались. Однако, если пул был скомпрометирован из-за плохого оборудования, неадекватного дизайна или избыточности, или досадной неудачи, до такой степени, что ZFS не могла смонтировать пул, традиционно не было других, более продвинутых инструментов, которые позволяли бы конечному пользователю попытаться частично спасти сохраненные данные из сильно поврежденного пула.

Современная ZFS со временем значительно улучшила эту ситуацию и продолжает улучшать ее:

  • Удаление или внезапный отказ устройств кэширования больше не приводит к потере пула. (В худшем случае потеря ZIL может привести к потере самых последних транзакций, но ZIL обычно не хранит более нескольких секунд последних транзакций. Потеря кэша L2ARC не влияет на данные.)
  • Если пул немонтируемый, современные версии ZFS попытаются определить самую последнюю согласованную точку, в которой пул может быть восстановлен, ценой потери некоторых последних изменений в содержимом. Копирование при записи означает, что более старые версии данных, включая записи верхнего уровня и метаданные, могут все еще существовать, даже если они заменены, и если это так, пул может быть возвращен в согласованное состояние на их основе. Чем старше данные, тем больше вероятность того, что по крайней мере некоторые блоки были перезаписаны и что некоторые данные будут невосстановимы, поэтому в какой-то момент существует ограничение на возможность возврата пула в исходное состояние.
  • Неформально существуют инструменты для проверки причины, по которой ZFS не может смонтировать пул, и руководства пользователя или разработчика по ручным изменениям, необходимым для принудительного монтирования пула. Они включают использование zdb (отладка ZFS) для поиска допустимой импортируемой точки в пуле, использование dtrace или аналогичного для определения проблемы, вызывающей сбой монтирования, или ручной обход проверок работоспособности, которые приводят к прерыванию процесса монтирования, и разрешение монтирования поврежденного пула.
  • По состоянию на март 2018 года в OpenZFS постепенно внедряется ряд значительно улучшенных методов. К ним относятся: [86]
  • Рефакторинг кода и более подробная диагностическая и отладочная информация об ошибках монтирования для упрощения диагностики и устранения проблем с поврежденным пулом;
  • Возможность доверять или не доверять сохраненной конфигурации пула. Это особенно эффективно, поскольку позволяет монтировать пул, даже если vdev верхнего уровня отсутствуют или неисправны, когда данные верхнего уровня подозреваются, а также перематывать за пределы изменения конфигурации пула, если это изменение было связано с проблемой. После монтирования поврежденного пула можно скопировать читаемые файлы для безопасности, и может оказаться, что данные можно восстановить даже для отсутствующих vdev, используя копии, сохраненные в другом месте пула.
  • Возможность исправления ситуации, когда диск, необходимый в одном пуле, был случайно удален и добавлен в другой пул, что привело к потере метаданных, связанных с первым пулом, и они стали нечитаемыми.

OpenZFS и ZFS

Корпорация Oracle прекратила публичную разработку ZFS и OpenSolaris после приобретения Sun в 2010 году . Некоторые разработчики разделили последний публичный релиз OpenSolaris как проект Illumos. Из-за существенных преимуществ, присутствующих в ZFS, он был портирован на несколько различных платформ с различными функциями и командами. Для координации усилий по разработке и во избежание фрагментации в 2013 году была основана OpenZFS .

По словам Мэтта Аренса, одного из главных архитекторов ZFS, по состоянию на 2019 год более 50% исходного кода OpenSolaris ZFS было заменено в OpenZFS вкладами сообщества, что делает «Oracle ZFS» и «OpenZFS» политически и технологически несовместимыми. [87]

Коммерческие и открытые продукты

Oracle Corporation, закрытый исходный код и разветвление (с 2010 г.)

В январе 2010 года корпорация Oracle приобрела Sun Microsystems и быстро прекратила распространение OpenSolaris и модель разработки с открытым исходным кодом. [95] [96] В августе 2010 года Oracle прекратила предоставление публичных обновлений исходного кода репозитория Solaris OS/Networking, фактически превратив Solaris 11 обратно в закрытую проприетарную операционную систему. [97]

В ответ на меняющийся ландшафт Solaris и OpenSolaris, проект illumos был запущен через вебинар [98] в четверг, 3 августа 2010 года, как совместные усилия некоторых основных инженеров Solaris по продолжению разработки версии Solaris с открытым исходным кодом и завершению открытого исходного кода тех частей, которые еще не были открыты Sun. [99] illumos был основан как фонд, Illumos Foundation, зарегистрированный в штате Калифорния как торговая ассоциация 501(c)6 . В первоначальном плане прямо указывалось, что illumos не будет дистрибутивом или ответвлением. Однако после того, как Oracle объявила о прекращении поддержки OpenSolaris, были разработаны планы по ответвлению финальной версии Solaris ON, что позволило illumos развиться в собственную операционную систему. [100] Таким образом, как часть OpenSolaris, версия ZFS с открытым исходным кодом была неотъемлемой частью illumos.

ZFS широко использовалась на многочисленных платформах, а также в Solaris. Поэтому в 2013 году координация разработки версии ZFS с открытым исходным кодом была передана зонтичному проекту OpenZFS . Фреймворк OpenZFS позволяет всем заинтересованным сторонам совместно разрабатывать основную кодовую базу ZFS, при этом индивидуально поддерживая любой конкретный дополнительный код, который требуется ZFS для функционирования и интеграции в их собственные системы.

История версий

Примечание: Версия Solaris, разрабатываемая Sun с момента выпуска Solaris 10 в 2005 году, имела кодовое название «Nevada» и была получена из того, что было кодовой базой OpenSolaris . «Solaris Nevada» — это кодовое название ОС Solaris следующего поколения, которая в конечном итоге придет на смену Solaris 10, и этот новый код затем был последовательно включен в новые моментальные сборки OpenSolaris «Nevada». [101] Поддержка OpenSolaris в настоящее время прекращена, и OpenIndiana является ее ответвлением . [102] [103] Финальная сборка (b134) OpenSolaris была опубликована Oracle (12 ноября 2010 г.) в качестве пути обновления до Solaris 11 Express .

Поддержка операционной системы

Список операционных систем, дистрибутивов и дополнений, поддерживающих ZFS, поддерживаемая ими версия zpool и сборка Solaris, на которой они основаны (если таковая имеется):

Смотрите также

Примечания

  1. ^ Хотя RAID 7 не является стандартным уровнем RAID, он был предложен как всеобъемлющий термин для любой конфигурации RAID с >3 четностями [38]

Ссылки

  1. ^ ab "Что такое ZFS?". Руководство по администрированию Oracle Solaris ZFS . Oracle. Архивировано из оригинала 4 марта 2016 г. Получено 29 декабря 2015 г.
  2. ^ "ZFS on Linux Licensing". GitHub . Получено 17 мая 2020 г.
  3. ^ "The OpenZFS project launches". LWN.net . 17 сентября 2013 г. Архивировано из оригинала 4 октября 2013 г. Получено 1 октября 2013 г.
  4. ^ "OpenZFS Announcement". OpenZFS . 17 сентября 2013 г. Архивировано из оригинала 2 апреля 2018 г. Получено 19 сентября 2013 г.
  5. ^ open-zfs.org /История Архивировано 24 декабря 2013 г. на Wayback Machine «OpenZFS — это действительно открытый преемник проекта ZFS [...] Последствия форка (с 2010 г. по настоящее время)»
  6. Шон Майкл Кернер (18 сентября 2013 г.). «LinuxCon: OpenZFS продвигает Open Source Storage». infostor.com. Архивировано из оригинала 14 марта 2014 г. Получено 9 октября 2013 г.
  7. ^ "The OpenZFS project launches". LWN.net . 17 сентября 2013 г. Архивировано из оригинала 11 октября 2016 г. Получено 1 октября 2013 г.
  8. ^ "OpenZFS – Сообщества, сотрудничающие над кодом и функциями ZFS". freebsdnews.net. 23 сентября 2013 г. Архивировано из оригинала 14 октября 2013 г. Получено 14 марта 2014 г.
  9. ^ "Starline ZFS FAQ". Starline . Получено 20 июля 2024 г. .
  10. ^ ab "19.4. zfs Administration". www.freebsd.org . Архивировано из оригинала 23 февраля 2017 г. . Получено 22 февраля 2017 г. .
  11. ^ Салус, Питер (1994). Четверть века Unix . Addison-Wesley. С. 199–200. ISBN 0-201-54777-5.
  12. ^ "Что такое SunOS и Solaris?". База знаний . Технологические службы Университета Индианы. 20 мая 2013 г. Получено 10 ноября 2014 г.
  13. ^ Браун, Дэвид. «Беседа с Джеффом Бонвиком и Биллом Муром». ACM Queue . Association for Computing Machinery. Архивировано из оригинала 16 июля 2011 г. Получено 17 ноября 2015 г.
  14. ^ "ZFS: последнее слово в файловых системах". Sun Microsystems. 14 сентября 2004 г. Архивировано из оригинала 28 апреля 2006 г. Получено 30 апреля 2006 г.
  15. Matthew Ahrens (1 ноября 2011 г.). "ZFS 10 year anniversary". Архивировано из оригинала 28 июня 2016 г. Получено 24 июля 2012 г.
  16. ^ ab Bonwick, Jeff (31 октября 2005 г.). "ZFS: Последнее слово в файловых системах". blogs.oracle.com . Архивировано из оригинала 19 июня 2013 г. . Получено 22 июня 2013 г. .
  17. ^ "Sun Celebrates Successful One-Year Anniversary of OpenSolaris". Sun Microsystems. 20 июня 2006 г. Архивировано из оригинала 28 сентября 2008 г. Получено 30 апреля 2018 г.
  18. Майкл Сингер (25 января 2005 г.). «Sun Cracks Open Solaris». InternetNews.com . Получено 12 апреля 2010 г. .
  19. ^ "ZFS FAQ на OpenSolaris.org". Sun Microsystems. Архивировано из оригинала 15 мая 2011 г. Получено 18 мая 2011 г. Самый большой префикс СИ, который нам понравился, был 'zetta' ('yotta' не рассматривался)
  20. Джефф Бонвик (3 мая 2006 г.). «Вы говорите zeta, я говорю zetta». Блог Джеффа Бонвика . Архивировано из оригинала 23 февраля 2017 г. Получено 21 апреля 2017 г. Поэтому мы наконец решили вернуть название ZFS, которое ничего не обозначает.
  21. ^ "Oracle и NetApp отклоняют иски ZFS". theregister.co.uk. 9 сентября 2010 г. Архивировано из оригинала 9 сентября 2017 г. Получено 24 декабря 2013 г.
  22. ^ Расширенная файловая система (Ext) имеет структуру метаданных , скопированную из UFS. "Rémy Card (Интервью, апрель 1998 г.)". April Association. 19 апреля 1999 г. Архивировано из оригинала 4 февраля 2012 г. Получено 8 февраля 2012 г.(На французском)
  23. ^ Виджаян Прабхакаран (2006). "IRON FILE SYSTEMS" (PDF) . Доктор философии в области компьютерных наук . Университет Висконсин-Мэдисон. Архивировано (PDF) из оригинала 29 апреля 2011 г. . Получено 9 июня 2012 г. .
  24. ^ "Parity Lost and Parity Regained". Архивировано из оригинала 15 июня 2010 г. Получено 29 ноября 2010 г.
  25. ^ "Анализ повреждения данных в стеке хранения" (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. . Получено 29 ноября 2010 г. .
  26. ^ "Влияние повреждения диска на СУБД с открытым исходным кодом" (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. . Получено 29 ноября 2010 г. .
  27. ^ Кадав, Асим; Раджимвале, Абхишек. "Анализ надежности ZFS" (PDF) . Архивировано (PDF) из оригинала 21 сентября 2013 г. . Получено 19 сентября 2013 г. .
  28. ^ Юпу Чжан; Абишек Раджимвале; Андреа Арпачи-Дюссо ; Ремзи Х. Арпачи-Дюссо (2010). "Сквозная целостность данных для файловых систем: исследование случая ZFS" (PDF) . Конференция USENIX по технологиям хранения файлов . CiteSeerX 10.1.1.154.3979 . S2CID  5722163. Wikidata  Q111972797 . Получено 6 декабря 2010 г. 
  29. ^ Ларабель, Майкл. «Сравнительный анализ ZFS и UFS на FreeBSD против EXT4 и Btrfs на Linux». Phoronix Media 2012. Архивировано из оригинала 29 ноября 2016 г. Получено 21 ноября 2012 г.
  30. ^ Ларабель, Майкл. «Может ли DragonFlyBSD HAMMER конкурировать с Btrfs, ZFS?». Phoronix Media 2012. Архивировано из оригинала 29 ноября 2016 г. Получено 21 ноября 2012 г.
  31. ^ abc Bonwick, Jeff (8 декабря 2005 г.). "ZFS End-to-End Data Integrity". blogs.oracle.com . Архивировано из оригинала 3 апреля 2012 г. . Получено 19 сентября 2013 г. .
  32. Кук, Тим (16 ноября 2009 г.). «Демонстрация самовосстановления ZFS». blogs.oracle.com . Архивировано из оригинала 12 августа 2011 г. . Получено 1 февраля 2015 г. .
  33. Ranch, Richard (4 мая 2007 г.). «ZFS, копии и защита данных». blogs.oracle.com . Архивировано из оригинала 18 августа 2016 г. . Получено 2 февраля 2015 г. .
  34. ^ ab "zpoolconcepts.7 — Документация OpenZFS". openzfs.github.io . Получено 5 апреля 2023 г. .
  35. ^ "ZFS Without Tears: использование ZFS без памяти ECC". www.csparks.com . Декабрь 2015 г. Архивировано из оригинала 13 января 2021 г. Получено 16 июня 2020 г.
  36. ^ wdc.custhelp.com. "Разница между дисками Desktop edition и RAID (Enterprise) edition". Архивировано из оригинала 5 января 2015 г. Получено 8 сентября 2011 г.
  37. ^ abcd Бонвик, Джефф (17 ноября 2005 г.). "RAID-Z". Блог Джеффа Бонвика . Блоги Oracle . Архивировано из оригинала 16 декабря 2014 г. Получено 1 февраля 2015 г.
  38. ^ ab Leventhal, Adam (17 декабря 2009 г.). "Triple-Parity RAID and Beyond". Очередь . 7 (11): 30. doi : 10.1145/1661785.1670144 .
  39. ^ "ZFS Raidz Performance, Capacity and integrity". calomel.org . Архивировано из оригинала 27 ноября 2017 г. . Получено 23 июня 2017 г. .
  40. ^ "Почему RAID 6 перестает работать в 2019 году". ZDNet . 22 февраля 2010 г. Архивировано из оригинала 31 октября 2014 г. Получено 26 октября 2014 г.
  41. ^ "Для ZFS не существует эквивалента утилиты fsck. Эта утилита традиционно служит двум целям: восстановлению файловой системы и проверке файловой системы". "Проверка целостности файловой системы ZFS". Oracle. Архивировано из оригинала 31 января 2013 г. Получено 25 ноября 2012 г.
  42. ^ "ZFS Scrubs". freenas.org. Архивировано из оригинала 27 ноября 2012 г. Получено 25 ноября 2012 г.
  43. ^ "Вы также должны запустить очистку перед заменой устройств или временным уменьшением избыточности пула, чтобы убедиться, что все устройства в настоящее время работоспособны". "Руководство по передовой практике ZFS". solarisinternals.com. Архивировано из оригинала 5 сентября 2015 г. Получено 25 ноября 2012 г.
  44. ^ Джефф Бонвик. "128-битное хранилище: вы под кайфом?". oracle.com . Архивировано из оригинала 29 мая 2015 г. Получено 29 мая 2015 г.
  45. ^ "ZFS: Boils the Ocean, Consumes the Moon (Блог Дэйва Бриллхарта)". Архивировано из оригинала 8 декабря 2015 г. Получено 19 декабря 2015 г.
  46. ^ "Solaris ZFS Administration Guide". Oracle Corporation. Архивировано из оригинала 13 января 2021 г. Получено 11 февраля 2011 г.
  47. ^ "Шифрование файловых систем ZFS". Архивировано из оригинала 23 июня 2011 г. Получено 2 мая 2011 г.
  48. ^ "Having my secured cake and Cloning it too (aka Encryption + Dedup with ZFS)". Архивировано из оригинала 29 мая 2013 г. Получено 9 октября 2012 г.
  49. ^ "ZFS – Debian Wiki". wiki.debian.org . Архивировано из оригинала 8 сентября 2019 г. . Получено 10 декабря 2019 г. .
  50. ^ «Предложение: Рассмотреть возможность добавления предупреждений против использования собственного шифрования zfs вместе с send/recv в производстве». Github . Github . Получено 15 августа 2024 г. .
  51. ^ "PSA: ZFS имеет ошибку повреждения данных при использовании собственного шифрования и отправки/приема". Reddit . Reddit . Получено 15 августа 2024 г. .
  52. ^ "Фрагментация ZFS: долгосрочные решения". Github . Github . Получено 15 августа 2024 г. .
  53. ^ «Каковы наилучшие практики для предотвращения чрезмерной фрагментации ZFS». Lawrence Systems . Lawrence Systems . Получено 15 августа 2024 г. .
  54. ^ "Solaris ZFS позволяет использовать гибридные пулы хранения данных — разрушает экономические и эксплуатационные барьеры" (PDF) . Sun.com. 7 сентября 2010 г. Архивировано (PDF) из оригинала 17 октября 2011 г. . Получено 4 ноября 2011 г. .
  55. ^ Грегг, Брендан. "ZFS L2ARC". Блог Брендана . Dtrace.org. Архивировано из оригинала 6 ноября 2011 г. Получено 5 октября 2012 г.
  56. ^ Грегг, Брендан (8 октября 2009 г.). «Hybrid Storage Pool: Top Speeds». Блог Брендана . Dtrace.org. Архивировано из оригинала 5 апреля 2016 г. Получено 15 августа 2017 г.
  57. ^ "Настройка производительности Solaris ZFS: синхронная запись и ZIL". Constantin.glez.de. 20 июля 2010 г. Архивировано из оригинала 23 июня 2012 г. Получено 5 октября 2012 г.
  58. ^ abc "Release zfs-0.8.0". GitHub . OpenZFS. 23 мая 2019 г. Получено 3 июля 2021 г.
  59. ^ "ZFS On-Disk Specification" (PDF) . Sun Microsystems, Inc. 2006. Архивировано из оригинала (PDF) 30 декабря 2008 г.См. раздел 2.4.
  60. ^ "RAIDZ — Документация OpenZFS". openzfs.github.io . Получено 9 февраля 2023 г. .
  61. Эрик Спроул (21 мая 2009 г.). «ZFS Nuts and Bolts». slideshare.net. стр. 30–31. Архивировано из оригинала 22 июня 2014 г. Получено 8 июня 2014 г.
  62. ^ "ZFS Deduplication". blogs.oracle.com . Архивировано из оригинала 24 декабря 2019 г. Получено 25 ноября 2019 г.
  63. ^ Гэри Симс (4 января 2012 г.). «Создание сетевого хранилища на базе ZFS с использованием FreeNAS 8». Обучение TrainSignal . TrainSignal, Inc. Архивировано из оригинала (Блог) 7 мая 2012 г. Получено 9 июня 2012 г.
  64. ^ Рэй Ван Долсон (май 2011 г.). "[zfs-discuss] Резюме: Требования к памяти для дедупликации". Список рассылки zfs-discuss. Архивировано из оригинала 25 апреля 2012 г.
  65. ^ "ZFSTuningGuide". Архивировано из оригинала 16 января 2012 г. Получено 3 января 2012 г.
  66. ^ Крис Меллор (12 октября 2012 г.). "GreenBytes демонстрирует полнофункциональный клон VDI pumper". The Register . Архивировано из оригинала 24 марта 2013 г. Получено 29 августа 2013 г.
  67. Крис Меллор (1 июня 2012 г.). «Новичок достает коробку, планирует продавать ее по дешевке всем желающим». The Register . Архивировано из оригинала 12 августа 2013 г. Получено 29 августа 2013 г.
  68. ^ Крис Меллор (11 декабря 2014 г.). «Дедупирование, дедупирование... дедупирование, дедупирование, дедупирование: Oracle полирует алмаз ZFS». The Register . Архивировано из оригинала 7 июля 2017 г. . Получено 17 декабря 2014 г. .
  69. ^ "Контрольные суммы и их использование в ZFS". github.com . 2 сентября 2018 г. Архивировано из оригинала 19 июля 2019 г. Получено 11 июля 2019 г.
  70. ^ "Solaris ZFS Administration Guide". Глава 6 Управление файловыми системами ZFS . Архивировано из оригинала 5 февраля 2011 г. Получено 17 марта 2009 г.
  71. ^ "Smokin' Mirrors". blogs.oracle.com . 2 мая 2006 г. Архивировано из оригинала 16 декабря 2011 г. Получено 13 февраля 2012 г.
  72. ^ "ZFS Block Allocation". Веблог Джеффа Бонвика . 4 ноября 2006 г. Архивировано из оригинала 2 ноября 2012 г. Получено 23 февраля 2007 г.
  73. ^ "Ditto Blocks — The Amazing Tape Repellent". Flippin' off bits Weblog . 12 мая 2006 г. Архивировано из оригинала 26 мая 2013 г. Получено 1 марта 2007 г.
  74. ^ "Добавление новых дисков и аналогичное поведение блока". Архивировано из оригинала 23 августа 2011 г. Получено 19 октября 2009 г.
  75. ^ "OpenSolaris.org". Sun Microsystems. Архивировано из оригинала 8 мая 2009 г. Получено 22 мая 2009 г.
  76. ^ "Что нового в Solaris 11 Express 2010.11" (PDF) . Oracle. Архивировано (PDF) из оригинала 16 ноября 2010 г. . Получено 17 ноября 2010 г. .
  77. ^ "10. Совместное использование — Руководство пользователя FreeNAS 9.3 Содержание". doc.freenas.org . Архивировано из оригинала 7 января 2017 г. . Получено 23 февраля 2017 г. .
  78. ^ "Ошибка ID 4852783: уменьшить емкость пула". OpenSolaris Project. Архивировано из оригинала 29 июня 2009 г. Получено 28 марта 2009 г.
  79. Геббельс, Марио (19 апреля 2007 г.). «Окончательное удаление vdev из пула». zfs-discuss (список рассылки).[ постоянная мертвая ссылка ] ссылка на архив Архивировано 13 января 2021 г. на Wayback Machine
  80. ^ Крис Сибенманн Информация о будущем удалении vdev Архивировано 11 августа 2016 г., на Wayback Machine , Univ Toronto, блог, цитата: неофициальное объявление в Twitter Алекса Риса Архивировано 11 августа 2016 г., на Wayback Machine
  81. ^ "Data Management Features – What's New in Oracle® Solaris 11.4". Архивировано из оригинала 24 сентября 2019 г. Получено 9 октября 2019 г.
  82. ^ "Expand-O-Matic RAID Z". Адам Левенталь. 7 апреля 2008 г. Архивировано из оригинала 28 декабря 2011 г. Получено 16 апреля 2012 г.
  83. ^ "ZFS Toy". SourceForge.net . Получено 12 апреля 2022 г. .
  84. ^ "zpoolconcepts(7)". Документация OpenZFS . OpenZFS. 2 июня 2021 г. Получено 12 апреля 2021 г. Виртуальные устройства не могут быть вложенными, поэтому виртуальное устройство mirror или raidz может содержать только файлы или диски. Зеркала зеркал (или другие комбинации) не допускаются.
  85. ^ "zpool(1M)". Download.oracle.com. 11 июня 2010 г. Архивировано из оригинала 13 января 2021 г. Получено 4 ноября 2011 г.
  86. ^ "Turbocharging ZFS Data Recovery". Архивировано из оригинала 29 ноября 2018 г. Получено 29 ноября 2018 г.
  87. ^ "ZFS и OpenZFS". iXSystems . Получено 18 мая 2020 г. .
  88. ^ "Sun выводит на рынок собственные устройства для хранения данных". techworld.com.au. 11 ноября 2008 г. Архивировано из оригинала 13 ноября 2013 г. Получено 13 ноября 2013 г.
  89. Крис Меллор (2 октября 2013 г.). «Oracle muscles way into seat on the top of the benchmark with hefty ZFS filer». theregister.co.uk. Архивировано из оригинала 7 июля 2017 г. Получено 7 июля 2014 г.
  90. ^ "Unified ZFS Storage Appliance built in Silicon Valley by iXsystem". ixsystems.com. Архивировано из оригинала 3 июля 2014 г. Получено 7 июля 2014 г.
  91. ^ ab "TrueNAS 12 и TrueNAS SCALE официально здесь!". ixsystems.com . Получено 2 января 2021 г. .
  92. ^ "ReadyDATA 516 – Unified Network Storage" (PDF) . netgear.com. Архивировано (PDF) из оригинала 15 июля 2014 г. Получено 7 июля 2014 г.
  93. Джим Солтер (17 декабря 2015 г.). «rsync.net: репликация ZFS в облако наконец-то здесь — и она быстрая». arstechnica.com. Архивировано из оригинала 22 августа 2017 г. Получено 21 августа 2017 г.
  94. ^ rsync.net, Inc. "Облачное хранилище с отправкой и получением ZFS через SSH". rsync.net. Архивировано из оригинала 21 июля 2017 г. Получено 21 августа 2017 г.
  95. Steven Stallion / Oracle (13 августа 2010 г.). «Обновление SXCE». Iconoclastic Tendencies. Архивировано из оригинала 9 ноября 2020 г. Получено 30 апреля 2018 г.
  96. ^ Аласдер Ламсден. «OpenSolaris отменен, будет заменен на Solaris 11 Express». osol-discuss (список рассылки). Архивировано из оригинала 16 августа 2010 г. Получено 24 ноября 2014 г.
  97. ^ Solaris все еще как-то открыт, но дистрибутив OpenSolaris мертв Архивировано 5 сентября 2017 г. на Wayback Machine на Ars Technica Райаном Полом (16 августа 2010 г.)
  98. ^ Гарретт Д'Амор (3 августа 2010 г.). "Illumos - Hope and Light Springs Anew - Presented by Garrett D'Amore" (PDF) . illumos.org . Получено 3 августа 2010 г. .
  99. ^ "Whither OpenSolaris? Illumos принимает мантию". Архивировано из оригинала 26 сентября 2015 г.
  100. Гарретт Д'Амор (13 августа 2010 г.). «The Hand May Be Forced» . Получено 14 ноября 2013 г. .
  101. ^ abc "В то время как Sun Microsystems контролировала, раз в две недели выпускались снимки Solaris Nevada (кодовое название ОС Solaris следующего поколения, которая в конечном итоге придет на смену Solaris 10), и этот новый код затем был включен в новые предварительные снимки OpenSolaris, доступные на Genunix.org. Стабильные выпуски OpenSolaris основаны на [ sic ] этих сборках Nevada". Ларабель, Майкл. "Похоже, Oracle будет стоять за OpenSolaris". Phoronix Media. Архивировано из оригинала 29 ноября 2016 г. Получено 21 ноября 2012 г.
  102. Любунчич, Игорь (23 мая 2011 г.). «OpenIndiana — надежда еще есть». DistroWatch . Архивировано из оригинала 27 октября 2012 г. Получено 21 ноября 2012 г.
  103. ^ «Добро пожаловать в Project OpenIndiana!». Project OpenIndiana. 10 сентября 2010 г. Архивировано из оригинала 27 ноября 2012 г. Получено 14 сентября 2010 г.
  104. ^ "ZFS Pool Versions". Oracle Corporation. 2022. Архивировано из оригинала 21 декабря 2022 г. Получено 1 января 2023 г.

Библиография

Внешние ссылки