I have a CentOS 6.0 install sitting in a Hyper-V VM. I'm trying out some of the software RAID features of Linux and I've got a RAID-5 array made up of virtual SCSI disks. Most of it works fine: if I shut down the VM and delete one of the disks, the array shows up as degraded when I restart but the data is still intact. I can then re-add a drive to the array and rebuild it with no problems.
The problem comes if I try to remove a drive while the VM is still on. That is, while the VM is on, I go into the settings for that VM and remove one of the SCSI disks. In that case, Linux doesn't seem to realize that the drive has disappeared and the array doesn't enter degraded mode. Instead, I get a whole lot of warnings in /var/log/messages from STORVSC about scsi status codes. And rather than failing gracefully or entering degraded mode, the array just starts returning corrupted data.
I literally cannot think of a worse outcome here - in the case of a drive failure in a RAID array, it decides to just start returning corrupted data? Surely not?
Have I done something horribly wrong here or is this how it's supposed to work?
The host system is Windows Server 2008 R2 Standard x64. CentOS6 running kernel 2.6.32-71.29.1.el6.x86_64. The RAID array was created using mdadm. I haven't messed with any of the internals of the OS - this is basically a fresh install.