LINUX.ORG.RU

btrfs размер файловой системы

 


1

6

Доброго времени суток. Имеется домашний сервер с 5 HDD. На одном стоит система debian 8 (250Gb), остальные 4(3Tb каждый) объединены в массив raid10 по средствам файловой системы btrfs. Все отлично работало до тех пор пока массив не забился до 1.72Tb. Как оказалось стало нахватать места. Вопрос, почему это случилось? В моем понимании в raid10 должно быть около 6Tb свободного места. Что не так?

sudo btrfs filesystem show:

Label: none  uuid: b358e089-8291-40b1-b3d8-ebcf4fa29579
        Total devices 4 FS bytes used 1.49TiB
        devid    1 size 2.73TiB used 881.03GiB path /dev/sda
        devid    2 size 2.73TiB used 881.03GiB path /dev/sdb
        devid    3 size 2.73TiB used 881.03GiB path /dev/sdc
        devid    5 size 2.73TiB used 881.03GiB path /dev/sdd
sudo btrfs filesystem df /mnt/raid10/:
Data, RAID10: total=1.72TiB, used=1.49TiB
System, RAID10: total=64.00MiB, used=208.00KiB
Metadata, RAID10: total=4.00GiB, used=2.02GiB
GlobalReserve, single: total=512.00MiB, used=0.00B


Metadata, RAID10: total=4.00GiB, used=2.02GiB

used=2.02GiB Это btrfs.

Юзай lvm+xfs и будет тебе счастье.

anonymous
()

Btrfs как-то может фиксить размер метаданных, попробуй найти в мануале если тебе это важно.

Deleted
()
Ответ на: комментарий от anonymous

uname -a:

Linux rav-debian-server 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) x86_64 GNU/Linux
sudo btrfs version:
Btrfs v3.17

torm7
() автор топика
Ответ на: комментарий от torm7

А что с ними не так? Вопрос то, почему размер массива 1,72ТБ вместо 6ТБ.

Дело в ущербном дизайне Btrfs. Это не лечится. Если не хочешь LVM+XFS, бегай в магазин за новыми дисками.

anonymous
()
Ответ на: комментарий от anonymous

Дело в ущербном дизайне Btrfs. Это не лечится.

+1 btrfs разрабатывают троечники (а может двоечники?) с факультета прикладной математики.

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Юзай zfsonlinux. Юзай lvm+xfs и будет тебе счастье. Есть конкретная ФС с конкретной задачей. Менять на другую категоричеки не хочу. Так можно дойти до: - смени дистрибутив; - смени ОС; - смени сервер...

torm7
() автор топика
Ответ на: комментарий от torm7

Есть конкретная ФС с конкретной задачей.

Проблема в том, что файловой системы btrfs не существует. Нет релиза этой ФС, это химера, лабораторный кадавр, нежизнеспособный по причине безграмотного дизайна. То, что продвигают сейчас под названием btrfs не будет работать никогда, возможно, в будущем, под это название подложат нечто с красивой академической архитектурой, но, собственно, тогда и посмотрим. А пока ни-ни.

King_Carlo ★★★★★
()
Ответ на: комментарий от RelativeLayout

После удаления чего то старого могу записать что то новое.

Блиин, походу жесткий диск умирает.

/var/log/kern.log:

Jul 29 18:38:10 rav-debian-server kernel: [    9.151782] BTRFS: bdev /dev/sda errs: wr 0, rd 33, flush 0, corrupt 0, gen 0

smartctl -a /dev/sda:

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   116   092   006    Pre-fail  Always       -       106188280
  3 Spin_Up_Time            0x0003   092   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       49
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
  7 Seek_Error_Rate         0x000f   076   060   030    Pre-fail  Always       -       46954195
  9 Power_On_Hours          0x0032   082   082   000    Old_age   Always       -       16599
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       53
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       151
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0 0 0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   061   051   045    Old_age   Always       -       39 (Min/Max 35/49)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       32
193 Load_Cycle_Count        0x0032   090   090   000    Old_age   Always       -       21417
194 Temperature_Celsius     0x0022   039   049   000    Old_age   Always       -       39 (0 21 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       24
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       24
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       4735h+39m+23.909s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       8572356494
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       132325019049162

Еще бы знать что все это значит.

Ну и по прежнему непонятно почему уменьшился объем массива?

torm7
() автор топика
Ответ на: комментарий от RelativeLayout

Блиин, походу жесткий диск умирает.

походу btrfs глючит

anonymous
()
Ответ на: комментарий от RelativeLayout

Ничего не понимаю.

Вообще ничего не делал

sudo btrfs filesystem df /mnt/raid10/

Data, RAID10: total=2.05TiB, used=1.94TiB
System, RAID10: total=64.00MiB, used=240.00KiB
Metadata, RAID10: total=4.00GiB, used=2.51GiB
GlobalReserve, single: total=512.00MiB, used=0.00B

+300Gb от первых показаний. В чем прикол?

torm7
() автор топика
Ответ на: комментарий от torm7

прикол в том, что данные записались

ответь на вопрос: в чём выражается нехватка места?

anonymous
()
Ответ на: комментарий от torm7

и не +300 Гб, а +450 Гб, ты опять не туда смотришь, занятое место это used=, total= это выделенное пространство

anonymous
()
Ответ на: комментарий от Radjah

5 Reallocated_Sector_Ct 48

Я бы подумал о замене харда.

У меня уже полтора года Reallocated_Sector_Ct = 952. Диск пока умирать не собирается.

Black_Roland ★★★★
()
Ответ на: комментарий от torm7

Может у тебя балансировка идёт? btrfs balance status что-нибудь показывает?

Если нет, то попробуй запустить, может поможет. btrfs balance start /mountpoint

Ivan_qrt ★★★★★
()

IMHO могут быть две проблемы:

1. на дисках разное количество свободного места, нужно как-то перераспределить более равномерно

2. снапшоты накопились

anonymous
()
Ответ на: комментарий от torm7

На сколько я знаю, btrfs динамически выделяет место из доступного пула, и в выводе команды 'btrfs filesystem df' показывается сколько выделено на данный момент, а не максимальный размер. Соответственно, ты что-то записал, раздел с данными расширился и показывает новые цифры.

В целом, посмотреть сколько осталось места достаточно проблематично из-за снапшотов, метаданных, CoW, сжатия, и прочих btrfs'ных заморочек.

Deleted
()
Ответ на: комментарий от King_Carlo

нечто с красивой академической архитектурой

Есть такое, Reiserfs4 называется. Ещё страшнее Btrfs.

anonymous
()
Ответ на: комментарий от Deleted

Посмотрел тут, можно сделать 'btrfs filesystem usage -h /mountpoint', там показывает, сколько приблизительно осталось места.

Deleted
()
Ответ на: комментарий от anonymous

ответь на вопрос: в чём выражается нехватка места?

Это и пытался сделать. Начал забивать данными из dev/zerro что бы было больше чем total=1.72TiB в итоге получил total=2.05TiB +300Gb или +450 если мерить занятым пространством.

Может у тебя балансировка идёт?

sudo btrfs balance status -v /mnt/raid10

No balance found on '/mnt/raid10'

1. на дисках разное количество свободного места, нужно как-то перераспределить более равномерно

Диски абсолютно одинаковые, без разделов. Это видно из первого поста.

2. снапшоты накопились

Снапшотами не пользуюсь. Только если он сам без спроса их сделал.

На сколько я знаю, btrfs динамически выделяет место из доступного пула, и в выводе команды 'btrfs filesystem df' показывается сколько выделено на данный момент, а не максимальный размер. Соответственно, ты что-то записал, раздел с данными расширился и показывает новые цифры.
В целом, посмотреть сколько осталось места достаточно проблематично из-за снапшотов, метаданных, CoW, сжатия, и прочих btrfs'ных заморочек.

А я так понимаю что total=xxx - это как раз полный объем массива и меняться не должен, а used=xxx - это занятое место.

Если нет, то попробуй запустить, может поможет. btrfs balance start /mountpoint

Запустил, по результатам отпишусь.

torm7
() автор топика
Ответ на: комментарий от torm7

А я так понимаю что total=xxx - это как раз полный объем массива и меняться не должен

неправильно понимаешь, total это выделенное место, выделяется оно по мере заполнения кусками, короче, на него вообще не стоит обращать внимания

я так понял, никаких проблем с заполнением массива у тебя не было, ты просто сделал далеко идущие выводы чисто из показаний btrfs filesystem df?

anonymous
()
Ответ на: комментарий от anonymous

выделяется оно по мере заполнения кусками

коряво выразился

в общем, суть такова: есть у тебя 3 Тб доступного места, btrfs не будет выделять сразу эти 3 Тб, она сначала выделит, скажем, 700 Гб, когда они заполнятся на определённую часть - выделит ещё 700 Гб, и так далее

anonymous
()
Ответ на: комментарий от torm7

А я так понимаю что total=xxx - это как раз полный объем массива и меняться не должен, а used=xxx - это занятое место.

Нет, это именно сколько выделено места на текущий момент, и сколько из него зянято.

Для примера, два диска по 8 Gb, raid1.

[root@jumper btrfs]# btrfs filesystem df /btrfs
Data, RAID1: total=1.00GiB, used=111.77MiB
Data, single: total=8.00MiB, used=0.00B
System, RAID1: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, RAID1: total=1.00GiB, used=1.44MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B
[root@jumper btrfs]# dd if=/dev/urandom of=/btrfs/test.file bs=1M conunt=1025
dd: unrecognized operand ‘conunt=1025’
Try 'dd --help' for more information.

[root@jumper btrfs]# dd if=/dev/urandom of=/btrfs/test.file bs=1M count=1025
1025+0 records in
1025+0 records out
1074790400 bytes (1.1 GB) copied, 69.9201 s, 15.4 MB/s

[root@jumper btrfs]# btrfs filesystem df /btrfs
Data, RAID1: total=2.00GiB, used=1.09GiB
Data, single: total=8.00MiB, used=0.00B
System, RAID1: total=8.00MiB, used=16.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, RAID1: total=1.00GiB, used=2.66MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=16.00MiB, used=0.00B

Deleted
()
Ответ на: комментарий от anonymous

Reiserfs4 называется. Ещё страшнее Btrfs

Попробуй забить нулями Btrfs и Reiserfs4 на одинаковых разделах и не читай страшных сказок на ночь.

anonymous
()

Всем спасибо! Прокачал скилл по brtfs. Проблема была в умирающем харде. Походу из за него и не записывались данные. В smartctl в поле WHEN_FAILED появилась запись типа Failing Now. После замены всё стало хорошо.

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