1. 程式人生 > >Linux下nfs實現跨機器的檔案共享(個人專案經驗)

Linux下nfs實現跨機器的檔案共享(個人專案經驗)

目前的專案開發過程中都是採用分散式,在上傳檔案的時候,檔案不一定會在同一臺機器中,因此就需要跨機器共享檔案,在這裡就簡單的採用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實現檔案的共享已經完成。