My specific detail that doesn't seem to be addressed in other questions is the physical location of the data that I'm trying to preserve -- if I don't know which PV a file physically resides on, how can I confidently
resize2fsand then ultimatelypvremove?
You don't need to know that. That's LVM's job. resize2fs works on the logical volume, which is allowed to span multiple disks. Once your filesystem is small enough to fit onto one disk, you can tell LVM to move it over, and remove the other disks.
There are fourfive steps to doing this.
Reduce the size of the filesystem to less than 4TB. (
resize2fs)Reduce the size of the logical volume to less than 4TB. (
lvreduce)(This step can lose datacan lose data if you truncate the logical volume to be smaller than the filesystem too far, so read the manpage!)
Move the logical volume away from each drive. (
pvmove <source pv> <dest pv>)(You'll need to do this one disk at a time.)
Remove the disk. (
vgreducethenpvremove)(Optional) If you made the logical volume larger than the filesystem in step 2, expand the filesystem to use the entire logical volume, so that no space is wasted. (
resize2fs)