LINUX.ORG.RU
ФорумAdmin

btrfs - мнимое «Не осталось свободного места»

 ,


6

3

Удачно монтирую btfs-раздел, но далее при попытке даже изменить права доступа на файл или каталог пишет:

На устройстве не осталось свободного места

Хотя при этом через df -h видно на этом разделе 7 ГБ свободно:

/dev/sda6           30G          22G  7,0G           76% /mnt/LEAP-15

Пробовал отмонтировать раздел и запустить

# btrfsck  /dev/sda6
Checking filesystem on /dev/sda6
UUID: 66be278b-9c9c-45ef-96a5-1a9eb375aa44
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 22335524864 bytes used err is 0
total csum bytes: 20340836
total tree bytes: 593608704
total fs tree bytes: 529547264
total extent tree bytes: 36536320
btree space waste bytes: 103750573
file data blocks allocated: 70457954304
 referenced 21395312640

Но после перемонтирования ситуация та же((

Ответ на: комментарий от gigantischer

Начни хотя бы с 5.

Если снова сломается, можешь написать мне куда-нибудь (контакты в профиле), чтобы не превращать этот тред в чат.

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

после указания

BTRFS_BALANCE_MOUNTPOINTS="/ /mnt/LEAP-15"

успешно сработало

# btrfs balance start -dusage=50 -musage=50 -v /mnt/LEAP-15/
Dumping filters: flags 0x7, state 0x0, force is off
  DATA (flags 0x2): balancing, usage=50
  METADATA (flags 0x2): balancing, usage=50
  SYSTEM (flags 0x2): balancing, usage=50
Done, had to relocate 4 out of 31 chunks

и теперь ошибка исчезла, ура! Теперь на /mnt/LEAP-15 можно создавать файлы и каталоги. Всем огромное спасибо за помощь! Сам бы не разобрался...

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

Не очень понятно, как редактирование конфига btrfsmaintenance (который запускается по таймеру) вообще повлияло на твою ФС, но не забудь отвязать от ФС временное петлевое устройство.

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

Спасибо, а то забыл бы)) Теперь буду разбираться почему на ext4 sda10 свежесозданный Отказано в доступе при записи...

gigantischer
() автор топика

А снапшоты удалять уже советовали? zypper по умолчанию их создает при каждом запуске.

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

Теперь тебе надо вернуть ФС в режим «single». Делается примерно так:

btrfs balance start -f -sconvert=dup -mconvert=dup -dconvert=single /mnt/LEAP-15

После этого удаляй loop-устройство из пула.

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

Бегло погуглил — и правда, не очень понятно, как там получился raid1.

spijet ★★★
()

Да, хорошо, что я себе это поделие не поставил, позарившись на т.н. «фичи»

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

А я поставил поделие для изучения т.н. «фич». В Ubuntu в раздел /root. Потом ещё поизучаю ZFS. Проблемы как у автора темы не наблюдал, но она не показалась мне серьёзной.

Но если кто не хочет Btrfs, то при установке OpenSuse можно выбрать режим ручной делёжки диска на разделы, а в нём задать желаемую файловую систему.

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

Если хотя бы иногда причёсывать (хоть тем же btrfsmaintenance по крону), то с проблемой не столкнёшься никогда. А фичи и правда хороши (мне особенно нравится ZSTD-сжатие и подтома).

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

Спасибо, после этой команды все зашуршало

# btrfs balance start -f -sconvert=dup -mconvert=dup -dconvert=single /mnt/LEAP-15
Done, had to relocate 30 out of 30 chunks

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

а именно

# btrfs balance start -f -sconvert=dup -mconvert=dup -dconvert=single /mnt/LEAP-15

# btrfs device remove /dev/loop0 /mnt/LEAP-15/

# losetup -d /dev/loop0

# rm -v /mnt/VMWARE/scratchpad.img

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

btrfs-device-remove точно завершилось успешно? И что происходит при монтировании? Показывай логи, вывод mount, вот это всё.

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

btrfs-device-remove завершилась успешно, при монтировании ничего не происходит

# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=1984256k,nr_inodes=496064,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13478)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
/dev/sda7 on /mnt/VMWARE type ext4 (rw,relatime,data=ordered)
/dev/sda9 on /mnt/HOME type ext4 (rw,relatime,data=ordered)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=398280k,mode=700,uid=1000,gid=100)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=100)
/dev/sda10 on /mnt/IMAGEZ type ext4 (rw,relatime,data=ordered)

Какие логи посмотреть?

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

в dmesg

[76585.835155] BTRFS info (device sda6): disk space caching is enabled
[76585.835160] BTRFS info (device sda6): has skinny extents

btrfs check не помогла

