4.7. Ceph File System クォータの使用

ストレージ管理者は、ファイルシステム内の任意のディレクトリーでクォータを表示、設定、および削除できます。クォータの制限は、バイト数またはディレクトリー内のファイル数に配置できます。

4.7.1. 前提条件

  • attr パッケージがインストールされていることを確認します。

4.7.2. Ceph File システムのクォータ

Ceph File System (CephFS) のクォータにより、ディレクトリー構造に保存されたファイルの数またはバイト数を制限できます。

制限事項

  • CephFS のクォータは、設定された制限に達するとデータの書き込みを停止するためにファイルシステムをマウントするクライアントとの協調に依存しています。ただし、クォータのみでは、信頼できないクライアントがファイルシステムを埋めないようにすることはできません。
  • ファイルシステムにデータを書き込むプロセスが、設定された制限に到達したら、データ量がクォータ制限を超えるか、プロセスがデータの書き込みを停止するまでの短い期間が長くなります。通常、期間 (秒) は数十秒で測定されます。ただし、プロセスは、その期間中データの書き込みを続けます。プロセスが書き込む追加データ量は、停止前の経過時間によって異なります。
  • 以前のバージョンでは、クォータはユーザー空間 FUSE クライアントでのみサポートされていました。Linux カーネルバージョン 4.17 以降では、CephFS カーネルクライアントは Ceph mimic またはそれ以降のクラスターに対するクォータに対応します。これらのバージョン要件は、Red Hat Enterprise Linux 8 と Red Hat Ceph Storage 4 がそれぞれ対応しています。ユーザー空間 FUSE クライアントは、古い OS およびクラスターのバージョンで使用できます。FUSE クライアントは ceph-fuse パッケージで提供されます。
  • パスベースのアクセス制限を使用する場合は、クライアントが制限されているディレクトリーのクォータを設定するか、その下でネスト化されたディレクトリーにクォータを設定してください。クライアントが MDS 機能に基づいて特定のパスへのアクセス制限があり、そのクォータがクライアントにアクセスできない上位ディレクトリーに設定されている場合、クライアントはクォータを強制しません。たとえば、クライアントが /home/ ディレクトリーにアクセスできず、クォータが /home/ で設定されている場合、クライアントは /home/user/ ディレクトリーのクォータを強制できません。
  • 削除または変更されたスナップショットファイルデータは、クォータに対してカウントされません。

4.7.3. クォータの表示

getfattr コマンドおよび ceph.quota 拡張属性を使用して、ディレクトリーのクォータ設定を表示します。

注記

属性が inode に表示されると、そのディレクトリーにクォータが設定されている必要があります。属性が inode に表示されない場合は、ディレクトリーにはクォータセットがありませんが、親ディレクトリーにはクォータが設定されている可能性があります。拡張属性の値が 0 の場合、クォータは設定されません。

前提条件

  • attr パッケージがインストールされていることを確認します。

手順

  1. CephFS クォータを表示するには、以下を実行します。

    1. バイト制限クォータの使用:

      構文

      getfattr -n ceph.quota.max_bytes DIRECTORY

      [root@fs ~]# getfattr -n ceph.quota.max_bytes /cephfs/

    2. ファイル制限クォータの使用:

      構文

      getfattr -n ceph.quota.max_files DIRECTORY

      [root@fs ~]# getfattr -n ceph.quota.max_files /cephfs/

関連情報

  • 詳細は、getfattr(1) man ページを参照してください。

4.7.4. クォータの設定

本セクションでは、setfattr コマンドおよび ceph.quota 拡張属性を使用して、ディレクトリーのクォータを設定する方法を説明します。

前提条件

  • attr パッケージがインストールされていることを確認します。

手順

  1. CephFS クォータを設定します。

    1. バイト制限クォータの使用:

      構文

      setfattr -n ceph.quota.max_bytes -v 100000000 /some/dir

      [root@fs ~]# setfattr -n ceph.quota.max_bytes -v 100000000 /cephfs/

      この例では、100000000 バイトは 100 MB となります。

    2. ファイル制限クォータの使用:

      構文

      setfattr -n ceph.quota.max_files -v 10000 /some/dir

      [root@fs ~]# setfattr -n ceph.quota.max_files -v 10000 /cephfs/

      この例では 10000 は 10,000 ファイルと等しくなります。

関連情報

  • 詳細は、setfattr(1) man ページを参照してください。

4.7.5. クォータの削除

本セクションでは、setfattr コマンドおよび ceph.quota 拡張属性を使用して、ディレクトリーからクォータを削除する方法を説明します。

前提条件

  • attr パッケージがインストールされていることを確認します。

手順

  1. CephFS クォータを削除するには、以下のコマンドを実行します。

    1. バイト制限クォータの使用:

      構文

      setfattr -n ceph.quota.max_bytes -v 0 DIRECTORY

      [root@fs ~]# setfattr -n ceph.quota.max_bytes -v 0 /cephfs/

    2. ファイル制限クォータの使用:

      構文

      setfattr -n ceph.quota.max_files -v 0 DIRECTORY

      [root@fs ~]# setfattr -n ceph.quota.max_files -v 0 /cephfs/

関連情報

  • 詳細は、setfattr(1) man ページを参照してください。

4.7.6. 関連情報

  • 詳細は、getfattr(1) man ページを参照してください。
  • 詳細は、setfattr(1) man ページを参照してください。