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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Голосование

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

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

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

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

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #585 : 14 Сентября 2016, 17:34:35 »
1. Как в таком случае загрузчик.. Запишется на оба диска? Или все-таки если умрет основной диск придется с Live-CD восстанавливать GRUB?
Вообще, предусмотрен такой механизм?
2 Если один из дисков умрет - массив же перестанет монтироваться.
(только с параметром degraded)
Что, по идеи, в любом случае поломает систему.. И придется лезть в неё из Live-CD и восстанавливать.
Я полагаю загрузчик можно банально скопировать на другой диск. В случае MBR - там нужно копирнуть MBR и те сектора что за ним до сектора с которого начинается первый раздел (там собственно еще и разметка скопируется). А с UEFI загрузкой - нужно просто скопировать EFS раздел на второй диск. После этого грузиться можно будет с любого, ну само собой что надо degraded включить если один диск умер.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #586 : 15 Сентября 2016, 09:02:14 »
Господа, нужна помощь ведущих собаководов.
Дано: домашний сервер с ubuntu 14.04.5, ядро xenial 4.4, btrfs-tools версии 4.4, пять жестких дисков: 1х160Г + 2х8Т + 2х3Т. 160гиговый винт выведен в отдельную группу с логическим томом lvm, система и загрузчик на нём. ФС - ext4. Остальные диски попарно сзеркалированы в raid1, с помощью mdadm, т.е. в итоге имеем /dev/md0 размером 8Т и /dev/md1 размером 3Т. Они в свою очередь сидят в отдельной группе lvm, на эту группу натянут единый логический том размером 11Т, отформатирован в ext4. Точнее, был отформатирован.
Начитавшись про плюшки btrfs, было решено плавно переползти с ext4 на btrfs (Том с системой на 160Г пока оставляем на ext4, потому, проблемы с grub и прочие подводные камни меня мало волнуют). Так как напрямую конвертировать ext4 в btrfs мне было сцыкотно, я пошёл другим путём.
Что сделал: так как полезных данных на томе у меня всего 4,5Т, то я просто на ночь поставил ресайзиться этот логический том до 5Т, затем на освободившемся месте в этой же группе томов создал еще один, отформатировал в btrfs и с помощью rsync среплицировал все данные с ext4 на btrfs, подменил строчки в fstab, теперь на прежнем месте я имею все те же данные, но на разделе btrfs, всё работает как и должно. На папки, предназначенные для торрентов, был отключен cow, как здесь и советовали.
Теперь не могу определиться в наилучшим алгоритмом дальнейших действий.
Возможные варианты:

1. Сносим том с ext4, на освободившееся место растягиваем том с btrfs. Всё. Самый быстрый и простой вариант. Но, так как концепция btrfs во многом повторяет функционал lvm, этот вариант вызывает некоторые сомнения, посему, в голову долбится второй вариант.

2. На уровне lvm мигрируем том таким образом, чтобы снять все данные с /dev/md1, вывести его из lvm насовсем, затем поломать его на 2 отдельных диска по 3Т, ненадолго, добавить эти диски в режиме single к существующему тому btrfs, смигрировать на них полностью все данные, чтобы совсем они ушли с дисков, которые в lvm, затем вывести /dev/md0 из lvm, удалив эту группу томов насовсем, добавить md0 к тому btrfs, смигрировать назад все данные, убрать из btrfs отдельные диски по 3Т, собрать на них raid1 заново, добавить md1 обратно к btrfs, сделать балансировку. Что получим - уберем прослойку lvm как ненужную, но рейды будут построены с помощью проверенного временем mdadm. Будет какой то промежуток времени, когда данные будут уязвимы, т.к. зеркалирования не будет, но это ненадолго, надеюсь, пронесёт (в любом случае, самые ценнейшие данные есть еще и на компе).

3. Еще один вариант - каким то образом сделать raid с помощью функционала btrfs, убрав обе прослойки - и lvm и mdadm, но тут загвоздка - как строить простейший массив типа raid0, raid1 и т.п. в целом понятно, но вот как строить комбинацию массивов, т.е. raid1+raid1 и чтобы эти 2 массива были в виде single - мне не совсем понятно.
Кто что скажет? Какой вариант предпочтительнее? Может еще есть варианты, которые мне в голову не пришли? Что я не учёл?

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #587 : 15 Сентября 2016, 11:28:46 »
Resquer, по поводу как вам сделать лучше - я думаю вы решить должны сами.

По поводу того что вы могли упустить - вы упустили такую замечательную фишку btrfs RAID1 как работа с дисками разного размера при числе дисков более 2-х (т.е. как раз ваш случай).

