Coding Schemes for Distributed Storage Systems