4.9. Ceph File System スナップショットに関する留意事項


ストレージ管理者として、Ceph File System (CephFS) スナップショットを管理するためのデータ構造、システムコンポーネント、および留意事項を理解できます。

スナップショットは、作成時にファイルシステムのイミュータブルなビューを作成します。スナップショットはディレクトリー内に作成でき、そのディレクトリー下のファイルシステムにあるすべてのデータがカバーされます。

4.9.1. Ceph File System のスナップショットメタデータの保存

スナップショットディレクトリーエントリーとその inode のストレージは、スナップショットの時点でそれらがあったディレクトリーの一部としてインラインで実行されます。すべてのディレクトリーエントリーには、有効な最初と最後の snapid が含まれています。

4.9.2. Ceph File System スナップショットのライトバック

Ceph スナップショットは、どの操作がスナップショットに適用されるかを決定し、スナップショットデータとメタデータを OSD および MDS クラスターにフラッシュバックするために、クライアントに依存します。スナップショットはファイル階層のサブツリーに適用され、スナップショットの作成はいつでも発生する可能性があるため、スナップショットのライトバックの処理は複雑なプロセスです。

同じスナップショットセットに属するファイル階層の一部は、単一の SnapRealm によって参照されます。各スナップショットは、ディレクトリーの下にネストされたサブディレクトリーに適用され、ファイル階層を複数のレルムに分割します。レルムに含まれるすべてのファイルは、同じスナップショットのセットを共有します。

Ceph Metadata Server (MDS) は、各 inode の機能 (caps) を発行して、inode のメタデータおよびファイルデータへのクライアントアクセスを制御します。スナップショットの作成中に、クライアントは、その時点でのファイルの状態を記述する機能を備えた inode 上のダーティメタデータを取得します。クライアントが ClientSnap メッセージを受信すると、ローカルの SnapRealm と特定の inode へのリンクが更新され、inode の CapSnap が生成されます。機能のライトバックは CapSnap をフラッシュし、ダーティーデータが存在する場合は、CapSnap を使用して、スナップショットが OSD にフラッシュされるまで新規データの書き込みをブロックします。

MDS は、それらをフラッシュするためのルーチンプロセスの一部として、スナップショットを表すディレクトリーエントリーを生成します。MDS は、ライトバックプロセスがそれらをフラッシュするまで、メモリーとジャーナルに固定された未処理の CapSnap データを含むディレクトリーエントリーを保持します。

4.9.4. Ceph File System のスナップショットの作成

スナップショットを更新するプロセスは、スナップショットを削除するプロセスと似ています。

SnapRealm から inode を削除すると、SnapRealm がまだ存在しない場合、Ceph は名前が変更された inode の新しい SnapRealm を生成します。Ceph は、元の親 SnapRealm で有効なスナップショットの ID を、新しい SnapRealmpast_parent_snaps データ構造に保存してから、スナップショットの作成と同様のプロセスに従います。

4.9.5. Ceph File System のスナップショットと複数のファイルシステム

スナップショットは、複数のファイルシステムでは正常に機能しないことが知られています。

名前空間を持つ単一の Ceph プールを共有する複数のファイルシステムがある場合、それらのスナップショットは競合し、1 つのスナップショットを削除すると、同じ Ceph プールを共有する他のスナップショットのファイルデータが失われます。

4.9.6. Ceph File System の\スナップショットのデータ構造

Ceph File System (CephFS) は、以下のスナップショットデータ構造を使用してデータを効率的に保存します。

SnapRealm
SnapRealm は、ファイル階層の新しいポイントでスナップショットを作成するとき、またはスナップショットされた inode を親スナップショットの外に移動するときに作成されます。単一の SnapRealm は、同じスナップショットのセットに属するファイル階層の一部を表します。SnapRealm には、スナップショットの一部である sr_t_srnodeinodes_with_caps が含まれます。
sr_t
sr_t はディスク上のスナップショットメタデータです。これには、シーケンスカウンター、タイムスタンプ、および関連するスナップショット ID と past_parent_snaps の一覧が含まれます。
SnapServer
SnapServer は、スナップショット ID の割り当て、スナップショットの削除、およびファイルシステムの累積スナップショット一覧の維持を管理します。ファイルシステムには、SnapServer のインスタンスが 1 つだけ含まれます。
SnapContext

SnapContext はスナップショットシーケンス ID (snapid) と、オブジェクトに現在定義されているすべてのスナップショット ID で設定されます。書き込み操作が発生すると、Ceph クライアントは SnapContext を提供し、オブジェクトに存在するスナップショットのセットを指定します。SnapContext 一覧を生成するには、Ceph は SnapRealm に関連付けられた snapid と、past_parent_snaps データ構造の有効な snapid を組み合わせます。

ファイルデータは RADOS の自己管理のスナップショットを使用して保存されます。自己管理されたスナップショットでは、クライアントは書き込みごとに現在の SnapContext を提供する必要があります。クライアントは、Ceph OSD にファイルデータを書き込む際に、正しい SnapContext を慎重に使用します。

SnapClient がキャッシュした有効なスナップショットは、古い snapid を除外します。

SnapClient
SnapClientSnapServer と通信し、累積スナップショットをローカルでキャッシュするために使用されます。各メタデータサーバー (MDS) のランクには、SnapClient インスタンスがあります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat