Ubuntu 20.04は、NFSバージョン3(NFSv3)および4(NFSv4)をサポートしています。デフォルトのNFSバージョンは4.2で、アクセス制御リスト(ACL)、サーバー側のコピー、スパースファイル、スペース予約、ラベル付きNFS、レイアウトの拡張などをサポートしています。
このガイドでは、Ubuntu20.04にNFSサーバーとNFSクライアントをインストールして構成する方法を学習します。
関連記事:
- Rocky / AlmaLinux8でNFSサーバーとクライアントをセットアップする方法
- Ubuntu20.04にSambaファイル共有をインストールして構成する方法
前提条件
- サーバーとして使用するためにUbuntu20.04サーバーを更新し、クライアント用に別のサーバーを更新しました
- サーバーからの接続
- サーバーからのsudoアクセス
目次
- サーバーが更新されていることを確認します
- NFSパッケージをインストールする
- NFSサーバーの起動と有効化
- ファイアウォールでのNFSサービスの有効化
- NFSサーバーでのエクスポートの構成
- NFSクライアントシステムのセットアップ
1。サーバーが最新であることを確認する
先に進む前に、サーバーが最新であることを確認しましょう。これを実現するには、次のコマンドを使用します。
sudo apt update
sudo apt upgrade -y
2。 NFSパッケージをインストールする
パッケージnfs-kernel-server
UbuntuにNFSサービスを提供します。 NFSサーバーパッケージは、NFSカーネルサーバーの実行に必要なユーザースペースサポートを提供します。パッケージをインストールするには、次のコマンドを実行します:
sudo apt install -y nfs-kernel-server
Ubuntu 20.04では、NFSバージョン2が無効になっています。バージョン3および4が有効になります。次のコマンドを使用して、インストールされているバージョンを確認します。
$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
3。 NFSサーバーの起動と有効化
NFSパッケージが正常にインストールされると、NFSサーバーが起動します。次のコマンドでサービスのステータスを確認します:
$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-01-17 19:24:54 UTC; 1min 40s ago
Main PID: 20614 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4624)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jan 17 19:24:52 dev-ubuntusrv.inv.re systemd[1]: Starting NFS server and services...
Jan 17 19:24:54 dev-ubuntusrv.inv.re systemd[1]: Finished NFS server and services.
上記の出力は、サービスが正常に開始されたことを示しています。システムの起動時にサービスを開始できるようにするには、次のコマンドを使用します。
sudo systemctl enable nfs-server
NFSサーバーの実行やNFS共有のマウントに必要なその他のサービス(nfsd
など)に注意してください。 、nfs-idmapd
、rpcbind
、rpc.mountd
、lockd
、rpc.statd
、rpc.rquotad
およびrpc.idmapd
自動的に開始されます。
4。ファイアウォールでのNFSサービスの有効化
ファイアウォールで保護されているリモートUbuntuサーバーにNFSサーバーをインストールする場合は、NFSポートでトラフィックを有効にする必要があります。
sudo ufw allow nfs
変更を確認します:
sudo ufw status
5。 NFSサーバーでのエクスポートの構成
NFSサーバーの構成は、/etc/default/nfs-kernel-server
で定義されています。 および/etc/default/nfs-common
ファイル。ほとんどの状況では、デフォルト設定で十分です。
NFSサーバーでエクスポートまたは共有するファイルシステムを作成しましょう。凝視する2つのファイルシステム、/mnt/nfs_shares/files
を作成します 共有ファイルと/mnt/nfs_shares/backup
の場合 バックアップ用。
サーバーにディレクトリを作成しましょう
sudo mkdir -p /mnt/nfs_shares/files
sudo mkdir -p /mnt/nfs_shares/backup
確認
$ sudo ls /mnt/nfs_shares
backup files
次に、上記のファイルシステムをエクスポートファイル/etc/exports
に追加します。 NFSサーバーで、NFSクライアントにエクスポートされるローカルファイルシステムを決定します。
テキストエディタでエクスポートファイルを開きます
sudo vim /etc/exports
次に、このコンテンツを追加します:
/mnt/nfs_shares/files 10.70.5.170(rw,sync)
/mnt/nfs_shares/backup 10.70.5.0/24(rw,sync,no_all_squash,root_squash)
使用できるエクスポートオプションは次のとおりです。
- rw –ファイルシステムでの読み取りアクセスと書き込みアクセスの両方を許可します。
- 同期 –要求されたときに操作(ディスクへの情報の書き込み)を書き込むようにNFSサーバーに指示します(デフォルトで適用されます)。
- all_squash –クライアントリクエストからのすべてのUIDとGIDを匿名ユーザーにマップします。
- no_all_squash –クライアントリクエストからのすべてのUIDとGIDをNFSサーバー上の同一のUIDとGIDにマッピングするために使用されます。
- root_squash –rootユーザーからのリクエストまたはクライアントからのUID/GID0を匿名のUID/GIDにマップします。
エクスポートファイルでファイルシステムを定義したら、exportfs
を実行する必要があります それらをエクスポートするためのコマンド。 exportfsは、-a
を使用して実行できます すべてのディレクトリをエクスポートまたはエクスポート解除することを意味するフラグ、-r
つまり、すべてのディレクトリを再エクスポートし、 / var / lib / nfs / etabを同期します / etc / exports および/etc/exports.dの下のファイル 、および -v 詳細な出力を有効にします。
sudo exportfs -arv
これは私のサーバーの出力です
$ sudo exportfs -arv
exporting 10.70.5.170:/mnt/nfs_shares/files
exporting 10.70.5.0/24:/mnt/nfs_shares/backup
現在のエクスポートリストを表示するには、次のコマンドを実行します。 exportfsテーブルには、明示的に定義されていないいくつかのデフォルトオプションも適用されることに注意してください。
$ sudo exportfs -s
/mnt/nfs_shares/files 10.70.5.170(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/mnt/nfs_shares/backup 10.70.5.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
6。 NFSクライアントシステムのセットアップ
サーバーでエクスポートを構成したので、クライアントシステムからエクスポートにアクセスできます。クライアントシステムにログインし、NFS共有にアクセスできるようにするために必要なパッケージをインストールします。
RHELベースのシステムの場合:
sudo dnf install -y nfs-utils nfs4-acl-tools
Debian / Ubuntuベースのディストリビューションの場合:
sudo apt install nfs-common nfs4-acl-tools
次に、showmountコマンドを実行して、NFSサーバーのマウント情報を表示できます。このコマンドは、エクスポートされたファイルシステムをサーバーに出力します
showmount -e 10.70.5.221
出力
$ showmount -e 10.70.5.221
Export list for 10.70.5.221:
/mnt/nfs_shares/backup 10.70.5.0/24
/mnt/nfs_shares/files 10.70.5.170
リモートNFSファイルシステムをマウントするためのローカルファイルシステムディレクトリを作成し、nfsファイルシステムとしてマウントします
mkdir -p ~/backups
mkdir -p ~/nfs_files
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/backup ~/backups
sudo mount -t nfs 10.70.5.221:/mnt/nfs_shares/files ~/nfs_files
次に、マウントを実行して、リモートファイルシステムがマウントされたことを確認できます。 コマンドとフィルターnfs マウントします。
sudo mount | grep nfs
私のマシンに出力
$ sudo mount | grep nfs
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
10.70.5.221:/mnt/nfs_shares/backup on /home/ubuntu/backups type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
10.70.5.221:/mnt/nfs_shares/files on /home/ubuntu/nfs_files type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.70.5.170,local_lock=none,addr=10.70.5.221)
システムを再起動した後もマウントを永続化できるようにするには、エントリを/etc/fstab
に追加します。 ファイル。これを実現するには、次のコマンドを(rootとして)使用します。
echo "10.70.5.221:/mnt/nfs_shares/backup /home/ubuntu/backups nfs defaults 0 0" >> /etc/fstab
echo "10.70.5.221:/mnt/nfs_shares/files /home/ubuntu/nfs_files nfs defaults 0 0" >> /etc/fstab
最後に、 NFSかどうかをテストします サーバー上にファイルを作成し、そのファイルがクライアントに表示されるかどうかを確認することで、セットアップは正常に機能しています。
サーバー上:
sudo touch /mnt/nfs_shares/files/file_on_server.txt
次に、クライアントマシンで確認します
$ ls ~/nfs_files/
file_on_server.txt
逆もできます。クライアントの場合:
touch ~/nfs_files/file_on_client.txt
次に、サーバーで確認します:
$ ls /mnt/nfs_shares/files/
file_on_client.txt file_on_server.txt
クライアント側でリモートファイルシステムをアンマウントします。
sudo umount /mnt/nfs_shares/files
sudo umount /mnt/nfs_shares/backup
unmount
はできないことに注意してください リモートファイルシステム内で操作している場合は、リモートファイルシステム。
結論
このガイドでは、Ubuntu20.04にNFSサーバーとクライアントをインストールして構成することができました。