Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

Sun Microsystems (до 2010 г.) [ править ]

В 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 была включена в основное обновление 6/06 для Solaris 10 . [16]

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

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

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

Позднее развитие [ править ]

Портированные версии 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 или более), что означает, что данные будут храниться на диске дважды (или трижды), фактически уменьшаясь вдвое (или, дляcopy = 3 , уменьшая до одной трети) емкость диска. [32] Кроме того, некоторые виды данных, используемые ZFS для управления пулом, по умолчанию сохраняются несколько раз в целях безопасности, даже при настройке по умолчанию copy = 1.

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

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

RAID («RAID-Z»)[ редактировать ]

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

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

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

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

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

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

Подход ZFS: RAID-Z и зеркалирование [ править ]

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

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

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

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

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

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

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

Resilvering и scrub (синхронизация массивов и проверка целостности) [ править ]

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

  • fsck должен запускаться в автономной файловой системе, что означает, что файловая система должна быть размонтирована и не может использоваться во время ремонта, в то время как scrub предназначен для использования в смонтированной, работающей файловой системе и не требует, чтобы файловая система ZFS была отключена.
  • fsck обычно проверяет только метаданные (например, журнал журнала), но никогда не проверяет сами данные. Это означает, что после выполнения команды fsck данные могут по-прежнему не соответствовать сохраненным исходным данным.
  • fsck не всегда может проверять и восстанавливать данные, когда контрольные суммы хранятся вместе с данными (часто бывает во многих файловых системах), потому что контрольные суммы также могут быть повреждены или нечитаемы. ZFS всегда хранит контрольные суммы отдельно от данных, которые они проверяют, повышая надежность и возможность очистки тома. ZFS также хранит несколько копий данных - метаданные, в частности, могут иметь до 4 или 6 копий (несколько копий на диск и несколько зеркал дисков на том), что значительно улучшает способность scrub обнаруживать и устранять серьезные повреждения тома. по сравнению с fsck.
  • scrub проверяет все, включая метаданные и данные. Эффект можно увидеть, сравнив время fsck и время очистки - иногда fsck на большом RAID завершается за несколько минут, что означает, что проверялись только метаданные. Обход всех метаданных и данных на большом массиве RAID занимает много часов, что и делает scrub.

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

Емкость [ править ]

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

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

  • 16 эксбибайт (2 64 байта): максимальный размер одного файла
  • 2 48 : количество записей в любом отдельном каталоге [44]
  • 16 эксбибайт: максимальный размер любого атрибута
  • 2 56 : количество атрибутов файла (фактически ограничено до 2 48 для количества файлов в каталоге)
  • 256 квадриллионов зебибайт (2 128 байт): максимальный размер любого zpool
  • 2 64 : количество устройств в любом zpool
  • 2 64 : количество файловых систем в zpool
  • 2 64 : количество пулов в системе

Шифрование [ править ]

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

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

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

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

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

Другие особенности [ править ]

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

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

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

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

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

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

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

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

Специальный класс VDEV [ править ]

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

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

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

Снимки и клоны [ править ]

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

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

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

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

Динамическое чередование [ править ]

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

Изменяемые размеры блоков [ править ]

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

Создание облегченной файловой системы [ править ]

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

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

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

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

Дедупликация [ править ]

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

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

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

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

