I've got a RAID mirror (md1) with three devices (sdc, sdd, sdf). Something went wrong overnight, the array went readonly, and fsck found thousands of inodes with inline_data_fl set and/or on the orphaned inode list.
I've stopped the array with mdadm --manage /dev/md1 --stop, and am running smartctl -t long on each device.
I presume there's a reasonable chance that, when smartctl finished, the devices will differ and thus the array won't reassemble. Is there a standard(?) way of diff'ing three filesystems? And/or doing some sort of automated best-of-three error correction?
I'm running Debian Stable, and have on-disk and off-site backups. I also have a vague plan of shifting to ZFS, to avoid exactly this scenario ...
Kern.log:
Jul 26 15:15:16 jumbo kernel: [1839678.260050] md: md1: data-check done.
Aug 1 01:37:02 jumbo kernel: [2308990.999405] EXT4-fs error (device md1): ext4_lookup:1591: inode #179405745: comm rsync: iget: bad extra_isize 9234 (inode size 256)
Aug 1 01:37:02 jumbo kernel: [2308991.116973] Aborting journal on device md1-8.
Aug 1 01:37:02 jumbo kernel: [2308991.146777] EXT4-fs (md1): Remounting filesystem read-only
Aug 1 01:37:02 jumbo kernel: [2308991.146903] EXT4-fs error (device md1): ext4_lookup:1591: inode #179405746: comm rsync: iget: bad extra_isize 28338 (inode size 256)
Aug 1 01:37:02 jumbo kernel: [2308991.183721] EXT4-fs error (device md1): ext4_lookup:1591: inode #179405747: comm rsync: iget: bad extra_isize 9234 (inode size 256)
Aug 1 01:37:02 jumbo kernel: [2308991.228169] EXT4-fs error (device md1): ext4_lookup:1591: inode #179405748: comm rsync: iget: bad extra_isize 28338 (inode size 256)
Aug 1 01:37:02 jumbo kernel: [2308991.272639] EXT4-fs error (device md1): ext4_lookup:1591: inode #179405749: comm rsync: iget: bad extra_isize 9234 (inode size 256)