1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
liberasurecode
==============
liberasurecode is an Erasure Code API library written in C with pluggable Erasure Code backends.
----
Highlights
==========
* Unified Erasure Coding interface for common storage workloads.
* Pluggable Erasure Code backends - liberasurecode supports the following backends:
- 'liberasurecode_rs_vand' - Native, software-only Erasure Coding implementation that supports a Reed-Solomon backend
- 'Jerasure' - Erasure Coding library that supports Reed-Solomon, Cauchy backends [1]
- 'ISA-L' - Intel Storage Acceleration Library - SIMD accelerated Erasure Coding backends [2]
- 'SHSS' - NTT Lab Japan's hybrid Erasure Coding backend [4]
- 'Flat XOR HD' - built-in to liberasurecode, based on [3]
- 'libphazr' - Phazr.IO's erasure code backend with built-in privacy [5]
- 'NULL' template backend implemented to help future backend writers
* True 'plugin' architecture - liberasurecode uses Dynamically Loaded (DL)
libraries to realize a true 'plugin' architecture. This also allows one to
build liberasurecode indepdendent of the Erasure Code backend libraries.
* Cross-platform - liberasurecode is known to work on Linux (Fedora/Debian
flavors), Solaris, BSD and Darwin/Mac OS X.
* Community support - Developed alongside Erasure Code authority Kevin
Greenan, liberasurecode is an actively maintained open-source project with
growing community involvement (Openstack Swift, Ceph, PyECLib, NTT Labs).
----
Active Users
====================
* PyECLib - Python EC library: https://github.com/openstack/pyeclib
* Openstack Swift Object Store - https://wiki.openstack.org/wiki/Swift
----
Build and Install
=================
Install dependencies -
Debian/Ubuntu hosts:
```sh
$ sudo apt-get install build-essential autoconf automake libtool
```
Fedora/RedHat/CentOS hosts:
```sh
$ sudo yum install -y gcc make autoconf automake libtool
```
To build the liberasurecode repository, perform the following from the
top-level directory:
``` sh
$ ./autogen.sh
$ ./configure
$ make
$ make test
$ sudo make install
```
----
References
==========
[1] Jerasure, C library that supports erasure coding in storage applications, http://jerasure.org
[2] Intel(R) Storage Acceleration Library (Open Source Version), https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version
[3] Greenan, Kevin M et al, "Flat XOR-based erasure codes in storage systems", http://www.kaymgee.com/Kevin_Greenan/Publications_files/greenan-msst10.pdf
[4] Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>, "NTT SHSS Erasure Coding backend"
[5] Jim Cheung <support@phazr.io>, "Phazr.IO libphazr erasure code backend with built-in privacy"
|