I was Googling around for ways to check fragmentation on Btrfs, and I
came across the ''filefrag'' command.
Even though it is a ext2/3 command, it seems to work on Btrfs files
since it uses the FIEMAP ioctl to determine the number of extents.
From a bash prompt, I found I could examine large sections with something like:
# for file in $(find <PATH/TO/BTRFS/VOL/> -type f); do filefrag
${file}; done | sort -n -k 2 | less
You may want to start with smaller, more discrete portions of a Btrfs
volume, since I ran into stalls running on more populated Btrfs
volumes.
Also, I haven''t tested this on any RAID devices.
I was wondering if the people on the M/L could tell if the approach
was garbage, or should it work?
You can use the results to defrag targeted files. However, I
discovered that defraging files on a Volume that has snapshots may be
counter-productive. You end up duplicating the files you are
defragging, since Btrfs now needs to create different copies for the
snapshot and the original (or at least portions of the file).
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html