一、nfs 簡介
NFS是Network File System的縮寫及網絡文件系統。
主要功能是通過局域網絡讓不同的主機系統之間可以共享文件或目錄。
NFS系統和Windows網絡共享、網絡驅動器類似, 只不過windows用於局域網, NFS用於企業集羣架構中, 如果是大型網站, 會用到更復雜的分佈式文件系統FastDFS,glusterfs,HDFS。
二、服務端和客戶端安裝 nfs 和 rpc 服務
rpm -qa|grep -E "nfs|rpc"
yum install -y nfs-utils rpcbind
提示:RPC用於遠程過程調用服務程序,只需要在服務端安裝。
三、配置 nfs 服務
1. 服務端配置方式
1). 編寫配置文件
vim /etc/exports
man exports # 可查看配置格式
/data 172.16.1.0/24 (rw,sync)
#設置數據存儲的目錄 設置網絡一個白名單(配置存儲目錄的權限信息)
參數信息 | 參數說明 |
---|---|
rw | 存儲目錄是否有讀寫權限 |
ro | 存儲目錄是否時只讀權限 |
sync | 同步方式存儲數據 直接將數據保存到磁盤(數據存儲安全) |
async | 異步方式存儲數據 直接將數據保存到內存(提高數據存儲效率) |
no_root_squash | 不要將root用戶身份進行轉換 |
root_squash(默認配置) | 將root用戶身份進行轉換(默認配置) |
all_squash | 將所有用戶身份都進行轉換 |
no_all_squash(默認配置) | 不要將普通用戶身份進行轉換(默認配置) |
2). 多ip配置方式:
第一種方法:
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(rw,sync)
第二種方法:
/data 172.16.1.0/24(rw,sync)
/data 10.0.0.0/24(rw,sync)
2). 創建備份目錄並修改權限屬主屬組信息
mkdir /data
chown nfsnobody.nfsnobody /data
chmod 755 /data
3). 啓動服務程序
# 先啓動 rpc 服務
systemctl start rpcbind.service
systemctl enable rpcbind.service
# 再啓動 nfs 服務
systemctl start nfs
systemctl enable nfs
4). 查看服務狀態
systemctl status rpcbind
systemctl status nfs
2. 客戶端配置方式
1). 實現遠程掛載共享目錄
mount -t nfs 172.16.1.31:/data /mnt
四、rpc 使用方法
1. 語法
rpcinfo -p localhost/服務端ip # 檢查nfs服務進程與端口註冊信息
2. 查看端口信息
# nfs服務未註冊信息:
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
# nfs服務註冊之後信息:
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 53997 status
100024 1 tcp 49863 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
五、客戶端 nfs 掛載卸載方法
1. 掛載方式
1). 語法:
mount -t nfs 服務端ip:文件信息 掛載點
2). 自動掛載:
a. 利用rc.local
echo "mount -t nfs 172.16.1.31:/data /mnt" >>/etc/rc.local
b. 利用fstab文件
vim /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0
參數信息 | 參數說明 |
---|---|
rw(默認) | 實現掛載後掛載點目錄可讀可寫 |
ro | 實現掛載後掛載點目錄可讀可寫 |
suid(默認) | 在共享目錄中可以讓setuid權限位生效 |
nosuid | 在共享目錄中可以讓setuid權限位失效 提供共享目錄的安全性 |
exec | 共享目錄中的執行文件可以直接執行 |
noexec | 共享目錄中的執行文件可以無法直接執行 提供共享目錄的安全性 |
auto | 可以實現自動掛載 mount -a 實現加載fstab文件自動掛載 |
noauto | 不可以實現自動掛載 |
nouser | 禁止普通用戶可以卸載掛載點 |
user | 允許普通用戶可以卸載掛載點 |
2. 卸載方式
1). 語法:
umount [參數] 掛載點
2). 命令參數
-l --- 不退出掛載點目錄進行卸載
-f --- 強制進行卸載操作