Freenas поддержка файловых систем: ZFS — лучшая файловая система (пока) / Хабр

ZFS — лучшая файловая система (пока) / Хабр

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

Первая директива систем хранения: не возвращать неправильные данные!

Революция ZFS. Около 2006 года

В своих статьях о FreeNAS я настойчиво повторял, что «ZFS — самая лучшая файловая система», но если вы посмотрите мои сообщения в социальных медиа, то станет ясно, что мне она на самом деле не совсем нравится. Я пришёл к выводу, что такое противоречие требует объяснения и контекста, так что рискнём потревожить фанатов ZFS и сделаем это.

Когда ZFS впервые появилась в 2005 году, она была абсолютно своевременной, но она застряла там до сих пор. Разработчики ZFS сделали много правильных вещей, объединив лучшие функции диспетчера томов с файловой системой «зеттабайтного масштаба» в Solaris 10:

  • ZFS достигла такого уровня масштабируемости, который должна иметь каждая современная файловая система, практически без ограничений на количество данных и метаданных и размер файлов.
  • ZFS проверяет контрольные суммы всех данных и метаданных для обнаружения повреждений, это совершенно необходимая функция для долговременного крупномасштабного хранения данных.
  • Когда ZFS выявляет ошибку, то может автоматически восстановить данные с зеркал, блоков чётности или альтернативных мест хранения.
  • В систему встроены зеркалирование и RAID-Z, за счёт чего многочисленные накопители органично объединяются в один логический том.
  • ZFS имеет надёжные функции для подготовки снапшотов и зеркал, в том числе возможность пошагово обновлять данные на других томах.
  • Данные можно сжимать на лету, также поддерживается дедупликация.

Когда появилась ZFS, это была революционная система, по сравнению со старыми диспетчерами томов и файловыми системами. И Sun открыла бóльшую часть исходного кода ZFS, позволив портировать её на другие операционные системы. Как любимая игрушка всей индустрии, ZFS быстро появилась на Linux и FreeBSD, и даже Apple начала внедрять её как часть файловой системы следующего поколения в Mac OS X! Будущее казалось таким светлым!

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

С 2007 по 2010-й: ZFS пошла под откос

Но что-то ужасное случилось с ZFS на пути к её триумфу: судебные иски, проблемы с лицензиями и FUD — тактика психологической манипуляции от недоброжелателей.

Первые тучи появились в 2007 году, когда NetApp подала иск к Sun на основании того, что ZFS нарушает их патенты на WAFL. Sun ответила встречным иском в том же году — и юридические тяжбы затянулись. Хотя в ZFS определённо не было кода NetApp, но механизм копирования при записи в снапшоты был похож на WAFL, и некоторые из нас в индустрии обеспокоились, что иск NetApp повлияет на доступность открытых исходников ZFS. Этих рисков оказалось достаточно для Apple, чтобы отказаться от поддержки ZFS в Mac OS X 10.6 “Snow Leopard” прямо перед выпуском этой ОС.

Вот отличный блог о ZFS и Apple от Адама Левенталя, который работал над этим проектом в компании: ZFS: Apple’s New Filesystem That Wasn’t

Тогда Sun переживала трудные времена, и Oracle воспользовалась моментом для покупки компании. Это посеяло новые сомнения о будущем ZFS, поскольку Oracle известна как не большой любитель широкой общественной поддержки свободных проектов. А лицензия CDDL, которую Oracle применила к коду ZFS, признана несовместимой с GPLv2, которая используется в Linux, что делает невозможным использование ZFS в самой популярной в мире ОС для серверов.

Хотя проект OpenSolaris продолжился и после приобретения Oracle, а ZFS включили во FreeBSD, но это было в значительной степени за пределами корпоративного сектора. Конечно, NexentaStor и GreenBytes помогли продвинуть ZFS в корпоративном секторе, но недостаток поддержки серверов Sun со стороны Oracle тоже начал влиять на ситуацию.

Какие проблемы у ZFS сейчас?

OpenZFS практически не отличается от той файловой системы, что была десять лет назад.

Многие продолжают скептически относиться к дедупликации, которая требует много дорогой памяти. И я действительно имею в виду дорогой: практически каждый ZFS FAQ однозначно требует наличия памяти только ECC и минимум 8 ГБ. По моему собственному опыту с FreeNAS, для активного маленького сервера с ZFS подойдёт 32 ГБ, а это стоит $200-300 даже по сегодняшним ценам.

И ZFS так и по-настоящему не приспособился к флеш-памяти, которая сейчас используется повсеместно. Хотя флеш можно использовать для кэшей ZIL и L2ARC, это сомнительное преимущество для систем с достаточным количеством RAM, и у ZFS нет настоящей функции гибридного хранилища данных. Смехотворно, что в документации ZFS повсеместно упоминаются несколько гигабайт флеш-памяти SLC, когда на рынке уже есть многотерабайтные диски 3D NAND. И никто не говорит о NVMe, хотя это стандарт для высокопроизводительых ПК.

И есть ещё вопрос гибкости, точнее, её отсутствия. Если вы создали том ZFS, то он практически зафиксирован на всю жизнь. Есть только три способа расширить пул хранения:

  • Заменить абсолютно все диски в пуле на диски большей ёмкости (что классно, но дорого).
  • Создать дисковую последовательность с другим набором дисков (что может привести к несбалансированной производительности, избыточности и куче других потенциально глупых ошибок).
  • Построить новый пул и перенести туда наборы данных командой zfs send (так поступаю я, хотя тут свои хитрости).

Кроме третьего способа, у вас нет возможности уменьшить пул ZFS. Хуже того, вы не можете изменить тип защиты данных без пересборки всего пула, в том числе добавить второй и третий диски чётности. FreeNAS добросовестно тратит огромное количество времени, пытаясь отговорить новичков от использования RAID-Z1[1], и жалуется, если они всё равно выбирают такую схему.

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

[2].

Какие варианты?

Наверное, я представил ZFS не совсем в выгодном свете. Когда-то она была революционной, но сейчас начинает проявлять ограничения и выпадать из контекста современного мира с флеш-хранением данных. Так есть ли альтернативы?

В Linux несколько приличных диспетчеров томов и файловых систем, а большинство используют LVM или MD и ext4. Спецов по файловым системам очень порадовала Btrfs, которая сочетает в себе функции диспетчера томов и файловой системы в стиле ZFS, но с дополнительной гибкостью за пределами того, на чём шлёпнулась ReiserFS. И Btrfs действительно могла бы стать «ZFS для Linux», но не так давно разработка споткнулась, после ужасного прошлогоднего бага с потерей данных с рейдах RAID 5 и 6, и больше о них почти ничего не слышно. Но я по-прежнему думаю, что через пять лет буду рекомендовать пользователям Linux использовать Btrfs, особенно с её мощным потенциалом для применения в контейнерах

[3].

Для Windows компания Microsoft тоже выкатывает собственную файловую систему нового поколения ReFS с использованием деревьев B+ (похоже на Btrfs), с сумасшедшим масштабированием и функциями стойкости и защиты данных[4]. В сочетании со Storage Spaces, у Microsoft будет жизнеспособная система хранения следующего поколения для Windows Server, которая может даже использовать SSD и 3D-XPoint как уровень или кэш.

И есть ещё Apple, которая по слухам несколько раз меняла систему хранения, до того как остановиться на APFS, которая вышла в этом году в macOS High Sierra. APFS во многом похожа на Btrfs и ReFS, хотя реализована совершенно иначе, с большей ориентацией на пользователя.

