Что такое ZFS? И почему люди от неё без ума?

https://itsfoss.com/what-is-zfs/
  • Перевод
Сейчас мы обсудим 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? И как она вам? Расскажите об этом в комментариях.

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


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

    Как минимум Ubuntu и Arch могут устанавливаться на ZFS-корень. Я этот финт проделывал на Gentoo ещё лет 5 назад, но Gentoo, конечно это совсем не «работает сразу»))
      0
      В убунте тоже не совсем «из коробки» (т.е. в инсталлере этого нет).
      Но можно, да. У меня в данный момент на одном сервере рут на ZFS работает.
      Бэкапить/разворачивать полностью весь сервак со снепшотами и send/receive одно удовольствие.
        0

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

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

          ZFSin: работаем с ZFS нативно под Windows
          habr.com/post/374317
          +8
          Все пишут насколько ZFS крутая, но при этом нигде не упоминается, насколько она тормознутая в работе ;(
          Начиная от огромного потребления памяти и заканчивая убогой производительностью в многопоточной загрузке.
          На домашний комп или резервный стор пойдет, но для high load категорически не годится, увы.
            +2
            Чтобы ZFS не тормозила, ей надо много оперативки, желательно от 16 Гб и больше. На домашнем компьютере держать её вообще бессмысленно. Только на ZFS я видел, как папка с фотками открывается в файловом менеджере 40 секунд. Вообще, Copy-on-Write на HDD — гиблая затея, для этой технологии нужен быстрый случайный доступ как на SSD.
              0
              Чтобы ZFS не тормозила, ей надо много оперативки, желательно от 16 Гб и больше


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

                0
                Вы делали какие-то дополнительные настройки? Я поставил на двух гигах, и компьютер стал постоянно уходить в своп. На 8 гигах и SSD все отлично.
                  +1
                  Нет, не трогал настройки.
                  FreeBSD, не Linux был.
                  Может, у вас Linux?
                    –1
                    Да, Arch.
                0
                Только на ZFS я видел, как папка с фотками открывается в файловом менеджере 40 секунд.

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

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

                  А разве copy-on-write не предполагает что при скачивании новые данные все равно будут помещены в другое место, а не перезаписаны в месте нахождения пустого файла заглушки?
                    0
                    Есть такое подозрение. По этому у меня стоит старый ноутбучный диск (остался после апгрейда ноута до SSD) и логи системы и временный файлы при скачивании кладутся туда. И уже после завершения скачивания уже кидаются на основной диск. Ну чтобы наверняка. Transmission это умеет.
                    0
                    Например в настройках торрентокачалки делать выделение места сразу под всё, что скачивается

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

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

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

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

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

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

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

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

                                0
                                Тут скорее вопрос «какой смысл иметь FreeBSD на домашнем компе» — нравится просто и все. Из практических плюсов ZFS для дома — в основном сжатие, и зеркало легко настроить. Нет забирающих время проверок диска. Ну и иногда можно побаловаться снепшотами. Для параноиков — шифрование (я не использую, но многие этим страдают).
                                  0
                                  Легковесные снапшоты — один сплошной жирный плюс. Как пример: у меня настроена система делать снапшоты каждые 15 минут, старые снапшоты автоматически по истечении времени удаляются. За 9 лет использования ZFS мне это не раз сильно помогало: один раз при ошибочном реверте более чем двух часов работы над сложным кодом, один раз при плохо пошедшем апгрейде ОС, несколько раз при ошибочном удалении нужных файлов.
                                  +1
                                  На обеих личных ноотбуках, 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, сейчас же юзать удобнее.
                                    0

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

                                      0
                                      >А прикладной софт весь в виртуальных машинах запускаете?

                                      Виртуальные машины для специфических работ/приложений. К примеру, сборка пакетов для debian. Или сборка openwrt. Или oracle dbms.

                                      >Видеокарту получилось пробросить (PCIe passthrough)?

                                      1 А зачем? И как вообще теоретически, самое главное?
                                      Win достаточно через терминал.
                                      Остальные через ssh более чем.
                                      Управление vm github.com/churchers/vm-bhyve

                                      2 Bhyve не такой клюкво-развесистый как vmware или kvm

                                      >собирался установить Ubuntu LTS основной системой, сижу читаю о ZFS и FreeBSD теперь.

                                      Разный порог входа. У меня FreeBSD как основная на ноутбуках c 2007 года, фактически уже свой дистрибутив («система перфекциониста» =) ). ZFS легло в масть.

                                      Поэтому о выборе. Надо прикинуть цели/стоимость.
                                      Если понять и вложиться во время на сборку приложений, да и операционной системы, из исходников со своими опциями — а сборка значительно проще чем в иных, то в конечном итоге получиться нечто под цели, а не так как захотел сборщик пакета/дистрибутива. Но за это надо заплатить своим временем/усилиями.
                                      Бонус при этом хотя бы обзорное знание «какая у него внутри неонка».

                                      Второе, с чем постоянно сталкиваюсь в работе — я могу легко интегрировать новую версию софтваре в порты/пакеты *BSD даже прошлых версий (относительно, в общем случае), но всегда трудозатратно для *linux, и с некоторым процентом от это бывает невозможно. Из-за фиксированности linux дистрибутивов вплоть до прибито гвоздями (вот давеча только уперся в ruby 1.9 на одной из рабочих балалаек, и все, не поставишь там без извращений новую web софтинку, зависимости понимаете ли).

                                        0
                                        вот давеча только уперся в ruby 1.9 на одной из рабочих балалаек, и все, не поставишь там без извращений новую web софтинку, зависимости понимаете ли
                                        Docker?

                                        1 А зачем? И как вообще теоретически, самое главное?
                                        Win достаточно через терминал.
                                        Мне иногда приходится работать в Windows, и я люблю, чтобы окошки плавненько перемещались, чтобы скроллинг в браузере был не 3 FPS и т.п.
                                          0
                                          >> поставишь там без извращений новую web софтинку, зависимости понимаете ли
                                          >Docker?

                                          я же написал, «без извращений» =)

                                          >Мне иногда приходится работать в Windows, и я люблю, чтобы окошки плавненько перемещались

                                          ну тут кому как =)
                                            0
                                            я же написал, «без извращений» =)
                                            Виртуальные машины для специфических работ/приложений. К примеру, сборка пакетов для debian. Или сборка openwrt. Или oracle dbms.
                                            ?
                                              0
                                              что тут непонятного? notebook amd64, freebsd os + xfce + 1/3 gnome + apps
                                              время от времени, примерно на 3-10 часов в месяц, запускаются bhyve vm w linux/win для работ/процессов/приложений, для которых требуется linux/win only environment.

                                              к примеру, сборка собственных кросс-платформенных приложений в варианте для debian в дистрибутивный пакет для последующей инсталяции на целевых рабочих системах

                                              или проверки-валидации решений с oracle dbms перед их применением на целевых рабочих системах

                                              или сборка openwrt для своего карманного роутера, в связи с тем что процесс сборки возможен только в linux, и желательно debian окружении.
                                              почему в notebook vm bhyve, а не одном из ph host kvm?
                                              потому что могу, и ресурсов для работ достаточно =)

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

                                                0

                                                Мне показались противоречивыми ваши высказывания, которые я и процитировал :)

                                            0
                                            Мне иногда приходится работать в Windows, и я люблю, чтобы окошки плавненько перемещались, чтобы скроллинг в браузере был не 3 FPS и т.п.


                                            На современном железе вполне можно и без проброски видеокарты напрямую.
                                            Драйвера видео в виртуальной машине вменяемые быстрые.
                                            Проброска карты нужна только для игр.
                                  0
                                  С вами многие не согласяться — пруф
                                    0
                                    Так у каждого инструмента есть свои задачи и требование как следствие ниша. Я не совсем понимаю какой и в чем ваш High load. Но, обратите внимание на особенности, упомянутые в статье, и вы поймете что эта ФС для NAS/SAN и тому подобному использованию. Это ФС для данных где не нужна «спешка», зато в этом классе у нее почти нет конкурентов.
                                    Поэтому она не «тормознутая», а это вы ее не там использовали и сделали таки еже выводы.
                                      0
                                      Неправда. По умолчанию опции выставлены на максимальную сохранность файлов в случае сбоя. Это можно отключить и будет, практически, точно так же быстро работать, как и UFS2/ext4/raizer. Вы просто не умеете ёё готовить для highload'a.
                                      Памяти используется много, потому-то, опять же по-умолчанию, она старается всё закешировать, но и этим поведением можно управлять. Да, комфортную работу на 1Гб оперативной памяти вы точно не получите, и, если у вас 1Гб — то лучше выбрать другую ФС.
                                        0
                                        В highload проблемы с памятью-то и нет.
                                        Там памяти много.
                                        0
                                        На домашний комп или резервный стор пойдет, но для high load категорически не годится, увы.

                                        Системы Sun, для которых эта ФС и создавалась — самый что ни на есть highload
                                        +9
                                        За проделанную работу спасибо, но перевод местами хромает. Где-то неверен, а где то не хватает «нормальности». Некоторые вещи не стоит переводит 1 в 1, ибо это путает новичков.

                                        Раздел про снапшоты требует прям ещё одного прохода и вычитки.
                                          +8
                                          «Хромает»?
                                          Чего стоит одно только переселение автора из США в Великобританию:

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

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

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

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

                                                +1

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

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

                                              Спасибо!
                                                +2

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

                                                  –1
                                                  Btrfs и ZFS это разные весовые категории, как коммерческий грузовичок и самосвал.
                                                    +1
                                                    Пользовался BTRFS на двух компьютерах, на одном она ломалась 3 раза, на другом один раз. Сейчас на первом ext4, на втором zfs, и проблем нет.
                                                      +2
                                                      btrfs и zfs это разные ниши, разные задачи. В btrfs CRC32 вместо криптографических хэшей, насколько помню — лично мне не уютно так. Плюс в нём нет RAID5/RAID6 аналогов. Ну а главное — она до сих пор не production ready.
                                                      0

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


                                                      • отсутствие так называемого RAID "write hole" эффекта.
                                                      • легкое управление квотами.
                                                        Прочитал вашу статью по диагонали, поэтому мог не заметить...
                                                        0
                                                        Ваш текст существенно лучше обсуждаемого. Но в
                                                        Возможность хранить не только файлы/файловые системы, но и просто эмулируемые блочные устройства (vdev), получая абсолютно все возможности для них.
                                                        вы, вероятно, имели в виду zvol, а не vdev? Во всяком случае у меня AoE на zvol работает, а способа адресовать данные конкретному vdev я не знаю.
                                                          0
                                                          Да, вы правы, речь, конечно же, о zvol-ах. Спасибо за найденную ошибку! Поправил у себя.
                                                        0
                                                        Как-то, слишком кратко, на мой взгляд. Стоило упомянуть еще хотя бы о клонах — rw томах на основе снапшотов и возможности передачи снапшота на удаленный хост, как полностью, так и инкрементально. Очень удобно, например, для бэкапов ФС в некоторых случаях или для создания оперативных тестовых копий производственных данных.
                                                        В линуксе root на zfs возможен, сейчас уже достаточно просто (zfsonlinux на github). FreeBSD из коробки ставится. Для некоторых задач очень удобна, но нюансов много, да.
                                                          –3

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

                                                            0
                                                            Btrfs еще не стабилизирована целиком: btrfs.wiki.kernel.org/index.php/Status
                                                            Особенно по таким важным для серверного применения фичам, как замена диска.
                                                              +2
                                                              Только «поезд ZFS ушел» кажись. Популярные дистрибутивы Linux легко ставятся на BtrFS, который и задумывался, как замена ZFS.

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

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


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

                                                                  –1
                                                                  BtrFS пилилась в RedHat, была ими брошена и тут же стала поддерживаться SUSE.
                                                                    0
                                                                    Никогда она Ред Хатом не пилилась. Это Оракловская разработка, подхваченная впоследствии SUSE.
                                                                      +1

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

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

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

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

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

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


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

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

                                                                    Вот это как раз не по-русски, а по-канцелярски. Впрочем, у автора тоже неудачно сформулировано, надо было так: «эти изменения разочаровали многих разработчиков ZFS»
                                                                      +2
                                                                      Большое количество разработчиков 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
                                                                        Многие разработчики ZFS были разочарованы таким поворотом событий.
                                                                          0
                                                                          Разные варианты перевода фразы (to) be unhappy about:
                                                                          unhappy about — Translation into Russian — examples English | Reverso Context

                                                                          В данном случае выбор какого-то варианта — это больше дело вкуса.
                                                                            0
                                                                            Да, я в курсе, спасибо — поэтому выбрал именно «жизненный» вариант перевода :)

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

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

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

                                                                              Спасибо, взаимно.
                                                                          0
                                                                          Не понравился многим разработчикам
                                                                            0
                                                                            Если поручить выполнение этого перевода нескольким опытным переводчикам, то могут получиться самые разные варианты, причем каждый переводчик будет по-своему прав. :)
                                                                              0
                                                                              Раз уж пошла такая пьянка, вот еще один вариант:
                                                                              Многие разработчики ZFS были не рады такому повороту событий.
                                                                            +1
                                                                            Или все же вы нам впаривайте Google Translate?

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


                                                                            Even though I’m from the US

                                                                            Перевод:


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

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

                                                                            0

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

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

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

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

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

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

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

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

                                                                                          Но форматировать то мне не пришлось. Так что не всё настолько ужасно, как вы расписывали.
                                                                                          хотя вариант интересный — когда запилят что-то типа Фринаса или OMV чтобы из коробки работало.
                                                                                            0
                                                                                            Только вот это вот напрягает:
                                                                                            «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
                                                                                            Как-то после этого всего хочется подождать, пока допилят. Лучше я посижу с недоиспользованным диском, чем буду рисковать.
                                                                                              0
                                                                                              Баг не какой-то неизвестный. Причина бага ясна, просто разрабы не хотят костылить фикс, а ждут, когда появится фича, которая его автоматом исправит. Баг появляется только на RAID5 и только при аварийном пропадании питания на двух и более дисках одновременно во время записи, и то редко. Заключается в том, что после пропадания питания надо сделать btrfs scrub, иначе потом может не сработать восстановление пропавшего диска. Соответственно, если диск сдох от пропадения питания, есть шанс не восстановить массив.
                                                                                                0
                                                                                                Вот у меня RAIDZ1 — типа RAID5. и вот не надо мне этого счастья. Подождём фичу…
                                                                                                Да, кстати — а в RAID5 на btrfs также можно добавить диск большего объёма и она всё там сама перераспределит? Или это только с зеркалами работает?
                                                                                                  0
                                                                                                  Баг появляется только на RAID5 и только при аварийном пропадании питания на двух и более дисках одновременно

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

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

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

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

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

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

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

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

                                                                                                  0
                                                                                                  Немного не так. RAIDZ1 это типа RAID5. В массиве 4 диска, один из них избыточный.
                                                                                                  Я потому сразу и полез посмотреть, а как там у btrfs с RAID5/6.
                                                                                            –1

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


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

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

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

                                                                                              0
                                                                                              Такие фичи как Copy-on-write и даже Снапшоты вполне можно сделать и на других ФС. Copy-on-write точно можно, причем даже на уровне файловых менеджеров.
                                                                                                0
                                                                                                Так-то копирование при записи очень много где применяется, в том же Linux в подсистеме процессов.
                                                                                                0
                                                                                                на счёт поддержания данных и вскипания океана в Вики другая инфа. На запитку всех возможных hdd не хватит энергии анигиляции материи всего мирового океана.
                                                                                                  +1
                                                                                                  ZFS лучше всех, потому что она новая, современная и лучше всех.
                                                                                                  Ясно-понятно.
                                                                                                  Статья вообще ниочем, годится разве что как вступительная часть.
                                                                                                    0
                                                                                                    Такой она и есть.
                                                                                                    0
                                                                                                    Какая-то жиденькая статья… Мне, например, нужно было сжатие от файловой системы, пришлось ставить btrfs и очень приятно было узнать, что она, впринципе, может быть частично пожатой (определяется в момент создания очередного блока — будет там сжатие или нет)… Про ZFS я слышал, что для её использования требовалась память с аппаратным контролем на ошибки, а сейчас как? А что по производительности? А если создать кучу дисков в том, то я как-то смогу управлять размещением файла по дискам мула (размер страйпов)?
                                                                                                      0
                                                                                                      для её использования требовалась память с аппаратным контролем на ошибки

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

                                                                                                          После того как вы сделали снапшот, то все последующие изменения будут касаться только текущего (в оригинале live) состояния (то что пользователь видит). Для доступа к данным внутри снапшота есть два метода: смотреть прямо в снашот или делать клон со снапшота. Оба метода являются ReadOnly. Данные внутри снапшота не могут быть изменены. «клон» это новая ФС\Блочное устройство и всё, что будет изменено внутри клона, будет относится только к этому клону, а поэтому все изменения будут потеряны вместе с удалением клона.
                                                                                                            0
                                                                                                            Так кстати на Фринасе были тюрьмы сделаны: есть болванка тюрьмы. При установке плагина или запуске новой тюрьмы под свои задачи — warden делает клон со снэпшота болванки. В итоге место тратится только под изменения/добавления а всё, что является общим для всех тюрем так и лежит в исходном снэпшоте. В итоге место экономится. Но и простое копирование на другой диск в итоге скопирует далеко не всё и на новом месте плагин не заработает. Но опять же через снэпшоты скопировать можно. Для обыкновенного юзера типа меня, который всю жисть на винде просидел и глубоко в неё не лез это всё выглядело сильным колдунством. В консоли команды набирал как младший техножрец литании во славу Омниссии ;-). Но когда примерно понял, как оно работает — то понравилось.
                                                                                                              0
                                                                                                              Блин, все так восхищаются подобным, а я с помощью slax и виртуалки подобное делал еще хз когда. Создаешь iso образ со всей кучей нужных модулей, в списке загрузки создаешь несколько записей, в каждой из которых выбираешь лишь нужные модуля ОС и конкретных приложений, потом грузишь виртуалки с этого образа и при загрузке выбираешь нужную строку. Профили пользователей сохраняешь на дисках виртуалок — все изменения систем сохранялись там… И это была середина нулевых.
                                                                                                          0
                                                                                                          Сколько-то лет назад ставил FreeBSD на ZFS. Так вот, оно у меня периодически молча зависало (раз в несколько дней). Нервов порядком попортило. Версии уже не помню, может, с тех пор всё починили, но… осадочек остался.
                                                                                                            0
                                                                                                            на работе использую, несколько хранилищ, проблем нет, по поводу дохрена потребляет памяти если мне память не изменяет то нужно чтоб в системе было от 2Гб ОЗУ: суть тут в том что ZFS использует общую память для кеширования дисковых операций, тем самым ускоряя как запись так и чтение, за счет превыборки данных с диска. Нужно понимать что RAID-Z работает в софтовом режиме, поэтому и использует ОЗУ ПК, но при работе системы занимает всю свободную память под кеш, причем освобождая её как только процессам в системе нужна оперативка.
                                                                                                              0

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


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


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

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

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

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

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

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

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

                                                                                                                Какой-то странный текст…
                                                                                                                  0
                                                                                                                  Вы — это вы? )
                                                                                                                  Ну в плане NAS, ZFS, LTO-4?
                                                                                                                  Думаю, если б вы написали подобную статью — многим бы было более понятно, чем данный перевод…
                                                                                                                    0
                                                                                                                    Да, это я :) Вроде писал, только давно май 2012, страшно сказать :) 2gusia.livejournal.com/7545.html Может сейчас бы что-то изложил иначе. Но вроде мне тут писать нельзя, тк новичок на хабре :) Даже оценивать комменты нельзя. А может путаю, как новичок.
                                                                                                                      0
                                                                                                                      Так наоборот, если вам есть что написать полезного — нужно. Тогда сможете и комменты оценивать, и людей (это единственный способ стать полноценным членом сообщества).

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

                                                                                                                      PS. И да, я ту статью — читал. И про ленты. Просто уже 6 лет прошло с её появления)
                                                                                                                        0
                                                                                                                        Я сбросил еа ленту то, что мне иначе сбросить было бы некуда. Пожтому да, стоило. Экономия нервов. Но при этом администрирование ленты настолько неудобно, что я раз или два добавил туда инкремент и всё. Но инфа там у меня и не требует обновления.
                                                                                                                          0
                                                                                                                          У нас на работе просто лицензия BackUp Exec и робот, так что там весь процесс — это настроить задание так, что б ленты нормально чередовались и всё.
                                                                                                                          Для дома же, как понимаю, удобных инструментов нема…
                                                                                                                    0
                                                                                                                    > Отнюдь. Можно сделать 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.
                                                                                                                      0
                                                                                                                      Я подразумевал сравнение raidz из двух дисков и zfs mirror. Зеркало выигрывает по всем параметрам — производительность, ёмкость, простота замены.
                                                                                                                        0
                                                                                                                        А, в этом смысле. Ну тут в принципе согласен, mirror выглядит надежнее и удобнее raidz.
                                                                                                                    0
                                                                                                                    Соглашусь с предыдущим оратором. Кроме того, посмотрел комменты и ужаснулся. Да, памяти zfs нужно много, но есть второй уровень кэша, где вы в пул можете добавить пачку ssd дисков, обозначить их как кэш часть на чтение, другую часть на запись и получить очень производительное хранилище. Я на стареньком сервере Dell на солярке, собирал fc хранилку, которая на raidz уделывала по производительности ибмовский сторвайз на 10-ке. Если вы не умеете zfs готовить, это не значит, что она тормознутая.
                                                                                                                      0
                                                                                                                      Поделитесь пожалуйста историей успеха, какие диски, какая производительность примерно была по iops

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

                                                                                                                    Самое читаемое