1. A computer-implemented method for data scrubbing, the method comprising: maintaining a cluster-based storage system including a plurality of storage devices; storing a plurality of replicas associated with a data object in a predefined number of the storage devices, one replica per one storage device; storing a plurality of hash values associated with each replica in the plurality of storage devices, one hash value per one storage device; loading, by one or more processors, a first hash value of the plurality of hash values from one of the storage devices; loading, by the one or more processors, a replica of the data object corresponding to the first hash value to obtain a loaded data object; calculating, by the one or more processors, a second hash value with respect to the loaded data object; comparing, by the one or more processors, the first hash value and the second hash value to identify a corruption of either the data object or the first hash value; based on the comparison of the first hash value and the second hash value, restoring, by the one or more processors, the data object and the first hash value based at least in part on one replica of the plurality of replicas; periodically scanning the plurality of storage devices storing the plurality of replicas associated with the data object; recomputing a hash value of each of the plurality of replicas to obtain a recomputed hash value; comparing each of the plurality of hash values to the recomputed hash value; based on the comparison of the plurality of hash values to the recomputed hash value, assessing validity of each of the plurality of replicas; based on the assessment of validity of each of the plurality of replicas, selectively replacing one or more of the plurality of replicas with a verified replica; determining that all replicas are corrupt; creating an adjusted hash value by flipping one bit of the hash value; comparing the adjusted hash value and the recomputed hash value; and based on the comparison of the adjusted hash value and the recomputed hash value, determining whether the adjusted hash value and the recomputed hash value match, wherein if the adjusted hash value matches the recomputed hash value, all hash values are replaced with a verified hash value, and if the adjusted hash value mismatches the recomputed hash value, the bit is restored and a further bit is flipped.