1.4.1 NFS over RDMAクライアントの使用方法

次の手順では、NFS over RDMAサーバーを有効にする方法の詳細も説明しています。 NFS over RDMAサーバーは現在UEK R3カーネルでサポートされていないので、これらは単なる例として提供されています。

  1. RDMAデバイスをインストールし、InfiniBandを設定してIPoIBを有効にします。

    Oracle Linux OFEDパッケージは次のチャネルから入手できます。

    • Oracle Linux 6: ol6_x86_64_ofed_UEK

    • Oracle Linux 7: ol7_x86_64_UEKR3_OFED20

  2. RDMAデバイスが機能していることを確認します。

    # cat /sys/class/infiniband/driver_name/ports/1/state
    4: ACTIVE

    driver_nameはRDMAデバイス・ドライバです(mlx4_0など)。

  3. 物理InfiniBandインタフェースとリンクを確認します。

    ibhostsibnetdiscoverなどのコマンドを使用して、InfiniBandスイッチ経由でホストに接続できることを確認します。

  4. NFSクライアントとNFSサーバー間の接続を確認します。

    InfiniBandインタフェースの設定は
    /etc/sysconfig/network-scripts/ifcfg-ibNファイルで構成できます。

    pingを使用して接続を確認できます。 次に例を示します。

    nfs-server$ ip addr add 10.196.0.101/24 dev ib0
    nfs-client$ ip addr add 10.196.0.102/24 dev ib0
    nfs-server$ ping 10.196.0.102 
    nfs-client$ ping 10.196.0.101
  5. NFSクライアントとサーバーにnfs-utilsパッケージをインストールします。

  6. NFS共有を構成します。

    /etc/exportsファイルを編集します。 クライアントのIPoIBアドレスを使用して、クライアントがマウントできるようにNFSサーバーが使用可能にするディレクトリを定義します。 次に例を示します。

    /export_dir 10.196.0.102(fsid=0,rw,async,insecure,no_root_squash) 
    /export_dir 10.196.0.0/255.255.255.0(fsid=0,rw,async,insecure,no_root_squash)
  7. NFSサーバー上で、svcrdmaカーネル・モジュールをロードし、NFSサービスを開始します。

    Oracle Linux 6:

    # modprobe svcrdma
    # service nfs start
    # echo rdma 20049 > /proc/fs/nfsd/portlist

    Oracle Linux 7:

    # modprobe svcrdma
    # systemctl start nfs-server
    # echo rdma 20049 > /proc/fs/nfsd/portlist
    注意

    rdma 20049設定は、NFSサービスを再起動すると失われます。 NFSサービスを起動するたびに、これを設定する必要があります。

  8. NFSクライアント上で、xprtrdmaカーネル・モジュールをロードし、NFSサービスを開始します。

    # modprobe xprtrdma
    # service nfs start
    # mount -o proto=rdma,port=20049 host:/export /mnt 
    

    hostは、IPoIBサーバーのホスト名またはIPアドレスで、exportはNFS共有の名前です。

    RDMA経由のマウントが正常に行われたことを確認するには、マウント・ポイントのprotoフィールドを確認します。

    # nfsstat -m
    /mnt from 10.196.0.102:/export
    Flags: rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=rdma,port=20049,
    ...

    あるいは、次のようにします。

    # cat /proc/mounts

既知の問題

NFSサーバーを停止するには、事前にNFSクライアント上でマウント済のファイル・システムをすべてアンマウントする必要があります。 そうしないと、NFSサーバーは停止時にハングします。