第11章 Ceph File System スナップショットのミラーリング
ストレージ管理者は、別の Red Hat Ceph Storage クラスターのリモート Ceph File System に Ceph File System (CephFS) を複製できます。
前提条件
- ソースおよびターゲットストレージクラスターは、Red Hat Ceph Storage 6.0 以降を実行している必要があります。
Ceph File System (CephFS) は、別の Red Hat Ceph Storage クラスター上のリモート CephFS へのスナップショットの非同期レプリケーションをサポートします。スナップショットの同期は、スナップショットデータをリモートの Ceph File System にコピーし、同じ名前のリモートターゲットに新しいスナップショットを作成します。スナップショット同期用に特定のディレクトリーを設定できます。
CephFS ミラーの管理は、CephFS ミラーリングデーモン (cephfs-mirror
) により実行されます。このスナップショットデータは、リモートの CephFS への一括コピーを実行することで同期されます。スナップショットのペアの同期順序は、snap-id
を使用して作成時に決定されます。
ハードリンクの同期はサポートされていません。ハードリンクされたファイルは、通常のファイルとして同期されます。
CephFS スナップショットのミラーリングには、スナップショットインカーネーションや高可用性などの機能が含まれます。これらは、推奨される制御インターフェイスである Ceph Manager mirroring
モジュールを介して管理できます。
Ceph Manager モジュールとインターフェイス
Ceph Manager mirroring
モジュールは、デフォルトでは無効になっています。ディレクトリースナップショットのミラーリングを管理するためのインターフェイスを提供します。Ceph Manager インターフェイスは、ほとんどの場合、CephFS ミラーリングを管理するためのモニターコマンドのラッパーです。これらは、推奨される制御インターフェイスです。
Ceph Manager mirroring
モジュールは、Ceph Manager プラグインとして実装されます。これは、Synchronization のためにディレクトリーを cephfs-mirror
デーモンに割り当てるロールを果たします。
Ceph Manager の mirroring
モジュールは、ディレクトリースナップショットのミラーリングを制御するコマンドのファミリーも提供します。mirroring
モジュールは、cephfs-mirror
デーモンを管理しません。cephfs-mirror
デーモンの停止、起動、再起動、および有効化は systemctl
によって制御されますが、cephadm
によって管理されます。
ミラーリングモジュールコマンドは、fs mirror
接頭辞を使用する監視コマンドと比較して、fs snapshot mirror
接頭辞を使用します。module コマンド接頭辞を使用して、ディレクトリースナップショットのミラーリングを制御していることを確認してください。
スナップショットの再生成
スナップショットが削除され、同じ名前で異なる内容で再作成される場合があります。ユーザーは以前に "古い" スナップショットを同期し、ミラーリングが無効になったときにスナップショットを再作成できました。スナップショット名を使用して継続点を推測すると、"新しい" スナップショットが生成され、同期のために取得されることはありません。
セカンダリーファイルシステムのスナップショットには、同期元のスナップショットのスナップ ID
が格納されます。このメタデータは、Ceph Metadata Server の SnapInfo
構造に保存されます。
高可用性
複数の cephfs-mirror
デーモンを 2 つ以上のノードにデプロイして、ディレクトリースナップショットの同期で同時実行を実現できます。cephfs-mirror
デーモンがデプロイまたは終了されると、Ceph Manager mirroring
モジュールは変更された cephfs-mirror
デーモンのセットを検出し、新しいセット間でディレクトリーの割り当てを再調整して、高可用性を提供します。
cephfs-mirror
デーモンは、単純な M/N ポリシーを使用して同期負荷を共有します。ここで、M はディレクトリーの数、N は cephfs-mirror
デーモンの数です。
Ceph File System ミラーピアの再追加
別のクラスター内の CephFS にピアを再追加または再割り当てする場合は、すべてのミラーデーモンがピアへの同期を停止していることを確認してください。これは、fs mirror status
コマンドを使用して確認できます。ピア UUID はコマンド出力に表示されません。
別の CephFS に再追加する前に、同期されたディレクトリーをピアからパージします。特に、新しいプライマリーファイルシステムに存在する可能性のあるディレクトリーを削除します。以前に同期した同じプライマリーファイルシステムにピアを再度追加する場合、これは必要ありません。
関連情報
-
fs mirror status
コマンドの詳細は、Ceph File System のミラーステータスの表示 を参照してください。
11.1. Ceph File System のスナップショットミラーの設定
Ceph File System (CephFS) を設定して、リモートの Red Hat Ceph Storage クラスターの別の CephFS にスナップショットを複製するようにミラーリングできます。
リモートストレージクラスターへの同期にかかる時間は、ファイルのサイズとミラーリングパス内のファイルの合計数によって異なります。
前提条件
- ソースおよびターゲットのストレージクラスターは正常であり、Red Hat Ceph Storage 8.0 以降を実行している必要があります。
- ソースおよびターゲットストレージクラスターの Ceph Monitor ノードへのルートレベルのアクセス。
- ストレージクラスターにデプロイされた少なくとも 1 つの Ceph File System。
手順
Cephadm シェルにログインします。
例
[root@host01 ~]# cephadm shell
ソースストレージクラスターで、CephFS ミラーリングデーモンをデプロイします。
構文
ceph orch apply cephfs-mirror ["NODE_NAME"]
例
[ceph: root@host01 /]# ceph orch apply cephfs-mirror "node1.example.com" Scheduled cephfs-mirror update...
このコマンドにより、
cephfs-mirror
という名前の Ceph ユーザーが作成され、特定のノードにcephfs-mirror
デーモンがデプロイされます。オプション: 複数の CephFS ミラーリングデーモンをデプロイし、高可用性を実現します。
構文
ceph orch apply cephfs-mirror --placement="PLACEMENT_SPECIFICATION"
例
[ceph: root@host01 /]# ceph orch apply cephfs-mirror --placement="3 host1 host2 host3" Scheduled cephfs-mirror update...
この例では、3 つの
cephfs-mirror
デーモンを異なるホストにデプロイします。警告次のエラーが発生するため、ホストをコンマで区切らないでください。
Error EINVAL: name component must include only a-z, 0-9, and -
ターゲットストレージクラスターで、それぞれの CephFS ピア用にユーザーを作成します。
構文
ceph fs authorize FILE_SYSTEM_NAME CLIENT_NAME / rwps
例
[ceph: root@host01 /]# ceph fs authorize cephfs client.mirror_remote / rwps [client.mirror_remote] key = AQCjZ5Jg739AAxAAxduIKoTZbiFJ0lgose8luQ==
ソースストレージクラスターで、CephFS ミラーリングモジュールを有効にします。
例
[ceph: root@host01 /]# ceph mgr module enable mirroring
ソースストレージクラスターで、Ceph File System でミラーリングを有効にします。
構文
ceph fs snapshot mirror enable FILE_SYSTEM_NAME
例
[ceph: root@host01 /]# ceph fs snapshot mirror enable cephfs
オプション: スナップショットミラーリングを無効にします。
構文
ceph fs snapshot mirror disable FILE_SYSTEM_NAME
例
[ceph: root@host01 /]# ceph fs snapshot mirror disable cephfs
警告ファイルシステムでスナップショットミラーリングを無効にすると、設定されたピアが削除されます。ピアをブートストラップして再度インポートする必要があります。
ターゲットピアストレージクラスターを準備します。
ターゲットノードで、
mirroring
Ceph Manager モジュールを有効にします。例
[ceph: root@host01 /]# ceph mgr module enable mirroring
同じターゲットノードで、ピアブートストラップを作成します。
構文
ceph fs snapshot mirror peer_bootstrap create FILE_SYSTEM_NAME CLIENT_NAME SITE_NAME
SITE_NAME は、ターゲットのストレージクラスターを識別するユーザー定義の文字列です。
例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_bootstrap create cephfs client.mirror_remote remote-site {"token": "eyJmc2lkIjogIjBkZjE3MjE3LWRmY2QtNDAzMC05MDc5LTM2Nzk4NTVkNDJlZiIsICJmaWxlc3lzdGVtIjogImJhY2t1cF9mcyIsICJ1c2VyIjogImNsaWVudC5taXJyb3JfcGVlcl9ib290c3RyYXAiLCAic2l0ZV9uYW1lIjogInNpdGUtcmVtb3RlIiwgImtleSI6ICJBUUFhcDBCZ0xtRmpOeEFBVnNyZXozai9YYUV0T2UrbUJEZlJDZz09IiwgIm1vbl9ob3N0IjogIlt2MjoxOTIuMTY4LjAuNTo0MDkxOCx2MToxOTIuMTY4LjAuNTo0MDkxOV0ifQ=="}
次の手順で使用する二重引用符の間のトークン文字列をコピーします。
ソースストレージクラスターで、ターゲットストレージクラスターからブートストラップトークンをインポートします。
構文
ceph fs snapshot mirror peer_bootstrap import FILE_SYSTEM_NAME TOKEN
例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_bootstrap import cephfs eyJmc2lkIjogIjBkZjE3MjE3LWRmY2QtNDAzMC05MDc5LTM2Nzk4NTVkNDJlZiIsICJmaWxlc3lzdGVtIjogImJhY2t1cF9mcyIsICJ1c2VyIjogImNsaWVudC5taXJyb3JfcGVlcl9ib290c3RyYXAiLCAic2l0ZV9uYW1lIjogInNpdGUtcmVtb3RlIiwgImtleSI6ICJBUUFhcDBCZ0xtRmpOeEFBVnNyZXozai9YYUV0T2UrbUJEZlJDZz09IiwgIm1vbl9ob3N0IjogIlt2MjoxOTIuMTY4LjAuNTo0MDkxOCx2MToxOTIuMTY4LjAuNTo0MDkxOV0ifQ==
ソースストレージクラスターで、CephFS ミラーピアをリスト表示します。
構文
ceph fs snapshot mirror peer_list FILE_SYSTEM_NAME
例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_list cephfs {"e5ecb883-097d-492d-b026-a585d1d7da79": {"client_name": "client.mirror_remote", "site_name": "remote-site", "fs_name": "cephfs", "mon_host": "[v2:10.0.211.54:3300/0,v1:10.0.211.54:6789/0] [v2:10.0.210.56:3300/0,v1:10.0.210.56:6789/0] [v2:10.0.210.65:3300/0,v1:10.0.210.65:6789/0]"}}
オプション: スナップショットピアを削除します。
構文
ceph fs snapshot mirror peer_remove FILE_SYSTEM_NAME PEER_UUID
例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_remove cephfs e5ecb883-097d-492d-b026-a585d1d7da79
注記ピア UUID 値を確認する方法は、Ceph File System のミラーリングステータスの表示 を参照してください。
ソースストレージクラスターで、スナップショットミラーリングのディレクトリーを設定します。
構文
ceph fs snapshot mirror add FILE_SYSTEM_NAME PATH
例
[ceph: root@host01 /]# ceph fs snapshot mirror add cephfs /volumes/_nogroup/subvol_1
重要Ceph File System 内の絶対パスのみが有効です。
注記Ceph Manager の
mirroring
モジュールは、パスを正規化します。たとえば、/d1/d2/../dN
ディレクトリーは/d1/d2
と同等です。ミラーリング用にディレクトリーが追加されると、その上位ディレクトリーおよびサブディレクトリーがミラーリング用に追加されなくなります。オプション: ディレクトリーのスナップショットミラーリングを停止します。
構文
ceph fs snapshot mirror remove FILE_SYSTEM_NAME PATH
例
[ceph: root@host01 /]# ceph fs snapshot mirror remove cephfs /home/user1
関連情報
- 詳細は、Red Hat Ceph Storage ファイルシステムガイド の Ceph File System のミラーステータスの表示 セクションを参照してください。
- 詳細は、Red Hat Ceph Storage ファイルシステムガイド の Ceph File System のミラーリング セクションを参照してください。