ABSTRACT
Existing RAID-6 codes are developed to optimize either reads or writes for storage systems. To improve both read and write operations, this paper proposes a novel RAID-6 MDS array code called N-Code. N-Code exhibits three aspects of salient features: (i) read performance. N-Code assigns both horizontal parity chains and horizontal parities across disks, without generating a dedicated parity disk. Such a parity layout not only makes all the disks service normal reads, but also allows continuous data elements to share the same horizontal chain to optimize degraded reads; (ii) write performance. Diagonal parities are distributed across disks in a decentralized manner to optimize partial stripe writes, and horizontal parity chains enable N-Code to reduce I/O costs of partial stripe writes by merging I/O operations; and (iii) balancing performance. Decentralized horizontal/diagonal parities potentially support the I/O balancing optimization for single writes.
A theoretical analysis indicates that apart from the optimal storage efficiency, N-Code is featured with the optimal complexity for both encoding/decoding computations and update operations. The results of empirical experiments shows that N-Code demonstrates higher normal-read, degraded-read, and partial-stripe-write performance than the seven baseline popular RAID-6 codes. In particular, in the partial-stripe-write case, N-Code accelerates partial stripe writes by 32%-66% relative to horizontal codes; when it comes to degraded reads, N-Code improves degraded reads by 32%-53% compared to vertical codes. Furthermore, compared to the baseline codes, N-Code enhances load balancing by a factor anywhere between 1.19 to 9.09 for single-write workload, and between 1.3 to 6.92 for read-write mixed workload.
- Mario Blaum, Jim Brady, Jehoshua Bruck, and Jai Menon. 1995. EVENODD: An efficient scheme for tolerating double disk failures in RAID architectures. Computers, IEEE Transactions on 44, 2 (1995), 192--202. Google ScholarDigital Library
- Mario Blaum and Ron M Roth. 1999. On lowest density MDS codes. Information Theory IEEE Transactions on 45, 1 (1999), 46--59. Google ScholarDigital Library
- Mario Blaum and Ron M. Roth. 1999. On lowest density MDS codes. Information Theory, IEEE Transactions on 45, 1 (1999), 46--59. Google ScholarDigital Library
- Brad Calder, Ju Wang, Aaron Ogus, Niranjan Nilakantan, Arild Skjolsvold, Sam Mckelvie, Yikang Xu, Shashwat Srivastav, Jiesheng Wu, and Huseyin Simitci. 2011. Windows Azure Storage:a highly available cloud storage service with strong consistency. In ACM Symposium on Operating Systems Principles. 143--157. Google ScholarDigital Library
- Yuval Cassuto and Jehoshua Bruck. 2009. Cyclic lowest density MDS array codes. Information Theory, IEEE Transactions on 55, 4 (2009), 1721--1729. Google ScholarDigital Library
- Peter Corbett, Bob English, Atul Goel, Tomislav Grcanac, Steven Kleiman, James Leong, and Sunitha Sankar. 2004. Row-diagonal parity for double disk failure correction. In Proceedings of the 3rd USENIX Conference on File and Storage Technologies. 1--14. Google ScholarDigital Library
- Corporation EMC. July 2007. EMC CLARiiON RAID 6 Technology: A Detailed Review. White Paper. http://tahoe-lafs.org/trac/tahoe-http://www.emc.com/collateral/hardware/white-papers/h2891-clariion- raid-6.pdfGoogle Scholar
- Bin Fan, Wittawat Tantisiriroj, Lin Xiao, and Garth Gibson. 2009. DiskReduce:RAID for data-intensive scalable computing. In The Workshop on Petascale Data Storage. 6--10. Google ScholarDigital Library
- Yingxun Fu and Jiwu Shu. 2015. D-Code: An Efficient RAID-6 Code to Optimize I/O Loads and Read Performance. In Parallel and Distributed Processing Symposium. 603--612. Google ScholarDigital Library
- Yingxun Fu, Jiwu Shu, Xianghong Luo, Zhirong Shen, and Qingda Hu. 2017. Short Code: An Efficient RAID-6 MDS Code for Optimizing Degraded Reads and Partial Stripe Writes. IEEE Trans. Comput. 66, 1 (2017), 127--137. Google ScholarDigital Library
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. In ACM SIGOPS Operating Systems Review, Vol. 37. ACM, 29--43. Google ScholarDigital Library
- Kevin M Greenan, Xiaozhou Li, and Jay J Wylie. 2010. Flat XOR-based erasure codes in storage systems: Constructions, efficient recovery, and tradeoffs. In Mass Storage Systems and Technologies (MSST), 2010 IEEE 26th Symposium on. IEEE, 1--14. Google ScholarDigital Library
- James Lee Hafner. 2005. Weaver codes: Highly fault tolerant erasure codes for storage systems. In Proceedings of the 4th conference on USENIX Conference on File and Storage Technologies, Vol. 4. 16--16. Google ScholarDigital Library
- James Lee hafner. 2006. HoVer erasure codes for disk arrays. In Dependable Systems and Networks, 2006. DSN 2006. International Conference on. IEEE, 217--226. Google ScholarDigital Library
- Yuchong Hu, Henry C. H. Chen, Patrick P. C. Lee, and Yang Tang. 2012. NCCloud: applying network coding for the storage repair in a cloud-of-clouds. (2012), 21--21. Google ScholarDigital Library
- Cheng Huang, Minghua Chen, and Jin Li. 2007. Pyramid codes: Flexible schemes to trade space for access efficiency in reliable data storage systems. In Network Computing and Applications, 2007. NCA 2007. Sixth IEEE International Symposium on. IEEE, 79--86.Google ScholarCross Ref
- Cheng Huang, Huseyin Simitci, Yikang Xu, Aaron Ogus, Brad Calder, Parikshit Gopalan, Jin Li, and Sergey Yekhanin. 2012. Erasure coding in windows azure storage. In Usenix Conference on Technical Conference. 2--2. Google ScholarDigital Library
- Chao Jin, Hong Jiang, Dan Feng, and Lei Tian. 2009. P-Code: A new RAID-6 code with optimal properties. In Proceedings of the 23rd international conference on Supercomputing. ACM, 360--369. Google ScholarDigital Library
- Swaroop Kavalanekar, Bruce Worthington, Qi Zhang, and Vishal Sharda. 2008. Characterization of storage workload traces from production windows servers. In Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on. IEEE, 119--128.Google ScholarCross Ref
- John Kubiatowicz, David Bindel, Yan Chen, Steven Czerwinski, Patrick Eaton, Dennis Geels, Ramakrishna Gummadi, Sean Rhea, Hakim Weatherspoon, and Chris Wells. 2002. OceanStore: an architecture for global-scale persistent storage. ACM. 190--201 pages. Google ScholarDigital Library
- Mingqiang Li and Patrick P. C. Lee. 2014. STAIR codes: a general family of erasure codes for tolerating device and sector failures in practical storage systems. In Usenix Conference on File and Storage Technologies. 147--162. Google ScholarDigital Library
- Mingqiang Li and Jiwu Shu. 2011. C-Codes: Cyclic Lowest-Density MDS Array Codes Constructed Using Starters for RAID 6. Ibm Corporation (2011).Google Scholar
- Michael Luby and David Zuckermank. 1995. An XOR-Based Erasure-Resilient Coding Scheme. Technical Report. Tech Report.Google Scholar
- F. J Macwilliams and N. J. A Sloane. 1977. The theory of error-correcting codes. North-Holland Pub. Co. 185-186 pages.Google Scholar
- David A Patterson, Garth Gibson, and Randy H Katz. 1988. A case for redundant arrays of inexpensive disks (RAID). Vol. 17. ACM. Google ScholarDigital Library
- Eduardo Pinheiro, Wolf-Dietrich Weber, and Luiz André Barroso. 2007. Failure trends in a large disk drive population. In Proceedings of the 5th USENIX conference on File and Storage Technologies. 2--2. Google ScholarDigital Library
- James S plank. 2007. A new MDS erasure code for RAID-6. In Technical Report CS-07-602, University of Tennessee.Google Scholar
- James S Plank. 2008. A new minimum density RAID-6 code with a word size of eight. In Network Computing and Applications, 2008. NCA'08. Seventh IEEE International Symposium on. IEEE, 85--92. Google ScholarDigital Library
- James S. Plank. 2008. The RAID-6 Liberation Codes. In 6th USENIX Conference on File and Storage Technologies, FAST 2008, February 26-29, 2008, San Jose, CA, USA. 97--110. http://www.usenix.org/events/fast08/tech/plank.html Google ScholarDigital Library
- James S. Plank, Mario Blaum, and James L. Hafner. 2013. SD codes: erasure codes designed for how storage systems really fail. In Usenix Conference on File and Storage Technologies. 95--104. Google ScholarDigital Library
- Irving S Reed and Gustave Solomon. 1960. Polynomial codes over certain finite fields. Journal of the Society for Industrial & Applied Mathematics 8, 2 (1960), 300--304.Google ScholarCross Ref
- Peter Scheuermann, Gerhard Weikum, and Peter Zabback. 1993. Adaptive load balancing in disk arrays. In Foundations of Data Organization and Algorithms. Springer, 345--360. Google ScholarDigital Library
- Peter scheuermann, Gerhard Weikum, and Peter Zabback. 1998. Data partitioning and load balancing in parallel disk systems. the VLDB Journal 7, 1 (1998), 48--66. Google ScholarDigital Library
- Bianca Schroeder and Garth A Gibson. 2007. Disk failures in the real world: What does an MTTF of 1,000,000 hours mean to you. In Proceedings of the 5th USENIX conference on File and Storage Technologies, Vol. 6. 2. Google ScholarDigital Library
- Zhirong Shen and Jiwu Shu. 2014. HV Code: An All-Around MDS Code to Improve Efficiency and Reliability of RAID-6 Systems. In Ieee/ifip International Conference on Dependable Systems and Networks. 550--561. Google ScholarDigital Library
- Itzhak Tamo, Zhiying Wang, and Jehoshua Bruck. 2011. Zigzag Codes: MDS Array Codes With Optimal Rebuilding. IEEE Transactions on Information Theory 59, 3 (2011), 1597--1616. Google ScholarDigital Library
- Shenggang Wan, Qiang Cao, Changsheng Xie, Ben Eckart, and Xubin He. 2010. Code-M: Anon-mds erasure code scheme to support fast recovery from up to two-disk failures in storage systems. In Dependable Systems and Networks (DSN), 2010 IEEE/IFIP International Conference on. IEEE, 51--60.Google Scholar
- Chentao Wu, Xubin He, Guanying Wu, Shenggang Wan, Xiaohua Liu, Qiang Cao, and Changsheng Xie. 2011. HDP code: A Horizontal-Diagonal Parity Code to Optimize I/O load balancing in RAID-6. In Dependable Systems & Networks (DSN), 2011 IEEE/IFIP 41st International Conference on. IEEE, 209--220. Google ScholarDigital Library
- Chentao Wu, Shenggang Wan, Xubin He, and Qiang Cao. 2011. H-Code: A Hybrid MDS Array Code to Optimize Partial Stripe Writes in RAID-6. In Parallel & Distributed Processing Symposium. 782--793. Google ScholarDigital Library
- Ping Xie, Jianzhong Huang, Qiang Cao, Xiao Qin, and Changsheng Xie. 2013. V2-Code: A new non-MDS array code with optimal reconstruction performance for RAID-6. In Cluster Computing (CLUSTER), 2013 IEEE International Conference on. IEEE, 1--8.Google ScholarCross Ref
- Ping Xie, Jianzhong Huang, Qiang Cao, and Changsheng Xie. 2014. Balanced P-Code: A RAID-6 Code to Support Highly Balanced I/Os for Disk Arrays. In IEEE International Conference on Networking, Architecture, and Storage. 133--137. Google ScholarDigital Library
- Qin Xin, Ethan L Miller, Thomas Schwarz, Darrell DE Long, Scott A Brandt, and Witold Litwin. 2003. Reliability mechanisms for very large storage systems. In Mass Storage Systems and Technologies, 2003.(MSST 2003). Proceedings. 20th IEEE/11th NASA Goddard Conference on. IEEE, 146--156. Google ScholarDigital Library
- Lihao Xu, Vasken Bohossian, Jehoshua Bruck, and David G Wagner. 1999. Low-density MDS codes and factors of complete graphs. Information Theory, IEEE Transactions on 45, 6 (1999), 1817--1826. Google ScholarDigital Library
- Lihao Xu and Jehoshua Bruck. 1999. X-code: MDS array codes with optimal encoding. Information Theory, IEEE Transactions on 45, 1 (1999), 272--276. Google ScholarDigital Library
- GV Zaitsev, Victor Alexandrovich Zinov'ev, and NV Semakov. 1983. Minimum-check-density codes for correcting bytes of errors, erasures, or defects. Problemy Peredachi Informatsii 19, 3 (1983), 29--37.Google Scholar
Index Terms
- N-Code: An Optimal RAID-6 MDS Array Code for Load Balancing and High I/O Performance
Recommendations
D-Code: An Efficient RAID-6 Code to Optimize I/O Loads and Read Performance
IPDPS '15: Proceedings of the 2015 IEEE International Parallel and Distributed Processing SymposiumWith the reliability requirement increasingly important, RAID-6, which can tolerate any two concurrent disk failures, has been widely used in various storage systems. One class of typical RAID-6 implementations is to use Maximum Distance Separable (MDS) ...
P-Code: a new RAID-6 code with optimal properties
ICS '09: Proceedings of the 23rd international conference on SupercomputingRAID-6 significantly outperforms the other RAID levels in disk-failure tolerance due to its ability to tolerate arbitrary two concurrent disk failures in a disk array. The underlying parity array codes have a significant impact on RAID-6's performance. ...
Balanced P-Code: A RAID-6 Code to Support Highly Balanced I/Os for Disk Arrays
NAS '14: Proceedings of the 2014 9th IEEE International Conference on Networking, Architecture, and StorageThere exist numerous erasure codes for RAID-6, of which MDS codes are popular due to the optimal storage efficiency. Although vertical MDS codes have better load balancing compared to horizontal MDS codes, unbalancing problem still exists in some ...
Comments