1
1

[rockylinux8.9] NFSでファイル共有を行う手順

Last updated at Posted at 2024-05-18

 [rocky linux 8.9]NFS(Network File System)でファイル共有を行う手順まとめ

ChatGPTに聴きまくってなんとか実装したNFSのログ
研究室の初心者輪講用にまとめましたが、備忘録も兼ねています。

前提

VM1~VM4が172.16.1.1~4の固定IPアドレスを持っています。
それぞれは外部(8.8.8.8等)への通信および他VMとの相互通信が可能です。

Rocky Linux release 8.9 (Green Obsidian)上に立てたRocky Linux release 9.4 (Blue Onyx)のVMで作業します。

NFSはバージョン4.2

サーバー側の設定手順

1. 必要なパッケージのインストール

NFSサーバーパッケージをインストールする。

sudo dnf install nfs-utils -y

例としてVM1の/homeを共有する。

2. /etc/export ファイルの編集

エクスポート設定を行うために /etc/export ファイルを編集する。
/etc/exportはNFSでどのファイルをエクスポートするかの設定が書いてあるファイルである。

sudo vim /etc/export

以下の行を追加する。ここでは、172.16.1(人によっては172.16.2)のネットワーク全体に共有できるようにしたいので172.16.1.0/24とする。

/export/nfs 172.16.1.0/24(rw,sync,no_root_squash)

もしくは

/export/nfs 172.16.2.0/24(rw,sync,no_root_squash)

ちなみに。
rw=Read and Write 読み書き可能であることを指す。
sync=データがディスクに書き込まれる際にすぐにディスクに書き込まれることを保証する。順番が崩れないのでデータの一貫性が保たれるらしい。
no_root_squash=クライアント側のrootユーザがサーバ上のファイルシステムにフルアクセセスできるようにする。
(root_squash=クライアントのrootユーザが書き込む際にそのユーザを匿名ユーザにマッピングする)

3. エクスポート設定の再読み込み

設定を反映させるためにエクスポート設定を再読み込みする。

sudo exportfs -r

エラーがでなければ成功。

4. NFSサービスの起動と有効化

NFSサービスを起動し、自動起動を有効にする。これはそんなにやらなくてもいいけど一応。

sudo systemctl start nfs-server
sudo systemctl enable nfs-server

私の環境ではskipping,みたいなのが表示されたが、無視してもできた。解決できた人がいたら教えてください。

5. NFSサービスの状態確認

NFSサービスが正しく動作していることを確認したいならこれ。

sudo systemctl status nfs-server

active(runnning)と出れば成功。

6. エクスポート状態の確認

エクスポートされているディレクトリを確認する。

sudo exportfs -v
/home          	172.16.1.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

このような表示があれば成功。

7. showmount コマンドでエクスポート確認

サーバー上でエクスポートされているディレクトリを確認する。

showmount -e localhost

以下のように表示されたら成功

Export list for localhost:
/usr 172.16.1.0/24

クライアント側の設定手順

1. 必要なパッケージのインストール

NFSクライアントパッケージをインストールする。

sudo dnf install nfs-utils

2. マウントポイントの作成

NFS共有をマウントするディレクトリを作成する。例えば、homeVM1を作成する。

sudo mkdir homeVM1

tips:
ディレクトリ内のディレクトリを作りたいときは-pで一発作成可能。

sudo mkdir -p NFS/homeVM1

入れないと親ディレクトリが存在しないと言われる。

sudo mkdir NFS/homeVM1
mkdir: cannot create directory ‘NFS/homeVM1’: No such file or directory

3. マウントコマンドの実行

サーバーのエクスポートされたNFSディレクトリをマウントする。

sudo mount -t nfs 172.16.1.1:/home homeVM1

4.確認

ls homeVM1

ファイルが見れれば基本的には成功している。ファイルを作成して反映されるか。読み書きができるかなどチェックしてください。

デバッグのコツ

1.変更は必ず反映しよう。

ファイルを変更しただけではサーバに反映されないことはいままでもよくあったと思います。
今回であればexportfs -rやdaemonの再起動により反映を行いました。

2.firewallは忘れた頃に邪魔してくる。

mountを実行してもサーバにアクセスできない、pingは通るのに。
そんなときはきっとfirewallがポートを塞いでいます。

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --reload

この辺りを実行して、firewall設定を行ってください。

要注意

マウントコマンドの実行は十分に気をつけて行うこと!!

sudo mount -t nfs 172.16.1.1:/home /etc

とかしないように!
(意図的に行う方は自己判断でお願いしますね。)
大事なファイル※をマウントポイントにすると、最悪linuxがお亡くなりになります。

大事なファイル以下を参照。
Linux基礎(ファイルシステムの構成&ファイル検索)
https://qiita.com/kakkie/items/6f81d8916a61aa49a47b

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1