OpenZFS

редактировать
Проект Umbrella, который разрабатывает файловую систему ZFS как проект с открытым исходным кодом

OpenZFS
Разработчик (и) OpenZFS Проект
Реализован2013; 7 лет назад (2013 г.)
Структуры
Содержимое каталогаРасширяемая хэш-таблица
Пределы
Макс. размер тома256 триллионов йобибайт (2 байта)
Макс. размер файла16 эксбибайт (2 байта)
Макс. количество файлов
  • На каталог: 2
  • На файловую систему: неограниченно
Макс. длина имени файла255 ASCII символов (меньше для стандартов многобайтовых символов, таких как Unicode )
Features
Forks Да (называется «расширенными атрибутами», но они являются полноценными потоками)
АтрибутыPOSIX
Разрешения файловой системы ACL POSIX, NFSv4
Прозрачное сжатиеДа
Прозрачное шифрование Да
Дедупликация данных Да
Копирование при записи Да
Другие
Поддерживаемые операционные системы Illumos дистрибутивы, FreeBSD и его производные, macOS, ZFS в Linux через модуль ядра, Microsoft Windows
Repository github.com / openzfs / zfs
Проект OpenZFS
Openzfs.svg
Формирование2013; 7 лет назад (2013)
ПродуктыФайловая система OpenZFS
Родительская организацияПрограммное обеспечение в общественных интересах
Веб-сайтopenzfs.org

OpenZFS - это платформа хранения с открытым исходным кодом, которая включает в себя функции традиционного fil esystems и менеджер томов. Он включает защиту от повреждения данных, поддержку больших объемов хранения, эффективное сжатие данных, моментальные снимки и клоны с копированием при записи, непрерывная проверка целостности и автоматическое восстановление, шифрование, удаленная репликация с отправкой и получением ZFS и RAID-Z. Одноименный проект OpenZFS объединяет разработчиков платформ illumos, Linux, FreeBSD и macOS, а также широкий круг компаний на ежегодном саммите разработчиков OpenZFS.

Среди членов-основателей OpenZFS - Мэтт Аренс., один из главных архитекторов ZFS. Проект OpenZFS является производной с открытым исходным кодом от проекта Oracle ZFS. Начиная с 2019 года OpenZFS (на некоторых платформах, таких как FreeBSD ) постепенно превращается в основанную на ZFS в Linux, которая развивалась быстрее, чем другие варианты OpenZFS, и содержит новые функции, еще не перенесенные на эти другие версии. Объединенная кодовая база будет включать ряд новых функций и улучшений производительности, и ее предлагается называть OpenZFS 2.0.

Содержание
  • 1 История
    • 1.1 Переносимые версии (2005 - 2010)
    • 1.2 Apple / MacOS
  • 2 Реализация
    • 2.1 Solaris
      • 2.1.1 OpenSolaris
      • 2.1.2 OpenIndiana
    • 2.2 BSD
      • 2.2.1 macOS
      • 2.2.2 DragonFlyBSD
      • 2.2.3 NetBSD
      • 2.2.4 FreeBSD
      • 2.2.5 MidnightBSD
      • 2.2.6 TrueOS (ранее PC-BSD)
      • 2.2.7 FreeNAS
      • 2.2.8 ZFS Guru
      • 2.2. 9 pfSense
      • 2.2.10 XigmaNAS
      • 2.2.11 Debian GNU / kFreeBSD
    • 2.3 Linux
      • 2.3.1 ZFS на FUSE
      • 2.3.2 Собственная ZFS на Linux
      • 2.3.3 KQ InfoTech
      • 2.3.4 Распространение исходного кода
      • 2.3.5 Интеграция с Ubuntu
    • 2.4 Microsoft Windows
  • 3 Релизы и история функций
    • 3.1 В рамках illumos и (с 2013 г.) OpenZFS
    • 3.2 Другие порты и форки
    • 3.3 Подробная история выпусков
  • 4 История версий
    • 4.1 Версии пула и флаги функций
      • 4.1.1 OpenZFS 2.0
  • 5 См. также
  • 6 Ссылки
  • 7 Ex внешние ссылки
История

Файловая система ZFS была первоначально разработана Sun Microsystems для операционной системы Solaris. Исходный код ZFS был выпущен в 2005 году под Общей лицензией на разработку и распространение (CDDL) как часть операционной системы OpenSolaris, а затем был перенесен на другие операционные системы и среды.