Дополнительные возможности [ править ]

  • Явный приоритет ввода-вывода с графиком крайнего срока. [ необходима цитата ]
  • Заявлены глобально оптимальные сортировка и агрегация ввода-вывода. [ необходима цитата ]
  • Несколько независимых потоков предварительной выборки с автоматическим определением длины и шага. [ необходима цитата ]
  • Параллельные операции с каталогами с постоянным временем. [ необходима цитата ]
  • Сквозное контрольное суммирование с использованием своего рода « поля целостности данных », позволяющее обнаруживать повреждение данных (и восстанавливать их, если у вас есть избыточность в пуле). Можно использовать выбор из 3 хешей, оптимизированных для скорости (fletcher), стандартизации и безопасности ( SHA256 ) и хэшей с солью ( Skein ). [61]
  • Прозрачное сжатие файловой системы. Поддерживает LZJB , gzip [62] и LZ4 .
  • Интеллектуальная очистка и восстановление серебристого цвета (повторная синхронизация). [63]
  • Распределение нагрузки и использования пространства между дисками в пуле. [64]
  • Блоки Ditto: настраиваемая репликация данных для каждой файловой системы, с нулевой, одной или двумя дополнительными копиями, запрашиваемыми для каждой записи для пользовательских данных, и с тем же самым базовым числом копий плюс одна или две для метаданных (в зависимости от важности метаданных). [65] Если в пуле несколько устройств, ZFS пытается выполнить репликацию на разных устройствах. Блоки Ditto - это прежде всего дополнительная защита от поврежденных секторов, а не от полного отказа диска. [66]
  • Конструкция ZFS (копирование при записи + суперблоки) безопасна при использовании дисков с включенным кешем записи, если они соблюдают барьеры записи. [ необходима цитата ] Эта функция обеспечивает безопасность и повышение производительности по сравнению с некоторыми другими файловыми системами. [ согласно кому? ]
  • В Solaris, когда целые диски добавляются в пул ZFS, ZFS автоматически включает их кэш записи. Этого не происходит, когда ZFS управляет только дискретными фрагментами диска, поскольку он не знает, управляются ли другие фрагменты файловыми системами, не защищенными от записи кешем, такими как UFS . [ необходима цитата ] Реализация FreeBSD может обрабатывать сброс диска для разделов благодаря своей структуре GEOM и, следовательно, не страдает от этого ограничения. [ необходима цитата ]
  • Пределы квот на пользователя, группу, проект и набор данных. [67]
  • Шифрование файловой системы, начиная с Solaris 11 Express [68] (в некоторых других системах ZFS может использовать зашифрованные диски для аналогичного эффекта; GELI во FreeBSD может использоваться таким образом для создания полностью зашифрованного хранилища ZFS).
  • Пулы можно импортировать в режиме только для чтения.
  • Можно восстановить данные путем отката всей транзакции во время импорта файла zpool. [ необходима цитата ]
  • ZFS не является кластерной файловой системой ; однако кластеризованная файловая система ZFS доступна у третьих лиц. [ необходима цитата ]
  • Снимки можно делать вручную или автоматически. Более старые версии хранимых данных, которые они содержат, могут быть представлены как полные файловые системы только для чтения. Они также могут быть представлены как исторические версии файлов и папок при использовании с CIFS (также известный как SMB, Samba или общие файловые ресурсы ); это известно как «Предыдущие версии», «Теневые копии VSS» или «История файлов» в Windows , или AFP и «Apple Time Machine» на устройствах Apple. [69]
  • Диски можно пометить как «запасные». Пул данных может быть настроен на автоматическую и прозрачную обработку сбоев диска путем активации резервного диска и начала перенастройки данных, которые были на подозрительном диске, на него, когда это необходимо.

Ограничения [ править ]

Файловая система ZFS имеет несколько ограничений.

Ограничения в предотвращении повреждения данных [ править ]

Авторы исследования в 2010 , которые изучали возможности файловых систем для обнаружения и предотвращения повреждения данных, с особым акцентом на ZFS, заметили , что сам по себе ZFS является эффективным средством обнаружения и исправления ошибок данных на устройствах хранения данных, но она принимает данные в оперативной памяти является «безопасно» и не подвержено ошибкам. В исследовании отмечается, что «переворот одного бита в памяти вызывает сбой в небольшом, но немаловажном проценте прогонов, при этом вероятность фиксации неверных данных на диске колеблется от 0% до 3,6% (в зависимости от рабочей нагрузки)», и что когда ZFS кэширует страницы или сохраняет копии метаданных в ОЗУ, или хранит данные в своем «грязном» кэше для записи на диск, не проводится проверка, соответствуют ли контрольные суммы данным в точке использования. [70] Большую часть этого риска можно уменьшить одним из двух способов:

  • По мнению авторов, при использовании ОЗУ ECC ; однако авторы считают, что добавление функции обнаружения ошибок, связанной с кешем страницы и кучей, позволит ZFS более надежно обрабатывать определенные классы ошибок. [70]
  • Один из основных архитекторов ZFS, Мэтт Аренс, объясняет, что существует возможность включить контрольную сумму данных в памяти с помощью флага ZFS_DEBUG_MODIFY (zfs_flags = 0x10), который решает эти проблемы. [71]

