Автор Тема: Файловая система BTRFS  (Прочитано 416 раз)

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2916
  • Да будет свет!
Файловая система BTRFS
« : 18 Июня 2018, 17:00:14 »
Btrfs (B-tree FS, «Better FS» или «Butter FS») — файловая система для Linux, основанная на структурах B-деревьев и работающая по принципу «копирование при записи» (copy-on-write). Опубликована корпорацией Oracle в 2007 году под лицензией GNU General Public License. Среди первоначальных целей разработки было обеспечение конкуренции файловой системе ZFS (использование которой в Linux было затруднено лицензионными ограничениями) и избавление от недостатков, характерных ранним файловым системам для Linux. Основной автор — Крис Мэйсон (англ. Chris Mason) — отмечал также наличие простого интерфейса управления файловой системой в качестве одной из целей создания.

Изначально планировалось выпустить Btrfs v1.0 и зафиксировать формат хранения в конце 2008 года, однако формат был зафиксирован только 12 июня 2010 года.

Btrfs включена в основную ветвь ядра Linux начиная с версии 2.6.29-rc в статусе экспериментальной. Проведённая ресурсом Phoronix оценка производительности показала, что Btrfs с включённым режимом сжатия иногда опережает по производительности Ext4.

Также как и в других файловых системах, все данные хранятся на диске по определенным адресам. Эти адреса сохранены в метаданных. И тут уже начинаются различия. Все метаданные организованны в виде b-деревьев. Это дает большую производительность при работе с файловой системой, а также позволяет добавлять неограниченное количество файлов.

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

Из-за своей структуры Btrfs имеет огромные возможности, например, она может работать с современными очень большими носителями данных. Максимальный размер файловой системы составляет 16 Экзабайт. Это все возможно благодаря правильному использованию пространства на диске. Другие файловые системы используют жесткий диск целиком, от начала до конца для записи своей структуры.

Более подробно об использовании файловой системы BTRFS можно ознакомиться здесь.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 1832
Re: Файловая система BTRFS
« Ответ #1 : 18 Июня 2018, 18:29:44 »
Наконец-таки я разобрался с btrfs и понял после прочтения статьи Василия Алексеенко Btrfs в Ubuntu смысл разработки этой файловой системы. Если коротко, то главная проблема хранения данных заключается в том, что диски имеют ограничения по сроку эксплуатации. За последние 20 лет для меня средний срок жизни диска 12 лет. А вот когда на диске хранится важная информация, а он взял и умер, можно обратиться в специализированную мастерскую, где за большие деньги могут восстановить утраченную информацию. А можно потратить эти деньги на создание сервера хранения данных, где несколько дисков будут объединены в райд-массив и в случае выхода из строя какого-то одного дисков информация не потеряется. BTRFS для такого хранения данных очень удобна.
Одним словом, эта файловая система обеспечивает целостность данных и эффективное создание моментальных снимков.
Во всех остальных случаях, увы, не нужна.
Что непонятно спрашиваем, если всё понятно - пользуемся.
Что бы ни случилось, всё будет хорошо!

Оффлайн ffeedd

  • Пользователь
  • **
  • Сообщений: 66
  • Счастье есть, оно рядом!
Re: Файловая система BTRFS
« Ответ #2 : 20 Июля 2018, 16:19:45 »
Цитировать
alv: Правда, ответа на главный вопрос: а вообще нужны ли народу плезиозавры снапшоты, для себя так и не нашёл...
Скорей всего нужны. например для отката: просле обновления или установки какого-нибудь пакета, если что-то не понравилось. Утилита apt-btrfs-snapshot создаёт снинимок при каждом использовании apt:
~$ sudo btrfs subvolume list /
[sudo] пароль для user:
ID 504 gen 55757 top level 5 path @home
ID 530 gen 55757 top level 5 path @
ID 531 gen 55506 top level 5 path @apt-snapshot-2018-07-20_15:14:45
Из этого примера я раньше делал так:
Далее все действия с ними делаем только с примонтированном разделом (у меня sda2):
sudo mount /dev/sda2 /mnt && cd /mntЧто бы вернуться назад, нужно переименовать (удобнее в Midnight Commander):sudo mv @ @apt-
sudo mv @apt-snapshot-2018-07-20_15:14:45 @
и перегрузится.
Но мне бы хотелесь рассказать про найденное не давно другое решение:
прегружаемся в recovery mode:
выбираем revert to old snapshot and reboot и в продолжение countining will remount  your/filesystem in read/write mode and mount any other filesystem defined /etc/fstab, далее выбираем @apt-snapshot-2018-07-20_15:14:45
комп сам перегружается и переименовывает @, с которого грузились, в @apt-snapshot-old-root-дата_время, а с которого загрузились в @.
А, что бы не загромождать систему снимками, удалем их по шаблону @apt-*, при примонтированном разделе:
sudo btrfs subvolume delete /mnt/@apt-*
« Последнее редактирование: 22 Июля 2018, 01:42:55 от ffeedd »
Есть друзья, а для них у друзей нет выходных,