Ниже приводится список ключевых событий в разработке ZFS и ее различных реализаций, которые привели к созданию OpenZFS в качестве зонтичного проекта:

  • 2001: Разработка ZFS с закрытым исходным кодом началась с двумя инженерами из Sun Microsystems.
  • 2005: исходный код ZFS был выпущен как часть OpenSolaris.
  • 2006: Началась разработка порта FUSE ZFS для Linux.
  • 2007: Apple начала перенос ZFS на Mac OS X.
  • 2008: Порт для FreeBSD был выпущен как часть FreeBSD 7.0.
  • 2008: Началась разработка собственного порта ZFS Linux, известного как ZFS на Linux.
  • 2009: проект Apple ZFS закрыт, а проект MacZFS продолжал разработку кода.
  • 2010: OpenSolaris был прекращен, что привело к дальнейшему ее разработка ZFS на Solaris больше не является открытым исходным кодом.
  • 2010: illumos был разветвлен у OpenSolaris как его преемника с открытым исходным кодом, и продолжила разработку ZFS в открытом виде. Перенос ZFS на другие платформы продолжал получать изменения восходящего потока от illumos.
  • 2012: Были введены флаги функций для замены устаревших номеров версий на диске, что позволило упростить распределенную эволюцию дискового формата ZFS для поддержки новых функций.
  • 2013: сосуществуя со стабильной версией MacZFS, его прототипное поколение (известное как OpenZFS в OS X или O3X) использует ZFS в Linux в качестве новой исходной кодовой базы.
  • 2013: Первый стабильный выпуск ZFS для Linux.
  • 2013: Официальное объявление OpenZFS как зонтичного проекта. Новые функции и исправления регулярно загружаются в OpenZFS из Illumos и вставляются во все порты на другие платформы, и наоборот.
  • 2016: Ubuntu 16.04 включает вариант файловой системы ZFS с открытым исходным кодом от по умолчанию

Переносимые версии (2005 - 2010)

Поскольку FSF заявлял о юридической несовместимости CDDL и GPL в 2005 году, Sun реализация файловой системы ZFS не была не использовался в качестве основы для разработки ядра Linux модуля, он не был объединен с основной веткой ядра Linux и дистрибутивами Linux. не включал его как предварительно скомпилированный модуль ядра. В качестве обходного пути FUSE, фреймворк, позволяющий файловым системам работать в пользовательском пространстве, использовался в Linux в качестве разделительного уровня, для которого не действуют проблемы с лицензированием, хотя и с набор собственных проблем, в том числе снижение производительности. Однако апрельский выпуск Ubuntu 16.04 LTS от апреля 2016 года включает ZFS для Linux с лицензией CDDL в качестве модуля ядра, который поддерживается как отдельный проект, за пределами Linux. основная линия ядра, заявившая о совместимости с лицензией.

Apple / MacOS

В выпускной версии Mac OS X 10.5 ZFS была доступна в режиме только для чтения из командной строки, в которой отсутствует возможность создавайте zpools или пишите им. Перед выпуском 10.5 Apple выпустила «ZFS Beta Seed v1.1», который разрешал доступ для чтения и записи и создание zpools; однако сообщалось, что установщик для «ZFS Beta Seed v1.1» работает только с версией 10.5.0 и не обновлялся для версии 10.5.1 и выше. В августе 2007 года Apple открыла проект ZFS на своем веб-сайте Mac OS Forge. На этом сайте Apple предоставила исходный код и двоичные файлы своего порта ZFS, который включает доступ для чтения и записи, но установщик не был доступен до тех пор, пока его не создал сторонний разработчик. В октябре 2009 года Apple объявила о закрытии проекта ZFS в Mac OS Forge. Это означает, что их собственный хостинг и участие в ZFS были прекращены. Никаких объяснений дано не было. В конце концов Apple выпустила юридически обязательную, основанную на CDDL, часть исходного кода своей последней публичной бета-версии ZFS под кодовым названием «10a286». Полная поддержка ZFS когда-то рекламировалась как функция Snow Leopard Server (Mac OS X Server 10.6). Однако к моменту выпуска операционной системы все ссылки на эту функцию были удалены со страницы ее функций. Apple пока не комментирует упущение.

