2.10. エフェメラルピニングポリシー
エフェメラルピンは、サブツリーの静的なパーティションであり、拡張属性を使用したポリシーで設定できます。ポリシーでは、ディレクトリーにエフェメラルピンを自動的に設定することができます。ディレクトリーにエフェメラルピンを設定すると、そのピンは自動的に特定のランクに割り当てられ、すべての Ceph MDS ランクに均一に分散されるようになります。どのランクが割り当てられるかは、一貫したハッシュとディレクトリーの inode 番号によって決定されます。エフェメラルピンは、ディレクトリーの inode がファイルシステムのキャッシュから削除されても持続しません。Ceph Metadata Server (MDS) をフェイルオーバーする際には、エフェメラルピンがジャーナルに記録されるため、Ceph MDS スタンバイサーバーがこの情報を失うことはありません。エフェメラルピンを使用する際のポリシーは 2 種類あります。
attr
パッケージと jq
パッケージのインストールは、エフェメラルピニングポリシーの前提条件です。
- Distributed (分散)
-
このポリシーでは、ディレクトリーの直接の子のすべてが、一時的にピン留めされなければならないことを強制します。たとえば、分散ポリシーを使用して、ユーザーのホームディレクトリーを Ceph File System クラスター全体に広げることができます。
ceph.dir.pin.distributed
拡張属性を設定して、このポリシーを有効にします。
構文
setfattr -n ceph.dir.pin.distributed -v 1 DIRECTORY_PATH
例
[root@host01 mount]# setfattr -n ceph.dir.pin.distributed -v 1 dir1/
- ランダム
-
このポリシーでは、子孫のサブディレクトリーが一時的にピン留めされる可能性があります。エフェメラルピン留めが可能なディレクトリーの割合をカスタマイズできます。
ceph.dir.pin.random
を設定し、パーセンテージを設定することで、このポリシーを有効にします。Red Hat では、このパーセンテージを 1% (0.01)
より小さい値に設定することを推奨します。サブツリーのパーティションの数が多すぎると、パフォーマンスが低下します。mds_export_ephemeral_random_max
Ceph MDS 設定オプションを設定することで、最大の割合を設定できます。パラメーターmds_export_ephemeral_distributed
およびmds_export_ephemeral_random
はすでに有効になっています。
構文
setfattr -n ceph.dir.pin.random -v PERCENTAGE_IN_DECIMAL DIRECTORY_PATH
例
[root@host01 mount]# setfattr -n ceph.dir.pin.random -v 0.01 dir1/
ピニングを有効にした後、次のいずれかのコマンドを実行して 確認 できます。
構文
getfattr -n ceph.dir.pin.random DIRECTORY_PATH getfattr -n ceph.dir.pin.distributed DIRECTORY_PATH
例
[root@host01 mount]# getfattr -n ceph.dir.pin.distributed dir1/ # file: dir1/ ceph.dir.pin.distributed="1" [root@host01 mount]# getfattr -n ceph.dir.pin.random dir1/ # file: dir1/ ceph.dir.pin.random="0.01"
例
[ceph: root@host01 /]# ceph tell mds.a get subtrees | jq '.[] | [.dir.path, .auth_first, .export_pin]'
ディレクトリーが固定されている場合、export_pin
の値は、ランク 0
に固定されている場合は 0
、ランク 1
に固定されている場合は 1
、などとなります。ディレクトリーが固定されていない場合、値は -1
です。
パーティション設定ポリシーを 削除 するには、拡張属性を削除するか、値を 0
に設定します。
構文
setfattr -n ceph.dir.pin.distributed -v 0 DIRECTORY_PATH
例
[root@host01 mount]# setfattr -n ceph.dir.pin.distributed -v 0 dir1/
次のコマンドのいずれかを実行して 確認 できます。構文
getfattr -n ceph.dir.pin.distributed DIRECTORY_PATH
例
[root@host01 mount]# getfattr -n ceph.dir.pin.distributed dir1/
エクスポートピンの場合は、拡張属性を削除するか、拡張属性を -1
に設定します。
構文
setfattr -n ceph.dir.pin -v -1 DIRECTORY_PATH
例
[root@host01 mount]# setfattr -n ceph.dir.pin -v -1 dir1/
関連情報
- ピンの手動設定の詳細は、Red Hat Ceph Storage File System ガイド の 特定のランクに手動でディレクトリーツリーをピン設定する セクションを参照してください。