BTRFS je porad nekorektni ... aktualni stav:
Overall:
Device size: 130.97TiB
Device allocated: 130.93TiB
Device unallocated: 40.11GiB
Device missing: 0.00B
Device slack: 0.00B
Used: 129.98TiB
Free (estimated): 738.63GiB (min: 721.92GiB)
Free (statfs, df): 738.59GiB
Data ratio: 1.33
Metadata ratio: 3.00
Global reserve: 512.00MiB (used: 0.00B)
Multiple profiles: no
Data,RAID6: Size:97.85TiB, Used:97.16TiB (99.29%)
/dev/***0 16.31TiB
/dev/***1 16.31TiB
/dev/***2 16.31TiB
/dev/***3 16.31TiB
/dev/***4 16.31TiB
/dev/***5 16.31TiB
/dev/***6 16.31TiB
/dev/***7 16.31TiB
Zapisovat do pole jde jenom do tech UNALLOCATED jednotek, tj. muzu tam zapsat 40GB * 6/8 (protoze raid 6)
Ale kdyz se podivas na data usage - 99.29% ze zhruba 100TB, to dela 0.7% = 700 GB "volneho mista".
Prakticky ale to vetsi volne misto ktere vesele btrfs propaguje je nedostupne - cela ta vec se "zasekne" (jede to jednotky kB/sec). Proc? To nikdo nevi.
Pro uvolneni do Unallocted pouzivam balance s -dusage=95, minulej vikend jsem nechal projet -dusage=98, ale zadny efekt, byt to presouvalo par dnu data. Tak nechapu co to vlastne delalo - ale logicky vzato, efekt to mit nemuze, pokud mam 99.29% usage, tak balance by musel byt pusten zrejme s -dusage=100.
Celkove je pro me zahada - proc se prakticky neda vyuzit volne misto v existujicich alokacich. Jakoze COW vytvari kopie, ale ta STARA verze je pri nulovem poctu referenci prece uvolnena (to je tech nedostupnych 700GB), pokud by se na ni vazala nejaka reference (ze snapshotu, ktere zde ted nejsou), tak se to prece nebude pocitat mezi FREE space.
Pak je zde faktor neskutecne pomalosti - vi se vubec jak BTFFS pouziva RAID6 ? tj. jaky je tam stripe/chunk size?? Jestli to nahodou nema nejaky wtf write amplification factor, ze by to prepocitalo gigabajty dat, i v pripade ze je zamer zapsat par kilo.
Jsem s tim jako velice nespokojeny - ze je primarni alokacni politika "vyplacat vsechny unallocated jednotky", namisto toho, aby to zapisovalo do volneho mista, ktere alokovano je - je duvodem tedy ta neefektivita RMW procesu? nebo to RMW neni vubec dovoleno a kazdy chunk (6GiB dostupny, 8*1GiB na discich) je povazovan za SMR-like zone, tj. ma to write/append, ale vubec to tedy neumi modify? (jakoze COW si s tim vystaci, ale... pak chybi efektivni zpusob defragmentace, protoze ani balance -dusage=100 se mi zda ze neprovede presne to co, co by se melo udit).