Версия исходного кода Apple «10a286» и версии ранее выпущенных исходных кодов и двоичных файлов были сохранены, а в проекте MacZFS была принята новая разработка для возобновления его разработки в другом месте. По состоянию на июль 2012 года в MacZFS реализованы zpool версии 8 и ZFS версии 2, начиная с выпуска Solaris за октябрь 2008 года. Дополнительную историческую информацию и комментарии можно найти на веб-сайте MacZFS и в разделе часто задаваемых вопросов.

Реализации

Solaris

OpenSolaris

OpenSolaris 2008.05, 2008.11 и 2009.06. ZFS в качестве файловой системы по умолчанию. Существует более десятка сторонних дистрибутивов.

OpenIndiana

OpenIndiana использует OpenZFS с флагами функций, как это реализовано в Illumos. ZFS версии 28 использовалась до версии 151a3.

При обновлении с OpenSolaris snv_134 до OpenIndiana и Solaris 11 Express можно также обновлять и отдельно загружать Solaris 11 Express в том же пуле ZFS.

BSD

macOS

OpenZFS в OSX (сокращенно O3X) - это реализация ZFS для macOS. O3X находится в стадии активной разработки, тесно связанной с ZFS в Linux и реализацией ZFS от Illumos, при этом поддерживая совместимость флагов функций с ZFS в Linux. O3X реализует zpool версии 5000 и включает уровень переноса Solaris (SPL), изначально написанный для MacZFS, который был дополнительно усовершенствован за счет включения уровня управления памятью на основе распределителей illumos kmem и vmem. O3X является полнофункциональным, поддерживает сжатие LZ4, дедупликацию, ARC, L2ARC и SLOG.

MacZFS - бесплатное программное обеспечение, обеспечивающее поддержку ZFS в macOS. Стабильная унаследованная ветка предоставляет пул ZFS до версии 8 и файловую систему ZFS версии 2. Ветка разработки, основанная на ZFS в Linux и OpenZFS, предоставляет обновленные функции ZFS, такие как ZFS zpool версии 5000 и флаги функций.

Запатентованная реализация ZFS (Zevo) была доступна бесплатно от GreenBytes, Inc., включая файловую систему ZFS версии 5 и пул ZFS версии 28. Zevo предложила ограниченный набор функций ZFS в ожидании дальнейшей коммерческой разработки; он был продан Oracle в 2014 году с неизвестными планами на будущее.

DragonFlyBSD

Эдвард О'Каллаган начал первоначальный перенос ZFS на DragonFlyBSD.

NetBSD

Порт ZFS для NetBSD был запущен как часть 2007 Google Summer of Code, а в августе 2009 года код был объединен с исходным деревом NetBSD.

FreeBSD

Павел Якуб Давидек перенес ZFS на FreeBSD, и она является частью FreeBSD с версии 7.0. Сюда входит zfsboot, который позволяет загружать FreeBSD непосредственно с тома ZFS.

Реализация ZFS в FreeBSD полностью функциональна; единственные отсутствующие функции - это ядро ​​сервер CIFS и iSCSI, но последний может быть добавлен с помощью внешних пакетов. Samba может использоваться для предоставления CIFS-сервера пользовательского пространства.

FreeBSD 7-STABLE (к которой относятся обновления серии версий 7.x) использует zpool версии 6.

FreeBSD 8 включает в себя значительно обновленную реализацию ZFS и версию zpool. 13 поддерживается. Поддержка zpool версии 14 была добавлена ​​в ветку 8-STABLE 11 января 2010 г. и включена в выпуск FreeBSD 8.1. zpool версии 15 поддерживается в выпуске 8.2. Ветка 8-STABLE получила поддержку zpool версии v28 и zfs версии 5 в начале июня 2011 года. Эти изменения были выпущены в середине апреля 2012 года с FreeBSD 8.3.

FreeBSD 9.0-RELEASE использует пул ZFS версии 28.

FreeBSD 9.2-RELEASE - первая версия FreeBSD, использующая новую реализацию на основе «флагов функций», таким образом, версия Pool 5000.

MidnightBSD