Уступая в некоторых сферах (пользовательские данные не проверяются контрольной суммой и не поддерживается сжатие), APFS — именно та система, которая нужна для iOS и macOS. И APFS — это последний гвоздь в гроб идеи «ZFS на Mac OS X».

В каждой из трёх основных ОС теперь есть файловая система нового поколения (и диспетчер томов). В Linux есть Btrfs, в Windows — ReFS и Storage Spaces, а в macOS есть APFS. FreeBSD вроде бы сохранила приверженность ZFS, но это незначительная часть рынка. И каждая система корпоративного уровня уже продвинулась намного дальше того, что может делать ZFS и системы корпоративного уровня на базе ZFS от Sun, Nexenta и iXsystems.

Но ZFS по-прежнему намного превосходит старые файловые системы для домашнего пользователя. Из-за отсутствия проверки целостности, избыточности и восстановления после ошибок NTFS (Windows), HFS+ (macOS) и ext3/4 (Linux) абсолютно не подходят для долговременного хранения данных. И даже ReFS и APFS из-за отсутствия проверки целостности не подходят там, где потеря данных неприемлема.

Позиция автора: используйте ZFS (пока)

Грустно это признавать, но на 2017 год ZFS — лучшая файловая система для долговременного широкомасштабного хранения данных. Хотя иногда и сложно с ней работать (кроме FreeBSD, Solaris и специализированных устройств), но надёжность и проверенность делают ZFS единственным заслуживающим доверия инструментом для хранения данных за пределами корпоративных систем хранения. В конце концов, надёжное хранение данных — это единственное, что действительно должна делать файловая система. Все мои важные данные сразу идут в ZFS, от фотографий до музыки, от фильмов до офисных файлов. Ещё нескоро я доверюсь чему-нибудь кроме ZFS!

Сноски

1. Для современных больших дисков предпочтительнее RAID-Z2 и RAID-Z3 с большей избыточностью.↑
2. Странно, хотя множественные пулы и съёмные диски отлично работают на ZFS, почти никто не говорит о таком варианте использования. Всегда речь идёт об одном пуле под названием “tank”, который включает в себя все диски в системе.
3. Одна вещь, которой по-настоящему не хватает в Btrfs — это поддержки флеш, и особенно гибридных систем хранения. Но лично я бы предпочёл, чтобы они сначала реализовали поддержку RAID-6.↑
4. Хотя контрольные суммы для данных в ReFS по-прежнему отключены по умолчанию.↑

FreeNAS 8.2. (8.3) Руководство, глава 6 (5)

С наступающим новым годом коллеги.
В прочем, он наступит не зависимо от любых событий в нашей жизни.

Да будет он благосклоннее прошедшего. Спасибо всем за то, что вы есть!

6.3 Тома
Поскольку диски хранилища отделены от операционной системы FreeNAS, фактически, вы не имеете NAS (Network-Attached Storage) до того момента, пока не конфигурируете хотя бы один том на дисках. FreeNAS поддерживает создание томов UFS и ZFS, однако, рекомендуется использовать тома ZFS для получения максимальной отдачи от вашей системы FreeNAS. В этом разделе рассматривается выполнение следующих действий:

  • если ваши диски используются в существующем программном RAID-е UFS или ZFS, смотрите раздел 6. 3.1,»Автоматический импорт томов».
  • если ваши диски отформатированы в UFS, NTFS, MSDOS или EXT2, смотрите раздел 6.3.2, «Импорт томов»
  • если вы хотите форматировать диски в том UFS или пул ZFS, смотрите раздел 6.3.3, «Менеджер томов»
  • если вы хотите увеличить размер существующего пула ZFS, смотрите раздел 6.3.4, «Использование менеджера томов после создания тома»
  • если вы хотите разделить существующий пул ZFS на наборы данных, смотрите раздел 6.3.5, «Создание наборов данных ZFS»
  • если вы хотите создать блочное устройство ZFS для использования в качестве расширения устройства iSCSI, смотрите раздел 6.3.6, «Создание zvol»
  • если вы хотите просматривать и управлять томами, смотрите раздел 6.3.7, «Просмотр томов»
  • если вы хотите просматривать или конфигурировать свойства дисков, смотрите раздел 6.3.8, «Просмотр дисков»
  • если вы хотите управлять доступом пользователя/группы к существующему тому UFS, пулу ZFS или набору данных ZFS, смотрите раздел 6. 3.9, «Установка разрешений»
  • если ваше оборудование поддерживает множественные пути, FreeNAS будет автоматически его конфигурировать. Вы можете проверить конфигурацию, как описано в разделе 6.3.10, «Обзор множества путей»
  • если вам необходимо заменить неисправный диск ZFS, смотрите раздел 6.3.11, «Замена неисправного диска или устройства ZIL»

