<div dir="auto">Hello Brad,<div dir="auto"><br></div><div dir="auto">What an interesting journey you've shared with us. By by golly I've never had this sort of 'fun'</div><div dir="auto"><br></div><div dir="auto">Out of curiosity, what is your requirement that made you decide to use xfs over ext[234]?</div><div dir="auto"><br></div><div dir="auto">I've used xfs in the past when managing storage in jbod scenarios - since those drives didn't change in size (other than the occasional upgrade/increase in capacity) and where all same or double capacity so easier to manage to a degree - but I switched to using ext4 when I built my software raid + LVM2 as I found that xfs doesn't seem to support shrinking.</div><div dir="auto"><br></div><div dir="auto">I think with a good backup strategy, filesystem is somewhat less important, but I suppose it depends on the application or your specific requirements.</div><div dir="auto"><br></div><div dir="auto">Anyway. Thanks again for sharing.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 19 July 2022, 16:56 Brad Campbell, <<a href="mailto:brad@fnarfbargle.com">brad@fnarfbargle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Aaaaaaaand after some 70 hours it's finished<br>
<br>
A second complete run took another ~14 hours just to double check it was clean.<br>
<br>
root@bkd:/mnt# /home/brad/src/xfsprogs-5.18.0/repair/xfs_repair /dev/mapper/backup<br>
Phase 1 - find and verify superblock...<br>
Phase 2 - using internal log<br>
         - zero log...<br>
         - scan filesystem freespace and inode maps...<br>
         - found root inode chunk<br>
Phase 3 - for each AG...<br>
         - scan and clear agi unlinked lists...<br>
         - process known inodes and perform inode discovery...<br>
         - agno = 0<br>
doubling cache size to 11949296<br>
         - agno = 1<br>
         - agno = 2<br>
         - agno = 3<br>
         - process newly discovered inodes...<br>
Phase 4 - check for duplicate blocks...<br>
         - setting up duplicate extent list...<br>
         - check for inodes claiming duplicate blocks...<br>
         - agno = 0<br>
         - agno = 1<br>
         - agno = 2<br>
         - agno = 3<br>
Phase 5 - rebuild AG headers and trees...<br>
         - reset superblock...<br>
Phase 6 - check inode connectivity...<br>
         - resetting contents of realtime bitmap and summary inodes<br>
         - traversing filesystem ...<br>
         - traversal finished ...<br>
         - moving disconnected inodes to lost+found ...<br>
Phase 7 - verify and correct link counts...<br>
done<br>
<br>
The swap took a beating. This was after the first completion<br>
<br>
Data Units Read:                    5,769,811 [2.95 TB]<br>
Data Units Written:                 4,747,435 [2.43 TB]<br>
<br>
This was after the second clean run above.<br>
<br>
Data Units Read:                    8,134,981 [4.16 TB]<br>
Data Units Written:                 6,665,018 [3.41 TB]<br>
<br>
It would appear xfs_repair is *brutal* on memory if you have a complex filesystem (~15 billion inodes in 4TB).<br>
<br>
A quick check of the fs shows everything intact. Watching the link corrections fly past it was always -1 count, so I think a large delete has got all crossed up somewhere and things have gone off the rails.<br>
<br>
78,164 directories containing 3.9 million files of which only 2,671 were unique (link count=1) in lost+found and all look like unlinked directories. All file contents I inspected seemed "about right"(tm).<br>
<br>
Doesn't look like anything has been lost, but I'll set the next backups to do an rsync -c just in case. That was a fun ride.<br>
<br>
Regards,<br>
Brad<br>
_______________________________________________<br>
PLUG discussion list: <a href="mailto:plug@plug.org.au" target="_blank" rel="noreferrer">plug@plug.org.au</a><br>
<a href="http://lists.plug.org.au/mailman/listinfo/plug" rel="noreferrer noreferrer" target="_blank">http://lists.plug.org.au/mailman/listinfo/plug</a><br>
Committee e-mail: <a href="mailto:committee@plug.org.au" target="_blank" rel="noreferrer">committee@plug.org.au</a><br>
PLUG Membership: <a href="http://www.plug.org.au/membership" rel="noreferrer noreferrer" target="_blank">http://www.plug.org.au/membership</a><br>
</blockquote></div>