Другие ограничения, характерные для ZFS [ править ]

  • Расширение емкости обычно достигается путем добавления групп дисков в качестве vdev верхнего уровня: простое устройство, RAID-Z , RAID Z2, RAID Z3 или зеркальное отображение. Вновь записанные данные начнут динамически использовать все доступные vdev. Также можно расширить массив, итеративно заменяя каждый диск в массиве диском большего размера и ожидая самовосстановления ZFS; время восстановления будет зависеть от количества сохраненной информации, а не от размера диска.
  • Начиная с Solaris 10 Update 11 и Solaris 11.2, было невозможно ни уменьшить количество vdev верхнего уровня в пуле, ни иным образом уменьшить емкость пула. [72] Эта функция, как сообщается, разрабатывалась в 2007 году. [73] В OpenZFS разрабатываются усовершенствования, позволяющие сократить количество vdev. [74]
  • По состоянию на 2008 год было невозможно добавить диск в качестве столбца в RAID Z, RAID Z2 или RAID Z3 vdev. Однако вместо этого можно создать новый RAID Z vdev и добавить его в zpool. [75]
  • Некоторые традиционные вложенные конфигурации RAID, такие как RAID 51 (зеркало групп RAID 5), не настраиваются в ZFS. Vdev может состоять только из необработанных дисков или файлов, но не из других файлов vdev. Однако пул ZFS эффективно создает полосу (RAID 0) между своими vdev, поэтому обычно используется эквивалент RAID 50 или RAID 60.
  • Для перенастройки количества устройств в vdev верхнего уровня требуется копирование данных в автономном режиме, уничтожение пула и воссоздание пула с новой конфигурацией vdev верхнего уровня, за исключением добавления дополнительной избыточности к существующему зеркалу, что можно сделать в любое время. или если все vdev верхнего уровня являются зеркалами с достаточной избыточностью, можно использовать команду zpool split [76] для удаления vdev из каждого vdev верхнего уровня в пуле, создавая второй пул с идентичными данными.
  • Производительность IOPS пула устройств хранения ZFS может пострадать, если рейд ZFS не настроен должным образом. Так или иначе, это применимо ко всем типам RAID. Если zpool состоит только из одной группы дисков, настроенной, например, как восемь дисков в RAID Z2, то производительность IOPS будет такой же, как у одного диска (скорость записи будет эквивалентна 6 дискам, но скорость произвольного чтения будет аналогична скорости один диск). Однако есть способы смягчить эту проблему производительности IOPS, например, добавить SSD в качестве кэша L2ARC, что может повысить IOPS до 100 000 с. [77] Короче говоря, zpool должен состоять из нескольких групп vdev, каждый vdev состоит из 8-12 дисков, если используется RAID Z. Не рекомендуется создавать zpool с одним большим vdev, скажем 20 дисков, потому что производительность IOPS будет ниже. для одного диска, что также означает, что время восстановления будет очень долгим (возможно, недели для будущих больших дисков).
  • Оперативное сжатие zpool removeне поддерживалось до выхода Solaris 11.4 в августе 2018 г. [78]
  • Восстановление (восстановление) поврежденного диска в ZFS RAID может занять много времени, что не является уникальным для ZFS, оно так или иначе применимо ко всем типам RAID. Это означает, что восстановление очень больших томов или восстановление их полной избыточности может занять несколько дней после серьезного повреждения или сбоя данных, и в течение этого времени может произойти второй сбой диска, особенно потому, что ремонт создает дополнительную нагрузку на систему в целом. . В свою очередь, это означает, что следует избегать конфигураций, которые позволяют восстанавливать только один сбой диска, таких как RAID Z1 (аналогично RAID 5). Следовательно, с большими дисками следует использовать RAID Z2 (допускает отказ двух дисков) или RAID Z3 (допускает отказ трех дисков). [79]ZFS RAID отличается от обычного RAID тем, что при замене диска восстанавливаются только живые данные и метаданные, а не весь диск, включая пустые и мусорные блоки, что означает, что замена диска-члена в пуле ZFS, который только частично заполнен, займет пропорционально меньше времени. время по сравнению с обычным RAID. [63]

Восстановление данных [ править ]

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

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

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

OpenZFS и ZFS [ править ]

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

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