MidnightBSD, операционная система для настольных ПК, производная от FreeBSD, поддерживает пул устройств хранения данных ZFS версии 6 начиная с версии 0.3-RELEASE. Это было получено из кода, включенного в FreeBSD 7.0-RELEASE. Обновление пула хранения 28 выполняется в 0.4-CURRENT и основано на исходных кодах 9-STABLE вокруг кода FreeBSD 9.1-RELEASE.

TrueOS (ранее PC-BSD)

TrueOS (ранее известный as PC-BSD) - это дистрибутив FreeBSD для настольных ПК, унаследовавший его поддержку ZFS.

FreeNAS

FreeNAS, встроенное хранилище с открытым исходным кодом сетевое хранилище ( NAS) на основе FreeBSD, имеет ту же поддержку ZFS, что и FreeBSD, и PC-BSD.

ZFS Guru

, встроенное сетевое хранилище с открытым исходным кодом Распределение (NAS) на основе FreeBSD.

pfSense

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

XigmaNAS

XigmaNAS (ранее NAS4Free), встроенный дистрибутив с открытым исходным кодом сетевое хранилище (NAS) на основе FreeBSD, имеет то же Поддержка ZFS как FreeBSD, пул хранения ZFS версии 5000. Этот проект является продолжением проекта серии FreeNAS 7.

Debian GNU / kFreeBSD

Основанный на ядре FreeBSD, Debian GNU / kFreeBSD имеет поддержку ZFS из ядра. Однако требуются дополнительные пользовательские инструменты, хотя можно использовать ZFS в качестве корневой файловой системы или / boot, и в этом случае необходимая конфигурация GRUB выполняется установщиком Debian, начиная с выпуска Wheezy.

По состоянию на 31 января 2013 г. доступная версия ZPool - 14 для выпуска Squeeze и 28 для выпуска Wheezy-9.

Linux

Хотя файловая система ZFS поддерживает Linux Операционные системы на основе возникают трудности у разработчиков дистрибутива Linux, желающих обеспечить встроенную поддержку ZFS в своих продуктах из-за потенциальной юридической несовместимости между CDDL лицензия, используемая кодом ZFS, и лицензия GPL, используемая ядром Linux. Чтобы включить поддержку ZFS в Linux, необходимо скомпилировать и загрузить в ядро ​​загружаемый модуль ядра , содержащий лицензированный CDDL код ZFS. Согласно Free Software Foundation, формулировка лицензии GPL юридически запрещает распространение полученного продукта как производной работы, хотя эта точка зрения вызвала некоторые разногласия.

ZFS на FUSE

Один из возможных способов обхода несовместимости лицензирования был опробован в 2006 году с экспериментальным переносом кода ZFS в систему Linux FUSE. Файловая система работала полностью в пользовательском пространстве вместо того, чтобы быть интегрированной в ядро ​​Linux, и поэтому не рассматривалась как производная от ядра. Этот подход был функциональным, но имел значительные потери в производительности по сравнению с интеграцией файловой системы в качестве собственного модуля ядра, работающего в пространстве ядра. По состоянию на 2016 год проект ZFS on FUSE, похоже, не функционирует.

Родная ZFS для Linux

Родной порт ZFS для Linux, созданный Ливерморской национальной лабораторией (LLNL), был выпущен в марте 2013 года после следующих ключевых событий:

  • 2008: прототип для определения жизнеспособности
  • 2009: начальная поддержка ZVOL и Lustre
  • 2010: разработка перенесена на GitHub
  • 2011: уровень POSIX добавлено
  • 2011: сообщество первых пользователей
  • 2012: производственное использование ZFS
  • 2013: стабильная GA версия

По состоянию на август 2014 г. ZFS в Linux использует пул OpenZFS с номером версии 5000, что указывает на то, что поддерживаемые функции определены с помощью флагов функций. Эта версия пула - неизменный номер, который, как ожидается, никогда не будет конфликтовать с номерами версий, предоставленными Oracle.

KQ InfoTech

Другой собственный порт для Linux был разработан KQ InfoTech в 2010 году. Этот порт использовался внедрение zvol Ливерморской национальной лаборатории в качестве отправной точки. В январе 2011 года было объявлено о выпуске, поддерживающем zpool v28. В апреле 2011 года компания KQ Infotech была приобретена sTec, Inc., и их работа над ZFS прекратилась. Исходный код этого порта можно найти на GitHub.

Работа KQ InfoTech в конечном итоге была интегрирована в собственный порт LLNL ZFS для Linux.

