5.4. イレイジコードプラグイン
Ceph では、プラグインアーキテクチャーとのイレイジャーコーディングがサポートされます。つまり、さまざまなタイプのアルゴリズムを使用して、イレイジャーコードプールを作成できます。Ceph では、以下がサポートされています。
- Jerasure (デフォルト)
- ローカルに修復可能
- ISA (Intel のみ)
以下のセクションでは、これらのプラグインの詳細を説明します。
5.4.1. Jerasure Erasure コードプラグイン
jerasure プラグインは、最も汎用的で柔軟性のあるプラグインです。Ceph Erasure コードプールのデフォルトでもあります。
jerasure プラグインは JerasureH ライブラリーをカプセル化します。パラメーターの詳細は、jerasure のドキュメントを参照してください。
jerasure プラグインを使用して新しいイレイジャーコードプロファイルを作成するには、以下のコマンドを実行します。
ceph osd erasure-code-profile set <name> \ plugin=jerasure \ k=<data-chunks> \ m=<coding-chunks> \ technique=<reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion> \ [crush-root=<root>] \ [crush-failure-domain=<bucket-type>] \ [directory=<directory>] \ [--force]
詳細は以下のようになります。
- k
- 説明
- 各オブジェクトは data-chunks の部分で分割され、それぞれが異なる OSD に保管されます。
- タイプ
- 整数
- 必須
- Yes
- 例
-
4
- m
- 説明
- 各オブジェクトの コーディングチャンク を計算し、それらを異なる OSD に保存します。コーディングのチャンクの数は、データが失われることなくダウンできる OSD 数でもあります。
- タイプ
- 整数
- 必須
- Yes
- 例
- 2
- テクニック
- 説明
- より柔軟な技術は reed_sol_van で、k と m を設定するだけで十分です。cauchy_good 技術は速くなりますが、慎重に packetsize を選択する必要があります。reed_sol_r6_op、liberation、blaum_roth、liber8tion はすべて、m=2 でしか設定できない意味で RAID6 と同等です。
- タイプ
- 文字列
- 必須
- No
- 有効なセット
-
reed_sol_van
reed_sol_r6_op
cauchy_orig
cauchy_good
liberation
blaum_roth
liber8tion
- デフォルト
-
reed_sol_van
- packetsize
- 説明
- エンコーディングは、バイト サイズのパケットで一度に行われます。適切なパケットサイズの選択は困難です。jerasure ドキュメントには、このトピックに関する詳細な情報が記載されています。
- タイプ
- 整数
- 必須
- いいえ
- デフォルト
-
2048
- crush-root
- 説明
- ルールの最初のステップに使用される CRUSH バケットの名前。たとえば、step take default となります。
- タイプ
- 文字列
- 必須
- いいえ
- デフォルト
- default
- crush-failure-domain
- 説明
- 同じ障害ドメインを持つバケットに 2 つのチャンクがないことを確認します。たとえば、障害ドメインが ホスト の場合、2 つのチャンクは同じホストに保存されません。これは、step chooseleaf host などのルールステップを作成するのに使用します。
- タイプ
- 文字列
- 必須
- いいえ
- デフォルト
-
host
- directory
- 説明
- イレイジャーコードプラグインが読み込まれた ディレクトリー 名を設定します。
- タイプ
- 文字列
- 必須
- いいえ
- デフォルト
-
/usr/lib/ceph/erasure-code
- --force
- 説明
- 同じ名前で既存のプロファイルを上書きします。
- タイプ
- 文字列
- 必須
- No