Zdravím,
řeším problém na jedné VPS s Debian 8 na Btrfs, které se mountuje těmito údaji v
/etc/fstab:
UUID=824ec9a5-14ec-4df8-a9ec-a685f8903e9d / btrfs subvol=@,relatime,compress=zlib,recovery 0 1
UUID=824ec9a5-14ec-4df8-a9ec-a685f8903e9d /mnt/rootfs btrfs relatime,compress=zlib,recovery 0 2
A po připojení mount vypisuje:
root@web6:~# mount | grep btrfs
/dev/vda1 on / type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=283,subvol=/@)
/dev/vda1 on /mnt/rootfs type btrfs (rw,relatime,compress=zlib,space_cache,subvolid=5,subvol=/)
Popis problémuProblémem je, že volné místo je o poznání menší než by se očekávalo:
Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/vda1 11G 9,3G 266M 98% /
11 GB > 9,3 GB + 266 MBPoužívám sice subvolumy a snapshotování, ale dle mých zkušeností se při smazání snapshotu sice změní hodnoty u "užito" a "volno", ale nezmění se jejich rozdíl.
Btrfs v3.17, kernel 4.6.0: btrfs scrubZkusil jsem scrub, ale ten žádný problém nenašel:
root@web6:~# time btrfs scrub status /
scrub status for 824ec9a5-14ec-4df8-a9ec-a685f8903e9d
scrub started at Thu May 19 09:57:44 2016 and finished after 21 seconds
total bytes scrubbed: 8.06GiB with 0 errors
Těch 8.06GiB je méně než v df výpisu, protože jsem mezi tím smazal jeden snapshot. Ještě uvedu verze:
root@web6:~# btrfs version
Btrfs v3.17
root@web6:~# uname -a
Linux web6 4.6.0-040600rc7-generic #201605081830 SMP Sun May 8 22:32:57 UTC 2016 x86_64 GNU/Linux
Btrfs v3.17, kernel 3.16.0: btrfs checkZkusil jsem boot z live Debian 8 a 2x hned za sebou btrfs check. Obě spuštění vypsaly totéž a problém nevyřešily:
enabling repair mode
Fixed 0 roots.
Checking filesystem on /dev/vda1
UUID: 824ec9a5-14ec-4df8-a9ec-a685f8903e9d
checking extents
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
checking csums
checking root refs
checking quota groups
Counts for qgroup id: 5 are different
our: referenced 3197485056 referenced compressed 3197485056
disk: referenced 3197485056 referenced compressed 3197485056
our: exclusive 962273280 exclusive compressed 962273280
disk: exclusive 902582272 exclusive compressed 902582272
diff: exclusive 59691008 exclusive compressed 59691008
Counts for qgroup id: 283 are different
our: referenced 6668357632 referenced compressed 6668357632
disk: referenced 3244802048 referenced compressed 3244802048
diff: referenced 3423555584 referenced compressed 3423555584
our: exclusive 625876992 exclusive compressed 625876992
disk: exclusive 625876992 exclusive compressed 625876992
Counts for qgroup id: 305 are different
our: referenced 6244098048 referenced compressed 6244098048
disk: referenced 2820542464 referenced compressed 2820542464
diff: referenced 3423555584 referenced compressed 3423555584
our: exclusive 200433664 exclusive compressed 200433664
disk: exclusive 200433664 exclusive compressed 200433664
found 4242337340 bytes used err is 0
total csum bytes: 8077580
total tree bytes: 691945472
total fs tree bytes: 631996416
total extent tree bytes: 45137920
btree space waste bytes: 126257397
file data blocks allocated: 111147716608
referenced 18110992384
Btrfs v3.17
extent buffer leak: start 138199040 len 16384
extent buffer leak: start 244596736 len 16384
extent buffer leak: start 714031104 len 16384
extent buffer leak: start 714620928 len 16384
extent buffer leak: start 716095488 len 16384
extent buffer leak: start 10012327936 len 16384
Na live Debianu jsem měl tyto verze:
root@debian:/mnt# btrfs version
Btrfs v3.17
root@debian:/mnt# uname -a
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-1 (2016-03-06) x86_64 GNU/Linux
Btrfs v3.12, kernel 4.6.0: btrfs checkProtože mi verze jádra na live připadala stará, nainstaloval jsem u sebe doma Linux Mint ve VirtualBoxu, v něm doinstaloval Btrfs a aktualizoval jádro, odvážně připojil blokové zařízení disku ve VPS jako lokální přes Network block device (NBD) a zkusil btrfs check. Opět 2x za sebou a opět obě spuštění vypsaly totéž a problém nevyřešily:
enabling repair mode
Checking filesystem on /dev/nbd0
UUID: 824ec9a5-14ec-4df8-a9ec-a685f8903e9d
checking extents
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
checking csums
checking root refs
found 4496713856 bytes used err is 0
total csum bytes: 8077580
total tree bytes: 691945472
total fs tree bytes: 631996416
total extent tree bytes: 45137920
btree space waste bytes: 126258967
file data blocks allocated: 111146471424
referenced 18109747200
Btrfs v3.12
Pro úplnost opět verze:
krato-VirtualBox ~ # btrfs version
Btrfs v3.12
krato-VirtualBox ~ # uname -a
Linux krato-VirtualBox 4.6.0-040600rc7-generic #201605081830 SMP Sun May 8 22:32:57 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
nospace_cache, clear_cacheS drobným odstupem času a po smazání nějakých snapshotů a vytvoření nových mě ještě napadlo zkusit na VPS mount options nospace_cache a clear_cache, detaily viz
https://btrfs.wiki.kernel.org/index.php/Mount_options#Space_cache_control :
krato@web6:~$ mount | grep btrfs
/dev/vda1 on / type btrfs (rw,relatime,compress=zlib,nospace_cache,subvolid=283,subvol=/@)
/dev/vda1 on /mnt/rootfs type btrfs (rw,relatime,compress=zlib,nospace_cache,subvolid=5,subvol=/)
Ale nezdá se, že by to pomohlo, stále je rozdíl cca 1 GB:
krato@web6:~$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 13619200 12443956 176908 99% /
13619200 = 12443956 + 176908 + 998336 kB
ZávěrMám na Linuxu problém s částečným zmizením volného místa na Btrfs, které nevyřešil ani btrfs scrub a ani btrfs check.
Chtěl bych začít používat Btrfs všude kde mám nyní ext4, včetně ještě letos plánovaného datového RAID úložiště na více než 10 TB dat. Proto bych se rád naučil tento problém vyřešit jiným způsobem než zkopírovat data jinam, pak Btrfs partitionu znova vytvořit a na konec vrátit data zpět. U jedné VPS s 11 GB to problém není, ale však chápete.
Zkusil jsem nedávno na jednom 8 TB disku ZFS pod Linuxem přes
http://zfsonlinux.org/, ale to je jiná kapitola kde jsem měl velké problémy s výkonem a skončilo to tím, že ten disk lze sotva používat read-only. Při připojení read-write se ihned začne přehrávat příliš náročná operace v jornálu mazání cca 2 GB souboru. Ale to tu nechme teď být, dejme teď šanci Btrfs.
Předem děkuji za jakékoliv konstruktivní rady.