Коммерческие продукты и продукты с открытым исходным кодом [ править ]

  • 2008: Sun поставила линейку устройств хранения данных серии 7000 на базе ZFS. [82]
  • 2013: Oracle поставила серию файловых серверов ZS3 на основе ZFS и с одним из них заняла первое место в тесте SPC-2 . [83]
  • 2013: iXsystems поставляет устройства NAS на основе ZFS под названием FreeNAS (теперь называемые TrueNAS CORE) для SOHO и TrueNAS для предприятий. [84] [85]
  • 2014: Netgear поставляет линейку NAS-устройств на базе ZFS под названием ReadyDATA , предназначенных для использования на предприятии. [86]
  • 2015: rsync.net анонсирует платформу облачного хранилища, которая позволяет клиентам предоставлять свои собственные zpool, а также импортировать и экспортировать данные с помощью zfs send и zfs receive. [87] [88]
  • 2020: iXsystems начинает разработку гиперконвергентного программного обеспечения на основе ZFS под названием TrueNAS SCALE для SOHO и TrueNAS для предприятий. [85]

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

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

В ответ на меняющийся ландшафт Solaris и OpenSolaris, проект illumos был запущен на веб-семинаре [92] в четверг, 3 августа 2010 г., в качестве попытки сообщества некоторых основных инженеров Solaris продолжить разработку версии Solaris с открытым исходным кодом и завершить открытый исходный код тех частей, которые еще не были открыты Sun. [93] illumos был основан как фонд, Illumos Foundation, зарегистрированный в штате Калифорния как 501 (c) 6торговая ассоциация. Первоначальный план явно заявлял, что illumos не будет дистрибутивом или форком. Однако после того, как Oracle объявила о прекращении поддержки OpenSolaris, были задуманы планы по созданию финальной версии ядра Solaris ON, которая позволила бы illumos развиваться в собственное ядро. [94] Таким образом, как часть 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». [95] OpenSolaris больше не поддерживается, и OpenIndiana является ответвлением от него. [96] [97] Заключительная сборка (b134) OpenSolaris была опубликована Oracle (12 ноября 2010 г.) в качестве пути обновления до Solaris 11 Express .

Список операционных систем, поддерживающих ZFS [ править ]

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