Т.е. вы упустили еще один возможный вариант - просто создать btrfs на всех 4 дисках в одном RAID1 (без mdadm и lvm). Получите 11Тб места с гарантированными двумя копиями данных на разных дисках. Как оно там будет раскидано - не важно, важно то, что любой 1 диск из этой конфигурации имеет право умереть не унося с собой каких-то данных, которых нет на каком-то другом диске.
« Последнее редактирование: 15 Сентября 2016, 11:30:26 от 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?
« Ответ #588 : 15 Сентября 2016, 11:44:02 »
Sly_tom_cat, спасибо, с утра сижу, ковыряю тестовый стенд на виртуалке с 5ю дисками как у меня, пробую разные варианты. Открыл для себя прелюбопытнейшую вещь - система даёт конвертировать 4хдисковую группу single не просто в raid1, а прямо в raid10 !!! (2 диска одного размера, 2 диска - другого). Причём, всего одной командой.
Как это возможно? Мои представления о RAID10 - диски всегда должны быть одинакового размера.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #589 : 15 Сентября 2016, 12:00:33 »
Как бы я сделал.
1. выводим из LVM /dev/md1 размером 3Т.
2. разбиваем raid на два независимых диска 3Т.
3. создаем btrfs на двух 3Т дисках в режиме single (6Т).
4. rsync данных с /dev/md0 на новую FS
5. выводим из lvm и разбиваем /dev/md0.
6. добавляем оба диска 8Т в нашу новую btrfs.
7. запускаем балансировку и переводим в btrfs RAID1: btrfs balance start -f -sconvert=raid1,soft -mconvert=raid1,soft -dconvert=raid1,soft <каталог куда смотирована btrfs>
8. правим /etc/fstab.
profit (11T доступного пространства с дублированием данных)

Раид 10 вам не нужен (из дисков 2*3T + 2*8T вы получите всего 6Т доступного мета, в RAID1 на тех же дисках - будет 11T). А чудеса с дисками в раид конфигурациях btrfs очень хорошо расписаны и объяснены в статье.
« Последнее редактирование: 15 Сентября 2016, 12:17:47 от 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?
« Ответ #590 : 15 Сентября 2016, 12:49:02 »
3. создаем btrfs на двух 3Т дисках в режиме single (6Т).
4. rsync данных с /dev/md0 на новую FS
5. выводим из lvm и разбиваем /dev/md0.
А это зачем? Не проще ли просто разбить md1 и к уже существующему разделу btrfs добавить эти два новых диска, затем изъять из этого раздела md0? Потом разбить md0 и добавить эти диски к тому же btrfs тому? А вот потом уже сделать конверт в raid. Проверил только что на виртуалке - такой сценарий работает.
Раид 10 вам не нужен (из дисков 2*3T + 2*8T вы получите всего 6Т доступного мета, в RAID1 на тех же дисках - будет 11T).
А вот и фигушки, если бы так было, я бы и не удивлялся, но в данном случае RAID1 из 4х дисков попарно разного размера равен по объему RAID10 с дисков той же конфигурации. Прям только что проверял.
RAID10 будет субъективно быстрее по быстродействию, т.к. данные будут одновременно на все диски писаться/читаться.

Оффлайн Sly_tom_cat

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

По поводу доступных объемов - в btrfs это не так и просто определить.... По утилитам - совсем не просто.

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

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #592 : 15 Сентября 2016, 12:56:11 »
Вот картина с RAID10:
root@testcomp:/mnt# btrfs filesystem usage /mnt
Overall:
    Device size:                  50.00GiB
    Device allocated:             20.00GiB
    Device unallocated:           30.00GiB
    Device missing:                  0.00B
    Used:                         19.39GiB
    Free (estimated):             15.00GiB      (min: 15.00GiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:               16.00MiB      (used: 0.00B)

Data,RAID10: Size:9.69GiB, Used:9.68GiB
   /dev/sdb        2.42GiB
   /dev/sdc        2.42GiB
   /dev/sdd        2.42GiB
   /dev/sde        2.42GiB

Metadata,RAID10: Size:256.00MiB, Used:10.59MiB
   /dev/sdb       64.00MiB
   /dev/sdc       64.00MiB
   /dev/sdd       64.00MiB
   /dev/sde       64.00MiB

System,RAID10: Size:64.00MiB, Used:16.00KiB
   /dev/sdb       16.00MiB
   /dev/sdc       16.00MiB
   /dev/sdd       16.00MiB
   /dev/sde       16.00MiB

Unallocated:
   /dev/sdb       17.50GiB
   /dev/sdc       17.50GiB
   /dev/sdd        2.50GiB
   /dev/sde        2.50GiB
root@testcomp:/mnt# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            982M     0  982M   0% /dev
tmpfs           200M  5.9M  195M   3% /run
/dev/sda1        14G  4.1G  9.0G  32% /
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         25G  9.8G  308K 100% /mnt
root@testcomp:/mnt# parted -l
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  15.0GB  15.0GB  primary   ext4            boot
 2      15.0GB  17.2GB  2145MB  extended
 5      15.0GB  17.2GB  2145MB  logical   linux-swap(v1)


Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  21.5GB  21.5GB  btrfs


Model: VMware Virtual disk (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  21.5GB  21.5GB  btrfs


Model: VMware Virtual disk (scsi)
Disk /dev/sdd: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  5369MB  5369MB  btrfs


Model: VMware Virtual disk (scsi)
Disk /dev/sde: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  5369MB  5369MB  btrfs

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #593 : 15 Сентября 2016, 13:00:59 »
Resquer, покажите еще
btrfs de us /mnt
PS df - на btrfs показывает среднюю температуру по бальничке или квадрат от скорости сферического коня в вакууме.
« Последнее редактирование: 15 Сентября 2016, 13:03:09 от 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?
« Ответ #594 : 15 Сентября 2016, 13:03:06 »
Кстати да, тут какая хрень происходит.
Написано, что место есть, но не пишет, типа нет места на диске.
Так что, похоже, Вы правы. :)

Пользователь добавил сообщение 15 Сентября 2016, 13:04:59:
Sly_tom_cat, root@testcomp:~# btrfs de us /mnt
/dev/sdb, ID: 2
   Device size:            20.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:            17.50GiB

/dev/sdc, ID: 3
   Device size:            20.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:            17.50GiB

/dev/sdd, ID: 4
   Device size:             5.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:             2.50GiB

/dev/sde, ID: 5
   Device size:             5.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:             2.50GiB
« Последнее редактирование: 15 Сентября 2016, 13:04:59 от Resquer »

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #595 : 15 Сентября 2016, 13:10:49 »
А это зачем? Не проще ли просто разбить md1 и к уже существующему разделу btrfs добавить эти два новых диска
- у вас существующая btrfs стоит на mdadm/lvm - я не вижу с смысла в этой двойной прокладке, т.к. и mdadm, и LVM при использовании btrfs - просто теряют смысл.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Resquer

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #596 : 15 Сентября 2016, 13:14:22 »
Sly_tom_cat, Это всё понятно, я спрашивал в чем смысл создавать ещё одну ФС и потом тянуть туда данные rsync-ом, если можно просто выбросить из lvm один рейд - md1, разбить его на диски и просто добавить их к существующему тому btrfs? Потом сделать команду "вывести из тома диск md0" - не помню синтаксис, данные сами смигрируются на эти диски без всяких rsync-ов.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #597 : 15 Сентября 2016, 13:16:25 »
Ага - с btrfs de us /mnt - чуть ясннее. Реально у вас там осталось всего 2.50gb свободного места - просто допишите 2 гига файлов а потом попробуйте еще 1 гб записать - должно ругнутся.
при этом дисковое место свободное btrfs filesystem usage /mnt - будет показывать, но использовать его - не получится.

Вроде как обещали допилить назначение для подтомов своих схем хранения... видимо с такой фишкой можно было бы еще один под-том с single создать и заюзать остаток... но я пока не понял - допилили это или нет.

Пользователь добавил сообщение 15 Сентября 2016, 13:19:58:
выбросить из lvm один рейд - md1, разбить его на диски и просто добавить их к существующему тому btrfs? Потом сделать команду "вывести из тома диск md0" - не помню синтаксис, данные сами смигрируются на эти диски без всяких rsync-ов.


Ну, в принципе можно и так. Но мне кажется это может быть медленнее чем rsync-ом в чистую FS.
« Последнее редактирование: 15 Сентября 2016, 13:19:58 от 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?
« Ответ #598 : 15 Сентября 2016, 13:20:05 »
с btrfs de us /mnt - чуть ясннее. Реально у вас там осталось всего 2.50gb свободного места
Нету там реально никаких 2.5gb
root@testcomp:/mnt# btrfs de us /mnt
/dev/sdb, ID: 2
   Device size:            20.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:            17.50GiB

/dev/sdc, ID: 3
   Device size:            20.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:            17.50GiB

/dev/sdd, ID: 4
   Device size:             5.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:             2.50GiB

/dev/sde, ID: 5
   Device size:             5.00GiB
   Data,RAID10:             2.42GiB
   Metadata,RAID10:        64.00MiB
   System,RAID10:          16.00MiB
   Unallocated:             2.50GiB

root@testcomp:/mnt# dd if=/dev/urandom of=/mnt/testfile4
dd: writing to '/mnt/testfile4': No space left on device
9+0 records in
8+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.0371803 s, 110 kB/s
Похоже, баг.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: BTRFS. Готова ли к использованию в 16.04?
« Ответ #599 : 15 Сентября 2016, 13:22:43 »
 :o О! походу дело еще хуже.... :idiot2: странно - мне казалось в раид 10 на 4 дисках должно было бы на самых маленьких дисках выесть до конца а уже потом репортить но спайс он дивайс :idiot2: :-\

Вобщем ну его этот 10-й раид - лучше 1-й!
« Последнее редактирование: 15 Сентября 2016, 13:25:00 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

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