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

Хотя я из США, я предпочитаю произносить ZedFS вместо ZeeFS, потому что это звучит круче. Вы же можете выбрать вариант произношения для себя.

Заметка: В этой статье вы увидите, что ZFS повторяется очень много раз. Когда я буду говорить об особенностях и установке, я имею в виду OpenZFS. Пути ZFS (разработанная Oracle) и OpenZFS разошлись, с того момента как Oracle закрыла проект OpenSolaris. (Подробнее дальше в статье.)

История ZFS


Файловая система Z (ZFS) была создана Меттью Ареном и Джефом Бонвиком в 2001. ZFS была разработана, для того чтобы стать следующим поколением файловых систем OpenSolaris от Sun Microsystems. В 2008 ZFS была портирована на FreeBSD. В этом же году началось портирование ZFS на Linux. Однако, с того момента как ZFS начала выпускаться под лицензией CDDL, которая несовместима с GNU GPL, она не может быть добавлена к ядру Linux. Что бы обойти это ограничение, большинство дистрибутивов предлагают методы установки ZFS.

В скоре после того, как Oracle купила Sun Microsystems, код OpenSolaris стал закрыт. Вся последующая разработка ZFS стала закрытой тоже. Большое количество разработчиков ZFS разочаровалось из-за таких изменений. Две трети важных разработчиков ZFS, включая Аренса и Бонвика, покинули Oracle вследствие этого решения. Они присоединились к другим компаниям и создали проект OpenZFS в сентябре 2013. Проект возглавил открытую разработку ZFS.

Вернемся же к проблеме с лицензиями упомянутой выше. С того момента как OpenZFS отделился от Oracle, кому-то может быть интересно, почему они не изменили лицензию совместимую с GPL, так, чтобы включить файловую систему в ядро Linux. Согласно сайту OpenZFS, изменение лицензии влечёт за собой контакт разработчиков которые вносили изменения в релиз OpenZFS (включая тех, кто начал этот проект и код ZFS до OpenSolaris) и получить их разрешение. Это уже почти невозможно (возможно кто-то из них уже умер или их не так легко найти), они решили оставить все как есть.

Что такое ZFS? Чем она особенна?


image

Как я сказал ранее, ZFS это продвинутая файловая система. Как таковая, она имеет некоторые интересные особенности. Такие, как:

  • Объединённое хранилище (Pooled storage)
  • Copy-on-write
  • Снапшоты
  • Проверка цельности информации и автоматическая починка
  • RAID-Z
  • Максимальный размер файла в 16 Эксабайт (Прим. переводчика: 10^18 байт)
  • Максимальный размер хранилища в 256 квадрильонов Зеттабайт (Прим. переводчика: Квадрильон — миллион^4; Зеттабайт — 10^21 байт)

Разберемся же в некоторых из них.

Объединённое хранилище


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

image

Copy-on-write


Copy-on-write это другая интересная особенность. Но большинстве файловых систем, если информация перезаписана, она утрачена навсегда. В ZFS новая информация записывается в отдельный блок. Как только запись завершена, метаданные файловой системы обновляются к точке новой информации. Это гарантирует что если файловая система сломается (или случится что-либо подобное) во время записи, старая информация будет фиксирована. Это означает что системе не нужно запускать fsck после сбоя.

Снапшоты


Copy-on-write приводит к другой интересной вещи в ZFS: снапшоты. ZFS использует снимки, для того чтобы следить за изменениями в файловой системе. Снимок хранит оригинальную версию файловой системы и текущую, в которой все изменения с момента создания снимка. Никакого дополнительного места не используется. Как только новая информация записывается в текущую файловую систему, новые блоки распределяются для её хранения. Если же файл был удален, упоминание о нём из снимка исчезает. Снимки разработаны для слежки за изменениями, но не являются дополнением и не создают файлов.

Снимки могут быть смонтированы в формате read-only для восстановления старой версии файла. Также можно откатить систему к предыдущему снимку. Все изменения сделанные после снимка будут утрачены.

Проверка цельности информации и автоматическая починка


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

RAID-Z


ZFS может поднять RAID без вспомогательного софта. Не удивительно, что ZFS предоставляет свою реализацию RAID: RAID-Z. RAID-Z это по сути вариация RAID-5. Тем не менее RAID-Z разработан так, что бы превзойти RAID-5 в плане ошибки, «все данные и информация о контроле по чётности становится несовместимой после непредвиденной перезагрузки.» Чтобы использовать базовый уровень (RAID-Z1) вам необходимо минимум два диска для хранения и один для контроля по чётности. RAID-Z2 нужно как минимум два диска для хранения и два для контроля по чётности. RAID-Z3 требует два диска для хранения и три для контроля по чётности. Как только диски добавлены к группам RAID-Z они должны быть кратны двум.

Огромные возможности хранилища


Когда ZFS была создана, она была спроектирована, чтобы стать лучшей в своем роде. Во время когда большинство файловых систем были 64-битными, создатели ZFS решили сделать её 128-битной, для будущего подтверждения этого. Это означает, что ZFS предоставляет емкость 16 миллионов миллионов 32 или 64-битных систем. К тому же, Джеф Бонвик (один из создателей) сказал что энергоснабжение полностью заполненного 128-битного пула памяти будет буквально требовать больше энергии чем для вскипания океанов.