6.3.1 Автоматический импорт томов
Если вы нажмёте Storage->Volumes->Auto Import Volume, вы можете конфигурировать FreeNAS для использования существующих программных томов RAID USF или ZFS. Поддерживаются тома — чередование UFS GEOM (RAID0), зеркало UFS GEOM (RAID1), UFS GEOM RAID3, а так же существующие пулы ZFS. UFS RAID5 не поддерживается, поскольку это не сопровождаемый код, который так и не был интегрирован в FreeBSD.

ПРИМЕЧАНИЕ: версии FreeNAS до 0.7.2, включительно основаны на ZFSv13. Вы можете импортировать эти пулы, но только в одном направлении. Другими словами, когда вы импортировали том ZFSv13, вы не можете откатиться. FreeNAS 8.3.0 не поддерживает совместимость с пулами Nexenta или Linux fuse-zfs.

Существующие тома программного RAID, должны быть доступны для выбора в выпадающем меню. В примере показанном на рисунке 6.3а, система FreeNAS имеет существующий том ZFS с именем test. После выделения тома, нажмите кнопку «Импорт тома».

ПРИМЕЧАНИЕ: FreeNAS не будет импортировать «грязные» тома. если существующий UFS RAID не отображается в выпадающем меню, вам необходимо выполнить fsck для данного тома. Если существующий пул ZFS не отображается в выпадающем меню, выполните из оболочки zpool import для импортируемого пула. Если вы подозреваете, что ваше оборудование не обнаружено, выполните camcontrol devlist из оболочки. Если диск не отображается в выводе, проверьте, поддерживается ли драйвер контроллера и если необходимо загрузите его с помощью настройки (tunable).

Рисунок 6. 3а: Импортирование существующего тома RAID

6.3.2 Импортирование томов
Экран Volume->Import Volume, показанный на рисунке 6.3b, используется для импорта диска или раздела который был форматирован в поддерживаемую файловую систему. FreeNAS поддерживает импорт дисков которые были форматированы с UFS, NTFS, MSDOS или EXT2.

Рисунок 6.3b: Импортирование тома

Введите имя тома, используйте выпадающее меню для выбора диска или раздела который вы хотите импортировать, и выберите тип файловой системы на диске.

Перед импортом диска должны быть выполнены следующие условия:

  • FreeNAS не будет импортировать «грязные» файловые системы. Если поддерживаемая файловая система не показана в выпадающем меню, вам необходимо выполнить fsck или запустить проверку диска на данной файловой системе.
  • ранние версии FreeNAS 8 имели ошибку не позволяющую импортировать приводы NTFS. Не пробуйте импортировать NTFS, если вы используете версию FreeNAS более раннюю чем 8.0.1-RC1.
  • в данный момент FreeNAS не может импортировать динамические тома NTFS. Будущие версии FreeBSD могут изменить ситуацию в этом вопросе.

продолжение следует…

Метки: bsd, freenas 8.2 (8.3) guide, Системы

РЕШЕНО. Какие файловые системы поддерживает последняя версия FreeNAS?

джпиной
Кадет