SMART shows unreadble sectors, btrfs scrubs are clean - which is correct?

Solution 1:

Shodanshok's answer is excellent, but to answer your literal question:

What would be the best way to verify the health of the disk?

Do a full write on it. The disk's firmware has marked those sectors as pending reallocation. It can do this when they're written to. This will either 'fix' the sector, or generate reallocated sectors, which you can also see in SMART.

You could then theoretically do a latency read scan on the disk. This is often telling of how reliable sectors are.

And in practical terms, it may be time to replace the disk. This is one of those preludes to failure that I watch for. Another is 'ata exception' in the syslogs. They typically happen before mdadm (or RAID controllers) kicks drives, and I suspect btrfs is similar (though I have no experience).

Solution 2:

Most disk implements the so called "surface area scan", which runs automatically and periodically. This kind of scan happens on the entire disk surface, even on empty/free areas. On the other hand, a btrfs scrub only checks used space, meaning that empty disk areas are not checked.

This means SMART found some issues on unused sectors, but they are not recognized by btrfs simply because it is not using these sectors.

If the SMART errors quickly climb, I suggest to replace the failing drive as soon as possible.