集群 -上傳下載文件共享 - NFS


解決方案:

1. 部署的 tomcat 都在同一個機器上,共享文件位置

2. windows 下,局域網內文件上傳的文件夾設置共享文件夾

3. linux 下 NFS 文件夾共享

4. 第三方工具

 

NFS 介紹

  NFS 就是 Network FileSystem 的縮寫。最大的功能就是可以透過網絡,讓不同的機器,不同的操作系統、可以彼此分享個別的檔案。所以,可以簡單的將其看做是一個文件服務器。這個 NFS 服務器可以讓你的 PC 來將網絡遠程的  NFS 服務器分享的目錄,掛載到本地的機器中,在本地的機器看起來,那個遠程的主機的目錄就好像是自己的一個磁盤分區槽一樣。使用方便。

  因為 NFS 支持的功能相當多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會啟用一些端口來傳輸數據,因此,NFS 的功能所對應的端口才沒有固定住,而是隨機取用一些未被使用的小於 1024 的埠口來作傳輸用。但如此一來又造成客戶端想要連上服務器是的困擾,因為他不知道端口。。

  這時遠程過程調用(RPC)服務來了。RPC 最主要的功能就在指定每個 NFS 功能所對應的 port number,並回報給客戶端,讓客戶端可以連接到正確的端口。那 RPC 是如何知道每個 NFS 的端口呢?這是因為當服務器在啟動 NFS 時會隨機取用數個端口,並主動向 RPC 注冊,因此,RPC 知道每個端口對應的 NFS 功能,然后 RPC 又是固定使用 port 111 來監聽客戶端的需求,並回報客戶端正確的端口。

  所以,NFS 啟動之前,RPC 就要先啟動了,否則 NFS 無法向 RPC 注冊。另外, RPC 重新啟動時,原本注冊的數據會不見,因此,RPC 重啟后,它管理的所有服務都要重新啟動來向 RPC 注冊。

  當客戶端有 NFS 檔案存取需求時,他會如何向服務端要求數據呢?

  • 客戶端會向服務器端的 RPC (port 111)發出 NFS 檔案存取功能的詢問要求
  • 服務器端找到對應的已注冊的 NFS daemon 端口后,回報給客戶端
  • 客戶端了解正確的端口后,就可以直接與 NFS daemon 來連接

 

  

  由於NFS 必須要有 RPC 存在時才能成功的提供服務,因此,NFS 被稱為 RPC server 的一種。

 

 

NFS安裝使用

  1. 看當前有沒有安裝過

  rpm -qa|grep nfs

  rpm -qa|grep rpcbind

  yum -y install nfs-utils rpcbind

  touch /etc/exports

  里面放這樣一句: /opt/tomcat/static 192.168.101.*(rw,sync,no_root_squash,no_subtree_check)

  這里參數:

 
        
參數值
內容說明
rw  ro  
 該目錄分享的權限是可擦寫 (read-write) 或只讀 (read-only),但最終能不能讀寫,還是與文件系統的 rwx 及身份有關
sync  async    sync
代表數據會同步寫入到內存與硬盤中,async 則代表數據會先暫存於內存當中,而非直接寫入硬盤
no_root_squash  root_squash
客戶端使用 NFS 文件系統的賬號若為 root 時,系統該如何判斷這個賬號的身份?

預設的情況下,客戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody, 如此對服務器的系統會較有保障。

但如果你想要開放客戶端使用 root 身份來操作服務器的文件系統,那么這里就得要開 no_root_squash 才行
all_squash
不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名用戶,通常也就是 nobody(nfsnobody) 
anonuid  anongid    anon
anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名用戶的 UID 設定值,通常為 nobody(nfsnobody),
但是你可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於你的 /etc/passwd 當中!
anonuid 指的是 UID 而 anongid 則是群組的 GID

 

  exportfs -r 配置生效   

  /bin/systemctl start rpcbind.service

  /bin/systemctl start nfs.service

  showmount -e localhost

 

  客戶端

   yum -y install nfs-utils 

   mount -t nfs 192.168.101.32:/opt/static /opt/static -o proto=tcp -o nolock

 


免責聲明!

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



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