Distributed Storage: Concepts, Algorithms, and Implementations