A PERC watches every read a physical disk answers. A disk that returns an unrecoverable error, or takes longer than the controller will wait, is marked Failed and dropped from the virtual disk; enterprise firmware reports the error within seconds precisely so that the controller has something to act on. The virtual disk becomes Degraded: every read is now served from the survivors and, in RAID 5, computed from parity where the missing member's data should be. It works, and it works with no margin.
A hot spare, or a replacement fitted into the slot, starts a rebuild. The controller reads every stripe of every survivor to compute the missing member's contents and write them onto the new drive, including the stripes nobody has read since the array was built and the ones a survivor has been quietly working around. A survivor that throws an unrecoverable read error part-way through is either dropped, which fails the virtual disk, or, on a PERC with the option enabled, skipped, which produces a puncture: an array marked Optimal with a hole in it. Predictive failure on any survivor is the controller's warning that this is about to happen.
The bench does the same arithmetic on images. The dropped drive is imaged with its weak areas last, the predictive-failure drive likewise, and both go back on fresh media sector-identical, so the rebuild runs from members that answer every read. Where the virtual disk has already failed, every member is imaged and the array reassembled in software from the images, with the PERC's own metadata giving the order and the geometry. That work is described on our RAID array site, and it happens on this bench.