Как установить ZFS


Если вы хотите использовать ZFS из коробки, то необходимо установить либо FreeBSD, либо ОС, которая использует illumos-ядро. Illumos это форк ядра OpenSolaris.

На самом деле, поддержка ZFS и для ZFS это главный аспект, почему некоторые опытные пользователи Linux останавливают свой выбор на BSD.

Если вы хотите использовать ZFS на Linux, вы сможете её использовать как файловую систему только для хранения. Насколько мне известно, никакой из дистрибутивов не даёт возможности установить ZFS, так, чтобы она работала сразу. Если вы заинтересованы и хотите попробовать, есть проект ZFS on Linux, который предоставляет несколько туториалов.

Напоследок


В этой статье я рассказал о плюсах ZFS. И сейчас о маленькой проблеме. Использование RAID-Z может дорого обойтись из-за количества дисков нужных для него.

А вы когда-то использовали ZFS? И как она вам? Расскажите об этом в комментариях.

Послесловие переводчика


Спасибо за то, что прочитали. Удачи вам.

Комментарии (99)


  1. Fracta1L
    04.10.2018 21:34
    +1

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

    Как минимум Ubuntu и Arch могут устанавливаться на ZFS-корень. Я этот финт проделывал на Gentoo ещё лет 5 назад, но Gentoo, конечно это совсем не «работает сразу»))


    1. isden
      05.10.2018 09:34

      В убунте тоже не совсем «из коробки» (т.е. в инсталлере этого нет).
      Но можно, да. У меня в данный момент на одном сервере рут на ZFS работает.
      Бэкапить/разворачивать полностью весь сервак со снепшотами и send/receive одно удовольствие.


    1. past
      05.10.2018 10:15

      Proxmox 100% умеет ставиться на zfs.


    1. Jeditobe
      06.10.2018 02:14
      +1

      Просто повешу повыше

      ZFSin: работаем с ZFS нативно под Windows
      habr.com/post/374317


  1. zuborg
    04.10.2018 21:43

    Все пишут насколько ZFS крутая, но при этом нигде не упоминается, насколько она тормознутая в работе ;(
    Начиная от огромного потребления памяти и заканчивая убогой производительностью в многопоточной загрузке.
    На домашний комп или резервный стор пойдет, но для high load категорически не годится, увы.


    1. Fracta1L
      04.10.2018 21:49

      Чтобы ZFS не тормозила, ей надо много оперативки, желательно от 16 Гб и больше. На домашнем компьютере держать её вообще бессмысленно. Только на ZFS я видел, как папка с фотками открывается в файловом менеджере 40 секунд. Вообще, Copy-on-Write на HDD — гиблая затея, для этой технологии нужен быстрый случайный доступ как на SSD.


      1. stul5tul
        05.10.2018 01:28

        Чтобы ZFS не тормозила, ей надо много оперативки, желательно от 16 Гб и больше


        Вполне себе нормально эксплуатировал на 1 Г оперативки. Притом, что официально рекомендуют 4 Г минимум.


        1. nlykl
          05.10.2018 13:26

          Вы делали какие-то дополнительные настройки? Я поставил на двух гигах, и компьютер стал постоянно уходить в своп. На 8 гигах и SSD все отлично.


          1. stul5tul
            07.10.2018 02:09

            Нет, не трогал настройки.
            FreeBSD, не Linux был.
            Может, у вас Linux?


            1. nlykl
              07.10.2018 13:08

              Да, Arch.


      1. zerg59
        05.10.2018 08:26

        Только на ZFS я видел, как папка с фотками открывается в файловом менеджере 40 секунд.

        Была такая бага на Фринасе. При доступе через SMB. Но вроде пофиксили давно. По крайней мере и папки с фотками и 4 терабайта торрентов (включая скачанный либрусек) открывает сейчас без проблем. И это на HP Microserver G7 N36L с самым дохлым процессором.

        Из потенциальных недостатков (особенно если мало памяти) можно считать отсутствие как класса возможности дефрагментации. Тут надо заранее думать. Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается. Иначе есть шанс, что здоровый цельный фильм будет раскидан мелкими кусочками по всему тому.


        1. Firz
          05.10.2018 09:07

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

          А разве copy-on-write не предполагает что при скачивании новые данные все равно будут помещены в другое место, а не перезаписаны в месте нахождения пустого файла заглушки?


          1. zerg59
            05.10.2018 09:19

            Есть такое подозрение. По этому у меня стоит старый ноутбучный диск (остался после апгрейда ноута до SSD) и логи системы и временный файлы при скачивании кладутся туда. И уже после завершения скачивания уже кидаются на основной диск. Ну чтобы наверняка. Transmission это умеет.


        1. bormental
          05.10.2018 14:37

          Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается

          Как уже сказали, CoW делает такую настройку бессмысленной.
          Тем не менее, есть рекомендации, как лучше настраивать датасеты, используемые для торрентов, а так же как лучше настраивать различные Bittorrent клиенты.


      1. Jeditobe
        05.10.2018 14:12

        Дедупликация, вроде как, всему виной (жору памяти). И по идее ее можно выключать.


        1. bormental
          05.10.2018 14:44

          Дедуп, как раз, поумолчанию выключен. В ZFS используется online подход к дедупу, что требует держать в памяти хэши всех блоков. Отсюда требования к объему RAM. Но этот объем можно оценить сверху, зная объем стораджа и накладных расходов дедупа на блок. AFAIK сейчас ведутся работы по выносу таблицы хэшей на отдельные устройства (SSD и т.п.). Это должно существенно облегчить использование… В данный момент использование дедупа не рекомендуется, если вы только точно знаете, что вы делаете...


        1. sh1kel
          05.10.2018 15:47

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


      1. Habra_nik
        05.10.2018 15:46

        У меня и на двух живёт. Но 128Г мозгов да, лучше, такая у мя тоже есть. Там вообще непонятно, когда она к диску обращается — мигает раз в пять секунд, даже когда порты собирает для всей оравы в 32 струи.

        Но производительность — дело десятое. Мне в ZFS нравится неубиваемость ( верно только для фришника ). Мало кто может себе позволить запасной петабайт дисков.


    1. aamonster
      04.10.2018 21:52

      Хм… Я как раз видел описания, где это указывалось — правда, в виде "для комфортного пользования надо дохрена памяти и мощный проц". После чего раздумал пробовать на резервный стор, решив ограничиться снэпшотами через rsync с хардлинками.
      P.S. а если отключить автоматическую дедупликацию — всё равно тормозит на ваших задачах?


    1. RomanStrlcpy
      04.10.2018 21:53
      +1

      Увы, в условиях недостатка памяти все прелести кешей различного уровня теряются, что выливается тормознутость.


    1. robert_ayrapetyan
      05.10.2018 00:18
      +1

      Огромное потребление памяти не прибито гвоздями — его легко можно регулировать переменной vfs.zfs.arc_max.
      Можете поделиться источниками, откуда взялось утверждение про тормознутость? У нас весь прод, включая реляционную БД, и все личные домашние компы на ZFS. Проблем с тормознутостью не было. Все просто — если это файловое хранилище (для чего ZFS, собственно, и задумывалось) — не трогаем arc_max, если просто поиграться дома — ставим лимит и пользуем все плюшки (шифрование, сжатие, снепшоты и т.п.) в удовольствие, без перерасхода памяти.


      1. Goodkat
        05.10.2018 21:02

        А какой смысл иметь её на домашнем компе?


        1. robert_ayrapetyan
          05.10.2018 21:20

          Тут скорее вопрос «какой смысл иметь FreeBSD на домашнем компе» — нравится просто и все. Из практических плюсов ZFS для дома — в основном сжатие, и зеркало легко настроить. Нет забирающих время проверок диска. Ну и иногда можно побаловаться снепшотами. Для параноиков — шифрование (я не использую, но многие этим страдают).


        1. onborodin
          06.10.2018 21:03

          На обеих личных ноотбуках, os FreeBSD.
          — Сжатие. У меня много всяких текстов (в основном исходники), образы виртуальных машин, базы данных, на 300Gb всего объема 100Gb экономия. Затраты 3-5% CPU на время записи, 1-2% при чтении (при load avergages ~0.1-0.3), по времени чтение-запись чаще даже быстрее.
          — Снапшоты.
          a) Для образов виртуальных машин bhyve (о, откатить Win назад стало делом 5 секунд =) )
          b) по крону разделы FS ради случайно удалил (таки раз-два в год бывает), при этом затраты ~1-10% от объема (дифферента по удаленным данным за сутки)
          c) бывает, для экспериментов и разработки
          — Ну очень удобное управление разделами, ну прям как файлами. И их конфигурациями. При том что разделяется общее пространство тома.

          Года 4-5 назад я бы не рекомендовал использовать, zfs на ~той же конфигурации была более тормозная чем та же же UFS+SU+journal, сейчас же юзать удобнее.


          1. Goodkat
            06.10.2018 23:22

            Спасибо, очень интересно.
            А прикладной софт весь в виртуальных машинах запускаете? Видеокарту получилось пробросить (PCIe passthrough)?
            Я как раз думаю собрать комп помощнее на замену старому макбуку, собирался установить Ubuntu LTS основной системой, сижу читаю о ZFS и FreeBSD теперь.


    1. ttys
      06.10.2018 21:03

      С вами многие не согласяться — пруф


    1. bearad
      07.10.2018 00:48

      Так у каждого инструмента есть свои задачи и требование как следствие ниша. Я не совсем понимаю какой и в чем ваш High load. Но, обратите внимание на особенности, упомянутые в статье, и вы поймете что эта ФС для NAS/SAN и тому подобному использованию. Это ФС для данных где не нужна «спешка», зато в этом классе у нее почти нет конкурентов.
      Поэтому она не «тормознутая», а это вы ее не там использовали и сделали таки еже выводы.


  1. RomanStrlcpy
    04.10.2018 21:50
    +2

    За проделанную работу спасибо, но перевод местами хромает. Где-то неверен, а где то не хватает «нормальности». Некоторые вещи не стоит переводит 1 в 1, ибо это путает новичков.

    Раздел про снапшоты требует прям ещё одного прохода и вычитки.


    1. Maccimo
      05.10.2018 02:09
      +2

      «Хромает»?
      Чего стоит одно только переселение автора из США в Великобританию:

      Even though I’m from the US, I prefer to pronounce it ZedFS instead of ZeeFS because it sounds cooler.
      Хотя я из Великобритании, я предпочитаю произносить ZedFS вместо ZeeFS, потому что это звучит круче.


      1. Lazytech
        05.10.2018 07:00

        Переводчик всего лишь перепутал US с UK, делов-то. :)

        P.S. Это примерно как перепутать РФ с РБ. :)


      1. QtRoS
        05.10.2018 20:39
        +1

        Я согласен, как по мне это худший перевод на Хабре, что доводилось читать.


        1. poxvuibr
          05.10.2018 23:51

          Это вы напрасно. На хабре немало переводов, сделанных людьми, которым глубоко наплевать на тему статьи, которую они переводят. Тут автор даже появился в комментариях, обычно переводчики этого не делают.


  1. stargrave2
    04.10.2018 22:20
    +2

    Я когда-то, как домашний пользователь, писал краткую статью о том чем хорош/плох ZFS: www.stargrave.org/ZFS-proscons.html


    1. Arris
      04.10.2018 23:33
      +1

      Да, ваша статья намного понятнее и полезнее, чем этот, хм… перевод.

      Спасибо!


    1. Akon32
      05.10.2018 10:45

      А не могли бы вы написать подобную статью о btrfs или сравнение zfs-vs-btrfs?


      1. Fracta1L
        05.10.2018 10:48

        Btrfs и ZFS это разные весовые категории, как коммерческий грузовичок и самосвал.


      1. nlykl
        05.10.2018 13:30

        Пользовался BTRFS на двух компьютерах, на одном она ломалась 3 раза, на другом один раз. Сейчас на первом ext4, на втором zfs, и проблем нет.


      1. stargrave2
        05.10.2018 23:19
        +1

        btrfs и zfs это разные ниши, разные задачи. В btrfs CRC32 вместо криптографических хэшей, насколько помню — лично мне не уютно так. Плюс в нём нет RAID5/RAID6 аналогов. Ну а главное — она до сих пор не production ready.


    1. bormental
      05.10.2018 14:52

      К достоинствам ZFS в вашей статье я бы добавил:


      • отсутствие так называемого RAID "write hole" эффекта.
      • легкое управление квотами.
        Прочитал вашу статью по диагонали, поэтому мог не заметить...


    1. 2gusia
      06.10.2018 00:48

      Ваш текст существенно лучше обсуждаемого. Но в

      Возможность хранить не только файлы/файловые системы, но и просто эмулируемые блочные устройства (vdev), получая абсолютно все возможности для них.
      вы, вероятно, имели в виду zvol, а не vdev? Во всяком случае у меня AoE на zvol работает, а способа адресовать данные конкретному vdev я не знаю.


      1. stargrave2
        06.10.2018 01:02

        Да, вы правы, речь, конечно же, о zvol-ах. Спасибо за найденную ошибку! Поправил у себя.


  1. polar_yogi
    04.10.2018 23:10

    Как-то, слишком кратко, на мой взгляд. Стоило упомянуть еще хотя бы о клонах — rw томах на основе снапшотов и возможности передачи снапшота на удаленный хост, как полностью, так и инкрементально. Очень удобно, например, для бэкапов ФС в некоторых случаях или для создания оперативных тестовых копий производственных данных.
    В линуксе root на zfs возможен, сейчас уже достаточно просто (zfsonlinux на github). FreeBSD из коробки ставится. Для некоторых задач очень удобна, но нюансов много, да.


  1. zesetup
    04.10.2018 23:13

    Только "поезд ZFS ушел" кажись. Популярные дистрибутивы Linux легко ставятся на BtrFS, который и задумывался, как замена ZFS.


    1. citius
      05.10.2018 00:43

      Btrfs еще не стабилизирована целиком: btrfs.wiki.kernel.org/index.php/Status
      Особенно по таким важным для серверного применения фичам, как замена диска.


    1. stul5tul
      05.10.2018 01:33

      Только «поезд ZFS ушел» кажись. Популярные дистрибутивы Linux легко ставятся на BtrFS, который и задумывался, как замена ZFS.

      Только вот ZFS является production ready уже лет 15.
      А использовать Btrfs на нагруженных проектах рискованно до сих пор. Ей еще ключевые фичи не допилили


    1. immaculate
      05.10.2018 04:28

      btrfs вроде бы тоже в основном разрабатывалась силами разработчиков из Oracle, и Oracle потеряла к ней интерес. Читал, что из-за этого развитие btrfs затормозилось почти до полной остановки.


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


      1. chupasaurus
        05.10.2018 08:20

        BtrFS пилилась в RedHat, была ими брошена и тут же стала поддерживаться SUSE.


        1. Fracta1L
          05.10.2018 09:17

          Никогда она Ред Хатом не пилилась. Это Оракловская разработка, подхваченная впоследствии SUSE.


        1. bormental
          05.10.2018 14:58

          Наоборот, RH отказались от её поддержки в будущих версиях своих дистрибутивов.
          В BTRF уже лет 7 минимум никак не "допилят" RAID до стабильного уровня!


  1. stul5tul
    05.10.2018 01:22
    +1

    У вас русский язык — не родной?

    Большое количество разработчиков ZFS разочаровалось из-за таких изменений.

    «Были разочарованы этими изменениями»
    Хотя, если вы учили русский как иностранный, то можно и так как вы написали — в принципе, понятно.

    Согласно сайту OpenZFS, изменение лицензии влечёт за собой контакт разработчиков которые вносили изменения в релиз OpenZFS (включая тех, кто начал этот проект и код ZFS до OpenSolaris) и получить их разрешение

    Во время когда большинство файловых систем были 64-битными, создатели ZFS решили сделать её 128-битной, для будущего подтверждения этого


    Или все же вы нам впаривайте Google Translate?


    1. Fracta1L
      05.10.2018 06:28

      «Были разочарованы этими изменениями»

      Вот это как раз не по-русски, а по-канцелярски. Впрочем, у автора тоже неудачно сформулировано, надо было так: «эти изменения разочаровали многих разработчиков ZFS»


    1. Lazytech
      05.10.2018 07:07

      Большое количество разработчиков ZFS разочаровалось из-за таких изменений.

      Заглянем в оригинал:
      Shortly after Oracle purchased Sun Microsystems, OpenSolaris became close-source. All further development of ZFS became closed source, as well. Many of the developers of ZFS where unhappy about this turn of events. Two-thirds of the core ZFS devlopers, including Ahrens and Bonwick, left Oracle due to this decision. They joined other companies and created the OpenZFS project in September of 2013. The project has spearheaded the open-source development of ZFS.

      Подчеркнутое предложение можно перевести, например, так:
      Такой поворот событий вызвал недовольство многих разработчиков ZFS.

      P.S. Возможен и такой вариант перевода:
      Такой поворот событий расстроил/обескуражил многих разработчиков ZFS.

      Однако мне больше нравится первый вариант («вызвал недовольство»).


      1. impvision
        05.10.2018 09:46

        Многие разработчики ZFS были разочарованы таким поворотом событий.


        1. Lazytech
          05.10.2018 10:26

          Разные варианты перевода фразы (to) be unhappy about:
          unhappy about — Translation into Russian — examples English | Reverso Context

          В данном случае выбор какого-то варианта — это больше дело вкуса.


          1. impvision
            05.10.2018 10:29

            Да, я в курсе, спасибо — поэтому выбрал именно «жизненный» вариант перевода :)

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

            Хорошего дня!


            1. Lazytech
              05.10.2018 10:40

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

              Первый вариант («вызвал недовольство») мне нравится больше потому, что он «активный»: (недовольные) разработчики не стали мириться с несправедливостью, а уволились из Oracle и разработали OpenZFS.
              Хорошего дня!

              Спасибо, взаимно.


      1. gatoazul
        05.10.2018 14:27

        Не понравился многим разработчикам


        1. Lazytech
          05.10.2018 14:41

          Если поручить выполнение этого перевода нескольким опытным переводчикам, то могут получиться самые разные варианты, причем каждый переводчик будет по-своему прав. :)


        1. Lazytech
          06.10.2018 07:20

          Раз уж пошла такая пьянка, вот еще один вариант:

          Многие разработчики ZFS были не рады такому повороту событий.


    1. poxvuibr
      05.10.2018 10:59

      Или все же вы нам впаривайте Google Translate?

      Это врядли. В оригинале:


      Even though I’m from the US

      Перевод:


      Хотя я из Великобритании

      Сомневаюсь, что Google Translate на такое способен.


  1. HSerg
    05.10.2018 03:25

    А ещё она зачем-то умеет CIFS/SMB sharing. Фича странная и удивительно, что её до сих не выкинули.


  1. Barafu_Albino_Cheetah
    05.10.2018 03:25

    Напомню всем, что, создав единожды vdev в ZFS вы больше не можете с ним сделать ничего: ни добавить диск, ни удалить, ни поменять сдохший диск на диск большего размера: все эти операции требуют одновременного форматирования всех дисков сразу. Поэтому для мелких нужд ZFS очень плохо подходит — дома и в мелком офисе можно столкнутся с проблемой при апгрейде, потому что временно скинуть куда-либо все данные очень неудобно. И долго.
    Адепты ZFS на /r/DataHoarder любят замалчивать этот факт и навязывать ZFS тем, кто строит свою первую файлопомойку для дома. А потом у людей проблемы: построить новый сервер оказывается дешевле, чем добавить места в старый.


    1. HSerg
      05.10.2018 03:37

      Для "мелких нужд" скопировать-то как раз не проблема — объёмы позволяют. Отчасти из-за этого на домашнем NAS собирал vdev из разделов, а не дисков.


    1. Fracta1L
      05.10.2018 06:39

      Адепты ZFS на /r/DataHoarder любят замалчивать этот факт и навязывать ZFS тем, кто строит свою первую файлопомойку для дома

      Фанбои — они такие. На лоре тоже есть пара-тройка восторженных мальчиков-зайчиков, которые суют ZFS в каждую щель, умалчивая о её минусах.


    1. adeep
      05.10.2018 07:07
      +1

      На больший диск поменять как раз можно. А когда будут заменены все диски, размер пространства


    1. zerg59
      05.10.2018 08:43

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

      У меня сейчас полусдохший 2терабайтник поменян на 4терабайтник с прицелом на будущее удвоение объёма (как все поменяю — так и удвоится). Потребовалось 2 раза выключать систему — для подсоединения нового диска и для убирания в коробку старого. Не рискнул выключать на горячую — хотя можно было.Данные вообще не трогал. Я что-то не так сделал? Надо было форматировать?
      А в других системах — если у вас зеркало из 2х дисков, вы сможете без форматирования добавить третий диск?


      1. Barafu_Albino_Cheetah
        05.10.2018 12:57

        Я что-то не так сделал?
        Сидите с диском, половина которого не используется.
        А в других системах
        В Btrfs если у вас есть Raid1 из двух 2Тб, можно на лету, даже не отмонтируя, добавить диск на 4Тб. Система сходу станет хранить каждый файл на нём и на одном из мелких дисков, утилизируя всё пространство. В Gluster так же, только (кажется) придётся ручками объяснять, что от него требуется.


        1. zerg59
          05.10.2018 13:34

          Сидите с диском, половина которого не используется.

          Но форматировать то мне не пришлось. Так что не всё настолько ужасно, как вы расписывали.
          хотя вариант интересный — когда запилят что-то типа Фринаса или OMV чтобы из коробки работало.


        1. zerg59
          05.10.2018 13:57

          Только вот это вот напрягает:
          «The parity RAID code has multiple serious data-loss bugs in it. It should not be used for anything other than testing purposes.»
          «The first two of these problems mean that the parity RAID code is not suitable for any system which might encounter unplanned shutdowns (power failure, kernel lock-up), and it should not be considered production-ready. „
          btrfs.wiki.kernel.org/index.php/RAID56
          Как-то после этого всего хочется подождать, пока допилят. Лучше я посижу с недоиспользованным диском, чем буду рисковать.


          1. Barafu_Albino_Cheetah
            06.10.2018 16:52

            Баг не какой-то неизвестный. Причина бага ясна, просто разрабы не хотят костылить фикс, а ждут, когда появится фича, которая его автоматом исправит. Баг появляется только на RAID5 и только при аварийном пропадании питания на двух и более дисках одновременно во время записи, и то редко. Заключается в том, что после пропадания питания надо сделать btrfs scrub, иначе потом может не сработать восстановление пропавшего диска. Соответственно, если диск сдох от пропадения питания, есть шанс не восстановить массив.


            1. zerg59
              07.10.2018 10:54

              Вот у меня RAIDZ1 — типа RAID5. и вот не надо мне этого счастья. Подождём фичу…
              Да, кстати — а в RAID5 на btrfs также можно добавить диск большего объёма и она всё там сама перераспределит? Или это только с зеркалами работает?


            1. stul5tul
              07.10.2018 13:49

              Баг появляется только на RAID5 и только при аварийном пропадании питания на двух и более дисках одновременно

              Кажется, что два диска из строя не выходят одновременно, маленькая вероятность, но это не так.

              Вы не поверите, но это встречается.
              В пору моего админства — лет 10 назад — встречалось дважды.

              Выходит из строя один диск, пока суд да дело, пока диагностика, пока шеф утвердит покупку диска, пока счет от поставщика, пока бухгалтерия оплатит — дохнет второй диск. Всего то через 2 дня после первого.

              Как позже я прочитал — ситуация нередкая. По причине того, что после выхода из строя первого диска, идет повышенная нагрузка и риски для выхода второго резко увеличивается.

              Да, я понимаю, что нужно иметь в запасе дорогущий серверный диск, а лучше несколько, даже если здоровье массива 100%. С тех пор старался делать RAID только с 2-мя Hot Spare.

              Однако далеко не каждого «шефа» удается убедить это профинансировать. Один из двух грамотных с точки зрения знакомства с ИТ «шефов» как раз напротив — категорически хотел, чтобы все его деньги шли в дело, ничего не «лежало без дела» в HotSpare, и вроде бы я купил для него диски под Hot Spare, но когда дело дошло инициализации RAID, то он настоял включить все диски в рабочий набор RAID, чтобы «было быстрее».


        1. polar_yogi
          07.10.2018 15:07

          В примере zerg59 ситуация другая, в raid1 2х2Т нужно заменить один из дисков, чтобы в результате получилось 4Т + 2Т.

          В случае с ZFS переехать с raid1 2x2T на raid1 4T + (raid0 2x2T) тоже можно без остановки.


  1. romangoward
    05.10.2018 06:32

    Чтобы ZFS не била по CPU и MEM, надо отключать deduplication и compression.


    Но лучше её вообще не использовать, кроме того случая, когда у вас vendor-lock от Oracle :-}


    1. kelevra
      05.10.2018 07:41

      Чем не compression не угодило? Сейчас там очень быстрый и нетребовательный к памяти lz4.


      1. romangoward
        05.10.2018 08:45

        Это стандартный ответ при коммерческом использовании zfs не от Oracle.
        При определенной нагрузке начинают проседать iops, в том числе из-за компрессии.


  1. NeoCode
    05.10.2018 08:27

    Такие фичи как Copy-on-write и даже Снапшоты вполне можно сделать и на других ФС. Copy-on-write точно можно, причем даже на уровне файловых менеджеров.


    1. Fracta1L
      05.10.2018 10:53

      Так-то копирование при записи очень много где применяется, в том же Linux в подсистеме процессов.


  1. sergling
    05.10.2018 09:05

    на счёт поддержания данных и вскипания океана в Вики другая инфа. На запитку всех возможных hdd не хватит энергии анигиляции материи всего мирового океана.


  1. rt3879439
    05.10.2018 11:49

    ZFS лучше всех, потому что она новая, современная и лучше всех.
    Ясно-понятно.
    Статья вообще ниочем, годится разве что как вступительная часть.


    1. rainbowpenguin Автор
      05.10.2018 15:52

      Такой она и есть.


  1. Berkof
    05.10.2018 12:12

    Какая-то жиденькая статья… Мне, например, нужно было сжатие от файловой системы, пришлось ставить btrfs и очень приятно было узнать, что она, впринципе, может быть частично пожатой (определяется в момент создания очередного блока — будет там сжатие или нет)… Про ZFS я слышал, что для её использования требовалась память с аппаратным контролем на ошибки, а сейчас как? А что по производительности? А если создать кучу дисков в том, то я как-то смогу управлять размещением файла по дискам мула (размер страйпов)?


    1. rt3879439
      05.10.2018 12:34

      для её использования требовалась память с аппаратным контролем на ошибки

      это не обязательное требование, но если хочется надёжности, то память должна быть надёжной тоже.


    1. Am0ralist
      05.10.2018 14:27

      Про ZFS я слышал, что для её использования требовалась память с аппаратным контролем на ошибки, а сейчас как?
      Это хорошая рекомендация для многих вещей вообще, а в ZFS она связана с тем, что контрольные суммы вычисляются — ошибки при этом слишком дорого могут встать. А если скраб запустить при битой памяти, то все может еще веселее быть.


  1. vinew
    05.10.2018 15:54

    Не совсем понял про снапшоты. «Если же файл был удален, упоминание о нём из снимка исчезает.»
    Получается, если сделать снапшот, а потом во время дальнейшей работы удалить файл, то этот файл удалится и в снапшоте?


    1. RomanStrlcpy
      05.10.2018 18:32

      то, о чём я говорил выше. кривой перевод вводит в заблуждение.

      После того как вы сделали снапшот, то все последующие изменения будут касаться только текущего (в оригинале live) состояния (то что пользователь видит). Для доступа к данным внутри снапшота есть два метода: смотреть прямо в снашот или делать клон со снапшота. Оба метода являются ReadOnly. Данные внутри снапшота не могут быть изменены. «клон» это новая ФС\Блочное устройство и всё, что будет изменено внутри клона, будет относится только к этому клону, а поэтому все изменения будут потеряны вместе с удалением клона.


      1. zerg59
        07.10.2018 11:07

        Так кстати на Фринасе были тюрьмы сделаны: есть болванка тюрьмы. При установке плагина или запуске новой тюрьмы под свои задачи — warden делает клон со снэпшота болванки. В итоге место тратится только под изменения/добавления а всё, что является общим для всех тюрем так и лежит в исходном снэпшоте. В итоге место экономится. Но и простое копирование на другой диск в итоге скопирует далеко не всё и на новом месте плагин не заработает. Но опять же через снэпшоты скопировать можно. Для обыкновенного юзера типа меня, который всю жисть на винде просидел и глубоко в неё не лез это всё выглядело сильным колдунством. В консоли команды набирал как младший техножрец литании во славу Омниссии ;-). Но когда примерно понял, как оно работает — то понравилось.


        1. Am0ralist
          07.10.2018 11:45

          Блин, все так восхищаются подобным, а я с помощью slax и виртуалки подобное делал еще хз когда. Создаешь iso образ со всей кучей нужных модулей, в списке загрузки создаешь несколько записей, в каждой из которых выбираешь лишь нужные модуля ОС и конкретных приложений, потом грузишь виртуалки с этого образа и при загрузке выбираешь нужную строку. Профили пользователей сохраняешь на дисках виртуалок — все изменения систем сохранялись там… И это была середина нулевых.


  1. zzzzzzzzzzzz
    05.10.2018 15:54

    Сколько-то лет назад ставил FreeBSD на ZFS. Так вот, оно у меня периодически молча зависало (раз в несколько дней). Нервов порядком попортило. Версии уже не помню, может, с тех пор всё починили, но… осадочек остался.


  1. rst07
    05.10.2018 15:54

    на работе использую, несколько хранилищ, проблем нет, по поводу дохрена потребляет памяти если мне память не изменяет то нужно чтоб в системе было от 2Гб ОЗУ: суть тут в том что ZFS использует общую память для кеширования дисковых операций, тем самым ускоряя как запись так и чтение, за счет превыборки данных с диска. Нужно понимать что RAID-Z работает в софтовом режиме, поэтому и использует ОЗУ ПК, но при работе системы занимает всю свободную память под кеш, причем освобождая её как только процессам в системе нужна оперативка.


  1. VecH
    05.10.2018 19:02

    Пару лет назад однако (может полтора)
    создал несколько зеркальных двухдисковых RAID для данных на ZFS


    каково же было мое удивление что уменьшить размер RAID (не было дисков в наличии на замену) можно только бэкапом/переносом данных


    даже в dmraid можно выкрутится миграцией на меньший диск в онлайне


  1. 2gusia
    06.10.2018 00:37

    Я, конечно, к ZFS пристрастен :)
    Но всё равно укажу на фактические ошибки

    Это гарантирует что если файловая система сломается (или случится что-либо подобное) во время записи, старая информация будет фиксирована. Это означает что системе не нужно запускать fsck после сбоя.

    Мутно сформулировано. Отвечает за это атомарность ЕМНИП. А если файловая систем сломалась — то запускать fsk как раз нужно. Только его нет для ZFS, поэтому в тех редких случаях, когда сломалась танцы особые. Больше всего увлекательности IMHO в can't replace replacing disk

    Если же файл был удален, упоминание о нём из снимка исчезает.

    Ровно наоборот
    Снимки могут быть смонтированы в формате read-only для восстановления старой версии файла. Также можно откатить систему к предыдущему снимку.

    А ещё есть клоны.
    Тем не менее RAID-Z разработан так, что бы превзойти RAID-5 в плане ошибки

    Описывать raidz и не упомянуть дыру по записи — это примерно как рассказать что такое хлеб, но не упомянуть, что его можно есть.
    (RAID-Z1) вам необходимо минимум два диска для хранения и один для контроля по чётности.
    Отнюдь. Можно сделать Raidz и из двух дисков, проверяется экспериментально. Другое дело, что смысла в этом немного.
    Как только диски добавлены к группам RAID-Z они должны быть кратны двум.
    Эту фразу я не понял. А если добавлен один диск — он чему будет равен? И что за группа? если vdev — то как добавить?

    Какой-то странный текст…


    1. Am0ralist
      06.10.2018 10:35

      Вы — это вы? )
      Ну в плане NAS, ZFS, LTO-4?
      Думаю, если б вы написали подобную статью — многим бы было более понятно, чем данный перевод…


      1. 2gusia
        06.10.2018 14:01

        Да, это я :) Вроде писал, только давно май 2012, страшно сказать :) 2gusia.livejournal.com/7545.html Может сейчас бы что-то изложил иначе. Но вроде мне тут писать нельзя, тк новичок на хабре :) Даже оценивать комменты нельзя. А может путаю, как новичок.


        1. Am0ralist
          06.10.2018 20:55

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

          Слушайте, а как вам с кучи лет опыта на текущий момент кажется — стоило того заморачиваться с LTO?

          PS. И да, я ту статью — читал. И про ленты. Просто уже 6 лет прошло с её появления)


    1. isden
      06.10.2018 11:12

      > Отнюдь. Можно сделать Raidz и из двух дисков, проверяется экспериментально. Другое дело, что смысла в этом немного.

      Смысл в этом есть и довольно ощутимый.

      In addition to handling whole-disk failures, RAID-Z can also detect and correct silent data corruption, offering «self-healing data»: when reading a RAID-Z block, ZFS compares it against its checksum, and if the data disks did not return the right answer, ZFS reads the parity and then figures out which disk returned bad data. Then, it repairs the damaged data and returns good data to the requestor.


      1. 2gusia
        06.10.2018 14:02

        Я подразумевал сравнение raidz из двух дисков и zfs mirror. Зеркало выигрывает по всем параметрам — производительность, ёмкость, простота замены.


        1. isden
          06.10.2018 18:41

          А, в этом смысле. Ну тут в принципе согласен, mirror выглядит надежнее и удобнее raidz.


  1. bigxot
    06.10.2018 21:06

    Соглашусь с предыдущим оратором. Кроме того, посмотрел комменты и ужаснулся. Да, памяти zfs нужно много, но есть второй уровень кэша, где вы в пул можете добавить пачку ssd дисков, обозначить их как кэш часть на чтение, другую часть на запись и получить очень производительное хранилище. Я на стареньком сервере Dell на солярке, собирал fc хранилку, которая на raidz уделывала по производительности ибмовский сторвайз на 10-ке. Если вы не умеете zfs готовить, это не значит, что она тормознутая.