OpenZFS - OpenZFS

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

OpenZFS является Открытый исходный код платформа хранения, которая включает в себя функции традиционных файловые системы и менеджер тома. Включает защиту от повреждение данных, поддержка большой емкости, эффективная Сжатие данных, снимки и копирование при записи клоны, постоянная проверка целостности и автоматический ремонт, шифрование, удаленный репликация с ZFS для отправки и получения, и RAID-Z. Одноименный OpenZFS проект собирает вместе разработчиков платформ Illumos, Linux, FreeBSD и macOS, а также широкий круг компаний на ежегодном саммите разработчиков OpenZFS.[3][4][5][6][7][8]

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

История

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

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

  • 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 как его преемника с открытым исходным кодом,[16][17] и продолжил разработку ZFS в открытую. Переносы ZFS на другие платформы продолжали получать изменения от Illumos.
  • 2012: Флаги функций были введены для замены устаревших номеров версий на диске, что позволило упростить распределенную эволюцию дискового формата ZFS для поддержки новых функций.
  • 2013: сосуществование со стабильной версией MacZFS, ее прототипное поколение (известное как OpenZFS в OS X или O3X) использует ZFS в Linux в качестве новой исходной кодовой базы.[18][19]
  • 2013: Первый стабильный выпуск ZFS для Linux.[20]
  • 2013: Официальное объявление OpenZFS зонтичным проектом.[4][7] Новые функции и исправления регулярно загружаются в OpenZFS из illumos и помещаются во все порты на другие платформы, и наоборот.[13]
  • 2016: Ubuntu 16.04 по умолчанию включает вариант файловой системы ZFS с открытым исходным кодом

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

Поскольку ФСПО потребовал Юридическая несовместимость CDDL и GPL в 2005 году реализация Sun файловой системы ZFS не использовалась в качестве основы для разработки Ядро Linux модуль, он не был объединен с Основная линия ядра Linux, и Дистрибутивы Linux не включал его как предварительно скомпилированный модуль ядра.[21][22] В качестве обходного пути ПРЕДОХРАНИТЕЛЬ, фреймворк, который позволяет файловым системам работать в пространство пользователя, использовался в Linux как разделительный слой, для которого не действуют вопросы лицензирования, хотя и с рядом собственных проблем, включая снижение производительности.[14][23] Однако выпуск в апреле 2016 г. Ubuntu 16.04 LTS включает лицензию CDDL ZFS в Linux[24] как модуль ядра, который поддерживается как отдельный проект вне основной ветки ядра Linux, заявив о совместимости с лицензией.[25][26][27]

Apple / MacOS

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

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

Реализации

Солярис

OpenSolaris

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

OpenIndiana

OpenIndiana использует OpenZFS с флаги функций как реализовано в Иллюмос. ZFS версии 28 использовалась до версии 151a3.[39]

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

BSD

macOS

OpenZFS на OSX (сокращенно O3X) - это реализация ZFS для macOS.[41] 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 и флаги функций.[42][43]

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

DragonFlyBSD

Эдвард О'Каллаган запустил начальный перенос ZFS на DragonFlyBSD.[45]

NetBSD

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

FreeBSD

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

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

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

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

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

FreeBSD 9.2-RELEASE - первая версия FreeBSD, в которой используется реализация на основе новых «флагов функций», то есть версия Pool 5000.[58]

MidnightBSD

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

TrueOS (ранее PC-BSD)

TrueOS (ранее известный как PC-BSD) - это дистрибутив FreeBSD, ориентированный на настольные компьютеры, который наследует поддержку ZFS.[нужна цитата ]

FreeNAS

FreeNAS, встроенный открытый исходный код Network Attached Storage (NAS) распределение на основе FreeBSD, имеет ту же поддержку ZFS, что и FreeBSD, и PC-BSD.[нужна цитата ]

ZFS Guru

ZFS Guru, встроенный открытый исходный код Network Attached Storage (NAS) распределение на основе FreeBSD.[59]

pfSense

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

XigmaNAS