Распространение исходного кода

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

Интеграция с Ubuntu

Вопрос о совместимости лицензии CDDL с лицензией GPL вновь возник в 2015 году, когда дистрибутив Linux Ubuntu объявил о своем намерении сделать предварительно скомпилированные бинарные модули ядра OpenZFS доступными для конечных пользователей непосредственно из официальных репозиториев пакетов дистрибутива. В 2016 году Ubuntu объявила, что юридическая проверка привела к выводу, что предоставление поддержки ZFS через бинарный модуль ядра не является нарушением положений лицензии GPL. Другие, такие как Закон о свободе программного обеспечения, последовали заключению Ubuntu, в то время как FSF и SFC повторили свою противоположную точку зрения.

Ubuntu 16.04 LTS («Xenial Xerus»), выпущенный 21 апреля, 2016, позволяет пользователю устанавливать двоичные пакеты OpenZFS прямо из репозиториев программного обеспечения Ubuntu. По состоянию на 2019 год против Canonical не было подано никаких юридических возражений относительно распространения этих пакетов.

По состоянию на 2019 год Ubuntu поддерживает экспериментальную установку ZFS в качестве корневой файловой системы, начиная с версии 19.10 («Eoan Ermine»), для поддержки сосуществования почти чистой ОС ZFS с GRUB и другими операционными системами на тот же диск.

Microsoft Windows

Попытка переноса ZFS с открытым исходным кодом была предпринята в 2010 году, но после перерыва в разработке более одного года в 2012 году была прекращена. В октябре 2017 года было объявлено о новом переносе OpenZFS Йорген Лундман на Саммите разработчиков OpenZFS.

Релизы и истории возможностей

В рамках illumos и (с 2013 года) OpenZFS

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

Другие порты и вилки

Ниже приводится список портов и вилок ZFS с открытым исходным кодом:

  • 2006 г.: Началась разработка порта FUSE для Linux.
  • 2007: Apple начала портировать ZFS на Mac OS X.
  • 2008: Был выпущен перенос на FreeBSD как часть FreeBSD 7.0.
  • 2008: Разработка родного Linux порт запущен.
  • 2009: проект Apple ZFS закрыт. Проект MacZFS продолжил разработку кода.

Подробные истории выпусков

С ZFS в Oracle Solaris: по мере появления новых функций номера версий пула и файловой системы увеличиваются для обозначения формата и доступных функций. Для функций, доступных в определенных версиях файловой системы, требуется определенная версия пула.

Распределенная разработка OpenZFS включает флаги функций и пул версии 5000, неизменное число, которое, как ожидается, никогда не будет конфликтовать с версией числа, предоставленные Oracle. Устаревшие номера версий все еще существуют для версий пула 1–28, что подразумевается версией 5000. Illumos использует для этой цели пул версии 5000. Будущие изменения формата на диске включаются / отключаются независимо с помощью флагов функций.

История версий
Условные обозначения:
Последний FOSS стабильный выпуск
Номер версии пула ZFSДата выпускаСущественные изменения
5000OpenZFSНеизменяемая версия пула для обозначения того, что пул указывает новые функции после пула версии 28, используя флаги функций ZFS, а не путем увеличения версии пула

Версии пула и флаги функций

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

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

В OpenZFS версия пула постоянно установлена ​​на 5000, что означает, что пул указывает новые функции путем установки или снятия флажков функций ZFS, а не путем увеличения версии пула. Число 5000 было выбрано, потому что ожидается, что оно никогда не будет конфликтовать с номерами версий, указанными Oracle. Устаревшие номера версий все еще существуют для версий пула 1-28. Будущие изменения формата на диске включаются / отключаются независимо с помощью этих флагов функций.

Устаревшие номера версий все еще существуют для версий пула 1-28 и подразумеваются версией пула 5000; первоначальное предложение заключалось в использовании 1000 в качестве версии для пула. Будущие изменения формата на диске включаются и отключаются независимо с помощью флагов функций.

Флаги функций отображаются как свойства пула в соответствии со следующими правилами схемы именования:

  • Формат имени свойства - feature @ :
  • - обратное DNS-имя организации, разработавшей функцию, обеспечивающую уникальность свойства имена.
  • Имена свойств могут быть сокращены до feature @ , если они остаются недвусмысленными.

