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

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4814
  • Да будет свет!
Файловая система 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

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

ffeedd

  • Гость
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-*
« Последнее редактирование: 17 Ноября 2018, 15:34:14 от ffeedd »

ffeedd

  • Гость
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

    • Ветеран
    • *****
    • Сообщений: 3073
    • Что бы ни случилось, всё будет хорошо!
    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

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

    ffeedd

    • Гость
    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
    но сломать её можно, было.
    « Последнее редактирование: 17 Ноября 2018, 15:36:10 от ffeedd »

    ffeedd

    • Гость
    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 »

    ffeedd

    • Гость
    Re: Файловая система BTRFS
    « Ответ #8 : 14 Ноября 2018, 00:12:45 »
    Для тестов с BTRFS нужно было несколько установленных Matuntu-osen. А поскольку
    Цитировать
    У GRUB os-prober есть проблемы с обнаружением btrfs @subvolumes
    Ставим ОС без загрузчика на предварительно созданные разделы, не выходя из live:
    ~$ ubiquity -b
    Для загрузки установленных ОС с BTRFS создаём символические ссылки в каждом корневом каталоге btrfs для @/boot и @/etc и затем запускаем в каждой ОС sudo update-grub
    Спойлер
    #navigate to root of your current booted brtfs based OS
    cd /
    #create symlink for boot
    ln -s @/boot boot
    #create symlink for etc
    ln -s @/etc etc

    #mount the other btrfs volume with OS-install and navigate to its root
    cd /mnt/exampleotherbtrfsvolume
    #create symlink for boot
    ln -s @/boot boot
    #create symlink for etc
    ln -s @/etc etc

    #let grub detect btrfs based install volume

    #reboot to the other btrfs based OS (probably listed this time in grubmenu)
    #let this grub detect the previously booted btrfs volume
    sudo update-grub

    Сведения о только что установленных Matuntu-osen:
    ~$ df -h -T
    Файл.система   Тип      Размер Использовано  Дост Использовано% Cмонтировано в
    /dev/sda5       ext4       12G         5,3G  5,8G           48% EXT
    /dev/sda6      btrfs       12G         5,0G  6,8G           43% BTRFS
    /dev/sda7      btrfs       12G         2,9G  8,9G           25% LZO
    /dev/sda8      btrfs       12G         2,2G  9,5G           19% ZSTD

    Следующим этапом будет обновление и тестирование производительноси каждой FS.
    P.S. Для создания раздела с сжатием zstd необходимо установить этот пакет.
    « Последнее редактирование: 17 Ноября 2018, 15:42:14 от ffeedd »

    Оффлайн vita

    • Глобальный модератор
    • Ветеран
    • *****
    • Сообщений: 4814
    • Да будет свет!
    Re: Файловая система BTRFS
    « Ответ #9 : 14 Ноября 2018, 01:05:43 »
    Спасибо за информацию, Вячеслав. Интересные тесты. Как сказывается сжатие  ФС на работе системы?
    Делай с нами, делай как мы, делай лучше нас!

    Оффлайн ivm

    • Ветеран
    • *****
    • Сообщений: 3073
    • Что бы ни случилось, всё будет хорошо!
    Re: Файловая система BTRFS
    « Ответ #10 : 14 Ноября 2018, 15:06:21 »
    У меня есть две больших озабоченности. Одна из них - снижение скорости работы системы во времени. Наверняка многие замечают, что вновь установленная система работает быстрее. Администрирование системы, конечно, позволяет чистить и то и сё, но всё равно есть регресс. Проанализировав многие источники, понимаю, что процесс до конца не ясен. На btrfs есть один очень интересный инструмент. Снапшот системы может стать панацеей при появившейся проблеме.

    ffeedd

    • Гость
    Re: Файловая система BTRFS
    « Ответ #11 : 17 Ноября 2018, 13:25:16 »
    Обновил системы, а
    Как сказывается сжатие ФС на работе системы?
    попробывал Bonnie++ - популярный бенчмарк для тестирования производительности жестких дисков и файловых систем, bonnie++(8) - Linux man page, результат которого

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

    Заполнил системы домашней папкой из рабочей B64M-R весом 4.8G. Вот, что получилось:
    ~$ df -BM -T
    Файл.система   Тип      1M-блоков Использовано Доступно Использовано% Cмонтировано в
    /dev/sda5      ext4        11950M       10539M     785M           94% EXT4
    /dev/sda6      btrfs       12206M       11055M     656M           95% BTRFS
    /dev/sda7      btrfs       12206M        8508M    3240M           73% LZO
    /dev/sda8      btrfs       12206M        8251M    3700M           70% ZSTD
    и ещё:
    sudo compsize /mnt в /mnt примонтирован раздел /dev/sdXY с BTRFS 
    Спойлер
    Processed 210167 files, 106290 regular extents (106614 refs), 90570 inline.
    Type       Perc     Disk Usage   Uncompressed Referenced 
    TOTAL      100%       10G          10G          10G       
    none       100%       10G          10G          10G       

    Processed 210201 files, 108808 regular extents (109845 refs), 114352 inline.
    Type       Perc     Disk Usage   Uncompressed Referenced 
    TOTAL       77%      8.0G          10G          10G       
    none       100%      6.0G         6.0G         6.0G       
    zlib        41%      1.3M         3.1M         3.1M       
    lzo         46%      2.0G         4.4G         4.5G       

    Processed 211738 files, 106995 regular extents (108073 refs), 118976 inline.
    Type       Perc     Disk Usage   Uncompressed Referenced 
    TOTAL       69%      7.3G          10G          10G       
    none       100%      5.9G         5.9G         5.9G       
    zlib        34%      857K         2.4M         2.4M       
    zstd        31%      1.4G         4.5G         4.6G       


    Самое большое различие в применении BTRFS - это сжатие: no/lzo/zstd -100% / 46% / 31%.

    Следущим этапом будет тестирование EXT4vsBTRFS на внешнем USB3-HDD (сейчас на SSD), а скорость работы системы в реальных условиях будем измерять после новой установки Matuntu-B64-osen18.

    Спасибо, Татьяна! Другие дистры с MATUNTU рядом не стоят.
    « Последнее редактирование: 19 Ноября 2018, 22:56:00 от ffeedd »

    Оффлайн ivm

    • Ветеран
    • *****
    • Сообщений: 3073
    • Что бы ни случилось, всё будет хорошо!
    Re: Файловая система BTRFS
    « Ответ #12 : 17 Ноября 2018, 14:16:27 »
    А вот рекомендаций по этому поводу дать не могу, слаб в познаниях, жду советов.

    В 2014 году bonnie++ рассматривалась на зенвее. В принципе там описаны основные возможности утилиты и нет подробной документации. Но вот комментарии интересны. Данная утилита подходит для ОТБОРА HDD с целью дальнейшего использования дисков на серверах с большой нагрузкой. Там HDD - расходный материал и как долго он прослужит, действительно важный параметр. А оттестировать производительность, в т.ч. и файловой системы, бережными средствами для накопителя может утилита Диски, которая есть в каждом нашем дистрибутиве.

    ffeedd

    • Гость
    Re: Файловая система BTRFS
    « Ответ #13 : 20 Ноября 2018, 07:14:05 »
    Продолжение тестов. EXT4vsZSTD.
    ID-2: USB /dev/sdb model: nal_USB_3.0 size: 500.1GB, выделено 2 раздела по 32G. Тесты проводились по умалчиванию по 3 раза из под каждой ФС.


    Что интересно - время полного выполнения тестов на
    • EXT4 - 38:44
    • ZSTD - 09:12

    Оффлайн ivm

    • Ветеран
    • *****
    • Сообщений: 3073
    • Что бы ни случилось, всё будет хорошо!
    Re: Файловая система BTRFS
    « Ответ #14 : 22 Января 2020, 10:19:44 »
    Для Btrfs представлена асинхронная реализация DISCARD. Возможно использующих данную файловую систему это обрадует.