Yes, change the drive.
Unreadable (pending) sectors are sector whose contents could not be read. On a normal non-RAID situation that would result in either a read error, or a long delay while the drive attempts to read the sector again and again until it succeeds (or until it eventually gives up).
With RAID two things are happening:
- Your disk is probably configured with a short TLER value. Thus is will give up its attempts to read that sector within a reasonable time. (Thus preventing long hangs).
- Your RAID array notices the failure and reads the data from another disk. This is the advantage of RAID 5; you have a spare copy.
What you want to do is:
- Check your backups. You should not need them if all goes well.
- Fetch a replacement disk of equal or larger size. You can check the size with
smartctl -a /dev/sdc. Do not assume all drives of size X have the same capacity. Manufacturers like round numbers; one 500GB drive might well be smaller than another 500 GB drive.
- Bring the disk with problems off-line. (
mdadm --manage --remove /dev/mdX /dev/sdc)
- Replace the disk with new hardware and let the array rebuild itself. (
mdadm --add /dev/mdX /dev/sdc)
If you used large disks then this will take a lot of time. Sometimes it is faster to just rebuild the RAID array from scratch and restore from backups. (TEST those backups first!)
While the RAID is rebuilding you have no redundancy. Thus is another disk fails (e.g. due to the stress of rebuilding) then you have a problem. This sometimes happens with large disks (long rebuild times) and batches of drives from the same date.