Оффлайн ffeedd

  • Пользователь
  • **
  • Сообщений: 66
  • Счастье есть, оно рядом!
Re: Файловая система BTRFS
« Ответ #3 : 21 Июля 2018, 23:29:12 »
Наконец-таки я разобрался с btrfs ... Одним словом, эта файловая система обеспечивает целостность данных и эффективное создание моментальных снимков.
Во всех остальных случаях, увы, не нужна.
Во всех остальных случаях, увы, не нужна. Очень категоричное мнение.
Как минимум для меня нужна:
  • snapshot - пост выше
  • сжатие - установлено пакетов (из synaptiс'а в рабочей системе) 2152, занимает 5,6Г, без сжатия - (из synaptiс'а в virtualbox'е та же Matuntu) но с 2043 пакетами - 7,4Г
  • и самое главное - оптимизирована для SSD:
~$ dmesg
...
[    3.794725] BTRFS info (device sda2): enabling ssd optimizations
...
    « Последнее редактирование: 22 Июля 2018, 01:11:25 от ffeedd »
    Есть друзья, а для них у друзей нет выходных,

    Оффлайн ivm

    • Ветеран
    • *****
    • Сообщений: 1832
    Re: Файловая система BTRFS
    « Ответ #4 : 22 Июля 2018, 23:16:26 »
    Мои выводы полностью совпадают с мнением специалистов Университета SEDICOMM
    Цитировать
    Итог

    Итак, что лучше использовать? До сих пор Ext4 является наилучшим выбором, несмотря на идентичную производительность с XFS. Но почему? Удобство и «вездесущность» — основные причины. Ext4 —  отличная файловая система для настольных или рабочих станций. Она предоставляется по умолчанию, поэтому пользователь может установить на ней операционную систему. Кроме того, Ext4 поддерживает тома до 1 Exabyte и файлы размером до 16 терабайт.

    Btrfs предлагает большие объемы до 16 экзабайт как для разделов, так и для файлов, а также повышение отказоустойчивости. Но она до сих пор позиционируется как надстройка над файловой системой, а не интегрирована в операционную систему ФС. Например, чтобы отформатировать раздел в Btrfs необходимо, чтобы был установлен набор инструментов Btrfs.

    Несмотря на то, что скорость передачи данных так важна, в Btrfs она выше в самой системе, чем непосредственно при передаче файлов. Btrfs имеет множество полезных функций, таких как Copy-on-Write (CoW), расширенные контрольные суммы, моментальные снимки, самовосстановление данных, дедупликация, а также улучшения, которые обеспечивают целостность данных. У Btrfs нет функций RAID-Z для ZFS, поэтому RAID все еще находится в экспериментальном состоянии с Btrfs. Тем не менее, для чистого хранения данных Btrfs лучше.

    На данный момент Ext4 — лучший выбор, так как она распространяется как файловая система по умолчанию, а также она быстрее Btrfs при передаче файлов. Btrfs, безусловно, стоит попробовать, но полностью заменять Ext4 еще рано, это можно будет сделать лишь через несколько лет.
    Что непонятно спрашиваем, если всё понятно - пользуемся.
    Что бы ни случилось, всё будет хорошо!

    Оффлайн vita

    • Глобальный модератор
    • Ветеран
    • *****
    • Сообщений: 2916
    • Да будет свет!
    Re: Файловая система BTRFS
    « Ответ #5 : 23 Июля 2018, 00:16:44 »
    Мне показалась интересной статья Файловые системы Linux. Btrfs., но, присоединяясь к мнению одного из комментирующих,
    Цитировать
    Несколько раз устанавливал ее, но столкнулся с проблемами - а как же за ней "ухаживать"? Команды терминала по актуальным направлениям требуются - очистка, обновления, оптимизация....в общем - полный набор! Как ее дефрагментировать - тоже важно! Не имея такого инструментария - и устанавливать не имеет смысла. Очень ждем ответов на эти вопросы, потому, как в русском сегменте - нет рекомендаций! Только это и тормозит применение этой ФС
    тоже нет желания наступать на "грабли". С ext4  в настоящее время как-то всё просто и беспроблемно. 
    Прошу Вячеслава в этой теме знакомить сообщество со своими достижениями и недостатками в области применения BTRFS. Возможно появится больше желающих к переходу на новую файловую систему.
    Делай с нами, делай как мы, делай лучше нас!

    Оффлайн ffeedd

    • Пользователь
    • **
    • Сообщений: 66
    • Счастье есть, оно рядом!
    Re: Файловая система BTRFS
    « Ответ #6 : 22 Августа 2018, 01:58:27 »
    Мои выводы полностью совпадают с мнением специалистов Университета SEDICOMM
    Цитировать
    ...На данный момент Ext4 — лучший выбор, так как она распространяется как файловая система по умолчанию, а также она быстрее Btrfs при передаче файлов. Btrfs, безусловно, стоит попробовать, но полностью заменять Ext4 еще рано, это можно будет сделать лишь через несколько лет.
    Ни чего не сказано про EXT4 на SSD. Вот что пишут на форуме русскоязычного сообщества Ubuntu по поводу BTRFS vs EXT4 на SSD:
    Цитировать
    ... EXT4, будучи наследником EXT3/EXT2, пишет на диск дофига данных разбросанных по небольшим группам хранения (в каждой группе есть преаллокированные inode-ы, которые используются не только в этой группе. При создании ФС все группы размечаются по всему разделу и тримить можно только кусочки внутри группы.
    Т.е., если коротко, - записей много и они довольно ровно размазаны по разделу. И как бы EXT4 не оптимизировали - рудименты от ее предков не дадут из этой FS "сделать конфетку". ...

    ... тоже нет желания наступать на "грабли". ...
    там же:
    Цитировать
    ... Так что я на SSD сразу ставил BTRFS и ни разу еще об этом не пожалел: BTRFS я эксплуатирую на двух компах на SSD дома и на HDD на работе уже не первый год. ...

    У меня BTRFS сама ни разу не падала,
    Спойлер
    ~$ sudo btrfs device stats /
    [/dev/sda2].write_io_errs    0
    [/dev/sda2].read_io_errs     0
    [/dev/sda2].flush_io_errs    0
    [/dev/sda2].corruption_errs  0
    [/dev/sda2].generation_errs  0
    но сломать её можно, было.
    « Последнее редактирование: 22 Августа 2018, 12:16:48 от ffeedd »
    Есть друзья, а для них у друзей нет выходных,

    Оффлайн ffeedd

    • Пользователь
    • **
    • Сообщений: 66
    • Счастье есть, оно рядом!
    Re: Файловая система BTRFS
    « Ответ #7 : 22 Августа 2018, 02:50:22 »
    Из ухаживаний за BTRFS применяю толко удаление уже не нужных @apt-snapshot-YYYY-MM-DD_hh:mm:ss:
    sudo btrfs subvolume delete /mnt/@apt-*и балансировку:
    sudo btrfs balance start /
    Спойлер
    WARNING:

       Full balance without filters requested. This operation is very
       intense and takes potentially very long. It is recommended to
       use the balance filters to narrow down the scope of balance.
       Use 'btrfs balance start --full-balance' option to skip this
       warning. The operation will start in 10 seconds.
       Use Ctrl-C to stop it.
    10 9 8 7 6 5 4 3 2 1
    Starting balance without any filters.
    Done, had to relocate 10 out of 10 chunks

    « Последнее редактирование: 22 Августа 2018, 12:18:00 от ffeedd »
    Есть друзья, а для них у друзей нет выходных,