CephFS - cephfs
#
Ceph はオープンソースのストレージプラットフォームで、データを RADOS に基づいたストレージクラスタ内に保管します。 非常にスケーラブルで、単一障害点がない分散システムであり非常に信頼性が高いです。
Tip
ベーシックなCephクラスタを素早く構築したい場合、MicroCephをチェックしてみてください。
Ceph はブロックストレージ用とファイルシステム用に異なるコンポーネントを提供します。
CephFS は堅牢でフル機能の POSIX 互換の分散ファイルシステムを提供する Ceph のファイルシステムコンポーネントです。 内部的には ファイルを Ceph オブジェクトにマップし、ファイルのメタデータ (例えば、ファイルの所有権、ディレクトリパス、アクセス権限) を別のデータプールに保管します。
用語#
Ceph は保管するデータに オブジェクト という用語を使用します。 データを保存と管理する責任を持つデーモンは Ceph OSD です。 Ceph のストレージは プール に分割されます。これはオブジェクトを保管する論理的なパーティションです。 これらは データプール, ストレージプール, OSD プール とも呼ばれます。
CephFS ファイルシステム は 2 つの OSD ストレージプールから構成され、ひとつは実際のデータ、もうひとつはファイルメタデータに使用されます。
LXD の cephfs
ドライバ#
注釈
cephfs
ドライバはコンテントタイプ filesystem
のカスタムストレージボリュームにのみ使用できます。
他のストレージボリュームには Ceph ドライバを使用してください。
そのドライバはコンテントタイプ filesystem
のカスタムストレージボリュームにも使用できますが、 Ceph RBD イメージを使って実装しています。
他のストレージドライバとは異なり、このドライバはストレージシステムをセットアップはせず、既に Ceph クラスタをインストール済みであると想定します。
使用したい CephFS ファイルシステムは事前に作成する必要があり source
オプションで指定する必要があります。
このドライバはリモートのストレージを提供するという意味でも他のドライバとは異なる振る舞いをします。 結果として、内部ネットワークに依存し、ストレージへのアクセスはローカルのストレージより少し遅くなるかもしれません。 一方で、リモートのストレージを使うことはクラスタ構成では大きな利点があります。これはストレージプールを同期する必要なしに、全てのクラスタメンバが同じ内容を持つ同じストレージプールにアクセスできるからです。
LXD は OSD ストレージプールに対して完全制御できることを想定します。 このため、 LXD OSD ストレージプール内に LXD が所有しないファイルシステムエンティティは LXD が消してしまうかもしれないので決して置くべきではありません。
LXD の cephfs
ドライバはサーバ側でスナップショットが有効な場合はスナップショットをサポートします。
設定オプション#
cephfs
ドライバを使うストレージプールとこれらのプール内のストレージボリュームには以下の設定オプションが利用できます。
ストレージプール設定#
キー |
型 |
デフォルト値 |
説明 |
---|---|---|---|
|
string |
|
CephFS ファイルシステムを含む Ceph クラスタの名前 |
|
bool |
|
カーネルの |
|
string |
|
CephFS をマウントするベースのパス |
|
string |
|
使用する Ceph のユーザー |
|
string |
- |
使用する既存の CephFS ファイルシステムかファイルシステムパス |
|
string |
|
作成時に CephFS ファイルシステムが空だったか |
Tip
これらの設定に加えて、ストレージボリューム設定のデフォルト値を設定できます。 ストレージボリュームのデフォルト値を変更する を参照してください。
ストレージボリューム設定#
キー |
型 |
条件 |
デフォルト値 |
説明 |
---|---|---|---|---|
|
bool |
カスタムボリューム |
|
ID シフトオーバーレイを有効にする (複数の分離されたインスタンスによるアタッチを許可する) |
|
bool |
カスタムボリューム |
|
ボリュームの ID マッピングを無効にする |
|
string |
適切なドライバ |
|
ストレージボリュームのサイズ/クォータ |
|
string |
カスタムボリューム |
|
スナップショットをいつ削除するかを制御 ( |
|
string |
カスタムボリューム |
|
スナップショットの名前を表す Pongo2 テンプレート文字列 (スケジュールされたスナップショットと名前無しのスナップショットで使用) 1 |
|
string |
カスタムボリューム |
|
Cron 表記 ( |
- 1
snapshots.pattern
オプションはスナップショット名をフォーマットする Pongo2 テンプレート文字列です。スナップショット名にタイムスタンプを追加するには、Pongo2 コンテキスト変数
creation_date
を使用します。 スナップショット名に使用できない文字を含まないようにテンプレート文字列をフォーマットするようにしてください。 例えば、snapshots.pattern
を{{ creation_date|date:'2006-01-02_15-04-05' }}
に設定し、作成日時を秒の制度まで落として、スナップショットを命名するようにします。名前の衝突を防ぐ別の方法はパターン内に
%d
プレースホルダを使うことです。 最初のスナップショットでは、プレースホルダは0
に置換されます。 後続のスナップショットでは、既存のスナップショットが考慮され、プレースホルダの位置の最大の数を見つけます。 この数が 1 増加されて新しい名前に使用されます。