Linux 安裝 NFS 實現文件目錄共享


Linux 安裝 NFS 實現文件目錄共享


 

一、背景介紹

項目中,之前是單節點部署服務,關於文件的上傳和下載,只要配置好路徑即可。

而當集群化部署后,就會有問題。比如:文件上傳的時候,訪問的是主機1,而想要現在文件的時候,卻訪問的主機2,這樣就會導致文件下載失敗。

 

關於文件共享,可以通過Nginx,Samba,NFS,FastDFS等實現。

本篇博文根據個人項目中的實際使用場景,在不該任何服務代碼的情況下,使用NFS最為合適。

 

二、NFS安裝和配置

1、何為NFS?

NFS(Network File System)即網絡文件系統,它允許網絡中的計算機之間通過網絡共享資源。

將NFS主機分享的目錄,掛載到本地客戶端當中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,在客戶端看起來,就像訪問本地文件一樣。

 

2、 NFS 服務端_安裝配置

[檢查是否安裝NFS]

rpm -qa | grep nfs rpm -qa | grep rpcbind


[安裝NFS服務端]

yum -y install nfs-utils rpcbind



[設置開機啟動NFS相關服務]

systemctl enable rpcbind && systemctl enable nfs-server && systemctl enable nfs-lock && systemctl enable nfs-idmap

或者

systemctl enable rpcbind

Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service.

systemctl enable nfs-server

Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

systemctl enable nfs-lock
systemctl enable nfs-idmap



[啟動NFS相關服務]

systemctl start rpcbind && systemctl start nfs-server && systemctl start nfs-lock && systemctl start nfs-idmap

或者

systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap


[創建需要共享的目錄]

mkdir -p /home/miracle/uploads
chmod -R 777 /home/miracle/uploads


[配置需要共享的目錄]

vim /etc/exports

 

添加如下內容(可以配置多個共享目錄,IP也可以配置單個,或者模糊匹配多個):

/home/miracle/uploads 192.168.169.2(rw,sync,all_squash)

參數列表

參數

說明

ro

只讀訪問

rw

讀寫訪問

sync

所有數據在請求時寫入共享

async

nfs 在寫入數據前可以響應請求

secure

nfs 通過 1024 以下的安全 TCP/IP 端口發送

insecure

nfs 通過 1024 以上的端口發送

wdelay

如果多個用戶要寫入 nfs 目錄,則歸組寫入(默認)

no_wdelay

如果多個用戶要寫入 nfs 目錄,則立即寫入,當使用 async 時,無需此設置

hide

在 nfs 共享目錄中不共享其子目錄

no_hide

共享 nfs 目錄的子目錄

subtree_check

如果共享 /usr/bin 之類的子目錄時,強制 nfs 檢查父目錄的權限(默認)

no_subtree_check

不檢查父目錄權限

all_squash

共享文件的 UID 和 GID 映射匿名用戶 anonymous,適合公用目錄

no_all_squash

保留共享文件的 UID 和 GID(默認)

root_squash

root 用戶的所有請求映射成如 anonymous 用戶一樣的權限(默認)

no_root_squash

root 用戶具有根目錄的完全管理訪問權限

anonuid=xxx

指定 nfs 服務器 /etc/passwd 文件中匿名用戶的 UID

anongid=xxx

指定 nfs 服務器 /etc/passwd 文件中匿名用戶的 GID


 [配置立即生效]

exportfs -r 

 

[查看共享目錄信息]

exportfs -v

 


3、 NFS 客戶端_安裝配置

[安裝 NFS 客戶端]

yum -y install nfs-utils


[查看服務端的共享目錄設置]

showmount -e 192.168.169.1


[創建本地目錄]

mkdir -p /home/miracle/uploads


[將服務端共享目錄掛載到本地目錄]

mount -t nfs 192.168.169.1:/home/miracle/uploads /home/miracle/uploads

至此,共享目錄的安裝和配置已完成,可以創建一個文件,檢驗共享功能是否正常。

 


[取消掛載]

如果目錄掛載錯誤的情況下,可以取消掛載。

umount 192.168.166.1:/home/miracle/uploads

或者

umount /home/miracle/uploads

 

 

補充說明

如果現場環境是不允許訪問外網,只能離線安裝的情況下,就需要提前下載好安裝包。

1、下載離線安裝包(只下載,不安裝)

1)下載NFS服務端安裝文件,存放到 /home/miacle/nfs-server 目錄下,命令如下:

yum install --downloadonly --downloaddir=/home/miracle/nfs-server  nfs-utils rpcbind

 

可以將下載的NFS服務端安裝文件打包,命令如下:

tar -zcvf nfs-server.tar /home/miracle/nfs-server

 

2)下載NFS客戶端端安裝文件,存放到 /home/miacle/nfs-client 目錄下,命令如下:

yum install --downloadonly --downloaddir=/home/miracle/nfs-client  nfs-utils

 

可以將下載的NFS服務端安裝文件打包,命令如下:

tar -zcvf nfs-client.tar /home/miracle/nfs-client

 


2、批量安裝 rpm 文件

rpm -Uvh --force --nodeps *.rpm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM