Mdadm-badblocks
mdadm badblocks testing
This article is about mdadm (not Mdadm, but hell, mediawiki) badblocks testing, an attempt to prove that the badblocks implementation in md is full of shite. This has been addressed before [1]
Setup
The test will be setup on a virtual machine (VM) running Debian Bullseye with the latest stable kernel from kernel.org. This way, I get updated versions of most stuff without building it all manually. If other versions than those in the distro are used, this will be pointed out in the text. All version numbers used will nevertheless be listed along with their origins.
All tests are done with the virtio scsi driver. The host machine runs Debian Buster and the VM runs from within KVM, giving it a close to total isolation from its host.
Test 1
The machine's is given two virtual disks, sdg and sdh, 16GB each, used without a partition table. On these, dm-dust[2] is used to create flakey devices, imposing errors like a drive would. On top of these, an mdadm mirror (RAID-1), is placed. On top of this, LVM is used, and then ext4. The software used is mdadm v4.1 (2018-10-01) from Debian Bullseye and the official Linux kernel 5.9.8[3].