On the implementation of BRS codes in Ceph

Ceph is a reliable, scalable, unified distributed storage system, and recently has become one of OpenStack's standard open source storage solutions. For the reason of the low performance, Ceph Filesystem (Cephfs) cannot employ erasure codes directly, especially for binary Reed-Solomon (BRS) codes, whose size of the parity block is larger than that of the data block. To address these problems, we implemented efficient BRS codes, and filled the gap between BRS codes and Cephfs by a simple conversion. In addition to that, an efficient framework consisting of filesystem, cache tier and storage tier was adopted in Ceph to ensure that the file data is finally stored with the erasure coding technology. The experimental results show that such a design spends a small amount of additional cost but obtains much better effects.

[1]  Minghua Chen,et al.  BASIC regenerating code: Binary addition and shift for exact repair , 2013, 2013 IEEE International Symposium on Information Theory.

[2]  Carlos Maltzahn,et al.  Ceph: a scalable, high-performance distributed file system , 2006, OSDI '06.

[3]  Joachim Rosenthal,et al.  Maximum Distance Separable Convolutional Codes , 1999, Applicable Algebra in Engineering, Communication and Computing.

[4]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[5]  Hui Li,et al.  A new Zigzag MDS code with optimal encoding and efficient decoding , 2014, 2014 IEEE International Conference on Big Data (Big Data).

[6]  Antony I. T. Rowstron,et al.  IOFlow: a software-defined storage architecture , 2013, SOSP.

[7]  A. Dimakis,et al.  Deterministic Regenerating Codes for Distributed Storage Yunnan , 2007 .

[8]  Mohsine Eleuldj,et al.  OpenStack: Toward an Open-source Solution for Cloud Computing , 2012 .

[9]  Jérôme Lacan,et al.  Systematic MDS erasure codes based on Vandermonde matrices , 2004, IEEE Communications Letters.

[10]  S.A. Brandt,et al.  CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[11]  Peter J. Denning The locality principle , 2005, Commun. ACM.

[12]  Eui-Nam Huh,et al.  Software-Defined Storage Definition and Overview , 2016 .

[13]  Trevor N. Mudge,et al.  Instruction prefetching using branch prediction information , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[14]  Dimitris S. Papailiopoulos,et al.  Locally Repairable Codes , 2014, IEEE Trans. Inf. Theory.

[15]  James O'Reilly Software-Defined Storage , 2017 .