Unreachable simply means that Discovery couldn't communicate with the device using SNMP on that sweep. This could be as simple as a timeout due to network congestion. You might consider increasing your Discovery SNMP timeout, but do so smartly. Sometimes adding just one second is sufficient due to the way the retries works. For example, a timeout of 7 seconds with 1 retry means that Discovery will wait a maximum of 14 seconds for an SNMP reply before giving up.
That said, Discovery is not something I would recommend most users run constantly. In a stable network, I would say disable periodic discoveries, and only run them when you know or suspect changes have occurred. By changes, I mean you've added a new device, or a device's hostname has changed.
You do not need to run Discovery in order for other LMS components to work. Discovery is just one more means to add devices to DCR.