Linux下nfs實現跨機器的檔案共享(個人專案經驗)
阿新 • • 發佈:2019-01-04
目前的專案開發過程中都是採用分散式,在上傳檔案的時候,檔案不一定會在同一臺機器中,因此就需要跨機器共享檔案,在這裡就簡單的採用nfs實現跨機器的檔案共享。
1、安裝nfs和rpcbind(在centOS6之前是portmap)
檢查自己的電腦是否已經預設安裝了nfs和rpcbind:
[[email protected] ~]# rpm -aq | grep nfs
nfs-utils-1.2.3-54.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-9.el6.x86_64
[[email protected] ~]# rpm -aq | grep rpcbind
rpcbind-0.2.0-11.el6.x86_64
這表示系統已經預設安裝。如果沒有安裝也沒事,可以採用下面的命令安裝(需要聯網,會用虛擬機器的就不多說怎麼聯網了):
[[email protected] ~]# yum install nfs-utils rpcbind
2、配置nfs的配置檔案和hosts檔案
建立需要共享的目錄:
[[email protected] ~]# cd /tmp
[[email protected] tmp]# mkdir test
配置nfs的配置檔案:
[[email protected] ~]# vim /etc/exports
在這個檔案中新增需要輸出的目錄,如:
/tmp/test 192.168.56.202(rw)
/tmp/test:表示的是伺服器共享輸入的目錄
192.168.56.202:表示可以掛在伺服器目錄的客戶端ip
(rw):表示該客戶端對共享的檔案具有讀寫許可權
配置hosts檔案:
[[email protected] ~]# vim /etc/hosts
在檔案中新增下面這句話
192.168.56.201 unsion2
192.168.56.201:表示伺服器本機的ip地址
unsion2:表示伺服器的機器名
3、啟動nfs和rpcbind服務、檢測服務狀態、已經設定服務開機啟動
啟動服務:
[[email protected] ~]#service rpcbind start
[[email protected] ~]#service nfs start
測試狀態:
[[email protected] ~]#service rpcbind status
rpcbind (pid 1063) 正在執行...
[[email protected] ~]#service nfs status
rpc.svcgssd 已停
rpc.mountd (pid 2193)正在執行...
nfsd (pid 22092208 2207 2206 2205 2204 2203 2202) 正在執行...
rpc.rquotad (pid2188) 正在執行...
自動啟動:
[[email protected] ~]#chkconfig --list rpcbind
[[email protected] ~]#chkconfig --list nfs
4、檢測伺服器的nfs狀態
[[email protected]]# showmount -e //檢視自己共享的服務
Export list forunsion2:
/tmp/test192.168.56.202
注意:在執行這個命令的時候如果出現錯誤,說明DNS不能解析當前的伺服器,那就是hosts檔案沒有配置。
5、客戶端掛載NFS中共享的目錄
首先是啟動nfs和rpcbind服務。
查詢服務端共享的檔案目錄:
[[email protected]]# showmount -e 192.168.56.201
Export list for192.168.56.201:
/tmp/test192.168.56.202
建立掛載目錄:
[[email protected] ~]# cd/tmp
[[email protected] tmp]#mkdir hehe
掛載服務端的共享目錄:
[[email protected]]# mount 192.168.56.201:/tmp/test/ /tmp/hehe/
mount.nfs: accessdenied by server while mounting 192.168.56.201:/tmp/ test /
看到此資訊表示成功掛載。
檢視掛載的狀態:
[[email protected]]# mount | grep nfs
sunrpc on/var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on/proc/fs/nfsd type nfsd (rw)
192.168.56.201:/tmp/test/on /tmp/hehe type nfs (rw,vers=4,addr=192.168.56.201,clientaddr=192.168.56.202)
6、測試共享
伺服器建立檔案:
[[email protected] /]#cd /tmp/test
[[email protected]]# touch 123456
客戶端檢視檔案:
[[email protected] /]#cd /tmp/hehe
[[email protected]]# ll
總用量 0
-rw-r--r--. 1 rootroot 0 2月 25 15:37 123456
到此就結束了,nfs實現檔案的共享已經完成。