ZFS doesn't see a failed drive?

So, I was playing with a ZFS array and janked out (disconnected the SATA and the power cable) a live SATA drive. Just to see what would happen. The server kept running fine, obviousy. But zpool didn't report anything wrong, dispite me having the unplugged drive in my hand.

Code:
#zpool status   
pool: Opslag
state: ONLINE
scan: none requested
config:
NAME        STATE     READ WRITE CKSUM
Opslag      ONLINE       0     0     0
  raidz1-0  ONLINE       0     0     0
    ada1    ONLINE       0     0     0
    ada2    ONLINE       0     0     0
    ada3    ONLINE       0     0     0

How is this possible? :q

Only after plugging in another drive, ZFS reported a problem.

For the record, I wanted to see if I could replace a drive without shutting down the server. Obviously that wouldn't work, because SATA doesn't support hotswap. But it's strange I got no errors when I disconnected a live SATA drive from a running server.
 
That is likely because your computer didn't know the drive was disconnected.. ZFS would have put the system into a faulted state if you had attempted to write to the pool..
 
That makes sense. There was no reading or writing, or whatever going on on that zpool, at the time. If I'll try this again, I will edit a small textfile or something. See what happens ;)
 
A proper SATA AHCI controller has no problems with hotswap, when I yank a drive from our server the controller correctly reports that it lost a drive and ZFS responds accordingly (by marking the drive as REMOVED)
 
Sfynx said:
A proper SATA AHCI controller has no problems with hotswap, when I yank a drive from our server the controller correctly reports that it lost a drive and ZFS responds accordingly (by marking the drive as REMOVED)

A much nicer process is to offline the drive first. ZFS gets much less cranky when you do that. So,
  1. zpool offline <poolname> <diskname>
  2. phyiscally remove the drive
  3. insert new drive
  4. configure new drive via gpart (label, partition, etc)
  5. zpool replace <poolname> <diskname>
 
Back
Top