<div dir="ltr"><div><div><div><div><div><div><div><div>Hello Dave,<br>My name is Danny Shavit and I am with Zadara storage.<br></div>We will appreciate your feedback reagrding an xfs_corruption and xfs_reapir issue.<br><br>We found a corrupted xfs volume in one of our systems. It is around 1 TB size and about 12 M files.<br></div>We run xfs_repair on the volume which succeeded after 42 minutes.<br></div><div>We noticed that memory consumption raised to about 7.5 GB.<br></div><div>Since some customers are using only 4GB (and sometimes even 2 GB) we tried running "xfs_repair -m 3200" on a 4GB RAM machine. <br>However, this time an OOM event happened during handling of AG 26 during step 3.<br></div></div>The log of xfs_repair is enclosed below.<br></div>We will appreciate your feedback on the amount of memory needed for xfs_repair in general and when using "-m" option specifically.<br></div>The xfs metadata dump (prior to xfs_repair) can be found here:<br><a href="https://zadarastorage-public.s3.amazonaws.com/xfs/xfsdump-prod-ebs_2015-03-30_23-00-38.tgz">https://zadarastorage-public.s3.amazonaws.com/xfs/xfsdump-prod-ebs_2015-03-30_23-00-38.tgz</a><br></div>It is a 1.2 GB file (and 5.7 GB uncompressed).<br><br></div>We will appreciate your feedback on the corruption pattern as well.<br><div><div><div><div><div><div><div><div><div><div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Thank you,<br></div>Danny Shavit<br></div><div>Zadarastorage<br><br></div><div>---------- xfs_repair log  ----------------<br>root@vsa-00000428-vc-1:/export/4xfsdump# date; xfs_repair -v /dev/dm-55; date                                                                <br>Tue Mar 31 02:28:04 PDT 2015<br>Phase 1 - find and verify superblock...<br>        - block cache size set to 735288 entries<br>Phase 2 - using internal log<br>        - zero log...<br>zero_log: head block 1920 tail block 1920<br>        - scan filesystem freespace and inode maps...<br>agi_freecount 54, counted 55 in ag 7<br>sb_ifree 947, counted 948<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>        - agno = 1<br>         - agno = 2<br>        - agno = 3<br>        - agno = 4<br>        - agno = 5<br>        - agno = 6<br>        - agno = 7<br>        - agno = 8<br>        - agno = 9<br>        - agno = 10<br>        - agno = 11<br>        - agno = 12<br>        - agno = 13<br>        - agno = 14<br>        - agno = 15<br>        - agno = 16<br>        - agno = 17<br>        - agno = 18<br>        - agno = 19<br>        - agno = 20<br>        - agno = 21<br>bad . entry in directory inode 5691013154, was 5691013170: correcting<br>bad . entry in directory inode 5691013156, was 5691013172: correcting<br>bad . entry in directory inode 5691013157, was 5691013173: correcting<br>bad . entry in directory inode 5691013163, was 5691013179: correcting<br>        - agno = 22<br>        - agno = 23<br>        - agno = 24<br>        - agno = 25<br>        - agno = 26   (Danny: OOM occurred here with -m 3200)<br>        - agno = 27<br>        - agno = 28<br>        - agno = 29<br>        - agno = 30<br>        - agno = 31<br>        - agno = 32<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>        - agno = 4<br>        - agno = 5<br>        - agno = 6<br>        - agno = 7<br>        - agno = 8<br>        - agno = 9<br>        - agno = 10<br>        - agno = 11<br>        - agno = 12<br>        - agno = 13<br>        - agno = 14<br>        - agno = 15<br>        - agno = 16<br>        - agno = 17<br>        - agno = 18<br>        - agno = 19<br>        - agno = 20<br>        - agno = 21<br>        - agno = 22<br>        - agno = 23<br>        - agno = 24<br>        - agno = 25<br>        - agno = 26<br>        - agno = 27<br>        - agno = 28<br>        - agno = 29<br>        - agno = 30<br>        - agno = 31<br>        - agno = 32<br>Phase 5 - rebuild AG headers and trees...<br>        - agno = 0<br>        - agno = 1<br>        - agno = 2<br>        - agno = 3<br>        - agno = 4<br>        - agno = 5<br>        - agno = 6<br>        - agno = 7<br>        - agno = 8<br>        - agno = 9<br>        - agno = 10<br>        - agno = 11<br>        - agno = 12<br>        - agno = 13<br>        - agno = 14<br>        - agno = 15<br>        - agno = 16<br>        - agno = 17<br>        - agno = 18<br>        - agno = 19<br>        - agno = 20<br>        - agno = 21<br>        - agno = 22<br>        - agno = 23<br>        - agno = 24<br>        - agno = 25<br>        - agno = 26<br>        - agno = 27<br>        - agno = 28<br>        - agno = 29<br>        - agno = 30<br>        - agno = 31<br>        - agno = 32<br>        - reset superblock...<br>Phase 6 - check inode connectivity...<br>        - resetting contents of realtime bitmap and summary inodes<br>        - traversing filesystem ...<br>        - agno = 0<br>        - agno = 1<br>        - agno = 2<br>        - agno = 3<br>        - agno = 4<br>        - agno = 5<br>        - agno = 6<br>        - agno = 7<br>        - agno = 8<br>        - agno = 9<br>        - agno = 10<br>        - agno = 11<br>entry "SavedXML" in dir inode 2992927241 inconsistent with .. value (4324257659) in ino 5691013156<br>        will clear entry "SavedXML"<br>rebuilding directory inode 2992927241<br>        - agno = 12<br>        - agno = 13<br>        - agno = 14<br>        - agno = 15<br>        - agno = 16<br>entry "Out" in dir inode 4324257659 inconsistent with .. value (2992927241) in ino 5691013172<br>        will clear entry "Out"<br>rebuilding directory inode 4324257659<br>        - agno = 17<br>        - agno = 18<br>        - agno = 19<br>        - agno = 20<br>        - agno = 21<br>entry "tocs_file" in dir inode 5691012138 inconsistent with .. value (3520464676) in ino 5691013154<br>        will clear entry "tocs_file"<br>entry "trees.log" in dir inode 5691012138 inconsistent with .. value (3791956240) in ino 5691013155<br>        will clear entry "trees.log"<br>rebuilding directory inode 5691012138<br>entry "filelist.xml" in directory inode 5691012139 not consistent with .. value (1909707067) in inode 5691013157,<br>junking entry<br>fixing i8count in inode 5691012139<br>entry "image001.jpg" in directory inode 5691012140 not consistent with .. value (2450176033) in inode 5691013163,<br>junking entry<br>fixing i8count in inode 5691012140<br>entry "OCR" in dir inode 5691013154 inconsistent with .. value (5691013170) in ino 1909707065<br>        will clear entry "OCR"<br>entry "Tmp" in dir inode 5691013154 inconsistent with .. value (5691013170) in ino 2179087403<br>        will clear entry "Tmp"<br>entry "images" in dir inode 5691013154 inconsistent with .. value (5691013170) in ino 2450176007<br>        will clear entry "images"<br>rebuilding directory inode 5691013154<br>entry "286_Kellman_Hoffer_Master.pdf_files" in dir inode 5691013156 inconsistent with .. value (5691013172) in ino 834535727<br>        will clear entry "286_Kellman_Hoffer_Master.pdf_files"<br>rebuilding directory inode 5691013156<br>        - agno = 22<br>        - agno = 23<br>        - agno = 24<br>        - agno = 25<br>        - agno = 26<br>        - agno = 27<br>        - agno = 28<br>        - agno = 29<br>        - agno = 30<br>        - agno = 31<br>        - agno = 32<br>        - traversal finished ...<br>        - moving disconnected inodes to lost+found ...<br>disconnected dir inode 834535727, moving to lost+found<br>disconnected dir inode 1909707065, moving to lost+found<br>disconnected dir inode 2179087403, moving to lost+found<br>disconnected dir inode 2450176007, moving to lost+found<br>disconnected dir inode 5691013154, moving to lost+found<br>disconnected dir inode 5691013155, moving to lost+found<br>disconnected dir inode 5691013156, moving to lost+found<br>disconnected dir inode 5691013157, moving to lost+found<br>disconnected dir inode 5691013163, moving to lost+found<br>disconnected dir inode 5691013172, moving to lost+found<br>Phase 7 - verify and correct link counts...<br>resetting inode 81777983 nlinks from 2 to 12<br>resetting inode 1909210410 nlinks from 1 to 2<br>resetting inode 1909707067 nlinks from 3 to 2<br>resetting inode 2450176033 nlinks from 18 to 17<br>resetting inode 2992927241 nlinks from 13 to 12<br>resetting inode 3520464676 nlinks from 13 to 12<br>resetting inode 3791956240 nlinks from 13 to 12<br>resetting inode 4324257659 nlinks from 13 to 12<br>resetting inode 5691013154 nlinks from 5 to 2<br>resetting inode 5691013156 nlinks from 3 to 2<br><br>        XFS_REPAIR Summary    Tue Mar 31 03:11:00 2015<br><br>Phase           Start           End             Duration<br>Phase 1:        03/31 02:28:04  03/31 02:28:05  1 second<br>Phase 2:        03/31 02:28:05  03/31 02:28:42  37 seconds<br>Phase 3:        03/31 02:28:42  03/31 02:48:29  19 minutes, 47 seconds<br>Phase 4:        03/31 02:48:29  03/31 02:55:40  7 minutes, 11 seconds<br>Phase 5:        03/31 02:55:40  03/31 02:55:43  3 seconds<br>Phase 6:        03/31 02:55:43  03/31 03:10:57  15 minutes, 14 seconds<br>Phase 7:        03/31 03:10:57  03/31 03:10:57<br><br>Total run time: 42 minutes, 53 seconds<br>done<br>Tue Mar 31 03:11:01 PDT 2015<br><br></div></div>
</div></div></div></div></div></div></div></div></div></div></div>