New Coding Schemes for Distributed Storage Systems : Regenerating Codes and Pyramid Codes