自作クラスタ計算機:nfsの基本設定
This is an old revision of the document!
概要
- 実際に数値計算を行う際、たくさんある計算ノードの一つ一つにプログラムや入力ファイルをコピーするのは面倒です
- そこで、ファイルは1つのファイルサーバに集約して置いておき、各計算ノードは計算のたびにそこからファイルを読み込むようにします
- 分散ファイルシステムの一つであるNetwork File System (NFS)を利用します
- ファイルサーバとして管理ノード(IPアドレス: 192.168.0.1)を使用しますが、複数ノードを使った並列計算中にファイルのやりとりが加わると通信速度が著しく低下するので、別途専用のサーバーを立てるのもありです。
設定手順
ヘッドノード
- NFSのファイルサーバ用のパッケージをインストールします
$ sudo apt install nfs-kernel-server
- 設定ファイルに、共有したいディレクトリと、そのディレクトリを共有するネットワークを指定します
$ sudo vi /etc/exports
- exports
/home 192.168.0.0/24(rw,async) /usr/local 192.168.0.0/24(ro) /opt 192.168.0.0/24(ro)
- ここでは次のディレクトリを共有します
- /home/ … ホーム・ディレクトリ
- /usr/local/ … 各種ライブラリがインストールされるディレクトリ
- /opt/ … 各種ソフトウェアがインストールされるディレクトリ
- オプションの意味は次の通りです
- rw … ファイルの読み書き (read-and-write) が可能。設定しなければ ro (read-only)となり、ファイルの書き換えができない
- async … 非同期書き込み。設定しなければ sync (同期) になり、クライアントでファイルの書き換えが実行されたときはファイルサーバのファイルもその都度書き換わるが、パフォーマンスが落ちる。ただし、同期前にクライアントがシャットダウンするなどした場合、ファイルの情報は完全に失われる。
- NFSサーバを再起動します
$ sudo systemctl restart nfs-kernel-server
計算ノード
すべての計算ノードで作業する必要があります
- NFSのクライアント用のパッケージをインストールします
$ sudo apt install nfs-common
- 同期するディレクトリを指定します
$ sudo vi /etc/fstab
- fstab
#ファイルの最後に次のように書き加えます 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
- 名前解決ができる場合、IPアドレスの代わりにホスト名でも可能です
- ファイルサーバのディレクトリをマウントします
$ sudo mount -a
- マウントが成功したか確認します
$ 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:/usr/local 1.8T 8.0G 1.7T 1% /usr/local 192.168.0.1:/opt 1.8T 8.0G 1.7T 1% /opt
- 実際に管理ノードでファイルを作ってみて、計算ノードでそのファイルが反映したか確認してみましょう
NFSサーバを使用しなくなった場合、次のようにマウントを解除します
$ sudo umount -a
自作クラスタ計算機/nfsの基本設定.1593508645.txt.gz · Last modified: 2021/06/27 21:58 (external edit)