Linux環境下でのNFSファイル共有の設定方法

目次

  • NFSファイル共有
  • メリットとデメリット
  • NFSの仕組み図
  • テストマシンの準備
  • NFSサーバーの構築
  • NFSクライアントの構築

NFSファイル共有

1. 概要

NFS(Network File System)は、Linuxシステム上でネットワークを介してファイルシステムを共有するためのプロトコルです。これを使用することで、サーバー上のファイルシステムをクライアントにマウントし、リモートからアクセスしたり利用したりすることができます。NFSは、Linuxサーバークラスタ(例:Webクラスタでの静的リソース共有)、跨マシン間のデータ同期、Windows環境でもサードパーティツールを通じてNFSをサポートします。

NFSが使用するプロトコルは、NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)です。

2. メリットとデメリット

メリット:

  • 跨プラットフォームの互換性が高く、Linux、Unix(例:CentOS、Ubuntu、Solaris)、Windowsでも利用可能です。
  • 同一NFSディレクトリを共有する複数クライアントの場合、ファイルはサーバーに1つのみ保存されるため、ストレージリソースを節約します。
  • シンプルで学習しやすく、迅速にデプロイ可能です。
  • 中小規模のLinux/Unixクラスタ(クライアント数:≤10台)での静的リソース共有や、パフォーマンス要求の低い環境に適しています。

デメリット:

  • 単一故障点リスクがあります。NFSサーバーがダウンすると、全てのクライアントがNFS共有ディレクトリにアクセスできなくなります。
  • 高負荷な書き込み環境には適しません。
  • IPアドレスベースの認証機構に依存し、データ通信に暗号化がありませんため、セキュリティリスクがあります。

テストマシンの準備

OS Red Hat Enterprise Linux (RHEL) 7
IPアドレス ホスト名 役割
192.168.1.100 server サーバー
192.168.1.101 client1 クライアント(手動マウント)
192.168.1.102 client2 クライアント(自動マウント)

NFSサーバーの構築

1. SELinuxの無効化


# 一時的な無効化
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive

# 永久的な無効化
[root@server ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2. ファイアウォールの停止


[root@server ~]# systemctl stop firewalld.service

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


[root@server ~]# yum -y install rpcbind nfs-utils

# nfs-utils:NFSサーバーとクライアントのためのツールを提供します。
# rpcbind:RPCサービスをNFSにバインドします。

4. 共有ディレクトリの作成


[root@server ~]# mkdir /share/
[root@server ~]# touch /share/file_{1,2,3}.txt
[root@server ~]# ls /share/
file_1.txt  file_2.txt  file_3.txt

5. 設定ファイルの編集


# /shareディレクトリを共有します。
[root@server ~]# vim /etc/exports
# 次のような行を追加します。
/share *(ro)  # 格式:共有ディレクトリのパス 客先IP(*で全て許可) 权限(ro=読み取り専用)

6. サービスの起動


[root@server ~]# systemctl start rpcbind
[root@server ~]# systemctl enable rpcbind
[root@server ~]# systemctl start nfs-server
[root@server ~]# systemctl enable nfs-server

NFSクライアントの構築

1. マウント方法の違い

NFSクライアントでのマウント方法は大きく两类があります。

方法1:手動マウント

  • mountコマンドを手動で実行します。
  • /etc/fstabファイルに設定することで、再起動時自動マウント可能です。

方法2:自動マウント

  • autofsサービスを利用します。
  • アクセスが必要な時にのみマウントします。

2. 手動マウント

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


[root@client1 ~]# yum -y install nfs-utils

(2)ディレクトリの作成とマウント


# マウント用ディレクトリの作成
[root@client1 ~]# mkdir /mnt/nfs

# NFSサーバーのマウント
[root@client1 ~]# mount 192.168.1.100:/share /mnt/nfs

# 再起動時の自動マウント設定
[root@client1 ~]# vim /etc/fstab
192.168.1.100:/share /mnt/nfs nfs defaults,_netdev 0 0

(3)確認


[root@client1 ~]# df -h | tail -1
192.168.1.100:/share  17G  1.2G   16G   7% /mnt/nfs

3. 自動マウント

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


[root@client2 ~]# yum -y install nfs-utils autofs

(2)自動マウントの設定


# 監視ディレクトリの作成
[root@client2 ~]# mkdir /auto_nfs

# autofsの設定ファイルの編集
[root@client2 ~]# vim /etc/auto.master
/auto_nfs /etc/auto_nfs_mount

# マウント用の設定ファイル作成
[root@client2 ~]# vim /etc/auto_nfs_mount
share -fstype=nfs 192.168.1.100:/share

(3)自動マウントサービスの起動


[root@client2 ~]# systemctl start autofs

(4)確認


[root@client2 ~]# ls /auto_nfs/
[root@client2 ~]# ls /auto_nfs/share/
file_1.txt  file_2.txt  file_3.txt

タグ: NFS RPC ファイル共有 Linuxサーバー NFSクライアント

5月18日 18:57 投稿