Yet another question about hot swapping drives
I've done some searched regarding FreeBSD's 7 support for the hot swapping of SATA drives and the general consensus is that it *is* supported, but not necessarily with all drive models/brands. In our own testing, we've discovered that our Seagate 250GB drives cannot be hot swapped in our servers. The systems hang and eventually panic, even if the drive is simply removed and then put back in.
We also have some Western Digital drives, and these fare much better. FreeBSD appears to recognize when these drives are removed and inserted; the geom driver for example automatically re-inserts a previously configured drive as soon as it is plugged in. It isn't even necessary to do an atacontrol attach/detach.
However, even with the Western Digital drive, there are issues. In particular, if there are any mounted file systems on a drive when it is removed, attempting to unmount the file systems after it has been removed usually leads to a kernel panic, not necessarily immediately but shortly afterwards.
Why does FreeBSD panic instead of simply issuing an I/O error. The implication is that if a drive was to suddenly die on a live system, even if we have gmirror configured for HA, the system will panic. We have software that detects when a drive disappears, but if the system is going to end up panicking, our detection code isn't going to do us much good.
Is there any solution to this? Can a server be built around FreeBSD that supports hot swappable SATA drives?