XigmaNAS (ранее NAS4Free), встроенный открытый исходный код Network Attached Storage (NAS) распределение на основе FreeBSD, имеет ту же поддержку ZFS, что и FreeBSD, пул хранения ZFS версии 5000. Этот проект является продолжением проекта FreeNAS 7-й серии.[60]

Debian GNU / kFreeBSD

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

По состоянию на 31 января 2013 г. доступная версия ZPool - 14 для Сжимать выпуск, и 28 для Хрип-9 релиз.[64]

Linux

Хотя файловая система ZFS поддерживает Linux -системы, возникают трудности для Дистрибутив Linux сопровождающие, желающие обеспечить встроенную поддержку ZFS в своих продуктах из-за потенциальная юридическая несовместимость между CDDL лицензия, используемая кодом ZFS, и GPL лицензия, используемая ядром Linux. Чтобы включить поддержку ZFS в Linux, загружаемый модуль ядра содержащий код ZFS с лицензией CDDL, должен быть скомпилирован и загружен в ядро. Согласно Фонд свободного программного обеспечения, формулировка лицензии GPL юридически запрещает распространение полученного продукта в качестве производная работа,[65][66] хотя эта точка зрения вызвала некоторые споры.[67][68]

ZFS на FUSE

Один из возможных способов обхода несовместимости лицензирования был опробован в 2006 году с экспериментальным переносом кода ZFS на Linux. ПРЕДОХРАНИТЕЛЬ система. В файловая система полностью в пространство пользователя вместо того, чтобы быть интегрированным в ядро ​​Linux, и поэтому не считался производным от ядра. Этот подход был функциональным, но страдал от значительного снижения производительности по сравнению с интеграцией файловой системы в качестве собственного модуля ядра, работающего в пространство ядра.[69] По состоянию на 2016 год проект ZFS on FUSE, похоже, не функционирует.

Собственная ZFS в Linux

Собственный порт ZFS для Linux, созданный Национальная лаборатория Лоуренса Ливермора (LLNL) был выпущен в марте 2013 г.,[70][71] после этих ключевых событий:[72]

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

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

KQ InfoTech

Еще один собственный порт для Linux был разработан KQ InfoTech в 2010 году.[74][75] Этот порт использовал Звол внедрение из Ливерморской национальной лаборатории Лоуренса в качестве отправной точки. Релиз, поддерживающий zpool Версия 28 была анонсирована в январе 2011 года.[76] В апреле 2011 года KQ Infotech была приобретена sTec, Inc., и их работа над ZFS прекратилась.[77] Исходный код этого порта можно найти на GitHub.[78]

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

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

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

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

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

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

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

Майкрософт Виндоус

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

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

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

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

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

Ниже приведен список портов и вилок ZFS с открытым исходным кодом:[72][98]

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

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

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

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

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

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

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

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

В более распределенная разработка Модель с одним номером версии далеко не идеальна, поскольку все реализации OpenZFS должны согласовывать все изменения в формате файловой системы на диске. Решение, выбранное OpenZFS, заключалось в том, чтобы ввести флаги функций как новый система управления версиями который помечает изменения формата на диске уникальными именами и поддерживает как полностью независимые изменения формата, так и изменения формата, которые зависят друг от друга. Пул можно перемещать и использовать между реализациями OpenZFS, если все флаги функций, используемые пулом, поддерживаются обеими реализациями.[15]:20,26–27[106]:2–3[107]

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

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

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

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

Например, [email protected]: async_destroy - допустимое имя свойства, и его можно сократить до особенность @ async_destroy.[106]:4

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

Когда включена какая-либо функция пула, старая версия пула автоматически обновляется до 5000, а также включаются любые другие обязательные функции. По умолчанию новые пулы создаются со всеми поддерживаемыми функциями. Как правило, состояние функции можно изменить с активный вернуться к включено, отменив выполненные таким образом изменения формата на диске и снова сделав пул совместимым со старой реализацией OpenZFS; однако для некоторых функций это может быть невозможно.[106]:5,9[111]

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

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

Список флагов функций и поддерживающих их операционных систем доступен на веб-сайте Open-ZFS.org.[112]

OpenZFS 2.0

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

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

Функции, которые разрабатываются или переносятся на OpenZFS 2.0, обширны и включают:

  • Более быстрое развертывание улучшений и новых функций на разных платформах.[113]
  • Стандартизация командной строки[113]
  • Улучшенная переносимость пулов (пулы ZFS, созданные в одной системе, могут в равной степени использоваться в другой)[12]
  • Более широкий кроссплатформенный паритет функций и независимость от платформы[12]
  • Накладные (объединенные) крепления принимаются по умолчанию[12]
  • Исправления ошибок и улучшения[12]
  • ZTS и различные другие функции, работающие во FreeBSD[12]
  • ПОДРЕЗАТЬ и ACL Улучшения MODE[12][113]
  • ZFS держит (из FreeBSD)[12]
  • Улучшенный собственный NFSv4 ACL (FreeBSD)[12]
  • Повышенная AES-GCM производительность для зашифрованных пулов[12]
  • Отредактировано отправка / получение[12]
  • Карта пространства журналов и другие усовершенствования управления метаслабами - проект по повторной реализации управления свободным пространством и «метаслабами» ZFS для гораздо большей эффективности.[12]
  • Быстрое удаление клона[12]
  • Сжатие данных ZSTD как новая опция[12]
  • Наследование свойств программы канала[12]
  • AltiVec RAID-Z[12]
  • Поддержка закладок и копирование[12]
  • Прямой ввод-вывод поддерживать[12]
  • Постоянный L2ARC (L2ARC сохраняется после перезагрузки)[12]
  • Последовательная (высокоскоростная) очистка и удаление серебра[113]
  • Пауза / возобновление очистки[113]
  • Resilver перезапуск[113]
  • Удаление устройства (VDEV)[113]
  • Zpool инициализация и контрольная точка[113]
  • Канальные программы[113]
  • Большой Dnode[113]
  • Классы распределения (позволяющие назначать конкретное высокоскоростное хранилище для метаданные и таблицы дедупликации)[113]
  • Параллельный монтаж бассейна[113]
  • Per-vdev свойства[113]
  • Усовершенствования дедупликации - dedup-log (высокоскоростная дедупликация), ограничения на размер таблицы дедупликации и предварительная загрузка таблицы дедупликации (загружается полностью за один раз, а не по частям по мере необходимости), отмеченные как «приятно иметь» в 2018 году, были заявлены в апреле 2020 быть "приятным" или в значительной степени завершенным[114]

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

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

  1. ^ а б "Что такое ZFS?". Руководство администратора Oracle Solaris ZFS. Oracle. В архиве из оригинала 4 марта 2016 г.. Получено 29 декабря, 2015.
  2. ^ «Дистрибутивы OpenZFS с открытым исходным кодом». Получено 17 мая, 2020.
  3. ^ Шон Майкл Кернер (18 сентября 2013 г.). «LinuxCon: OpenZFS продвигает вперед систему хранения с открытым исходным кодом». infostor.com. Получено 9 октября, 2013.
  4. ^ а б «Запуск проекта OpenZFS». LWN.net. 17 сентября 2013 г.. Получено 1 октября, 2013.
  5. ^ Адам Левенталь (17 сентября 2013 г.). «OpenZFS: следующий этап развития ZFS». dtrace.org. Получено 1 октября, 2013.
  6. ^ Мэтт Аренс (2 октября 2012 г.). «День ZFS» (PDF). mahrens.org. Получено 13 ноября, 2013.
  7. ^ а б "Объявление OpenZFS". open-zfs.org. 17 сентября 2013 г.. Получено 19 сентября, 2013.
  8. ^ а б «OpenZFS - Сообщества, сотрудничающие над кодом и функциями ZFS». freebsdnews.net. 23 сентября 2013 г.. Получено 14 марта, 2014.
  9. ^ "История OpenZFS". openzfs.org. Получено 17 мая, 2020.
  10. ^ https://github.com/zfsonfreebsd/ZoF
  11. ^ https://www.ixsystems.com/blog/freenas-truenas-unification
  12. ^ а б c d е ж грамм час я j k л м п о п q р s https://github.com/openzfs/zfs/projects/25
  13. ^ а б c "История OpenZFS". open-zfs.org. Получено 24 сентября, 2013.
  14. ^ а б Петрос Кутупис (1 июня 2016 г.). "ZFS: На пути к Linux рядом с вами?". Linux журнал. Получено 4 июля, 2016.
  15. ^ а б Мэтт Аренс; Брайан Белендорф (17 сентября 2013 г.). «LinuxCon 2013: OpenZFS» (PDF). Linux Foundation. Получено 13 ноября, 2013.
  16. ^ Брайан Кэнтрилл (8 декабря 2011 г.). "Fork Yeah! Возникновение и развитие иллюзий". SlideShare. Получено 24 сентября, 2013.
  17. ^ "Часто задаваемые вопросы об иллюмосе". illumos.org. Получено 24 сентября, 2013.
  18. ^ «MacZFS: Официальный сайт бесплатной ZFS для Mac OS». code.google.com. Получено 2 марта, 2014.
  19. ^ «OpenZFS на OS X». openzfsonosx.org. 15 ноября 2014 г.. Получено 23 ноября, 2014.
  20. ^ Джонатан Корбет (29 марта 2013 г.). «ZFS в Linux 0.6.1». LWN.net. Получено 4 июля, 2016.
  21. ^ Эбен Моглен; Миши Чоудхарил (26 февраля, 2016). «Ядро Linux, CDDL и связанные с этим вопросы». softwarefreedom.org. Получено 30 марта, 2016.
  22. ^ Брэдли М. Кун; Карен М. Сандлер (25 февраля 2016 г.). «Нарушения GPL, связанные с объединением ZFS и Linux». sfconservancy.org. Получено 30 марта, 2016.
  23. ^ Райан Пол (9 июня 2010 г.). «Использование собственного порта Linux ZFS затруднено из-за конфликта лицензий». Ars Technica. Получено 1 июля, 2014.
  24. ^ «ZFS в Linux: Часто задаваемые вопросы: Лицензирование». github.com. 26 мая, 2016. Получено 3 июля, 2016.
  25. ^ Саймон Шарвуд (21 апреля 2016 г.). «Ubuntu 16.04 LTS выходит сегодня в комплекте с запрещенной файловой системой ZFS». Реестр. Получено 3 июля, 2016.
  26. ^ Майкл Ларабель (6 октября 2015 г.). «Ubuntu планирует сделать файловую систему ZFS« стандартным »предложением». Фороникс. Получено 3 июля, 2016.
  27. ^ Джеймс Боттомли (23 февраля 2016 г.). «Совместимы ли GPLv2 и CDDL?». hansenpartnership.com. Получено 3 июля, 2016.
  28. ^ «Apple: Leopard предлагает ограниченную ZFS только для чтения». MacNN. 12 июня 2007 г. В архиве с оригинала от 19 июня 2007 г.. Получено 23 июня, 2007.
  29. ^ «Apple предоставляет предварительную версию 1.1 для чтения / записи ZFS для Leopard». Ars Technica. 7 октября 2007 г. В архиве из оригинала 10 октября 2007 г.. Получено 7 октября, 2007.
  30. ^ Че Кристо (18 ноября 2007 г.). «ZFS Beta Seed v1.1 не устанавливается на Leopard.1 (10.5.1)» «идеи бесплатны». Архивировано из оригинал 24 декабря 2007 г.. Получено 30 декабря, 2007.
  31. ^ ZFS.macosforge.org В архиве 2 ноября 2009 г. Wayback Machine
  32. ^ http://alblue.blogspot.com/2008/11/zfs-119-on-mac-os-x.html В архиве 20 февраля 2012 г. Wayback Machine | title = Alblue.blogspot.com
  33. ^ "Снежный барс (кеш archive.org)". 21 июля 2008 г. Архивировано с оригинал 21 июля 2008 г.
  34. ^ "Снежный барс". 9 июня 2009 г. В архиве из оригинала 21 июля 2008 г.. Получено 10 июня, 2008.
  35. ^ "zfs-macos | Группы Google". В архиве из оригинала 8 ноября 2012 г.. Получено 4 ноября, 2011.
  36. ^ "maczfs - Официальный сайт бесплатной ZFS для Mac OS - Хостинг проектов Google". В архиве из оригинала от 29 июля 2016 г.. Получено 30 июля, 2012.
  37. ^ MacZFS В архиве 13 мая 2016 г. Wayback Machine на github
  38. ^ Страница часто задаваемых вопросов В архиве 19 марта 2015 г. Wayback Machine на code.google.com/p/maczfs
  39. ^ "Примечания к выпуску oi_151a_prestable5". В архиве из оригинала 17 мая 2016 г.. Получено 23 мая, 2016.
  40. ^ «Обновление с OpenSolaris». В архиве из оригинала 26 сентября 2011 г.. Получено 24 сентября, 2011.
  41. ^ «OpenZFS на OS X». openzfsonosx.org. 29 сентября 2014 г. В архиве с оригинала 29 ноября 2014 г.. Получено 23 ноября, 2014.
  42. ^ а б c «Возможности - OpenZFS - Флаги функций». OpenZFS. В архиве из оригинала 22 сентября 2013 г.. Получено 22 сентября, 2013.
  43. ^ «MacZFS: официальный сайт бесплатной ZFS для Mac OS». code.google.com. MacZFS. В архиве с оригинала 19 марта 2015 г.. Получено 2 марта, 2014.
  44. ^ "ZEVO Wiki Site / ZFS версии пула и файловой системы". GreenBytes, Inc. 15 сентября 2012 г. В архиве с оригинала 10 августа 2014 г.. Получено 22 сентября, 2013.
  45. ^ "Филиал Github zfs-port". 23 сентября 2014 г. В архиве с оригинала 9 января 2016 г.. Получено 5 октября, 2014.
  46. ^ "Проекты NetBSD Google Summer of Code: ZFS". В архиве с оригинала 11 октября 2007 г.. Получено 5 сентября, 2007.
  47. ^ Давидек, Павел (6 апреля 2007 г.). "ZFS привержена базе FreeBSD". В архиве из оригинала 13 октября 2012 г.. Получено 6 апреля, 2007.
  48. ^ «Редакция 192498». 20 мая 2009 г.. Получено 22 мая, 2009.
  49. ^ "ZFS v13 в 7-STABLE". 21 мая 2009 года. Архивировано с оригинал 27 мая 2009 г.. Получено 22 мая, 2009.
  50. ^ "цель iSCSI для FreeBSD". Архивировано из оригинал 14 июля 2011 г.. Получено 6 августа, 2011.
  51. ^ "Примечания к выпуску FreeBSD 8.0-RELEASE". FreeBSD. В архиве с оригинала 29 ноября 2009 г.. Получено 27 ноября, 2009.
  52. ^ "Журналы Subversion FreeBSD 8.0-STABLE". FreeBSD. Получено 5 февраля, 2010.
  53. ^ "Примечания к выпуску FreeBSD 8.2-RELEASE". FreeBSD. В архиве из оригинала 12 апреля 2011 г.. Получено 9 марта, 2011.
  54. ^ «В ГОЛОВУ: ZFS v28 объединена с 8-STABLE». 6 июня 2011 г. В архиве из оригинала от 20 июля 2011 г.. Получено 11 июня, 2011.
  55. ^ "Объявление о выпуске FreeBSD 8.3". В архиве с оригинала 18 июня 2012 г.. Получено 11 июня, 2012.
  56. ^ Павел Якуб Давидек. «ZFS v28 готов к более широкому тестированию». В архиве с оригинала 31 октября 2010 г.. Получено 31 августа, 2010.
  57. ^ «Примечания к выпуску FreeBSD 9.0-RELEASE». FreeBSD. В архиве из оригинала 13 января 2012 г.. Получено 12 января, 2012.
  58. ^ «Примечания к выпуску FreeBSD 9.2-RELEASE». FreeBSD. В архиве из оригинала 3 октября 2013 г.. Получено 30 сентября, 2013.
  59. ^ «Возможности - ZFS guru». ZFS гуру. В архиве с оригинала 8 августа 2017 г.. Получено 24 октября, 2017.
  60. ^ «NAS4Free: особенности». В архиве из оригинала 6 февраля 2015 г.. Получено 13 января, 2015.
  61. ^ "Часто задаваемые вопросы о Debian GNU / kFreeBSD". Есть ли поддержка ZFS?. В архиве из оригинала 27 сентября 2013 г.. Получено 24 сентября, 2013.
  62. ^ "Часто задаваемые вопросы о Debian GNU / kFreeBSD". Могу ли я использовать ZFS в качестве корневой файловой системы или файловой системы / boot?. В архиве с оригинала 18 января 2019 г.. Получено 24 сентября, 2013.
  63. ^ "Часто задаваемые вопросы о Debian GNU / kFreeBSD". Какие команды grub необходимы для загрузки Debian / kFreeBSD из корня zfs?. В архиве с оригинала 18 января 2019 г.. Получено 24 сентября, 2013.
  64. ^ Ларабель, Майкл (10 сентября 2010 г.). «Debian GNU / kFreeBSD становится более интересным». Фороникс. В архиве с оригинала от 29 ноября 2016 г.. Получено 24 сентября, 2013.
  65. ^ Эбен Моглен; Миши Чоудхарил (26 февраля, 2016). «Ядро Linux, CDDL и связанные с этим вопросы». softwarefreedom.org. В архиве с оригинала от 1 апреля 2016 г.. Получено 30 марта, 2016.
  66. ^ Брэдли М. Кун; Карен М. Сандлер (25 февраля 2016 г.). «Нарушения GPL, связанные с объединением ZFS и Linux». sfconservancy.org. В архиве с оригинала 3 апреля 2016 г.. Получено 30 марта, 2016.
  67. ^ «Линус по GPLv3 и ZFS». Lwn.net. 12 июня 2007 г. В архиве с оригинала 23 июля 2011 г.. Получено 4 ноября, 2011.
  68. ^ Райан Пол (9 июня 2010 г.). «Использование собственного порта Linux ZFS затруднено из-за конфликта лицензий». Ars Technica. В архиве из оригинала 14 июля 2014 г.. Получено 1 июля, 2014.
  69. ^ Адитья Раджгархия и Ашиш Гехани (23 ноября 2012 г.). «Производительность и расширение файловых систем пользовательского пространства» (PDF). В архиве (PDF) из оригинала 7 сентября 2014 г.. Получено 23 ноября, 2012.
  70. ^ Белендорф, Брайан (28 мая 2013 г.). "Выпущен spl / zfs-0.6.1". список рассылки zfs-announce. В архиве из оригинала от 8 июня 2013 г.. Получено 9 октября, 2013.
  71. ^ «ZFS в Linux». В архиве с оригинала 22 мая 2019 г.. Получено 29 августа, 2013.
  72. ^ а б Мэтт Аренс; Брайан Белендорф (17 сентября 2013 г.). «LinuxCon 2013: OpenZFS» (PDF). linuxfoundation.org. Получено 13 ноября, 2013.
  73. ^ «ZFS в Linux». zfsonlinux.org. В архиве с оригинала 22 мая 2019 г.. Получено 13 августа, 2014.
  74. ^ Даршин (24 августа 2010 г.). «Порт ZFS на Linux (все версии)». Архивировано из оригинал 11 марта 2012 г.. Получено 31 августа, 2010.
  75. ^ «Где взять исходный код ZFS для Linux?». Архивировано из оригинал 8 октября 2011 г.. Получено 29 августа, 2013.
  76. ^ Phoronix (22 ноября 2010 г.). «Запуск собственного модуля ядра ZFS Linux, плюс тесты». В архиве с оригинала от 11 декабря 2010 г.. Получено 7 декабря, 2010.
  77. ^ а б «Над KQ ZFS Linux больше не ведется активной работы». 10 июня 2011 г. В архиве с оригинала 29 ноября 2016 г.. Получено 14 сентября, 2016.
  78. ^ "zfs-linux / zfs". В архиве из оригинала 16 мая 2011 г.. Получено 15 сентября, 2011.
  79. ^ «ZFS - документация Gentoo». gentoo.org. В архиве с оригинала 3 октября 2013 г.. Получено 9 октября, 2013.
  80. ^ "Корень ZFS". Slackware ZFS root. SlackWiki.com. В архиве с оригинала 14 августа 2014 г.. Получено 13 августа, 2014.
  81. ^ "Корень ZFS (встроенный)". Slackware ZFS root (встроенный). SlackWiki.com. В архиве с оригинала 14 августа 2014 г.. Получено 13 августа, 2014.
  82. ^ Майкл Ларабель (6 октября 2015 г.). «Ubuntu планирует сделать файловую систему ZFS« стандартным »предложением». Фороникс. В архиве с оригинала 30 июня 2016 г.. Получено 30 июня, 2016.CS1 maint: использует параметр авторов (связь)
  83. ^ Дастин Киркланд (18 февраля 2016 г.). «Лицензирование ZFS и Linux». Ubuntu Insights. Канонический. В архиве из оригинала 29 июля 2016 г.. Получено 30 июня, 2016.CS1 maint: использует параметр авторов (связь)
  84. ^ Совместимы ли GPLv2 и CDDL? В архиве 1 марта 2016 г. Wayback Machine on hansenpartnership.com by James E.J. Bottomley "What the above analysis shows is that even though we presumed combination of GPLv2 and CDDL works to be a technical violation, there's no way actually to prosecute such a violation because we can't develop a convincing theory of harm resulting. Because this makes it impossible to take the case to court, effectively it must be concluded that the combination of GPLv2 and CDDL, provided you're following a GPLv2 compliance regime for all the code, is allowable." (February 23, 2016)
  85. ^ Moglen, Eben; Choudhary, Mishi (February 26, 2016). "The Linux Kernel, CDDL and Related Issues". В архиве from the original on July 14, 2016. Получено 30 июня, 2016.
  86. ^ GPL Violations Related to Combining ZFS and Linux В архиве June 5, 2016, at the Wayback Machine on sfconservancy.org by Bradley M. Kuhn и Karen M. Sandler "Ultimately, various Courts in the world will have to rule on the more general question of Linux combinations. Conservancy is committed to working towards achieving clarity on these questions in the long term. That work began in earnest last year with the VMware lawsuit, and our work in this area will continue indefinitely, as resources permit. We must do so, because, too often, companies are complacent about compliance. While we and other community-driven organizations have historically avoided lawsuits at any cost in the past, the absence of litigation on these questions caused many companies to treat the GPL as a weaker copyleft than it actually is." (February 25, 2016)
  87. ^ GPL Violations Related to Combining ZFS and Linux В архиве June 5, 2016, at the Wayback Machine on sfconservancy.org by Bradley M. Kuhn и Karen M. Sandler "Conservancy (as a Linux copyright holder ourselves), along with the members of our coalition in the GPL Compliance Project for Linux Developers, all agree that Canonical and others infringe Linux copyrights when they distribute zfs.ko."
  88. ^ Ubuntu 16.04 LTS arrives today complete with forbidden ZFS В архиве July 3, 2016, at the Wayback Machine on the theregister.com (April 21, 2016)
  89. ^ "ZFS filesystem will be built into Ubuntu 16.04 LTS by default". Ars Technica. February 18, 2016. В архиве from the original on July 8, 2017. Получено 15 июня, 2017.
  90. ^ Larabel, Michael. "Taking ZFS For A Test Drive On Ubuntu 16.04 LTS". phoronix. Phoronix Media. В архиве from the original on September 19, 2016. Получено April 25, 2016.
  91. ^ "How to install ubuntu mate onto single sdd with zfs as main fs". Ubuntu MATE. ubuntu-mate.community. January 21, 2016. В архиве from the original on April 26, 2016. Получено April 25, 2016.
  92. ^ "Ubuntu ZFS support in 19.10: Introduction". August 6, 2019. В архиве from the original on October 23, 2019. Получено 23 октября, 2019.
  93. ^ Salter, Jim (October 10, 2019). "A detailed look at Ubuntu's new experimental ZFS installer". Ars Technica. В архиве from the original on December 31, 2019. Получено January 14, 2020.
  94. ^ "zfs-win". Поиск Гугл. Google Code Archive. В архиве с оригинала 30 декабря 2016 г.. Получено December 11, 2017.
  95. ^ "Open ZFS File-System Running On Windows". Фороникс. В архиве from the original on December 11, 2017. Получено December 11, 2017.
  96. ^ "OpenZFS on Windows". GitHub. В архиве from the original on November 20, 2017. Получено December 11, 2017.
  97. ^ "illumos FAQs". illumos. Получено 24 сентября, 2013.
  98. ^ "OpenZFS History". OpenZFS. Получено 24 сентября, 2013.
  99. ^ "Solaris ZFS Administration Guide, Appendix A ZFS Version Descriptions". Oracle Corporation. 2010. В архиве from the original on April 6, 2011. Получено 11 февраля, 2011.
  100. ^ "Oracle Solaris ZFS Version Descriptions". Корпорация Oracle. В архиве from the original on February 1, 2018. Получено 31 января, 2018.
  101. ^ Siden, Christopher (January 2012). "ZFS Feature Flags" (PDF). Illumos Meetup. Delphix. п. 4. Архивировано из оригинал (PDF) on April 3, 2013. Получено 22 сентября, 2013.
  102. ^ "/usr/src/uts/common/sys/fs/zfs.h (line 338)". illumos (GitHub). В архиве from the original on February 11, 2016. Получено November 16, 2013.
  103. ^ "/usr/src/uts/common/fs/zfs/zfeature.c (line 89)". illumos (GitHub). В архиве from the original on February 11, 2016. Получено November 16, 2013.
  104. ^ "Solaris ZFS Administration Guide, Appendix A ZFS Version Descriptions". Корпорация Oracle. 2010. Получено 11 февраля, 2011.
  105. ^ "Oracle Solaris ZFS Version Descriptions". Корпорация Oracle. Получено 23 сентября, 2013.
  106. ^ а б c d е ж грамм час Christopher Siden (January 11, 2012). "ZFS Feature Flags (Illumos Meetup)" (PDF). delphix.com. Архивировано из оригинал (PDF) on April 3, 2013. Получено 4 июля, 2016.
  107. ^ "OpenZFS Features – Feature flags". open-zfs.org. Получено 23 сентября, 2013.
  108. ^ Siden, Christopher (January 2012). "ZFS Feature Flags" (PDF). Illumos Meetup. Delphix. п. 4. Архивировано из оригинал (PDF) on April 3, 2013. Получено 22 сентября, 2013.
  109. ^ "/usr/src/uts/common/sys/fs/zfs.h (line 338)". illumos (GitHub). Получено November 16, 2013.
  110. ^ "/usr/src/uts/common/fs/zfs/zfeature.c (line 89)". illumos (GitHub). Получено November 16, 2013.
  111. ^ а б "OpenZFS FAQ: Are storage pools created by OpenZFS portable between operating systems?". open-zfs.org. 26 сентября 2013 г.. Получено 30 октября, 2015.
  112. ^ "Feature Flags – OpenZFS". open-zfs.org.
  113. ^ а б c d е ж грамм час я j k л м п о п q р s т https://papers.freebsd.org/2019/BSDCan/jude-The_Future_of_OpenZFS_and_FreeBSD.files/jude-The_Future_of_OpenZFS_and_FreeBSD.pdf
  114. ^ OpenZFS Leadership Team - Meeting Agenda and Notes

внешняя ссылка