См. Также [ править ]

  • Сравнение файловых систем
  • Список файловых систем
  • Управление версиями файловой системы - Список файловых систем управления версиями

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ «Oracle Solaris 11.4 выпущен для общедоступной версии» . 28 августа, 2018. архивации с оригинала на 29 августа 2018 года . Проверено 19 сентября 2020 года .
  2. ^ "1.1 А как насчет вопроса лицензирования?" . Архивировано 26 сентября 2010 года . Проверено 18 ноября 2010 года .
  3. ^ «Проект OpenZFS запускается» . LWN.net . 17 сентября 2013 года. Архивировано 4 октября 2013 года . Проверено 1 октября 2013 года .
  4. ^ "Объявление OpenZFS" . 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. ^ a b «19.4. Администрация zfs» . www.freebsd.org . Архивировано 23 февраля 2017 года . Проверено 22 февраля 2017 года .
  10. ^ Salus, Питер (1994). Четверть века Unix . Эддисон-Уэсли. С. 199–200. ISBN 0-201-54777-5.
  11. ^ "Что такое SunOS и Solaris?" . База знаний . Технологические услуги Университета Индианы. 20 мая 2013 года . Проверено 10 ноября 2014 года .
  12. ^ Браун, Дэвид. «Разговор с Джеффом Бонвиком и Биллом Муром» . Очередь ACM . Ассоциация вычислительной техники. Архивировано 16 июля 2011 года . Проверено 17 ноября 2015 года .
  13. ^ «ZFS: последнее слово в файловых системах» . Sun Microsystems. 14 сентября 2004 года архивации с оригинала на 28 апреля 2006 года . Проверено 30 апреля 2006 года .
  14. Мэтью Аренс (1 ноября 2011 г.). "ЗФС 10 лет" . Архивировано из оригинального 28 июня 2016 года . Проверено 24 июля 2012 года .
  15. ^ Б Bonwick, Джефф (31 октября 2005). «ZFS: последнее слово в файловых системах» . blogs.oracle.com . Архивировано из оригинального 19 июня 2013 года . Проверено 22 июня 2013 года .
  16. ^ «Sun празднует успешную годовщину OpenSolaris» . Sun Microsystems. 20 июня 2006 года архивации с оригинала на 28 сентября 2008 года . Проверено 30 апреля 2018 года .
  17. Майкл Сингер (25 января 2005 г.). "Солнечные трещины в открытом Солярисе" . InternetNews.com . Проверено 12 апреля 2010 года .
  18. ^ «Часто задаваемые вопросы о ZFS на OpenSolaris.org» . Sun Microsystems. Архивировано из оригинала на 15 мая 2011 года . Проверено 18 мая 2011 года . Самый крупный префикс SI, который нам понравился, был 'zetta' (о yotta не могло быть и речи).
  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) . Доктор философии компьютерных наук . Университет Висконсин-Мэдисон. Архивировано 29 апреля 2011 года (PDF) . Проверено 9 июня 2012 года .
  23. ^ «Паритет потерян и паритет восстановлен» . Архивировано 15 июня 2010 года . Проверено 29 ноября 2010 года .
  24. ^ «Анализ повреждения данных в стеке хранения» (PDF) . Архивировано 15 июня 2010 года (PDF) . Проверено 29 ноября 2010 года .
  25. ^ «Влияние повреждения диска на СУБД с открытым исходным кодом» (PDF) . Архивировано 15 июня 2010 года (PDF) . Проверено 29 ноября 2010 года .
  26. ^ Kadav Асим; Раджимвале, Абхишек. «Анализ надежности ZFS» (PDF) . Архивировано 21 сентября 2013 года (PDF) . Проверено 19 сентября 2013 года .
  27. ^ Юпу Чжан; Абхишек Раджимвале; Андреа К. Арпачи-Дюссо; Ремзи Х. Арпачи-Дюссо. «Сквозная целостность данных для файловых систем: пример использования ZFS» (PDF) . Мэдисон: Департамент компьютерных наук, Университет Висконсина. п. 14. Архивировано (PDF) из оригинала 26 июня 2011 года . Проверено 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. ^ a b c Бонвик, Джефф (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. ^ «ZFS без слез: использование ZFS без памяти ECC» . www.csparks.com . Декабрь 2015. Архивировано 13 января 2021 года . Проверено 16 июня 2020 года .
  34. ^ wdc.custhelp.com. «Разница между дисками Desktop edition и RAID (Enterprise) edition» . Архивировано 5 января 2015 года . Проверено 8 сентября 2011 года .
  35. ^ a b c d Бонвик, Джефф (17 ноября 2005 г.). «RAID-Z» . Блог Джеффа Бонвика . Блоги Oracle . Архивировано из оригинального 16 декабря 2014 года . Проверено 1 февраля 2015 года .
  36. ^ a b Левенталь, Адам (17 декабря 2009 г.). «RAID с тройной четностью и выше» . Очередь . 7 (11): 30. DOI : 10,1145 / 1661785,1670144 . Архивировано 15 марта 2019 года . Проверено 12 апреля 2019 года .
  37. ^ «Производительность, емкость и целостность ZFS Raidz» . calomel.org . Архивировано из оригинала на 27 ноября 2017 года . Проверено 23 июня 2017 года .
  38. ^ «Почему RAID 6 перестанет работать в 2019 году» . ZDNet . 22 февраля 2010 года. Архивировано 31 октября 2014 года . Проверено 26 октября 2014 года .
  39. ^ «Для ZFS не существует эквивалента утилиты fsck. Эта утилита традиционно служила двум целям: восстановление файловой системы и проверка файловой системы». «Проверка целостности файловой системы ZFS» . Oracle. Архивировано 31 января 2013 года . Проверено 25 ноября 2012 года .
  40. ^ "ZFS Scrubs" . freenas.org. Архивировано из оригинала на 27 ноября 2012 года . Проверено 25 ноября 2012 года .
  41. ^ «Вам также следует выполнить очистку перед заменой устройств или временным сокращением избыточности пула, чтобы убедиться, что все устройства в настоящее время работают». «Руководство по передовой практике ZFS» . solarisinternals.com. Архивировано из оригинала на 5 сентября 2015 года . Проверено 25 ноября 2012 года .
  42. ^ Джефф Бонвик. "128-битное хранилище: у вас много?" . oracle.com . Архивировано 29 мая 2015 года . Проверено 29 мая 2015 года .
  43. ^ «ZFS: Кипит Океан, Поглощает Луну (Блог Дэйва Бриллхарта)» . Архивировано из оригинала 8 декабря 2015 года . Проверено 19 декабря 2015 года .
  44. ^ "Руководство администратора Solaris ZFS" . Корпорация Oracle. Архивировано 13 января 2021 года . Проверено 11 февраля 2011 года .
  45. ^ «Шифрование файловых систем ZFS» . Архивировано 23 июня 2011 года . Проверено 2 мая 2011 года .
  46. ^ «Имею защищенный торт и клонирую его тоже (шифрование + дедупликация с ZFS)» . Архивировано 29 мая 2013 года . Проверено 9 октября 2012 года .
  47. ^ "ZFS - Debian Wiki" . wiki.debian.org . Архивировано 8 сентября 2019 года . Проверено 10 декабря 2019 года .
  48. ^ «Solaris ZFS позволяет использовать гибридные пулы хранения данных - устранение экономических и производственных барьеров» (PDF) . Sun.com. 7 сентября 2010 г. Архивировано 17 октября 2011 г. (PDF) из оригинала . Проверено 4 ноября 2011 года .
  49. ^ Грегг, Брендан. «ZFS L2ARC» . Блог Брендана . Dtrace.org. Архивировано 6 ноября 2011 года . Проверено 5 октября 2012 года .
  50. Грегг, Брендан (8 октября 2009 г.). «Гибридный пул хранения данных: максимальная скорость» . Блог Брендана . Dtrace.org. Архивировано 5 апреля 2016 года . Проверено 15 августа 2017 года .
  51. ^ «Настройка производительности Solaris ZFS: синхронная запись и ZIL» . Constantin.glez.de. 20 июля 2010 года. Архивировано 23 июня 2012 года . Проверено 5 октября 2012 года .
  52. ^ «Спецификация ZFS на диске» (PDF) . Sun Microsystems, Inc. 2006. Архивировано из оригинального (PDF) 30 декабря 2008 года. См. Раздел 2.4.
  53. Эрик Спроул (21 мая 2009 г.). "Гайки и болты ZFS" . slideshare.net. С. 30–31. Архивировано 22 июня 2014 года . Проверено 8 июня 2014 года .
  54. ^ «Дедупликация ZFS» . blogs.oracle.com . Архивировано 24 декабря 2019 года . Проверено 25 ноября 2019 года .
  55. Гэри Симс (4 января 2012 г.). «Построение сетевого хранилища на основе ZFS с использованием FreeNAS 8» . Обучение TrainSignal . TrainSignal, Inc. Архивировано из оригинального (блога) 7 мая 2012 года . Проверено 9 июня 2012 года .
  56. Рэй Ван Долсон (май 2011 г.). "[zfs-обсуждения] Резюме: требования к памяти для дедупликации" . Список рассылки zfs-обсуждения. Архивировано из оригинального 25 апреля 2012 года.
  57. ^ "ZFSTuningGuide" . Архивировано 16 января 2012 года . Проверено 3 января 2012 года .
  58. Крис Меллор (12 октября 2012 г.). «GreenBytes размахивает жирным клоном VDI pumper» . Реестр . Архивировано 24 марта 2013 года . Проверено 29 августа 2013 года .
  59. Крис Меллор (1 июня 2012 г.). «Новичок достает из коробки, планирует недорого продать всем желающим» . Реестр . Архивировано 12 августа 2013 года . Проверено 29 августа 2013 года .
  60. Крис Меллор (11 декабря 2014 г.). «Дедупинг, дедупликация ... дедупликация, дедупликация, дедупликация: Oracle полирует алмаз ZFS» . Реестр . Архивировано 7 июля 2017 года . Проверено 17 декабря 2014 года .
  61. ^ «Контрольные суммы и их использование в ZFS» . github.com . 2 сентября 2018 года. Архивировано 19 июля 2019 года . Проверено 11 июля 2019 года .
  62. ^ "Руководство администратора Solaris ZFS" . Глава 6 Управление файловыми системами ZFS . Архивировано из оригинала на 5 февраля 2011 года . Проверено 17 марта 2009 года .
  63. ^ а б "Дымчатые зеркала" . blogs.oracle.com . 2 мая 2006 года. Архивировано 16 декабря 2011 года . Проверено 13 февраля 2012 года .
  64. ^ «Распределение блоков ZFS» . Журнал Джеффа Бонвика . 4 ноября 2006 года архивации с оригинала на 2 ноября 2012 года . Проверено 23 февраля 2007 года .
  65. ^ "Блоки Ditto - Удивительный репеллент ленты" . Отбрасывает биты в блоге . 12 мая 2006 года Архивировано из оригинального 26 мая 2013 года . Проверено 1 марта 2007 года .
  66. ^ «Добавление новых дисков и то же поведение блока» . Архивировано из оригинального 23 августа 2011 года . Проверено 19 октября 2009 года .
  67. ^ "OpenSolaris.org" . Sun Microsystems. Архивировано из оригинала 8 мая 2009 года . Проверено 22 мая 2009 года .
  68. ^ «Что нового в Solaris 11 Express 2010.11» (PDF) . Oracle. Архивировано 16 ноября 2010 года (PDF) . Проверено 17 ноября 2010 года .
  69. ^ «10. Совместное использование - Руководство пользователя FreeNAS 9.3 Содержание» . doc.freenas.org . Архивировано 7 января 2017 года . Проверено 23 февраля 2017 года .
  70. ^ а б Чжан, Юпу; Раджимвале, Абхишек; Arpaci-Dusseau, Andrea C .; Арпачи-Дюссо, Ремзи Х. (2 января 2018 г.). «Сквозная целостность данных для файловых систем: пример использования ZFS» . Ассоциация USENIX. п. 3. Архивировано 13 января 2021 года . Проверено 7 июня 2020 г. - через цифровую библиотеку ACM.
  71. ^ «Пошаговое руководство Ars: Использование файловой системы ZFS следующего поколения в Linux» . arstechnica.com . Архивировано 10 февраля 2017 года . Проверено 19 июня 2017 года .
  72. ^ «ID ошибки 4852783: уменьшить емкость пула» . OpenSolaris Project. Архивировано из оригинального 29 июня 2009 года . Проверено 28 марта 2009 года .
  73. Геббельс, Марио (19 апреля 2007 г.). «Постоянное удаление vdev из пула» . zfs-Discussion (Список рассылки).[ постоянная мертвая ссылка ] архивная ссылка. Архивировано 13 января 2021 г. в Wayback Machine.
  74. ^ Крис Зибенманн Информация о будущем удалении vdev. Архивировано 11 августа 2016 г. в Wayback Machine , Univ Toronto, блог, цитата: неофициальное объявление в Twitter Алексом Рисом. Архивировано 11 августа 2016 г. на Wayback Machine.
  75. ^ "Expand-O-Matic RAID Z" . Адам Левенталь. 7 апреля 2008 года. Архивировано 28 декабря 2011 года . Проверено 16 апреля 2012 года .
  76. ^ "zpool (1M)" . Download.oracle.com. 11 июня 2010 года. Архивировано 13 января 2021 года . Проверено 4 ноября 2011 года .
  77. ^ Брендан (2 декабря 2008 г.). «Четверть миллиона операций ввода-вывода NFS в секунду» . Oracle Sun. Архивировано из оригинала 17 декабря 2011 года . Проверено 28 января 2012 года .
  78. ^ «Функции управления данными - что нового в Oracle® Solaris 11.4» . Архивировано 24 сентября 2019 года . Проверено 9 октября 2019 года .
  79. ^ Левенталь, Адам. «RAID Z с тройной четностью» . Блог Адама Левенталя . Архивировано 16 апреля 2011 года . Проверено 19 декабря 2013 года .
  80. ^ a b "Восстановление данных ZFS с турбонаддувом" . Архивировано 29 ноября 2018 года . Проверено 29 ноября 2018 года .
  81. ^ «ZFS и OpenZFS» . iXSystems . Проверено 18 мая 2020 года .
  82. ^ "Sun выпускает собственные устройства хранения данных" . techworld.com.au. 11 ноября 2008 года. Архивировано 13 ноября 2013 года . Проверено 13 ноября 2013 года .
  83. Крис Меллор (2 октября 2013 г.). «Мускулистые мускулы Oracle заняли свое место на вершине эталона с мощным фильтром ZFS» . theregister.co.uk. Архивировано 7 июля 2017 года . Проверено 7 июля 2014 года .
  84. ^ «Унифицированное устройство хранения данных ZFS, созданное iXsystem в Кремниевой долине» . ixsystems.com. Архивировано 3 июля 2014 года . Проверено 7 июля 2014 года .
  85. ^ a b "TrueNAS 12 и TrueNAS SCALE официально здесь!" . ixsystems.com . Проверено 2 января 2021 года .
  86. ^ «ReadyDATA 516 - Единое сетевое хранилище» (PDF) . netgear.com. Архивировано 15 июля 2014 года (PDF) . Проверено 7 июля 2014 года .
  87. Джим Солтер (17 декабря 2015 г.). «rsync.net: репликация ZFS в облако, наконец, здесь - и это быстро» . arstechnica.com. Архивировано 22 августа 2017 года . Проверено 21 августа 2017 года .
  88. ^ rsync.net, Inc. «Облачное хранилище с ZFS для отправки и получения по SSH» . rsync.net. Архивировано 21 июля 2017 года . Проверено 21 августа 2017 года .
  89. Стивен Сталлион / Oracle (13 августа 2010 г.). «Обновление на SXCE» . Иконоборческие тенденции.
  90. ^ Алэсдэйр Лумсден. «OpenSolaris отменен, будет заменен на Solaris 11 Express» . осол-обсуждение (Список рассылки). Архивировано из оригинального 16 августа 2010 года . Проверено 24 ноября 2014 года .
  91. ^ Solaris все еще вроде как открыт, но дистрибутив OpenSolaris мертв. Архивировано 5 сентября 2017 г. на Wayback Machine на Ars Technica Райаном Полом (16 августа 2010 г.)
  92. Гаррет Д'Амор (3 августа 2010 г.). "Illumos - надежда и источники света заново - представлены Гарретом Д'Амором" (PDF) . illumos.org . Проверено 3 августа 2010 года .
  93. ^ «Куда OpenSolaris? Illumos принимает мантию» . Архивировано из оригинального 26 сентября 2015 года.
  94. Гаррет Д'Амор (13 августа 2010 г.). «Рука может быть взята силой» . Проверено 14 ноября 2013 года .
  95. ^ a b c «В то время как под контролем Sun Microsystems, раз в две недели делались снимки состояния Solaris Nevada (кодовое название ОС Solaris следующего поколения, которая в конечном итоге заменила Solaris 10), и этот новый код затем был включен в новые доступные предварительные снимки OpenSolaris. на Genunix.org. Стабильные выпуски OpenSolaris основаны на [ sic ] этих сборках Невады ». Ларабель, Майкл. «Похоже, Oracle будет стоять за OpenSolaris» . Phoronix Media. Архивировано 29 ноября 2016 года . Проверено 21 ноября 2012 года .
  96. ^ Ljubuncic, Игорь (23 мая 2011). «OpenIndiana - надежда еще есть» . DistroWatch . Архивировано 27 октября 2012 года . Проверено 21 ноября 2012 года .
  97. ^ "Добро пожаловать в Project OpenIndiana!" . Проект OpenIndiana. 10 сентября 2010 года. Архивировано 27 ноября 2012 года . Проверено 14 сентября 2010 года .

Библиография [ править ]

  • Ватанабэ, Скотт (23 ноября 2009 г.). Основы Solaris ZFS (1-е изд.). Прентис Холл . п. 256. ISBN 978-0-13-700010-4. Архивировано из оригинала на 1 октября 2012 года .

Внешние ссылки [ править ]

  • Вилка Да! Расцвет и развитие иллюзий - слайд-шоу, охватывающее большую часть истории Solaris, решение Sun об открытии исходного кода, создание ZFS и события, которые привели к его закрытию и разветвлению после приобретения Oracle.
  • Лучшая облачная файловая система была создана до того, как облако появилось (архивировано 15 декабря 2018 г.)
  • Сравнение зеркалирования SVM и ZFS
  • Распределение EON ZFS Storage (NAS)
  • Сквозная целостность данных для файловых систем: пример использования ZFS
  • ZFS - Файловая система Zettabyte (архивировано 28 февраля 2013 г.)
  • ZFS и RAID-Z: Убер-FS?
  • ZFS: Последнее слово в файловых системах , Джефф Бонвик и Билл Мур (архивировано 29 августа 2017 г.)
  • Визуализация журнала намерений ZFS (ZIL) , апрель 2013 г., Аарон Топонсе
  • Особенности иллюминаторов, включая OpenZFS
    • Предыдущая вики-страница с дополнительными ссылками: Начало работы с ZFS , 15 сентября 2014 г. (архивировано 30 декабря 2018 г.), часть документации illumos