文章目錄:
一.NFS服務簡介
二.NFS服務端配置
三.NFS客戶端配置
四.NFS服務排錯
一.NFS服務簡介
NFS是Network File System的縮寫,中文稱為網絡文件系統,它的主要功能是通過網絡(一個局域網)讓不同的主機系統之間可以共享文件或目錄,NFS的客戶端(一般為應用服務器,例如web)可以通過掛載(mount)的方式將NFS服務器共享的數據目錄掛載到NFS客戶端本地系統中(就是某一個關在點下),從客戶端本地看,NFS服務器端共享目錄就好像是客戶端自己的磁盤分區或者目錄一樣,而實際上卻是遠端的NFS服務器的目錄。
NFS網絡文件系統很像Windows系統的網絡共享、安全功能、網絡驅動器映射,這也和linux的samba服務類似,只不過一般情況下,Windows網絡共享服務或samba服務用戶辦公局域網共享,而互聯網中小型網站集群架構后端常用NFS進行數據共享,若是大型網站,那么有可能還會用到更復雜的分布式文件系統Moosefs(mfs)、GlusterFS。
二.NFS服務端配置
2.1 部署服務前的准備
系統版本 | 服務器角色及主機名 | IP地址 |
CentOS Linux release 7.6.1810 (Core) | NFS服務端--General | 192.168.2.8 |
CentOS Linux release 7.6.1810 (Core) | NFS客戶端--Client | 192.168.2.38 |
2.2 檢查是否安裝NFS程序包(默認已經安裝):
nfs-utils:nfs服務的主程序,包括rpc.nfsd、rpc.mountd兩個daemons和相關的文檔說明及執行命令文件等
rpcbind:centos6下面的rpc主程序(centos5下的是portmap)
如果不存在這兩個軟件包,請使用yum -y install nfs-utils rpcbind安裝該軟件包,安裝了該軟件包后一般會創建nfsnobody用戶
檢查是否存在nfsnobody用戶
2.3 修改nfs配置文件/etc/exports
#該配置文件默認是存在,只不過是空文件而已,值得注意的是下文中的24和(之間沒有空格
該配置文件的格式有嚴格的要求:共享目錄 允許訪問的IP或IP段(權限)
#權限介紹:rw——讀寫,ro——只讀;sync——同時將數據寫入到內存和硬盤,保證數據不丟失;
async——先將數據保存到內存,再寫入到硬盤,這樣效率更高,但數據可能丟失;
root_squash——當NFS客戶端以root管理員訪問時,映射為NFS服務器的匿名用戶
no_root_squash——當NFS客戶端以root管理員訪問時,映射為NFS服務器的root管理員
all_aquash——無論NFS客戶端以什么用戶登錄,都映射為NFS服務器的匿名用戶
2.4 啟動nfs服務,並加入開機自啟動,檢查服務進程
查看服務進程如下:
2.5查看NFS服務器相關信息--showmount
注:showmount命令可用參數及作用:-e——顯示NFS服務器的共享列表;-a——顯示本機掛載文件資源的情況;-d——僅顯示被客戶掛載的目錄名;-h——顯示幫助信息;-v——顯示版本號。
如果修改NFS配置文件/etc/exports, 可使用exportfs命令進行重啟掃描/etc/exports文件,而不用重啟NFS服務
注:exportfs命令常用選項,-a——表示全部掛載或卸載;-r——重新掛載;-u——卸載某一個目錄;-v——顯示共享的目錄
2.6 新建共享目錄/data文件
三.NFS客戶端配置
3.1 創建掛載目錄並掛載nfs
3.2 查看nfs目錄文件,並在客戶端新建文件
此時,服務端/data目錄中文件如下:
服務端也存在在客戶端中新建的文件,說明客戶端用戶擁有讀寫權限
四.NFS服務排錯
1.首先明確nfs服務端掛載目錄名稱,很多時候找不到NFS服務端的文件,都是運維人員記錯了掛載目錄導致的;
2.如果客戶端不能掛載上nfs服務,首先檢查網絡問題,確保NFS客戶端到服務端的網絡暢通;
3.客戶端掛載目錄不能讀寫文件的問題,一般是用戶權限不夠導致的;