Просмотров: 13694

Файловые системы ближайшего будущего. ZFS


ZFS (Zettabyte File System)  — одна из самых известных файловых систем, изначально созданная в Sun Microsystems для операционной системы Solaris, перенос которой на другие платформы вызвало всплеск диаметрально разных эмоций у разработчиков: от бурного восхищения и ликования, до прямо противоположного — раздражения и ярости.

Попробуем ознакомиться с точкой зрения каждой из сторон, а также в причинах существования столь полярных оценок этой файловой системы. Но, прежде чем мы это сделаем, давайте хотя бы в общих чертах ознакомимся с её особенностями и свойствами:

ZFS

  • 128-битная файловая система, что даёт возможность хранения практически неограниченных объёмов информации. На практике это значит, что ZFS теоретически может хранить объёмы информации, которые превышают сегодняшние технологические возможности, при условии использования текущего подхода к организации хранения данных;
  • Очень большое внимание уделяется целостности и надежности хранения, как пользовательских данных, так и метаданных ФС, для этого используются продвинутые алгоритмы хэширования;
  • Поддержка снапшотов (snapshot) и пулов хранения (storage pools), благодаря чему ZFS сочетает в себе возможности файловой системы и системы управления томами (новая концепция storage-пулов);
  • Отсутствие необходимости в fsck благодаря транзакционной природе этой ФС;
  • Традиционно считается, что ZFS — это достаточно производительная файловая система. Впрочем, это утверждение иногда ставится под сомнение. Как минимум, конкретные цифры очень сильно зависят от типа задачи, на которой производится подобное сравнительное тестирование производительности;
  • Возможности для избирательного сжатия и/или шифрования отдельных файлов или файловых систем;
  • Поддержка автоматического распознавания и объединения (исключения) файлов-дубликатов;
  • ZFS не поддерживает квоты. Вернее сказать, её поддержка квот несколько своеобразна: понятие «выделение квоты» значит в терминологии ZFS то, что вы ограничиваете размер создаваемой файловой системы. Дизайн системы таков, что каждому пользователю ZFS следует выделять свою собственную файловую систему со всеми сопутствующими ограничениями;
  • Определенные проблемы создает не техническая особенность ФС — несовместимая с GPL лицензия на код (CDDL);
  • Чтобы показать инновационность ZFS не только в области технических решений, приведу, как пример, возможность управлять основными возможностями ФС через веб-интерфейс;
  • И многое-многое другое, так как, повторюсь — ZFS чрезвычайно велик в своих возможностях и особенностях, и перечислить всех их здесь просто не представляется возможным.

Конечно, если смотреть на эти возможности по отдельности, то они во многом не новы и встречаются в том или ином виде в других файловых системах, но такой единый комплекс из приведенных возможностей впервые представлен только в ZFS, что и делает её столь уникальной и интересной на данный момент.

Если добавить сюда её относительно зрелый возраст и очень хорошее состояние в плане стабильности кода — становятся понятны те бури эмоций, которые вызвали новости о публикация её кода под открытой лицензией, а также портирование этой инновационной ФС на такие популярные ОС, как FreeBSD, Linux, MacOS X.

Что касается резко отрицательных откликов на эту, вне всяких сомнений, уже знаменитую файловую систему, то они сводятся в основном к следующим тезисам. Один из ведущих разработчиков Linux, кстати, ответственный за поддержку её дисковой подсистемы, Андрей Мортан (Andrew Morton), разразился гневными обличениями ZFS в «чудовищном нарушении уровней реализации».

Эндрю Мортан (Andrew Morton) Linux drivers

Эндрю Мортан, ведущий разработчик дисковой подсистемы ядра Linux

Некоторые другие разработчики присоединилась к его обвинениям в «жутком дизайне» ZFS, и на данный момент можно констатировать, что язвительные выражения Андрея Мортана в адрес ZFS — «ужасное нарушение уровней дизайна» и «необоснованная мешанина из кода»  — стали уже своего рода интернет-мемами, на которые заочно уже попытались ответить разработчики из Oracle, Linux, RedHat, FreeBSD и других известных проектов.

В качества ответа на эти выпады, процитирую только ведущего разработчика ZFS Джефа Бонвика (Jeff Bonwick):

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

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

На сегодняшний день просто не существует другой такой файловой системы, которая одновременно включала бы в себя такое фантастическое нагромождение возможностей, которое уже реализовано в ZFS. Этот подход прямо противоречит хорошо известному принципу KISS, и создание подобных крупных комплексных систем характерно, скорее, для мира Windows, но никак не является проявлением принципов знаменитого unixway, где деление всего и вся на атомарные и независимые функции/операции считается священным.

Начало этой серии статей здесь. Следующая часть (продолжение) — вот здесь.

Игорь Савчук // Системный Администратор, 2011
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , , ,
Эта запись опубликована: Суббота, 14 января 2012 в рубрике Unix'овоеОбзоры.

5 комментариев

Следите за комментариями по RSS
  1. Андрей Мортан, ахахахахахаха)))))

  2. Александр

    ZFS подждерживает квоты

    freebsd> zfs upgrade -v

    The following filesystem versions are supported:

    VER DESCRIPTION

    --- --------------------------------------------------------

    1 Initial ZFS filesystem version

    2 Enhanced directory entries

    3 Case insensitive and File system unique identifer (FUID)

    4 userquota, groupquota properties

  3. Прикольно звучит - Андрей Мортон, скорее, Эндрю

  4. OpenSolaris закрыли, форков нет

    Ну что - приехали ?

  5. Gem,

    то, что ты слышал - не равнозначно тому, что существует.

    Solaris 10

    Solaris 11

    http://www.openindiana.org/

    http://opensxce.org/

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз