stringtranslate.com

ZFS

ZFS (ранее: Zettabyte File System ) — файловая система с возможностями управления томами . Он начался как часть операционной системы Sun Microsystems Solaris в 2001 году. Большие части Solaris, включая ZFS, были опубликованы под лицензией с открытым исходным кодом как OpenSolaris в течение примерно 5 лет, начиная с 2005 года, а затем были помещены под лицензию с закрытым исходным кодом, когда корпорация Oracle приобрела 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-карты ), включая их организацию в логические блочные устройства , как их видит операционная система (часто с участием диспетчера томов). , RAID-контроллер , менеджер массива или подходящий драйвер устройства ); и управление данными и файлами, которые хранятся на этих логических блочных устройствах ( файловая система или другое хранилище данных).

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

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

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

История

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

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

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

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

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

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

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

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

Функции

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

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

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

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

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

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

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

RAID («РАИД-З»)

Чтобы 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. [35]

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

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

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

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

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

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

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

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

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

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

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

Емкость

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

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

Шифрование

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Специальный класс ВДЕВ

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

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

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

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

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

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

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

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

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

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

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

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

Легкое создание файловой системы

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

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

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

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

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

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

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

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

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

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

Ограничения

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

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

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

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

OpenZFS и ZFS

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

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

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

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

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

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

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

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

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

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

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

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

Примечания

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