# btrfsck /dev/sda6
Checking filesystem on /dev/sda6
UUID: 66be278b-9c9c-45ef-96a5-1a9eb375aa44
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
found 20547530752 bytes used err is 0
total csum bytes: 18598060
total tree bytes: 592510976
total fs tree bytes: 529514496
total extent tree bytes: 41402368
btree space waste bytes: 108923433
file data blocks allocated: 68671057920
 referenced 19608416256

gigantischer
() автор топика

df не умеет показывать правильно свободное место для btrfs, у тебя реально закончилось место, совет ниже с добавлением внешнего файла корректен. Я же обычно удалял в этом случае кэш deb пакетов и некоторые логи, но не знаю насколько это справедливо для opensuse. Вообще вот, можешь добавить в закладки.

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

Спасибки, после ребута успешно примонтировался btrfs:

/dev/sda6           30G          20G  8,8G           70% /mnt/LEAP-15

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

у тебя реально закончилось место,

Нет.

btrfs - мнимое «Не осталось свободного места» (комментарий)

# btrfs filesystem df /mnt/LEAP-15/
Data, single: total=27.23GiB, used=18.58GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=902.00MiB, used=564.31MiB
GlobalReserve, single: total=512.00MiB, used=174.31MiB
intelfx ★★★★★
()
Ответ на: комментарий от anonymous_sama

Спасибо, почитаю на досуге, полезная инфа к размышлению...

gigantischer
() автор топика
Ответ на: комментарий от post-factum

Интересно, а SUSEшный «энтерпрайз» тоже предлагает этот бубен?

anonymous
()
btrfs subvolume list -s /

А что покажет эта команда? Как правило проблема в том, что скапливается слишком много снапшотов, а настройка по-умолчанию не чистит их, хз почему они так сделали.

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

Наверно, потому что Btrfs не может знать, какие snapshot-ы нужны, а какие нет. Если вы знаете, то вы можете составить скрипт очистки и запускать его по расписанию.

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

Snapper в OpenSuSE умеет чистить их сам. Правда, у меня раз в месяц он подвисает при чистке старых снапшотов (помогает кильнуть процесс snapperd — через 5 секунд сам перезапустится и почистит уже нормально).

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

Скажи, существует ли набор действий сразу после форматирования, который защитит от любых проблем в дальнейшем? Ну т.е. жесткие ограничения какие-то где-то поставить изначально или запретить какие-то фичи?

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

Скажи, существует ли набор действий сразу после форматирования, который защитит от любых проблем в дальнейшем?

Выключить компьютер. Заодно и ерунду постить перестанешь, сплошной профит.

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

Установить btrfsmaintenance и забыть про всё это, как про страшный сон. Ну или, если не лень, самому набросать пару скриптов и затолкать их в cron или systemd-таймер.

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

существует ли набор действий <...> который защитит от любых проблем в дальнейшем

Нет.

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

Ну можно же было включить по умолчанию настройку-хранить только три/пять/десять свежайших снапшотов, остальное в мусор! Если человек ни сном ни духом про снапшоты, это сэкономило бы вагон нервов, времени, популярности суси как десктопа в конце-концов.

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

Установить btrfsmaintenance

Нужно подкинуть им идею сделать эквивалент этого васяноскрипта в официальных btrfs-progs. Типа btrfs maint. И хранить все настройки в метаданных самой ФС, чтобы можно было просто при установке btrfs-progs по дефолту пихать в крон что-нибудь наподобие btrfs maint --auto. Ну примерно настолько же «по дефолту», как сейчас fsck запускается при загрузке системы. Вот тогда взлетит.

А пока что про btrfsmaintenance знает 1% от 1% от 1%.

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

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

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

квотами можно - они задаются по отдельности для субтомов. Эти мелкие подробности являются темой для изучения при использовании Btrfs.

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

Незачем. Покажи нам того, кто сказал, что тебе это нужно.

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

Да, но это как купить летающий автомобиль и просто ездить. btrfs нужен ради диких необузданных фич и соответствующих им сношений.

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

т.е. оно не может без постоянного ручного обслуживания. понятно.

(отдельная программа по крону - это я считаю «ручное обслуживание»)

(в сравнии с той же xfs, драйвер которой видимо следит за всем сам).

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

летающий автомобиль и просто ездить. btrfs нужен ради диких необузданных фич

raid1 который знает, которая из копий правдивая - это дикая фича? *

фича «снепшоты», которая позволяет днем, фоново снять crash-consistеnt бекап (хоть в rsync, хоть в borg) - это дикая фича?

думал, что можно эти фичи получить и при этом не думать особо об ФС, как с xfs, ext. оказывается нет.

* - насколько я понимаю, btr именно это умеет.

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

Да, но это как купить летающий автомобиль и просто ездить.

Ну да. Взлетают все. Даже те, кому это не нужно. :)

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