Table of Contents

概要

設定手順

管理ノード

  1. NFSのファイルサーバ用のパッケージをインストールします
    $ sudo apt install nfs-kernel-server
  2. 設定ファイルに、共有したいディレクトリと、そのディレクトリを共有するネットワークを指定します
    $ sudo nano /etc/exports
    exports
    /home 192.168.0.0/24(rw,async,no_subtree_check,no_root_squash)
    /opt 192.168.0.0/24(ro,no_subtree_check,no_root_squash)
    • ここでは次のディレクトリを共有します
      • /home/ … ホーム・ディレクトリ
      • /opt/ … 各種ソフトウェアがインストールされるディレクトリ
    • オプションの意味は次の通りです
      • rw … ファイルの読み書き (read-and-write) が可能。設定しなければ ro (read-only)となり、ファイルの書き換えができない
      • async … 非同期書き込み。設定しなければ sync (同期) になり、クライアントでファイルの書き換えが実行されたときはファイルサーバのファイルもその都度書き換わるが、パフォーマンスが落ちる。ただし、同期前にクライアントがシャットダウンするなどした場合、ファイルの情報は完全に失われる(そういう状況はあまり発生しないと思います)。
      • no_subtree_check … サブツリーチェックを無効化。サブツリーチェックとは、エクスポートしたディレクトリの中にあるファイルを読み込む際に、そのファイルが本当にそのディレクトリに存在するかをチェックすること。これをなくすと動作が少し早くなる。よくわからなければつけておくのが無難
      • no_root_squash … クライアント側がルート権限を持っていれば、サーバーのファイルをルート権限で操作できる。一般にはセキュリティ的にあまりよろしくない設定だが、クラスター計算機のような閉じた環境では問題ない。
  3. NFSサーバを再起動します
    $ sudo systemctl restart nfs-kernel-server

計算ノード

すべての計算ノードで作業する必要があります。 管理ノードからSSHでつないで作業しましょう。

  1. NFSのクライアント用のパッケージをインストールします
    $ sudo apt install -y nfs-common
  2. ファイルサーバーのIPアドレスと同期するディレクトリを指定します
    $ sudo nano /etc/fstab
    fstab
    #ファイルの最後に次のように書き加えます  
    192.168.0.1:/home       /home       nfs defaults 0 0
    192.168.0.1:/opt        /opt        nfs defaults 0 0
    • 名前解決ができる場合、IPアドレスの代わりにホスト名でも可能です
  3. ファイルサーバのディレクトリをマウントします
    $ sudo systemctl daemon-reload && sudo mount -a
  4. マウントが成功したか確認します
    $ df -h
    Filesystem              Size  Used Avail Use% Mounted on
    (略)
    192.168.0.1:/home       1.8T  8.0G  1.7T   1% /home
    192.168.0.1:/opt        1.8T  8.0G  1.7T   1% /opt
  5. 実際に管理ノードでファイルを作ってみて、計算ノードでそのファイルが反映したか確認してみましょう

NFSサーバを使用しなくなった場合、次のようにマウントを解除します

$ sudo umount -a