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實現檔案的共享已經完成。