Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Голосование

Используете ли вы BTRFS?

Да
Нет, но теперь попробую
Нет

Автор Тема: BTRFS. Готова ли к использованию в 16.04?  (Прочитано 96514 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #630 : 19 Сентября 2016, 18:21:23 »
Поправил немного список фич.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #631 : 21 Сентября 2016, 11:09:12 »
Кстати, к вопросу о фейковом RAID10 (то, что свободное место неправильно показывается). Провёл эксперимент с RAID0 на двух неодинаковых дисках. Результат тот же - то есть в системе видно свободного места на сумму двух дисков, а по факту не даёт записать больше, чем удвоенный размер наименьшего диска.

Пользователь добавил сообщение 21 Сентября 2016, 11:22:25:
Хотя, вот тут https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices есть такая строчка, которая как раз и объясняет этот нюанс.
Цитировать
If you want to use devices of different sizes, striped RAID levels (RAID-0, RAID-10, RAID-5, RAID-6) may not use all of the available space on the devices. Non-striped equivalents may give you a more effective use of space (single instead of RAID-0, RAID-1 instead of RAID-10).
Но вопрос о том, почему же тогда свободное место системе неправильно сообщается, остаётся открытым.
И, да, тестовая система - 16.04.1, ядро и btrfs-progs - 4.4
« Последнее редактирование: 21 Сентября 2016, 11:22:25 от Resquer »

Оффлайн Venom13

  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #632 : 21 Сентября 2016, 12:00:54 »
Но вопрос о том, почему же тогда свободное место системе неправильно сообщается, остаётся открытым.

Я так понимаю - это задел на будущее.
Когда можно будет организовывать разные схемы хранения на подтомах. (или даже на папках)
Допустим весь том у Вас RAID0, но вот одна папка в нем - SINGLE.
И вот содержимое этой папки SINGLE - вполне сможет использовать недоступное для RAID0 место..

Совместное использование RAID0 и SINGLE - врядли имеет смысл.
Но вот на больших массивах RAID56 - "лишнее место" вполне можно использовать в SINGLE.. Под всякие временные папки.

Пользователь добавил сообщение 21 Сентября 2016, 12:03:34:
Кстати, к вопросу о фейковом RAID10 (то, что свободное место неправильно показывается).
Зато он станет вполне себе "неФЕЙКОВЫМ" если добавить в него еще дисков, чтобы суммарный объем меньших дисков был равен объему одному - большему.
« Последнее редактирование: 21 Сентября 2016, 12:03:34 от Venom13 »

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #633 : 21 Сентября 2016, 12:06:11 »
Провёл эксперимент с RAID0 на двух неодинаковых дисках. Результат тот же - то есть в системе видно свободного места на сумму двух дисков, а по факту не даёт записать больше, чем удвоенный размер наименьшего диска.
А как вы хотели иначе?
RAID0 - стрипинг (запись одинаковыми кусочками попеременно на два разных диска) - там как на меньшем кончилось место так и кончилась возможность такого порядка записи.

RAID1 btrfs - это "две копии на разных дисках", если дисков два, то как на одном место кончится, то "две копии на разных дисках" уже невозможно создать, несмотря на наличие места на большем диске.

Если в raid1 три диска, то там можно "мухлевать" с "двумя копиями на разных дисках" и там может быть занято все. Возможно как то мухлевать можно и в raid0 на трех дисках, но я не уверен... надо бы поэксперементировать....
« Последнее редактирование: 21 Сентября 2016, 12:09:16 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #634 : 21 Сентября 2016, 12:56:36 »
А как вы хотели иначе?
Я прекрасно понимаю, как работают различные типы RAID, вопрос не в том, как я хотел или не хотел, а в том, что если система даёт создать raid0 из двух дисков неравного размера, то и операционной системе должны передаваться верные данные о том, какого размера получившийся том и сколько свободного места осталось. Но этого не происходит, что вводит в заблуждение. Реальный размер в итоге узнаётся опытным путём, когда место на диске заканчивается, хотя видно, что оно ещё есть.
Из за того, что raid1 в btrfs "специфический", ну то есть можно создавать массив из неодинаковых дисков, я предположил, что так можно сделать и при использовании raid0 (ведь даёт создать такой массив и не ругается и даже итоговое место на диске показывает как сумму дисков, то есть как и должно в случае raid0). Понятно, что тут пришлось бы либо делать разное количество страйпов для каждого диска, либо делать их разного размера. Этого в реале нет, но я должен был проверить :)

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #635 : 21 Сентября 2016, 13:12:47 »
Resquer, вроде как страйпы разного размера даже обсуждались.... Но, на сколько я помню это было в разряде идей, а не планов.

Собственно разработчики btrfs мне нравятся тем что они не зашорены стандартами, по сему для них страйпы разного размера - это естественный вариант а не нечто рвущее шаблон.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Venom13

  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #636 : 21 Сентября 2016, 13:23:27 »
А чем не нравится простой SINGLE?
Он в большинстве случаев ведет себя также как и RAID0.
Старается заполнять устройства парами, пока есть место хотя-бы на одной паре.
Соответственно при чтении - тоже читает с 2х дисков.
В некоторых случаях да - пишет только на один диск. Какими принципами он при этом руководствуется - пока загадка.
Но при балансировке - всегда разносит данные по всем дискам.

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #637 : 21 Сентября 2016, 13:25:24 »
Если в raid1 три диска, то там можно "мухлевать" с "двумя копиями на разных дисках" и там может быть занято все. Возможно как то мухлевать можно и в raid0 на трех дисках, но я не уверен... надо бы поэксперементировать....
А я проверил. Взял три диска разного размера: 20G, 5G и 16G и объединил их в raid0.
Тоже используется не весь доступный размер.
Вот картинка после того, как я забил массив данными до отказа:
root@testcomp:/mnt/03# btrfs filesystem usage /mnt
Overall:
    Device size:                  41.00GiB
    Device allocated:             36.99GiB
    Device unallocated:            4.01GiB
    Device missing:                  0.00B
    Used:                         35.05GiB
    Free (estimated):              4.01GiB      (min: 2.00GiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:               16.00MiB      (used: 0.00B)

Data,RAID0: Size:34.97GiB, Used:34.97GiB
   /dev/sdb       14.99GiB
   /dev/sde        4.99GiB
   /dev/sdf       14.99GiB

Metadata,RAID1: Size:1.00GiB, Used:37.28MiB
   /dev/sdb        1.00GiB
   /dev/sdf        1.00GiB

System,RAID1: Size:8.00MiB, Used:16.00KiB
   /dev/sde        8.00MiB
   /dev/sdf        8.00MiB

Unallocated:
   /dev/sdb        4.01GiB
   /dev/sde        1.00MiB
   /dev/sdf        1.00MiB

Пользователь добавил сообщение 21 Сентября 2016, 13:27:16:
А чем не нравится простой SINGLE?
Он в большинстве случаев ведет себя также как и RAID0.
Старается заполнять устройства парами, пока есть место хотя-бы на одной паре.
Соответственно при чтении - тоже читает с 2х дисков.
В некоторых случаях да - пишет только на один диск. Какими принципами он при этом руководствуется - пока загадка.
Но при балансировке - всегда разносит данные по всем дискам.
Я тоже поначалу так думал. Но нет, увы, у меня это не так. Пишет до отказа на первый диск, только потом начинает заполнять второй. Первый диск у меня больше, чем второй (может быть потому?)
« Последнее редактирование: 21 Сентября 2016, 13:27:16 от Resquer »

Оффлайн Venom13

  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #638 : 21 Сентября 2016, 13:34:34 »
Но нет, увы, у меня это не так. Пишет до отказа на первый диск
Попробуй сделать балансировку..
И потом писать дальше.
У меня после первой балансировки он начал писать равномерно.

Пользователь добавил сообщение 21 Сентября 2016, 13:36:21:
На счет RAID0 из 3х дисков - удивлен.
А я проверил. Взял три диска разного размера: 20G, 5G и 16G и объединил их в raid0.
Тоже используется не весь доступный размер.

Может дело вот в этом:
Metadata,RAID1: Size:1.00GiB, Used:37.28MiB
   /dev/sdb        1.00GiB
   /dev/sdf        1.00GiB
System,RAID1: Size:8.00MiB, Used:16.00KiB
   /dev/sde        8.00MiB
   /dev/sdf        8.00MiB
Unallocated:
   /dev/sdb        4.01GiB
   /dev/sde        1.00MiB
   /dev/sdf        1.00MiB
(места нехватает не для данных - а для метаданных. Попробуй их тоже в RAID0 перевести)

Ну или пока недоделка..
« Последнее редактирование: 21 Сентября 2016, 13:37:23 от Venom13 »

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #639 : 21 Сентября 2016, 14:07:33 »
Попробуй сделать балансировку..
Разумеется, это после балансировки, иначе я бы даже не писал бы об этом.

Пользователь добавил сообщение 21 Сентября 2016, 14:29:01:
(места нехватает не для данных - а для метаданных. Попробуй их тоже в RAID0 перевести)
Ага, попробовал.
Сначала сделал конверт (пришлось удалить около половины данных, иначе не давало), потом балансировку (опять вылетало с ошибкой, пока еще данных не поудалял - всё-таки много места свободного для этих операций надо).
Потом снова забил массив до отказа.
Итог:
root@testcomp:/mnt# btrfs filesystem usage /mnt
Overall:
    Device size:                  41.00GiB
    Device allocated:             37.00GiB
    Device unallocated:            4.00GiB
    Device missing:                  0.00B
    Used:                         36.66GiB
    Free (estimated):              4.00GiB      (min: 4.00GiB)
    Data ratio:                       1.00
    Metadata ratio:                   1.00
    Global reserve:               16.00MiB      (used: 0.00B)

Data,RAID0: Size:36.62GiB, Used:36.62GiB
   /dev/sdb       15.87GiB
   /dev/sde        4.87GiB
   /dev/sdf       15.87GiB

Metadata,RAID0: Size:288.00MiB, Used:38.69MiB
   /dev/sdb       96.00MiB
   /dev/sde       96.00MiB
   /dev/sdf       96.00MiB

System,RAID0: Size:96.00MiB, Used:16.00KiB
   /dev/sdb       32.00MiB
   /dev/sde       32.00MiB
   /dev/sdf       32.00MiB

Unallocated:
   /dev/sdb        4.00GiB
   /dev/sde        1.00MiB
   /dev/sdf        1.00MiB

Пользователь добавил сообщение 21 Сентября 2016, 14:35:41:
Кстати, df -h показывает правильно freespace:
root@testcomp:/mnt# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           200M   11M  190M   6% /run
/dev/sda1        14G  4.5G  8.6G  35% /
tmpfs          1000M     0 1000M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1000M     0 1000M   0% /sys/fs/cgroup
cgmfs           100K     0  100K   0% /run/cgmanager/fs
tmpfs           200M     0  200M   0% /run/user/1000
/dev/sdb         41G   37G  128K 100% /mnt
Но сбивает с толку то, что Size неверно отображается.
В midnight commander тоже самое. Ну и если мы какую то папку расшарим по сети - то на удалённом конце тоже будет неверная информация о свободном пространстве, т.к. чаще всего это значение тупо вычисляется по формуле Size-Used=Free
« Последнее редактирование: 21 Сентября 2016, 14:35:41 от Resquer »

Оффлайн Venom13

  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #640 : 21 Сентября 2016, 15:42:05 »
на удалённом конце тоже будет неверная информация о свободном пространстве, т.к. чаще всего это значение тупо вычисляется по формуле Size-Used=Free
Ага. Но ведь учитывая сжатие - в Free 8 Gb вполне может войти 10-20 Gb хорошо сжимаемых данных.
Далеко не каждый файловый менеджер согласится начинать копирование.

Особенности FS.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #641 : 21 Сентября 2016, 15:50:16 »
Но сбивает с толку то, что Size неверно отображается.

По этому поводу на сайте где тусуют разработчики btrfs есть отделенный вопрос в FAQ (сейчас лень искать просто перескажу):
Типа почему неверно отображается свободное место, да и вообще понять что там внутри btrfs с точки зрения достуного и занятго места - невозможно. WTF?

Ответ примерно такой - типа все, что мы могли придумать на предмет отображения свободного/занятого места и всего такого, мы уже сделали. Но с учетом особенностей btrfs (снимки, дедубликация, упаковка, раид- и не раид конфигурации хранения и т.д. и т.п.) мы не можем придумать как отразить занятое/свободное более правильно. Если у вас есть мысли на этот счет - обязательно их озвучьте в обсуждениях.

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

При этом вывод стандартных du/df они уже заметно прокачали, раньше они вообще среднюю температуру сферического коня в вакууме показывали.
« Последнее редактирование: 21 Сентября 2016, 16:46:12 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #642 : 21 Сентября 2016, 16:09:20 »
Далеко не каждый файловый менеджер согласится начинать копирование.
Не по этой теме, но всё-же скажу. Да, не каждый, но в тоже время дохрена менеджеров, которые вообще не проверяют место, а тупо льют данные, пока это получается.

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #643 : 03 Октября 2016, 10:19:59 »
А чем не нравится простой SINGLE?
Он в большинстве случаев ведет себя также как и RAID0.
Старается заполнять устройства парами, пока есть место хотя-бы на одной паре.
Соответственно при чтении - тоже читает с 2х дисков.
В некоторых случаях да - пишет только на один диск. Какими принципами он при этом руководствуется - пока загадка.
Но при балансировке - всегда разносит данные по всем дискам.
Я тоже поначалу так думал. Но нет, увы, у меня это не так. Пишет до отказа на первый диск, только потом начинает заполнять второй. Первый диск у меня больше, чем второй (может быть потому?)
Понаблюдал некоторое время за типом SINGLE, немного скорректирую свои выводы. На один диск пишется не до отказа, а до сравнения остаточных ёмкостей, потом начинает разносить на оба диска сразу.
Вот примеры:

1. На второй диск еще не начало писаться, т.к. unallocated на обоих дисках одинаково:
root@store:~# btrfs filesystem usage /mnt/2tb
Overall:
    Device size:                  10.01TiB
    Device allocated:              4.56TiB
    Device unallocated:            5.45TiB
    Device missing:                  0.00B
    Used:                          4.55TiB
    Free (estimated):              5.45TiB      (min: 2.73TiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,single: Size:4.55TiB, Used:4.54TiB
   /dev/md0        4.55TiB

Metadata,RAID1: Size:4.00GiB, Used:3.14GiB
   /dev/md0        4.00GiB
   /dev/md1        4.00GiB

Metadata,DUP: Size:1.00GiB, Used:266.25MiB
   /dev/md0        2.00GiB

System,RAID1: Size:32.00MiB, Used:528.00KiB
   /dev/md0       32.00MiB
   /dev/md1       32.00MiB

Unallocated:
   /dev/md0        2.72TiB
   /dev/md1        2.72TiB

2. Немного позаписывал еще данных на эту дисковую группу, и видим:
root@store:~# btrfs filesystem usage /mnt/2tb
Overall:
    Device size:                  10.01TiB
    Device allocated:              4.58TiB
    Device unallocated:            5.43TiB
    Device missing:                  0.00B
    Used:                          4.57TiB
    Free (estimated):              5.43TiB      (min: 2.72TiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,single: Size:4.57TiB, Used:4.56TiB
   /dev/md0        4.56TiB
   /dev/md1       11.00GiB

Metadata,RAID1: Size:4.00GiB, Used:3.17GiB
   /dev/md0        4.00GiB
   /dev/md1        4.00GiB

Metadata,DUP: Size:1.00GiB, Used:266.25MiB
   /dev/md0        2.00GiB

System,RAID1: Size:32.00MiB, Used:528.00KiB
   /dev/md0       32.00MiB
   /dev/md1       32.00MiB

Unallocated:
   /dev/md0        2.71TiB
   /dev/md1        2.71TiB

Кстати, даже после перевода метаданных в режим RAID1 и последующей полной балансировки, всё равно немного метаданных осталось в режиме DUP. Баг это или фича - не знаю. Возможно, еще может быть балансировку надо повторить, но мне лень - более суток у меня это занимает на таких объемах.

Оффлайн Venom13

  • Участник
  • *
  • Сообщений: 249
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #644 : 03 Октября 2016, 10:50:54 »
Кстати, даже после перевода метаданных в режим RAID1 и последующей полной балансировки, всё равно немного метаданных осталось в режиме DUP.
Конвертация точно до конца до делалась?
У меня такая картина была, когда я запустил конвертацию и через 3  минуты отменил.
Я так понимаю для BTRFS совсем не страшно что части методанных хранятся по разному. Как и части данных.
Почему бы и нет, учитывая что они собираются сделать что и папки смогут храниться по разному.  :)

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

 

Страница сгенерирована за 0.072 секунд. Запросов: 28.