On Sat 2019-07-13 (01:17), Ulli Horlacher wrote: > I need to find (all) subvolume directories. > I know, btrfs subvolumes root directories have inode #256, but a > "find / -inum 256" is horrible slow!
Because it scans also non-btrfs filesystems. This is especially a bad idea for nfs. I have now implemented the search for inode 256 in Perl using the algorithm: - get a list of all mounted filesystems (via df) - for each btrfs filesystem do a recursive search for directories with inode 256 - stop recursion if the directory is on another (mounted) filesystem This speeds up the search: root@trulla:/opt/btrfs-tools/bin# sysinfo System: Linux trulla 4.4.180-94.97-default x86_64 Distribution: SUSE Linux Enterprise Server 12 SP3 Hardware: VMware, Inc. VMware Virtual Platform None (VMware) CPU: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz, 1 x 2394 MHz RAM: 1024 MB root@trulla:/opt/btrfs-tools/bin# dropfscache;time btrfs_list -r ACCESS-MODE SUBVOLUME <- SNAPSHOT-PARENT rw / <- - rw /.snapshots ro /.snapshots/1065/snapshot <- / ro /.snapshots/1066/snapshot <- / ro /.snapshots/1089/snapshot <- / ro /.snapshots/1090/snapshot <- / ro /.snapshots/1103/snapshot <- / ro /.snapshots/1104/snapshot <- / ro /.snapshots/1107/snapshot <- / ro /.snapshots/1108/snapshot <- / ro /.snapshots/1127/snapshot <- / ro /.snapshots/1128/snapshot <- / ro /.snapshots/1131/snapshot <- / ro /.snapshots/1132/snapshot <- / ro /.snapshots/1133/snapshot <- / ro /.snapshots/1134/snapshot <- / ro /.snapshots/1135/snapshot <- / ro /.snapshots/1136/snapshot <- / ro /.snapshots/1137/snapshot <- / ro /.snapshots/1138/snapshot <- / ro /.snapshots/1139/snapshot <- / ro /.snapshots/1140/snapshot <- / rw /.snapshots/128/snapshot <- - rw /home rw /home/tux/blubb rw /mnt/tmp ro /mnt/tmp/ss rw /opt ro /opt/.snapshot/2019-07-11_0000.daily <- /opt ro /opt/.snapshot/2019-07-12_0000.daily <- /opt ro /opt/.snapshot/2019-07-13_0000.daily <- /opt ro /opt/.snapshot/2019-07-15_0000.daily <- /opt ro /opt/.snapshot/2019-07-16_0000.daily <- /opt ro /opt/.snapshot/2019-07-16_1100.hourly <- /opt ro /opt/.snapshot/2019-07-16_1200.hourly <- /opt rw /srv rw /tmp rw /tmp/blubb ro /tmp/blubb/.snapshot/2017-09-20_1801.test <- /tmp/blubb ro /tmp/blubb/.snapshot/2017-12-02_0940.test <- /tmp/blubb ro /tmp/blubb/.snapshot/2018-01-11_1415.test <- /tmp/blubb ro /tmp/test rw /usr/local rw /var/crash rw /var/lib/machines rw /var/log rw /var/opt rw /var/spool rw /var/tmp real 0m4.301s user 0m1.352s sys 0m1.438s (dropfscache drops the filesystem cache to have a reproducable test) -- Ullrich Horlacher Server und Virtualisierung Rechenzentrum TIK Universitaet Stuttgart E-Mail: horlac...@tik.uni-stuttgart.de Allmandring 30a Tel: ++49-711-68565868 70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/ REF:<20190712231705.ga16...@tik.uni-stuttgart.de>