第1章 Ceph ファイルシステムの概要
本章では、Ceph File System(CephFS)の概要と、その仕組みについて説明します。
1.1. Ceph ファイルシステムについて
Ceph File System(CephFS)は、POSIX 標準と互換性のあるファイルシステムで、Ceph Storage クラスターへのファイルアクセスを提供します。
CephFS を実行するには、少なくとも 1 つのメタデータサーバー(MDS)デーモン(ceph-mds
)が必要です。MDS デーモンは、Ceph ファイルシステムに保管されているファイルに関するメタデータを管理し、共有 Ceph Storage クラスターへのアクセスも調整します。
CephFS は、可能な限り POSIX セマンティクスを使用します。たとえば、NFS のような他の多くの一般的なネットワークファイルシステムとは対照的に、CephFS はクライアント間で強力なキャッシュコヒーレンシーを維持します。目標は、ファイルシステムを使用するプロセスが、異なるホストに存在するときも、同じホストにいるときも、同じように動作することです。ただし、CephFS は厳密な POSIX セマンティクスから乖離している場合もあります。詳細は、「Ceph ファイルシステムの POSIX コンプライアンスとの相違点」 を参照してください。
Ceph ファイルシステムコンポーネント
この図は、Ceph File System のさまざまなレイヤーを示しています。
+-----------------------+ +------------------------+ | CephFS Kernel Object | | CephFS FUSE | +-----------------------+ +------------------------+ +---------------------------------------------------+ | CephFS Library (libcephfs) | +---------------------------------------------------+ +---------------------------------------------------+ | Ceph Storage Cluster Protocol (librados) | +---------------------------------------------------+ +---------------+ +---------------+ +---------------+ | OSDs | | MDSs | | Monitors | +---------------+ +---------------+ +---------------+
下層は、以下を含む基礎となるコアクラスターを表します。
-
Ceph File System データとメタデータが保存される OSD(
ceph-osd
) -
Ceph ファイルシステムのメタデータを管理するメタデータサーバー(
ceph-mds
) -
クラスターマップのマスターコピーを管理するモニター(
ceph-mon
)
Ceph Storage Cluster Protocol レイヤーは、コアクラスターと対話するための Ceph ネイティブ librados
ライブラリーを表します。
CephFS ライブラリー層には、librados
の上で動作し、Ceph File System を表す CephFS libcephfs
ライブラリーが含まれます。
上層は、Ceph ファイルシステムにアクセスできる 2 種類のクライアントを表します。
この図では、Ceph File System コンポーネントが相互に対話する方法を説明します。
![image-cephfs-architecture](https://access.redhat.com/webassets/avalon/d/Red_Hat_Ceph_Storage-3-Ceph_File_System_Guide-ja-JP/images/343bded35489d7be7991d44f56f9fa52/cephfs-architecture.png)
Ceph File System には、以下の主要コンポーネントがあります。
-
クライアント は CephFS を使用したアプリケーションの代わりに I/O 操作を実行するエンティティーを表します(FUSE クライアントの場合は
ceph-fuse
、カーネルクライアントの場合はkcephfs
)。クライアントはメタデータ要求をアクティブな MDS に送信します。戻りに、クライアントはファイルメタデータを学習し、メタデータとファイルデータの両方を安全にキャッシュすることができます。 - メタデータ サーバー はクライアントにメタデータを提供し、バッキングメタデータプールストアへの要求を減らし、キャッシュの一貫性を維持するためにクライアントキャッシュを管理し、アクティブな MDS 間でホットメタデータを複製し、メタデータの変更をバッキングメタデータプールに通常のフラッシュでコンパクトなジャーナルに結合します。