在項目生產環境我們經常需要實現文件共享,傳統的常見方案是通過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注冊,每次的端口都不固定,所以,可以設置固定端口,便於配置防火牆和安全組。例如: