LINUX.ORG.RU

как btrfs располагает данные\метаданные — по умолчанию. и как вернуть это состояние?

 


0

2

добрый вечер! после того как btrfs стало официально промыщленным. оно стало модным, потому наконец-то задам этот вопрос.

[вопрос не связан со стабильность.. так-что парни, кто хотел потролить — в этой теме не получится :) ..облом:)]

вопрос вкратце: если я в btrfs форматирую 1 жёсткий диск (не мультидисковый btrfs), все настройки поумолчанию, то как (в каком режиме?) btrfs хранит данные\метаданные?

далее — всё на примере:

начальная фаза: создаю тестовый образ с btrfs:

[root@localhost ~]# truncate -s 1200M test-btrfs.img
[root@localhost ~]# mkfs.btrfs test-btrfs.img
Btrfs v3.17
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
ERROR: device scan failed 'test-btrfs.img' - Block device required
fs created label (null) on test-btrfs.img
	nodesize 16384 leafsize 16384 sectorsize 4096 size 1.17GiB
[root@localhost ~]# mount test-btrfs.img /mnt
[root@localhost ~]# lsblk | grep -Fi '/mnt'
loop0                                           7:0    0   1.2G  0 loop  /mnt
[root@localhost ~]#

размер образа специально чуть-больше чем 1-гигобайта, чтобы btrfs не включал бы оптимизацию для маленьких образов (так что если вы создадите совсем маленький образ — у вас может быть что-то не так как у меня)

далее мы видим что:

[root@localhost ~]# btrfs filesystem df /mnt
Data, single: total=8.00MiB, used=0.00B
System, DUP: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=60.00MiB, used=112.00KiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B
[root@localhost ~]# 

и вот как раз вопрос — что это за режим?

очевидно что дата хранится как single.. но как хранятся метаданные? dup ? single ?

продолжаем эксперимент.. конвертируем метаданные в single:

[root@localhost ~]# btrfs filesystem balance start -v -mconvert=single /mnt
Dumping filters: flags 0x6, state 0x0, force is off
  METADATA (flags 0x100): converting, target=281474976710656, soft is off
  SYSTEM (flags 0x100): converting, target=281474976710656, soft is off
ERROR: error during balancing '/mnt' - Invalid argument
There may be more info in syslog - try dmesg | tail
[root@localhost ~]# btrfs filesystem balance start -v -mconvert=single /mnt -f
Dumping filters: flags 0xe, state 0x0, force is on
  METADATA (flags 0x100): converting, target=281474976710656, soft is off
  SYSTEM (flags 0x100): converting, target=281474976710656, soft is off
Done, had to relocate 4 out of 5 chunks
[root@localhost ~]# 

результат:

[root@localhost ~]# btrfs filesystem df /mnt
Data, single: total=8.00MiB, used=64.00KiB
System, single: total=32.00MiB, used=16.00KiB
Metadata, single: total=128.00MiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B

всё логично, да.. комментировать тут особо нечего.. корверт метаданных в single прозошёл успешно..

теперь пробуем конвертировать метаданные в dup:

[root@localhost ~]# btrfs filesystem balance start -v -mconvert=dup /mnt
Dumping filters: flags 0x6, state 0x0, force is off
  METADATA (flags 0x100): converting, target=32, soft is off
  SYSTEM (flags 0x100): converting, target=32, soft is off
Done, had to relocate 2 out of 3 chunks

результат:

[root@localhost ~]# btrfs filesystem df /mnt
Data, single: total=8.00MiB, used=64.00KiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=64.00MiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B

почему так мало строчек?

как вернуть состояние которое было изначально? и что вобще это было за состояние-такое (до момента наших конвертаций) ?

спасибо всем заранее :-)


#################### UPDATED ####################

решение вопроса: как btrfs располагает данные\метаданные — по умолчанию. и как вернуть это состояние? (комментарий)

суть:

по умолчанию используется dup для метаданных. (кой-какой мусор в single — это фигня)

но для SSD дисков поумолчанию dup — НЕ используется.

★★★★★

Последнее исправление: user_id_68054 (всего исправлений: 3)

и что вобще это было за состояние-такое

Я тоже не понял, что это за состояние у тебя и что ты вообще сделал. Хотя нет, о состоянии я таки догадываюсь.

pedobear
()

вопрос закрываю!

(решено)

после первой ребалансировке — без конвертаций — single пропадает:

[root@localhost ~]# umount /mnt
[root@localhost ~]# umount /mnt
umount: /mnt: not mounted
[root@localhost ~]# mkfs.btrfs test-btrfs.img
Btrfs v3.17
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
ERROR: device scan failed 'test-btrfs.img' - Block device required
fs created label (null) on test-btrfs.img
	nodesize 16384 leafsize 16384 sectorsize 4096 size 1.17GiB
[root@localhost ~]# mount test-btrfs.img /mnt
[root@localhost ~]# btrfs filesystem df /mnt
Data, single: total=8.00MiB, used=0.00B
System, DUP: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=60.00MiB, used=112.00KiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B
[root@localhost ~]# btrfs filesystem balance start -v /mnt
Dumping filters: flags 0x7, state 0x0, force is off
  DATA (flags 0x0): balancing
  METADATA (flags 0x0): balancing
  SYSTEM (flags 0x0): balancing
Done, had to relocate 5 out of 5 chunks
[root@localhost ~]# btrfs filesystem df /mnt
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=64.00MiB, used=112.00KiB
GlobalReserve, single: total=16.00MiB, used=0.00B
[root@localhost ~]# 
user_id_68054 ★★★★★
() автор топика
Ответ на: комментарий от pedobear

ну ты хоть и не помог, но всё равно спасиб за моральную поддержку :-)

вопрос был о том дублируется ли или нет поумолчанию метаинформация (если не просить специально, и если не отказываться специально)

кстати этот параметр — зависит ещё и от того, распознает ли btrfs устройство как SSD или не распознает как SSD.

в случае распознования SSD — будет строго single :-) ...

/dev/loopX — не распознаётся как SSD :-)

user_id_68054 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.