6.4. NFS プロトコルを介した Ceph File System 名前空間のエクスポート (可用性に制限あり)

NFS Ganesha ファイルサーバーを使用して、Ceph File Systems (CephFS) 名前空間を NFS プロトコルでエクスポートすることができます。CephFS namespace をエクスポートするには、まず実行中の NFS Ganesha クラスターが必要です。

注記

この技術には、利用制限があります。詳細は、Deprecated functionality の章を参照してください。

重要

Red Hat は、NFS バージョン 4.0 以降のみをサポートします。

重要

NFS クライアントは、ネイティブ NFS マウント経由で CephFS スナップショットを作成できません。スナップショットの要件に合わせて、サーバー側のオペレーターツールを使用する必要があります。

前提条件

  • 実行中、および正常な Red Hat Ceph Storage クラスター
  • ceph nfs cluster create コマンドを使用して作成された NFS クラスター。

手順

  1. CephFS エクスポートを作成します。

    • Red Hat Ceph Storage 5.0 の場合、次のようにエクスポートを作成します。

      構文

      ceph nfs export create cephfs FILE_SYSTEM_NAME CLUSTER_NAME BINDING [--readonly] [--path=PATH_WITHIN_CEPHFS]

      例:

      [ceph: root@host01 /]# ceph nfs export create cephfs cephfs01 nfs-cephfs /ceph  --path=/

    • Red Hat Ceph Storage 5.1 以降では、以下のようにエクスポートを作成します。

      構文

      ceph nfs export create cephfs CLUSTER_NAME BINDING FILE_SYSTEM_NAME [--readonly] [--path=PATH_WITHIN_CEPHFS]

      [ceph: root@host01 /]# ceph nfs export create cephfs nfs-cephfs /ceph cephfs01 --path=/

      この例では、BINDING (/ceph) は pseudo root パスであり、これは一意のパスと絶対パスになります。

      注記

      --readonly オプションは、読み取り専用のパーミッションでパスをエクスポートし、デフォルトは read、および write のパーミッションになります。

      注記

      PATH_WITHIN_CEPHFS はサブボリュームになります。以下のコマンドを使用して、絶対サブボリュームパスを取得できます。

      構文

      ceph fs subvolume getpath VOLUME_NAME SUBVOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME]

      例:

      [ceph: root@host01 /]# ceph fs subvolume getpath cephfs sub0

  2. 疑似ルート名に基づいてエクスポートブロックを表示します。

    構文

    ceph nfs export get CLUSTER_NAME BINDING

    [ceph: root@host01 /]# ceph nfs export get nfs-cephfs /ceph
    {
      "export_id": 1,
      "path": "/",
      "cluster_id": "nfs-cephfs",
      "pseudo": "/ceph",
      "access_type": "RW",
      "squash": "no_root_squash",
      "security_label": true,
      "protocols": [
        4
      ],
      "transports": [
        "TCP"
      ],
      "fsal": {
        "name": "CEPH",
        "user_id": "cephnfs11",
        "fs_name": "cephfs",
        "sec_label_xattr": ""
      },
      "clients": []
    }

  3. NFS エクスポートをリスト表示します。

    構文

    ceph nfs export ls CLUSTER_NAME [--detailed]

    例:

    [ceph: root@host01 /]# ceph nfs export ls nfs-cephfs
    [
      "/ceph/"
    ]
    [ceph: root@host01 /]# ceph nfs export ls nfs-cephfs --detailed
    [
      {
        "export_id": 100,
        "path": "/",
        "cluster_id": "nfs-cephfs",
        "pseudo": "/ceph/",
        "access_type": "RW",
        "squash": "no_root_squash",
        "security_label": true,
        "protocols": [
          4
        ],
        "transports": [
          "TCP"
        ],
        "fsal": {
          "name": "CEPH",
          "user_id": "nfstest01",
          "fs_name": "cephfs",
          "sec_label_xattr": ""
        },
        "clients": []
      }
    ]

  4. NFS エクスポートの情報を取得します。

    構文

    ceph nfs export info CLUSTER_NAME [PSEUDO_PATH]

    例:

    [ceph: root@host01 /]# ceph nfs export info nfs-cephfs /ceph
    
    {
      "export_id": 1,
      "path": "/",
      "cluster_id": "nfs-cephfs",
      "pseudo": "/ceph",
      "access_type": "RW",
      "squash": "none",
      "security_label": true,
      "protocols": [
        4
      ],
      "transports": [
        "TCP"
      ],
      "fsal": {
        "name": "CEPH",
        "user_id": "nfs.nfs-cephfs.1",
        "fs_name": "cephfs"
      },
      "clients": []
    }

  5. クライアントホストで、エクスポートされた Ceph File System をマウントします。

    構文

    mount -t nfs -o port=GANESHA_PORT HOST_NAME:BINDING LOCAL_MOUNT_POINT

    [root@client01 ~]# mount -t nfs -o port=2049 host01:/ceph/ /mnt/nfs-cephfs

    1. システムの起動時に自動的にマウントするには、改行を追加して /etc/fstab ファイルを開いて編集します。

      構文

      HOST_NAME:BINDING   LOCAL_MOUNT_POINT   nfs4   defaults,seclabel,vers=4.2,proto=tcp,port=2049  0  0

      例:

      host01:/ceph/   /mnt/nfs-cephfs   nfs4   defaults,seclabel,vers=4.2,proto=tcp,port=2049  0  0

  6. クライアントホストで、Ingress サービスで作成されたエクスポートされた NFS Ceph File System をマウントするには、以下を実行します。

    構文

    mount -t nfs VIRTUAL_IP_ADDRESS:BINDING LOCAL_MOUNT_POINT

    • VIRTUAL_IP_ADDRESS は、NFS クラスターの作成に使用される --ingress --virtual-ip IP アドレスに置き換えます。
    • BINDING は、擬似ルートパスに置き換えます。
    • LOCAL_MOUNT_POINT は、エクスポートをマウントするマウントポイントに置き換えます。

      例:

      [root@client01 ~]# mount -t nfs 10.10.128.75:/nfs-cephfs /mnt

      この例では、マウントポイント /mnt--ingress --virtual-ip 10.10.128.75 で作成した NFS クラスターに存在するエクスポート nfs-cephfs をマウントします。