1
Software / Re:Utilita du se chová divně nad NFS/BTRFS
« Poslední příspěvek od RDa kdy Dnes v 14:04:56 »Takže problém je, že NFS maskuje informaci o subvolumes v kombinaci že btrfs má neunikátní inode numbers mezi subvolumes.
Lokálně btrfs idenfikuje subvolume skrze jiný device minor, viz:
Server:
Klient:
A pak příkaz du obsahuje unique redukci skrze hash a netuší, že tyhle dvě věci jsou rozdílné (na lokálu to pozná, potože tam vstupuje i device do hashu).
Taky neexistuje žádný přepínač v du, který by hashování vyplo nebo započetlo všechny výskyty souborů. Podle zdrojáku se hash zapíná, když je uvedeno více než dva argumenty, takže pro můj příklad je funkční řešení tohle (za podmínky, že už tyto argumenty nebudou obsahovat další subvolumes):
REF:
The Btrfs inode-number epic (part 1: the problem)
https://lwn.net/Articles/866582/
+
The Btrfs inode-number epic (part 2: solutions)
https://lwn.net/Articles/866709/
z těchto návrhů ale není v jádru akceptované nic jestli dobře vidím.
Současný stav věci je, že si mám jako ručně v /etc/exports vypsat všechny subvolumes (LOL fakt):
https://btrfs.readthedocs.io/en/latest/Interoperability.html#nfs
ale to dělat nebudu.. protože pak při použití df bude ta stovka subvolumes prasit výstup identickým výpisem o užitém/volném místu. Nevím zda má NFS auto-umount těch sub-mountů po nějaké době nečinnosti.
Lokálně btrfs idenfikuje subvolume skrze jiný device minor, viz:
Server:
Kód: [Vybrat]
# stat xxx yyy | grep -E 'Device|Inode'
Device: 0,198 Inode: 256 Links: 1
Device: 0,201 Inode: 256 Links: 1
Klient:
Kód: [Vybrat]
# stat xxx yyy | grep -E 'Device|Inode'
Device: 0,46 Inode: 256 Links: 1
Device: 0,46 Inode: 256 Links: 1
A pak příkaz du obsahuje unique redukci skrze hash a netuší, že tyhle dvě věci jsou rozdílné (na lokálu to pozná, potože tam vstupuje i device do hashu).
Taky neexistuje žádný přepínač v du, který by hashování vyplo nebo započetlo všechny výskyty souborů. Podle zdrojáku se hash zapíná, když je uvedeno více než dva argumenty, takže pro můj příklad je funkční řešení tohle (za podmínky, že už tyto argumenty nebudou obsahovat další subvolumes):
Kód: [Vybrat]
ls | xargs -n 1 sudo du --si -sh
REF:
The Btrfs inode-number epic (part 1: the problem)
https://lwn.net/Articles/866582/
+
The Btrfs inode-number epic (part 2: solutions)
https://lwn.net/Articles/866709/
z těchto návrhů ale není v jádru akceptované nic jestli dobře vidím.
Současný stav věci je, že si mám jako ručně v /etc/exports vypsat všechny subvolumes (LOL fakt):
https://btrfs.readthedocs.io/en/latest/Interoperability.html#nfs
ale to dělat nebudu.. protože pak při použití df bude ta stovka subvolumes prasit výstup identickým výpisem o užitém/volném místu. Nevím zda má NFS auto-umount těch sub-mountů po nějaké době nečinnosti.