自作クラスタ計算機:nfsの基本設定

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
自作クラスタ計算機:nfsの基本設定 [2020/07/01 01:31] – [ヘッドノード] koudai自作クラスタ計算機:nfsの基本設定 [2026/05/11 15:36] (current) – [トラブルシューティング] koudai
Line 9: Line 9:
 ====== 設定手順 ====== ====== 設定手順 ======
  
-===== ヘッドノード =====+===== 管理ノード =====
  
   - NFSのファイルサーバ用のパッケージをインストールします<code>   - NFSのファイルサーバ用のパッケージをインストールします<code>
Line 17: Line 17:
 $ sudo vi /etc/exports $ sudo vi /etc/exports
 </code><file - exports> </code><file - exports>
-/home 192.168.0.0/24(rw,async+/home 192.168.0.0/24(rw,async,no_subtree_check
-/usr/local 192.168.0.0/24(ro+/opt 192.168.0.0/24(ro,no_subtree_check)
-/opt 192.168.0.0/24(ro)+
 </file> </file>
     * ここでは次のディレクトリを共有します     * ここでは次のディレクトリを共有します
       * /home/ ... ホーム・ディレクトリ       * /home/ ... ホーム・ディレクトリ
-      * /usr/local/ ... 自分でmakeしたバイナリが格納されるディレクトリ 
       * /opt/ ... 各種ソフトウェアがインストールされるディレクトリ       * /opt/ ... 各種ソフトウェアがインストールされるディレクトリ
-        * /usr/local/ と /opt/ の間に厳密な使い分けはないので、どっちにインストールするか適当に選んでいるのが実態です。  
     * オプションの意味は次の通りです     * オプションの意味は次の通りです
       * rw ... ファイルの読み書き (read-and-write) が可能。設定しなければ ro (read-only)となり、ファイルの書き換えができない       * rw ... ファイルの読み書き (read-and-write) が可能。設定しなければ ro (read-only)となり、ファイルの書き換えができない
-      * async ... 非同期書き込み。設定しなければ sync (同期) になり、クライアントでファイルの書き換えが実行されたときはファイルサーバのファイルもその都度書き換わるが、パフォーマンスが落ちる。ただし、同期前にクライアントがシャットダウンするなどした場合、ファイルの情報は完全に失われる。+      * async ... 非同期書き込み。設定しなければ sync (同期) になり、クライアントでファイルの書き換えが実行されたときはファイルサーバのファイルもその都度書き換わるが、パフォーマンスが落ちる。ただし、同期前にクライアントがシャットダウンするなどした場合、ファイルの情報は完全に失われる(そういう状況はあまり発生しないと思います) 
 +      * no_subtree_check ... サブツリーチェックを無効化。サブツリーチェックとは、エクスポートしたディレクトリの中にあるファイルを読み込む際に、そのファイルが本当にそのディレクトリに存在するかをチェックすること。これをなくすと動作が少し早くなる。エクスポートつけておくのが推奨 
 +  - (UFWを使用している場合)NFS用のポートを開放します<code> 
 +$ sudo ufw allow from 192.168.0.0/24 to any port nfs 
 +</code>
   - NFSサーバを再起動します<code>   - NFSサーバを再起動します<code>
 $ sudo systemctl restart nfs-kernel-server $ sudo systemctl restart nfs-kernel-server
Line 36: Line 37:
 ===== 計算ノード ===== ===== 計算ノード =====
  
-すべての計算ノードで作業する必要があります+すべての計算ノードで作業する必要があります。 
 +管理ノードからSSHでつないで作業しましょう。
  
   - NFSのクライアント用のパッケージをインストールします<code>   - NFSのクライアント用のパッケージをインストールします<code>
 $ sudo apt install nfs-common $ sudo apt install nfs-common
 </code> </code>
-  - 同期するディレクトリを指定します<code>+  - ファイルサーバーのIPアドレスと同期するディレクトリを指定します<code>
 $ sudo vi /etc/fstab</code><file - fstab> $ sudo vi /etc/fstab</code><file - fstab>
 #ファイルの最後に次のように書き加えます   #ファイルの最後に次のように書き加えます  
 192.168.0.1:/home       /home       nfs defaults 0 0 192.168.0.1:/home       /home       nfs defaults 0 0
-192.168.0.1:/usr/local  /usr/local  nfs defaults 0 0 
 192.168.0.1:/opt        /opt        nfs defaults 0 0 192.168.0.1:/opt        /opt        nfs defaults 0 0
 </file> </file>
Line 57: Line 58:
 (略) (略)
 192.168.0.1:/home       1.8T  8.0G  1.7T   1% /home 192.168.0.1:/home       1.8T  8.0G  1.7T   1% /home
-192.168.0.1:/usr/local  1.8T  8.0G  1.7T   1% /usr/local 
 192.168.0.1:/opt        1.8T  8.0G  1.7T   1% /opt 192.168.0.1:/opt        1.8T  8.0G  1.7T   1% /opt
 </code> </code>
Line 66: Line 66:
 </code>  </code> 
  
 +
 +==== トラブルシューティング ====
 +
 +=== 起動時に自動マウントされない ===
 +
 +(自分の環境では未解決です)
 +
 +ネットワークよりも先にNFSが立ち上がると、このようなことがおきます。
 +/home以外がマウントされないことが多いようです。
 +(起動後に sudo mount -a と手動でコマンドを打てばマウントされます)
 +
 +== _netdevを使ってみる ==
 +
 +<file - fstab>
 +192.168.0.1:/home       /home       nfs defaults 0 0
 +192.168.0.1:/opt        /opt        nfs defaults,_netdev,nofail 0 0
 +</file>
 +  * _netdev: ネットワークからマウントすることを明示
 +  * nofail: エラーが出ても起動を続行
 +
 +  * 参考:https://docs.oracle.com/ja-jp/iaas/Content/Block/References/fstaboptions.htm
 +
 +自分の環境では解決しませんでした。
 +
 +== systemdのautomountを使ってみる ==
 +
 +当該のディレクトリの初回アクセス時にマウントするように設定します。
 +<file - fstab>
 +192.168.0.1:/home       /home       nfs defaults 0 0
 +192.168.0.1:/opt        /opt        nfs x-systemd.automount 0 0
 +</file>
 +
 +自分の環境だと/usr/localにx-systemd.automountを使うと計算ノードが起動しなくなりました。
自作クラスタ計算機/nfsの基本設定.1593534711.txt.gz · Last modified: 2021/06/27 21:58 (external edit)