3.6. Ceph File System のカーネルクライアントとしてのマウント

Ceph File System (CephFS) は、システムの起動時に手動で、または自動でカーネルクライアントとしてマウントできます。

重要

Red Hat Enterprise Linux の他に、他の Linux ディストリビューションで実行しているクライアントは許可されますが、サポートされていません。これらのクライアントの使用時に、CephFS Metadata Server またはその他のストレージクラスターで問題が見つかる場合、Red Hat はそれらに対応します。原因がクライアント側にある場合は、Linux ディストリビューションのカーネルベンダーがこの問題に対応する必要があります。

前提条件

  • Linux ベースのクライアントノードへのルートレベルのアクセス。
  • Ceph Monitor ノードへの root レベルのアクセス。
  • 既存の Ceph File System。

手順

  1. Ceph Storage クラスターを使用するようにクライアントノードを設定します。

    1. Red Hat Ceph Storage Tools リポジトリーを有効にします。

      Red Hat Enterprise Linux 8

      [root@client ~]# subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms

      Red Hat Enterprise Linux 9

      [root@client ~]# subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

    2. ceph-common パッケージをインストールします。

      [root@client01 ~]# dnf install ceph-common
    3. モニターノードの Cephadm シェルにログインします。

      例:

      [root@host01 ~]# cephadm shell

    4. Ceph クライアントキーリングを Ceph Monitor ノードからクライアントノードにコピーします。

      構文

      scp /ceph.client.ID.keyring root@CLIENT_NODE_NAME:/etc/ceph/ceph.client.ID.keyring

      CLIENT_NODE_NAME を Ceph クライアントのホスト名または IP アドレスに置き換えます。

      例:

      [ceph: root@host01 /]# scp /ceph.client.1.keyring root@client01:/etc/ceph/ceph.client.1.keyring

    5. Ceph 設定ファイルを Monitor ノードからクライアントノードにコピーします。

      構文

      scp /etc/ceph/ceph.conf root@CLIENT_NODE_NAME:/etc/ceph/ceph.conf

      CLIENT_NODE_NAME を Ceph クライアントのホスト名または IP アドレスに置き換えます。

      例:

      [ceph: root@host01 /]# scp /etc/ceph/ceph.conf root@client01:/etc/ceph/ceph.conf

    6. クライアントノードから、設定ファイルに適切なパーミッションを設定します。

      [root@client01 ~]# chmod 644 /etc/ceph/ceph.conf
    7. automatically または manually のいずれかを選択します。

Manually Mounting

  1. クライアントノードにマウントディレクトリーを作成します。

    構文

    mkdir -p MOUNT_POINT

    [root@client01 ~]# mkdir -p /mnt/cephfs

  2. Ceph ファイルシステムをマウントします。複数の Ceph Monitor アドレスを指定するには、mount コマンドでコンマで区切って、マウントポイントを指定し、クライアント名を設定します。

    注記

    Red Hat Ceph Storage 4.1 の時点で、mount.ceph はキーリングファイルを直接読み取りできます。そのため、シークレットファイルは不要になりました。name=CLIENT_ID でクライアント ID を指定すると、mount.ceph は適切なキーリングファイルを検索します。

    構文

    mount -t ceph MONITOR-1_NAME:6789,MONITOR-2_NAME:6789,MONITOR-3_NAME:6789:/ MOUNT_POINT -o name=CLIENT_ID,fs=FILE_SYSTEM_NAME

    [root@client01 ~]# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/cephfs -o name=1,fs=cephfs01

    注記

    1 つのホスト名が複数の IP アドレスに解決するように DNS サーバーを設定できます。次に、コンマ区切りリストを指定する代わりに、mount コマンドでその 1 つのホスト名を使用できます。

    注記

    また、Monitor ホスト名は :/ に置き換えられ、mount.ceph は Ceph 設定ファイルを読み取り、どのモニターに接続するかを判断することもできます。

    注記

    nowsync オプションを設定して、Red Hat Ceph Storage クラスターでファイルの作成と削除を非同期的に実行できます。これにより、整合性に影響を与えずにこれらのシステムコールのラウンドトリップレイテンシーを回避することで、一部のワークロードのパフォーマンスが改善されます。nowsync オプションには、Red Hat Enterprise Linux 8.4 以降を搭載したカーネルクライアントが必要です。

    例:

    [root@client01 ~]# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/cephfs -o nowsync,name=1,fs=cephfs01

  3. ファイルシステムが正常にマウントされていることを確認します。

    構文

    stat -f MOUNT_POINT

    [root@client01 ~]# stat -f /mnt/cephfs

自動マウント

  1. クライアントホストで、Ceph ファイルシステムをマウントする新しいディレクトリーを作成します。

    構文

    mkdir -p MOUNT_POINT

    [root@client01 ~]# mkdir -p /mnt/cephfs

  2. 以下のように /etc/fstab ファイルを編集します。

    構文

    #DEVICE                                              PATH                      TYPE               OPTIONS
    MON_0_HOST:PORT,            MOUNT_POINT          ceph         name=CLIENT_ID,
    MON_1_HOST:PORT,                                                         ceph.client_mountpoint=/VOL/SUB_VOL_GROUP/SUB_VOL/UID_SUB_VOL,                                                       fs=FILE_SYSTEM_NAME,
    MON_2_HOST:PORT:/q[_VOL_]/SUB_VOL/UID_SUB_VOL,            [ADDITIONAL_OPTIONS]

    最初の列は、Ceph Monitor ホスト名とポート番号を設定します。

    2 列目は マウントポイントを設定します。

    3 列目は、ファイルシステムのタイプ (ここでは CephFS 用 ceph) を設定します。

    4 番目のコラム は、name および secretfile オプションを使用してユーザー名やシークレットファイルなどのさまざまなオプションを設定します。ceph.client_mountpoint オプションを使用して、特定のボリューム、サブボリューム、およびサブボリュームを設定できます。

    ネットワークサブシステムの開始後にファイルシステムがマウントされ、ハングやネットワークの問題を回避するために、_netdev オプションを設定します。アクセス時間情報が必要ない場合は、noatime オプションを設定するとパフォーマンスが向上します。

    5 番目のコラムと 6 番目のコラム をゼロに設定します。

    #DEVICE         PATH                   TYPE    OPTIONS         DUMP  FSCK
    mon1:6789,      /mnt/cephfs            ceph    name=1,            0     0
    mon2:6789,                                     ceph.client_mountpoint=/my_vol/my_sub_vol_group/my_sub_vol/0,
    mon3:6789:/                                    fs=cephfs01,
                                                   _netdev,noatime

    Ceph File System は、次回のシステム起動時にマウントされます。

    注記

    Red Hat Ceph Storage 4.1 の時点で、mount.ceph はキーリングファイルを直接読み取りできます。そのため、シークレットファイルは不要になりました。name=CLIENT_ID でクライアント ID を指定すると、mount.ceph は適切なキーリングファイルを検索します。

    注記

    また、Monitor ホスト名は :/ に置き換えられ、mount.ceph は Ceph 設定ファイルを読み取り、どのモニターに接続するかを判断することもできます。

関連情報

  • mount(8) man ページを参照してください。
  • Ceph ユーザーの作成の詳細は、Red Hat Ceph Storage 管理ガイドCeph ユーザー管理 の章を参照してください。
  • 詳細は、Red Hat Ceph Storage File System GuideCreating Ceph File Systems セクションを参照してください。