Рекомендации

  1. ^ ab «Что такое ZFS?». Руководство по администрированию файловой системы Oracle Solaris ZFS . Оракул. Архивировано из оригинала 4 марта 2016 года . Проверено 29 декабря 2015 г.
  2. ^ «ZFS при лицензировании Linux». Гитхаб . Проверено 17 мая 2020 г.
  3. ^ «Запуск проекта OpenZFS» . LWN.net . 17 сентября 2013. Архивировано из оригинала 4 октября 2013 года . Проверено 1 октября 2013 г.
  4. ^ «Объявление OpenZFS» . ОпенЗФС . 17 сентября 2013 года. Архивировано из оригинала 2 апреля 2018 года . Проверено 19 сентября 2013 г.
  5. ^ open-zfs.org / History. Архивировано 24 декабря 2013 г., на Wayback Machine. «OpenZFS является преемником проекта ZFS с открытым исходным кодом [...] Эффекты разветвления (с 2010 г. по настоящее время)»
  6. Шон Майкл Кернер (18 сентября 2013 г.). «LinuxCon: OpenZFS продвигает вперед хранилище с открытым исходным кодом». infostor.com. Архивировано из оригинала 14 марта 2014 года . Проверено 9 октября 2013 г.
  7. ^ «Запуск проекта OpenZFS» . LWN.net . 17 сентября 2013. Архивировано из оригинала 11 октября 2016 года . Проверено 1 октября 2013 г.
  8. ^ «OpenZFS - Сообщества, сотрудничающие над кодом и функциями ZFS» . freebsdnews.net. 23 сентября 2013. Архивировано из оригинала 14 октября 2013 года . Проверено 14 марта 2014 г.
  9. ^ ab «19.4. Администрирование zfs». www.freebsd.org . Архивировано из оригинала 23 февраля 2017 года . Проверено 22 февраля 2017 г.
  10. ^ Салус, Питер (1994). Четверть века Unix . Аддисон-Уэсли. стр. 199–200. ISBN 0-201-54777-5.
  11. ^ «Что такое SunOS и Solaris?». База знаний . Технологические службы Университета Индианы. 20 мая 2013 года . Проверено 10 ноября 2014 г.
  12. ^ Браун, Дэвид. «Разговор с Джеффом Бонвиком и Биллом Муром». Очередь АКМ . Ассоциация вычислительной техники. Архивировано из оригинала 16 июля 2011 года . Проверено 17 ноября 2015 г.
  13. ^ «ZFS: последнее слово в файловых системах» . Сан Микросистемс. 14 сентября 2004 года. Архивировано из оригинала 28 апреля 2006 года . Проверено 30 апреля 2006 г.
  14. Мэтью Аренс (1 ноября 2011 г.). «10-летний юбилей ZFS». Архивировано из оригинала 28 июня 2016 года . Проверено 24 июля 2012 г.
  15. ^ Аб Бонвик, Джефф (31 октября 2005 г.). «ZFS: последнее слово в файловых системах». blogs.oracle.com . Архивировано из оригинала 19 июня 2013 года . Проверено 22 июня 2013 г.
  16. ^ «Sun празднует успешную годовщину OpenSolaris» . Сан Микросистемс. 20 июня 2006 года. Архивировано из оригинала 28 сентября 2008 года . Проверено 30 апреля 2018 г.
  17. Майкл Сингер (25 января 2005 г.). «Солнце взломало Солярис». ИнтернетНьюс.com . Проверено 12 апреля 2010 г.
  18. ^ «Часто задаваемые вопросы по ZFS на OpenSolaris.org» . Сан Микросистемс. Архивировано из оригинала 15 мая 2011 года . Проверено 18 мая 2011 г. Самая большая приставка SI, которая нам понравилась, была «зетта» (о «йотте» не могло быть и речи).
  19. ^ Джефф Бонвик (3 мая 2006 г.). «Вы говорите зета, я говорю зетта». Блог Джеффа Бонвика . Архивировано из оригинала 23 февраля 2017 года . Проверено 21 апреля 2017 г. Поэтому мы, наконец, решили вернуть название ZFS, которое ничего не означает.
  20. ^ «Oracle и NetApp отклоняют иски ZFS» . theregister.co.uk. 9 сентября 2010 года. Архивировано из оригинала 9 сентября 2017 года . Проверено 24 декабря 2013 г.
  21. ^ Расширенная файловая система (Ext) имеет структуру метаданных , скопированную из UFS.«Реми Кард (интервью, апрель 1998 г.)». Апрельская ассоциация. 19 апреля 1999 года. Архивировано из оригинала 4 февраля 2012 года . Проверено 8 февраля 2012 г.(На французском)
  22. ^ Виджаян Прабхакаран (2006). «ЖЕЛЕЗНЫЕ ФАЙЛОВЫЕ СИСТЕМЫ» (PDF) . Доктор философии в области компьютерных наук . Университет Висконсин-Мэдисон. Архивировано (PDF) из оригинала 29 апреля 2011 г. Проверено 9 июня 2012 г.
  23. ^ «Паритет потерян и паритет восстановлен». Архивировано из оригинала 15 июня 2010 года . Проверено 29 ноября 2010 г.
  24. ^ «Анализ повреждения данных в стеке хранилища» (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. Проверено 29 ноября 2010 г.
  25. ^ «Влияние повреждения диска на СУБД с открытым исходным кодом» (PDF) . Архивировано (PDF) из оригинала 15 июня 2010 г. Проверено 29 ноября 2010 г.
  26. ^ Кадав, Асим; Раджимвале, Абхишек. «Анализ надежности ZFS» (PDF) . Архивировано (PDF) из оригинала 21 сентября 2013 г. Проверено 19 сентября 2013 г.
  27. ^ Юпу Чжан; Абхишек Раджимвале; Андреа Арпачи-Дюссо ; Ремзи Х. Арпачи-Дюссо (2010). «Сквозная целостность данных для файловых систем: пример ZFS» (PDF) . Конференция USENIX по файловым технологиям и технологиям хранения данных . CiteSeerX 10.1.1.154.3979 . S2CID  5722163. Викиданные  Q111972797 . Проверено 6 декабря 2010 г. 
  28. ^ Ларабель, Майкл. «Сравнение ZFS и UFS во FreeBSD по сравнению с EXT4 и Btrfs в Linux». Phoronix Media 2012. Архивировано из оригинала 29 ноября 2016 года . Проверено 21 ноября 2012 г.
  29. ^ Ларабель, Майкл. «Может ли HAMMER DragonFlyBSD конкурировать с Btrfs, ZFS?». Phoronix Media 2012. Архивировано из оригинала 29 ноября 2016 года . Проверено 21 ноября 2012 г.
  30. ^ abc Бонвик, Джефф (8 декабря 2005 г.). «Сквозная целостность данных ZFS». blogs.oracle.com . Архивировано из оригинала 3 апреля 2012 года . Проверено 19 сентября 2013 г.
  31. Кук, Тим (16 ноября 2009 г.). «Демонстрация самовосстановления ZFS». blogs.oracle.com . Архивировано из оригинала 12 августа 2011 года . Проверено 1 февраля 2015 г.
  32. Ранчо, Ричард (4 мая 2007 г.). «ZFS, копирование и защита данных». blogs.oracle.com . Архивировано из оригинала 18 августа 2016 года . Проверено 2 февраля 2015 г.
  33. ^ ab "zpoolconcepts.7 — документация OpenZFS". openzfs.github.io . Проверено 5 апреля 2023 г.
  34. ^ «ZFS без слез: использование ZFS без памяти ECC» . www.csparks.com . Декабрь 2015. Архивировано из оригинала 13 января 2021 года . Проверено 16 июня 2020 г.
  35. ^ wdc.custhelp.com. «Разница между дисками версии Desktop и RAID (Enterprise)». Архивировано из оригинала 5 января 2015 года . Проверено 8 сентября 2011 г.
  36. ^ abcd Бонвик, Джефф (17 ноября 2005 г.). «РЕЙД-З». Блог Джеффа Бонвика . Блоги Oracle . Архивировано из оригинала 16 декабря 2014 года . Проверено 1 февраля 2015 г.
  37. ^ аб Левенталь, Адам (17 декабря 2009 г.). «RAID с тройной четностью и не только». Очередь . 7 (11): 30. дои : 10.1145/1661785.1670144 .
  38. ^ «Производительность, емкость и целостность ZFS Raidz» . www.calomel.org . Архивировано из оригинала 27 ноября 2017 года . Проверено 23 июня 2017 г.
  39. ^ «Почему RAID 6 перестает работать в 2019 году» . ЗДНет . 22 февраля 2010. Архивировано из оригинала 31 октября 2014 года . Проверено 26 октября 2014 г.
  40. ^ «Для ZFS не существует эквивалента утилиты fsck. Эта утилита традиционно служила двум целям: восстановлению файловой системы и проверке файловой системы». «Проверка целостности файловой системы ZFS». Оракул. Архивировано из оригинала 31 января 2013 года . Проверено 25 ноября 2012 г.
  41. ^ "Скрабы ZFS" . freenas.org. Архивировано из оригинала 27 ноября 2012 года . Проверено 25 ноября 2012 г.
  42. ^ «Вам также следует запустить очистку перед заменой устройств или временным сокращением избыточности пула, чтобы убедиться, что все устройства в данный момент работают». «Руководство по передовому опыту ZFS». Solarisinternals.com. Архивировано из оригинала 5 сентября 2015 года . Проверено 25 ноября 2012 г.
  43. ^ Джефф Бонвик. «128-битная память: ты под кайфом?». oracle.com . Архивировано из оригинала 29 мая 2015 года . Проверено 29 мая 2015 г.
  44. ^ «ZFS: кипятит океан, поглощает луну (блог Дэйва Бриллхарта)» . Архивировано из оригинала 8 декабря 2015 года . Проверено 19 декабря 2015 г.
  45. ^ «Руководство по администрированию Solaris ZFS» . Корпорация Оракл. Архивировано из оригинала 13 января 2021 года . Проверено 11 февраля 2011 г.
  46. ^ «Шифрование файловых систем ZFS». Архивировано из оригинала 23 июня 2011 года . Проверено 2 мая 2011 г.
  47. ^ «Защищенный торт и его клонирование (также известное как шифрование + дедупликация с ZFS)» . Архивировано из оригинала 29 мая 2013 года . Проверено 9 октября 2012 г.
  48. ^ "ZFS - Debian Wiki" . wiki.debian.org . Архивировано из оригинала 8 сентября 2019 года . Проверено 10 декабря 2019 г.
  49. ^ «Solaris ZFS обеспечивает гибридные пулы хранения данных — разрушает экономические барьеры и барьеры производительности» (PDF) . Сан.ком. 7 сентября 2010 г. Архивировано (PDF) из оригинала 17 октября 2011 г. . Проверено 4 ноября 2011 г.
  50. ^ Грегг, Брендан. «ЗФС Л2АРК». Блог Брендана . Dtrace.org. Архивировано из оригинала 6 ноября 2011 года . Проверено 5 октября 2012 г.
  51. Грегг, Брендан (8 октября 2009 г.). «Гибридный пул хранения данных: максимальные скорости». Блог Брендана . Dtrace.org. Архивировано из оригинала 5 апреля 2016 года . Проверено 15 августа 2017 г.
  52. ^ «Настройка производительности Solaris ZFS: синхронная запись и ZIL» . Константин.glez.de. 20 июля 2010. Архивировано из оригинала 23 июня 2012 года . Проверено 5 октября 2012 г.
  53. ^ abc «Выпуск zfs-0.8.0». Гитхаб . ОпенЗФС. 23 мая 2019 года . Проверено 3 июля 2021 г.
  54. ^ «Спецификация ZFS на диске» (PDF) . Sun Microsystems, Inc., 2006. Архивировано из оригинала (PDF) 30 декабря 2008 года.См. раздел 2.4.
  55. ^ «RAIDZ — документация OpenZFS» . openzfs.github.io . Проверено 9 февраля 2023 г.
  56. Эрик Спроул (21 мая 2009 г.). «Гайки и болты ZFS». SlideShare.net. стр. 30–31. Архивировано из оригинала 22 июня 2014 года . Проверено 8 июня 2014 г.
  57. ^ «Дедупликация ZFS». blogs.oracle.com . Архивировано из оригинала 24 декабря 2019 года . Проверено 25 ноября 2019 г.
  58. Гэри Симс (4 января 2012 г.). «Создание сетевого хранилища на базе ZFS с использованием FreeNAS 8». Обучение TrainSignal . TrainSignal, Inc. Архивировано из оригинала (блога) 7 мая 2012 года . Проверено 9 июня 2012 г.
  59. ^ Рэй Ван Долсон (май 2011 г.). «[zfs-discuss] Резюме: Требования к памяти для дедупликации». список рассылки zfs-discuss. Архивировано из оригинала 25 апреля 2012 года.
  60. ^ "ZFSTuningGuide" . Архивировано из оригинала 16 января 2012 года . Проверено 3 января 2012 г.
  61. Крис Меллор (12 октября 2012 г.). «GreenBytes демонстрирует полноценный клон VDI Pumper» . Регистр . Архивировано из оригинала 24 марта 2013 года . Проверено 29 августа 2013 г.
  62. Крис Меллор (1 июня 2012 г.). «Новичок достает свою шкатулку, планирует дешево продать ее всем желающим». Регистр . Архивировано из оригинала 12 августа 2013 года . Проверено 29 августа 2013 г.
  63. Крис Меллор (11 декабря 2014 г.). «Дедуп, дедуп... дедуп, дедуп, дедуп: Oracle полирует бриллиант ZFS». Регистр . Архивировано из оригинала 7 июля 2017 года . Проверено 17 декабря 2014 г.
  64. ^ «Контрольные суммы и их использование в ZFS». github.com . 2 сентября 2018 года. Архивировано из оригинала 19 июля 2019 года . Проверено 11 июля 2019 г.
  65. ^ «Руководство по администрированию Solaris ZFS» . Глава 6 Управление файловыми системами ZFS . Архивировано из оригинала 5 февраля 2011 года . Проверено 17 марта 2009 г.
  66. ^ "Дымящиеся зеркала". blogs.oracle.com . 2 мая 2006. Архивировано из оригинала 16 декабря 2011 года . Проверено 13 февраля 2012 г.
  67. ^ «Распределение блоков ZFS» . Блог Джеффа Бонвика . 4 ноября 2006 г. Архивировано из оригинала 2 ноября 2012 г. Проверено 23 февраля 2007 г.
  68. ^ «То же блоки — удивительное средство от ленты» . Блог . 12 мая 2006 года. Архивировано из оригинала 26 мая 2013 года . Проверено 1 марта 2007 г.
  69. ^ «Добавление новых дисков и то же поведение блоков» . Архивировано из оригинала 23 августа 2011 года . Проверено 19 октября 2009 г.
  70. ^ "OpenSolaris.org". Сан Микросистемс. Архивировано из оригинала 8 мая 2009 года . Проверено 22 мая 2009 г.
  71. ^ «Что нового в Solaris 11 Express 2010.11» (PDF) . Оракул. Архивировано (PDF) из оригинала 16 ноября 2010 г. Проверено 17 ноября 2010 г.
  72. ^ «10. Совместное использование — Руководство пользователя FreeNAS 9.3 Оглавление» . doc.freenas.org . Архивировано из оригинала 7 января 2017 года . Проверено 23 февраля 2017 г.
  73. ^ «Идентификатор ошибки 4852783: уменьшить емкость пула» . Проект OpenSolaris. Архивировано из оригинала 29 июня 2009 года . Проверено 28 марта 2009 г.
  74. Геббельс, Марио (19 апреля 2007 г.). «Навсегда удаление vdevs из пула». zfs-discuss (список рассылки).[ постоянная мертвая ссылка ] архивная ссылка. Архивировано 13 января 2021 г. в Wayback Machine.
  75. ^ Крис Зибенманн Информация о будущем удалении vdev. Архивировано 11 августа 2016 г. на Wayback Machine , Univ Toronto, блог, цитата: неофициальное объявление в Твиттере Алекса Риса. Архивировано 11 августа 2016 г. на Wayback Machine.
  76. ^ «Функции управления данными – что нового в Oracle® Solaris 11.4» . Архивировано из оригинала 24 сентября 2019 года . Проверено 9 октября 2019 г.
  77. ^ "Expand-O-Matic RAID Z" . Адам Левенталь. 7 апреля 2008 года. Архивировано из оригинала 28 декабря 2011 года . Проверено 16 апреля 2012 г.
  78. ^ "Игрушка ZFS" . SourceForge.net . Проверено 12 апреля 2022 г.
  79. ^ "zpoolconcepts(7)" . Документация OpenZFS . ОпенЗФС. 2 июня 2021 г. . Проверено 12 апреля 2021 г. Виртуальные устройства не могут быть вложенными, поэтому виртуальное устройство зеркало или RAIDZ может содержать только файлы или диски. Зеркало зеркал (или другие комбинации) не допускаются.
  80. ^ "zpool(1M)" . Скачать.oracle.com. 11 июня 2010 года. Архивировано из оригинала 13 января 2021 года . Проверено 4 ноября 2011 г.
  81. ^ «Восстановление данных ZFS с турбонаддувом» . Архивировано из оригинала 29 ноября 2018 года . Проверено 29 ноября 2018 г.
  82. ^ «ZFS и OpenZFS». iXSystems . Проверено 18 мая 2020 г.
  83. ^ «Sun выпускает собственные устройства хранения данных» . techworld.com.au. 11 ноября 2008 года. Архивировано из оригинала 13 ноября 2013 года . Проверено 13 ноября 2013 г.
  84. Крис Меллор (2 октября 2013 г.). «Oracle уверенно занимает лидирующие позиции благодаря мощному фильтру ZFS». theregister.co.uk. Архивировано из оригинала 7 июля 2017 года . Проверено 7 июля 2014 г.
  85. ^ «Унифицированное устройство хранения данных ZFS, созданное в Кремниевой долине компанией iXsystem» . ixsystems.com. Архивировано из оригинала 3 июля 2014 года . Проверено 7 июля 2014 г.
  86. ^ ab «TrueNAS 12 и TrueNAS SCALE официально представлены!». ixsystems.com . Проверено 2 января 2021 г.
  87. ^ «ReadyDATA 516 - Единое сетевое хранилище» (PDF) . netgear.com. Архивировано (PDF) из оригинала 15 июля 2014 г. Проверено 7 июля 2014 г.
  88. Джим Солтер (17 декабря 2015 г.). «rsync.net: Репликация ZFS в облако наконец-то появилась — и она быстрая». arstechnica.com. Архивировано из оригинала 22 августа 2017 года . Проверено 21 августа 2017 г.
  89. ^ rsync.net, Inc. «Облачное хранилище с отправкой и получением ZFS через SSH». rsync.net. Архивировано из оригинала 21 июля 2017 года . Проверено 21 августа 2017 г.
  90. ^ Стивен Сталлион / Oracle (13 августа 2010 г.). «Обновление SXCE». Иконоборческие тенденции. Архивировано из оригинала 9 ноября 2020 года . Проверено 30 апреля 2018 г.
  91. ^ Аласдер Ламсден. «OpenSolaris отменен и будет заменен Solaris 11 Express». osol-discuss (список рассылки). Архивировано из оригинала 16 августа 2010 года . Проверено 24 ноября 2014 г.
  92. ^ Solaris все еще открыт, но дистрибутив OpenSolaris мертв. Архивировано 5 сентября 2017 г. в Wayback Machine на Ars Technica Райаном Полом (16 августа 2010 г.).
  93. Гаррет Д'Амор (3 августа 2010 г.). «Иллюмос - Надежда и свет рождаются заново - Представлено Гарретом Д'Амором» (PDF) . иллюмос.орг . Проверено 3 августа 2010 г.
  94. ^ «Куда OpenSolaris? Иллюмос принимает мантию» . Архивировано из оригинала 26 сентября 2015 года.
  95. Гаррет Д'Амор (13 августа 2010 г.). «Рука может быть вынуждена» . Проверено 14 ноября 2013 г.
  96. ^ abc «Находясь под контролем Sun Microsystems, раз в две недели создавались снимки Solaris Nevada (кодовое название ОС Solaris следующего поколения, которая в конечном итоге придет на смену Solaris 10), и этот новый код затем был добавлен в новые снимки предварительного просмотра OpenSolaris, доступные на Genunix. .org. Стабильные выпуски OpenSolaris основаны на [ sic ] этих сборках в Неваде».Ларабель, Майкл. «Похоже, что Oracle поддержит OpenSolaris». Фороникс Медиа. Архивировано из оригинала 29 ноября 2016 года . Проверено 21 ноября 2012 г.
  97. Любунчич, Игорь (23 мая 2011 г.). «OpenIndiana — надежда еще есть». ДистроВотч . Архивировано из оригинала 27 октября 2012 года . Проверено 21 ноября 2012 г.
  98. ^ «Добро пожаловать в проект OpenIndiana!». Проект ОпенИндиана. 10 сентября 2010 года. Архивировано из оригинала 27 ноября 2012 года . Проверено 14 сентября 2010 г.
  99. ^ «Версии пула ZFS» . Корпорация Оракл. 2022. Архивировано из оригинала 21 декабря 2022 года . Проверено 1 января 2023 г.

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

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