Например, [email#160;protected] : async_destroy - допустимое имя свойства, и его можно было бы сократить до [email#160;protected] _destroy.

Каждая функция пула может находиться в отключенном, активном или активном состоянии. Отключенные функции - это те функции, которые не будут использоваться, и изменения формата на диске производиться не будут; в результате такие функции обратно совместимы. Включенные функции - это те, которые будут использоваться, изменения формата на диске еще не производились, но программное обеспечение может вносить изменения в любое время; такие функции по-прежнему обратно совместимы. Активные функции - это те, которые внесли обратно несовместимые изменения дискового формата в пул.

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

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

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

Список флагов функций и поддерживаемые ими операционные системы доступны в разделе Open -ZFS.org Веб-сайт

OpenZFS 2.0

Исторически OpenZFS реализовывалась как базовый код ZFS, и каждая команда разработчиков операционной системы приспосабливала его к своим проектам. В некоторых случаях это приводило к стагнации и расхождению функций и командных строк, поскольку в разных операционных системах разрабатывались разные функции и исправления ошибок, часто для одной платформы, а не для всех платформ. Со временем разработка новых функций сместилась с Illumos на Linux. Затем эти новые функции и исправления необходимо было перенести в Illumos, прежде чем их можно будет повторно перенести на FreeBSD. Но это было сложно, потому что версия для Linux также включала в себя множество мелких изменений, которые было трудно отделить друг от друга.

В 2018 году было решено, что разработка OpenZFS будет пересмотрена, чтобы исправить эти проблемы. Вместо того, чтобы пытаться импортировать все изменения Linux на другие платформы по частям, весь код ZFS Linux будет «развернут» в целом, при этом другие платформы будут основаны на более активно разрабатываемой версии Linux. Широкий спектр портированных и новых функций, включая многие давно желанные улучшения, также будет развернут или перенесен на разные платформы, а будущие изменения будут обсуждаться на разных платформах перед внедрением. В планы входили соответствующие уровни переноса для предотвращения внедрения кода Linux, GPL или Linux-KPI shim на другую платформу ядра.

Функции в процессе или перенос для OpenZFS 2.0 является длинным и включает:

  • Более быстрое развертывание улучшений и новых функций на разных платформах.
  • Стандартизация командной строки
  • Улучшенная переносимость пула (пулы ZFS, созданные в одной системе, могут в равной степени использоваться другой)
  • Более широкая кроссплатформенная четность и независимость от платформы
  • Накладные (объединенные) монтирования принимаются по умолчанию
  • Исправлены ошибки и улучшения
  • ZTS и различные другие функции, работающие во FreeBSD
  • TRIM и ACL Усовершенствования MODE
  • ZFS удерживает (из FreeBSD)
  • Enhanced native NFSv4 ACL (FreeBSD)
  • Улучшенная AES-GCM производительность для зашифрованных пулов
  • Отредактированная отправка / получение
  • Log spacemap и другие улучшения управления метаслабами - проект для повторно внедрить управление ZFS Свободное пространство и «метаслаборатории» для большей эффективности
  • Быстрое удаление клонов
  • Сжатие данных Zstd как новая опция
  • Наследование свойств программы канала
  • AltiVec RAID-Z
  • Поддержка закладок и копирование
  • поддержка
  • Постоянный L2ARC (L2ARC сохраняется при перезагрузках)
  • Последовательная (высокоскоростная) очистка и восстановление
  • Пауза / возобновление прокрутки
  • Resilver restart
  • Удаление устройства (VDEV)
  • Инициализация Zpool и контрольная точка
  • Программы каналов
  • Large Dnode
  • Классы распределения (позволяющие назначать конкретное высокоскоростное хранилище для метаданных и таблиц дедупликации)
  • Монтирование параллельного пула
  • Per- Свойства vdev
  • Усовершенствования дедупликации - dedup-log (высокоскоростная дедупликация), ограничения на размер таблицы дедупликации и предварительная загрузка таблицы дедупликации (загружается полностью за один раз, а не по частям), помеченные как "неплохо иметь" в 2018, все было заявлено в апреле 2020 года как "приближение ni cely "или в значительной степени завершенный
См. также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Викискладе есть медиафайлы на OpenZFS.
Последняя правка сделана 2021-06-01 12:38:32
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте