NFS是Network File System(網絡文件系統)。主要功能是經過網絡讓不一樣的服務器之間能夠共享文件或者目錄。NFS客戶端通常是應用服務器(好比web,負載均衡等),能夠經過掛載的方式將NFS服務器端共享的目錄掛載到NFS客戶端本地的目錄下。
NFS在文件傳送過程當中依賴與RPC(遠程過程調用)協議。NFS自己是沒有提供信息傳送的協議和功能的,可是可以用過網絡進行圖片,視頻,附件等分享功能。只要用到NFS的地方都須要啓動RPC服務,不管是NFS的服務端仍是客戶端。
NFS和RPC的關係:能夠理解爲NFS是一個網絡文件系統(比喻爲租房的房主),而RPC是負責信息的傳輸(中介),客戶端(至關於租房的租客)html
[root@Appserver~]# cat /etc/issue ##查看系統版本信息 Red Hat Enterprise Linux Server release 6.6 (Santiago) [root@Appserver~]# uname -r ##查看內核信息 2.6.32-754.3.5.el6.x86_64 [root@Appserver~]# uname -m ##查看系統是32位仍是64位的 x86_64
說明:java
服務器端: RHEL6.6 [192.168.2.131/24]web
客 戶 端: RHEL6.6 [192.168.2.130/24]vim
man nfs 能夠查看mount的信息緩存
rpc端口111安全
nfs主端口2049服務器
說明:網絡
1. 在啓動NFS服務以前,首先要啓動RPC服務(CentOS5是portmap服務,CentOS6.6之後的版本是rpcbind服務),不然NFS服務器沒法向RPC服務註冊。負載均衡
2. RPC服務若是重啓,原來以及有的NFS端口就會丟失,所以,只要RPC服務重啓,NFS服務就要重啓向RPC從新註冊新的隨機端口號。運維
須要:中止nfs->中止rpcbind服務後重啓rpcbind->重啓nfs服務
3. 通常修改NFS配置文件後,不須要重啓服務,直接平滑重啓便可
命令:/etc/init.d/nfs reload或者exportfs -rv就能夠修改/etc/exports生效。
/etc/init.d/nfs reload的做用是:讓已經到達服務器的請求給他處理完畢,可是沒有到達服務器的請求,就把它斷掉。
1. 查看NFS的軟件包[nfs和rpc默認是沒有安裝的,須要yum安裝]
[root@westos ~]# rpm -qa nfs-utils rpcbind
2. 使用yum install nfs-utils rpcbind -y命令來安裝NFS軟件[安裝後能夠檢查一下]
[root@westos]# yum install nfs-utils rpcbind
[root@westos]# rpm -qa nfs-utils rpcbind
3. 啓動NFS服務
第一步:先啓動rpc服務
[root@westos ~]# /etc/init.d/rpcbind start #啓動rpc服務 [root@westos ~]# /etc/init.d/rpcbind status #查看rpc服務狀態
第二步:啓動NFS服務
[root@westos ~]# /etc/init.d/nfs start #啓動nfs服務 [root@westos ~]# /etc/init.d/nfs status #查看nfs服務狀
[root@westos ~]# ps -ef|grep nfs | grep -v 'grep nfs' # [可選],查看NFS服務
注意: 必需要先啓動rpc服務,而後再啓動NFS服務(RPC會有端口的映射),若是先啓動NFS服務,啓動服務時會失敗
4. 查看NFS和RPC端口信息[可選]
rpc端口111
nfs主端口2049
第一步:服務器端口檢查本身的rpc服務:
rpcinfo -p localhost # 查看NFS服務向rpc註冊的端口信息,主端口號是:111
[root@Appserver ~]# netstat -lntup|grep 111 # 查看111端口信息 root@Appserver ~]# lsof -i 4:111 # 查看111端口信息
第二步:查看NFS
[root@Appserver ~]# netstat -lntup|grep 2049 [root@Appserver ~]# ps -ef|grep nfs
第三步:檢查本機的nfs服務
showmount -e localhost
5. 服務開機自啓
第一步:chkconfig開啓服務
chkconfig --level 35 nfs on chkconfig --level 35 rpcbind on
chkconfig --list | egrep "nfs|rpcbind"
第二步:寫入rc.local
vim /etc/rc.local /etc/init.d/rpcbind start /etc/init.d/nfs start
說明:運維規範將服務的啓動命令放到/etc/rc.local裏面
6. 配置NFS服務端
第一步: 建立共享目錄(注意權限)
mkdir /NFS -m777 chown -R nfsnobody:nfsnobody /data # nfsnobody爲nfs默認建立的用戶
第二步:配置服務器文件
NFS默認文件: /etc/exports
# /etc/exports配置文件的格式是: # NFS共享的目錄 NFS客戶端地址(參數1,參數2) vim /etc/exports /data 192.168.2.130/24(rw,sync) #一條配置搞定NFS配置文件 #其中:/data : NFS服務器端要共享的實際目錄,注意共享目錄的本地權限,須要讀寫權限,必定要讓本地目錄能夠被NFS客戶端的用戶讀寫 #192.168.2.130/24: NFS服務器端受權的可訪問的共享目錄的NFS客戶端地址(可爲單獨的ip地址或者主機名,域名,整個網段的地址) #(rw,sync) ,其中rw表明擁有讀寫的權限,sync表明數據同步寫入NFS服務器端的硬盤中。也能夠用async,async是大數據時使用,是先寫到緩存區,再寫到磁盤裏。
可選:NFS服務器參數
rw:讀寫 ro:只讀 sync:客戶端給服務器端寫入數據,待寫入成功後服務端後給客戶端一個寫入成功的標記,這個時候數據寫入成功。 可是數據安全,可是性能差 async:異步寫入 數據寫入內存後顯示寫入成功,高性能,可是一旦斷電後數據丟失, 電商秒殺是異步的。大型網站都是異步,會短期數據不一致。 no_root_squash: 訪問的NFS Server的共享目錄的用戶是root的話,它對該共享目錄具備root權限 root_squash: 訪問的NFS Server的共享目錄的用戶是root的話,它對該共享目錄的權限壓縮爲匿名用戶 all_squash: -->推薦使用 無論訪問的NFS Server的共享目錄權限是什麼,它對該共享目錄的權限壓縮均爲匿名用戶
第三步:重啓nfs服務
/etc/init.d/nfs reload
第四步:服務端測試(服務器端口檢查本身的nfs服務)
showmount -e localhost
#showmount -e 192.168.2.130 客戶端成功後查看
第五步:測試本機(服務器端自身)掛載
mount -t nfs 192.168.2.131:/data /mnt
說明:查看默認配置
cat /var/lib/nfs/etab
其餘:卸載網絡掛載
# 強制卸載
umount -lf /mnt # l(lazy) f(force)
1. 客戶端和服務端同樣,也要安裝nfs和rpm的安裝包。(配置見服務器端)
2. 客戶端須要啓動rpc服務,加入開機自啓動。不須要啓動nfs服務。(配置見服務器端)
3. 客戶端配置:
第一步:測試服務器/客戶端IP是否在同一網段
ping 192.168.2.130 # 客戶端IP
第二步:查看服務器的111端口是否OK
telnet 192.168.2.131 11
第三步: showmount服務端
showmount -e 192.168.2.131
第四步:掛載服務器到本地,實現文件共享
mount -t nfs 192.168.2.131:/data/ /mnt
df –h
==> cat /proc/mounts # 效果同
# cat /proc/mounts # 效果同
第五步:寫入rc.local
vim /etc/rc.local /etc/init.d/rpcbind start mount -t nfs 192.168.2.131:/data/ /mnt
其餘: 卸載網絡掛載
# 強制卸載
umount -lf /mnt # l(lazy) f(force)