Local reconstruction codes (LRCs) were invented to deal with this problem. Locality means that when a small number of servers fail, any failed server can be recovered quickly by reading data from a small number of healthy servers. At the same time they can recover from catastrophic failures where a large number of servers fail (although recovery will necessarily be less efficient). Locality in distributed storage was first introduced in [1]}, [2]}, but LRCs were first formally defined and studied in [3]} and [4]}.
