Linux通過NFS實現檔案共享
在專案生產環境我們經常需要實現檔案共享,傳統的常見方案是通過NFS,實現伺服器之間共享某一塊磁碟,通過網路傳輸將分散的檔案集中儲存在一塊指定的共享磁碟,實現基本的檔案共享。實現這種方案,分服務端和客戶端,將服務端的磁碟mount到客戶端指定目錄下,在客戶端操作就像操作本地磁碟一樣,nfs基本的安裝如下:
模擬環境:
服務端/客戶端 | 伺服器IP | 版本資訊 |
服務端 | 120.27.15.116 | centOS 7.2 |
客戶端 | 39.108.85.46 | centOS 7.2 |
一、服務端安裝NFS
step1、安裝nfs和rpcbind程式:yum -y install nfs*
step2、檢測nfs與rpcbind是否安裝OK
rpm -qa |grep nfs
rpm -qa |grep rpcbind
step3、建立一個共享目錄,並配置共享資訊
mkdir /data01/nfs 這裡假設共享目錄為/data01/nfs
vi /etc/exports
step4、啟動nfs,rpcbind
systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs
systemctl start nfs
step5、檢視是否共享成功
showmount -e localhost
二、客戶端安裝並掛載
step1、安裝nfs程式:yum -y install nfs*
step2、啟動nfs,rpcbind
systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs
systemctl start nfs
step3、建立掛在目錄:mkdir /data01/share
step4、檢測遠端共享伺服器是否共享成功
step5、掛載,mount -t nfs -o nolock 服務端IP:共享目錄絕對路徑 本地掛載目錄
mount -t nfs -o nolock 120.27.15.116:/data01/nfs /data01/share
step6、檢視掛載結果:df -Th
可以看到,遠端那塊磁碟已經掛載OK。
三、測試
在/data01/share下新增一個檔案,並寫入相關內容,然後到伺服器端檢視
去服務端檢視:
四、解除安裝
解除安裝直接執行如下操作即可:umount 120.27.15.116:/data01/nfs
五、所遇到的問題
1、如果是在阿里雲上,可能要在安全組開放相關的埠,在私有環境下,同樣需要處理防火牆,開放相關埠。可以通過rpcinfo -p 檢視具體用到的埠。
iptables -A INPUT -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -p udp --dport 111 -j ACCEPT 其他埠類似處理
2、由於NFS啟動會隨機生成埠並向RPC註冊,每次的埠都不固定,所以,可以設定固定埠,便於配置防火牆和安全組。例如: