1. 程式人生 > >Linux下nfs+rpcbind實現伺服器之間的檔案共享

Linux下nfs+rpcbind實現伺服器之間的檔案共享

目前,越來越多的專案不再是單機,而是趨向於分散式部署,所以在分散式部署就需要檔案共享,例如A伺服器上傳的圖片,希望在B伺服器上也可以訪問。因此就需要跨機器共享檔案,在這裡就簡單的採用nfs+rpcbind實現跨機器的檔案共享。

1、安裝nfs和rpcbind

      檢查自己的電腦是否已經預設安裝了nfs和rpcbind:

# 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

# rpm -aq | grep rpcbind 

rpcbind-0.2.0-11.el6.x86_64 

這表示系統已經預設安裝。如果沒有安裝也沒事,可以採用下面的命令安裝

# yum install nfs-utils rpcbind  

2、配置nfs的配置檔案和hosts檔案

      建立需要共享的目錄:預設用/mnt

配置nfs的配置檔案:

vim /etc/exports 

在這個檔案中新增需要輸出的目錄,如:

/usr/local/static 192.168.0.2(rw)

/usr/local/static:表示的是nfs伺服器需要共享給其他客戶端伺服器的資料夾

192.168.0.2:表示可以掛載伺服器目錄的客戶端ip

(rw):表示該客戶端對共享的檔案具有讀寫許可權

配置hosts檔案:vim /etc/hosts

192.168.10.1 hostname

        192.168.10.1:表示伺服器本機的ip地址

        hostname:表示伺服器的機器名

3、啟動nfs和rpcbind服務、檢測服務狀態、已經設定服務開機啟動

啟動服務:

#service rpcbind start

#service nfs start  

檢查啟動狀態:

#service rpcbind status  

#service nfs status 

4、檢測伺服器的nfs狀態

# showmount -e  //檢視自己共享的服務  

Export list forhostname: 

/usr/local/static 192.168.10.2 

注意:在執行這個命令的時候如果出現錯誤,說明DNS不能解析當前的伺服器,那就是hosts檔案沒有配置。

5、客戶端掛載NFS中共享的目錄

客戶端伺服器也需要安裝nfs 和 rpcbind 服務。

首先是啟動nfs和rpcbind服務。

查詢服務端共享的檔案目錄:

# showmount -e 192.168.10.1

Export list for192.168.10.1:

/usr/local/static 192.168.10.2 

建立掛載目錄:

#cd /mnt

#mkdir static

掛載服務端的共享目錄:

# mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.10.1:/usr/local/static /mnt/static

檢視掛載的狀態:

# mount | grep nfs 

nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
192.168.10.1:/usr/local/static on /mnt/static type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.10.1,mountvers=3,mountport=20048,mountproto=udp,local_lock=all,addr=192.168.10.1)

6、測試共享

伺服器建立檔案:

#cd /usr/local/static

#touch test123

客戶端檢視檔案:

#cd /mnt/static

#ll

總用量 0  

-rw-r--r--  1 root root    0 May  3 11:44 rest123

到此就結束了,nfs實現檔案的共享已經完成。