天天看點

什麼是NFS?NFS挂載1、NFS服務2、RPC服務與NFS3、NFS的優缺點4、NFS服務端的搭建與配置5、小結

文章目錄

  • 1、NFS服務
  • 2、RPC服務與NFS
  • 3、NFS的優缺點
  • 4、NFS服務端的搭建與配置
  • 5、小結

1、NFS服務

NFS,全稱Network File System,即網絡檔案系統。最大的功能是通過網絡,讓不同的機器、不同的作業系統可以共享彼此的檔案。

😉

更直白的說就是:

讓PC将網絡中的NFS伺服器共享的目錄挂載到本地的檔案系統中,這樣在本地端通路挂載點就等于通路共享目錄,NFS伺服器共享的目錄就像是自己的一個磁盤分區一樣。

什麼是NFS?NFS挂載1、NFS服務2、RPC服務與NFS3、NFS的優缺點4、NFS服務端的搭建與配置5、小結

如圖,在NFS伺服器設定了一個共享目錄/home/public,有權通路的用戶端A就可以将這個共享目錄挂載到自己檔案系統的某個點,如/home/data/mypublic,如此,就可以在本地通路遠端共享目錄。

# 挂載後,可以看用戶端磁盤的具體資訊:

df -h /home/data/mypublic

# 這裡指定了挂載點是/home/data/mypublic
           

NFS是通過網絡來進行伺服器端和用戶端之間的資料傳輸,那麼兩者之間要傳輸資料就要有相對應的網絡端口。NFS伺服器的端口開在2049,此外,由于檔案系統非常複雜。是以NFS還有其他的程式去啟動額外的端口,這些額外的用來傳輸資料的端口是随機選擇的,是小于1024的端口。既然是随機選擇,那用戶端如何知道NFS伺服器使用的是哪個端口呢?

答案是通過遠端過程調用協定,即RPC服務(Remote Procedure Call)

2、RPC服務與NFS

RPC( Remote Procedure Call )協定的主要目的是做到:不同服務間調用方法像同一服務間調用本地方法一樣。

當NFS啟動後,會随機使用一些端口,然後NFS會向RPC去注冊登記這些端口。RPC記錄下這些端口,并開啟自身111端口,等待用戶端請求。當用戶端請求時,RPC就将NFS記錄的端口資訊告訴用戶端,用戶端擷取到了NFS伺服器的端口資訊,進而建立連接配接進行資料傳輸。

具體流程:

什麼是NFS?NFS挂載1、NFS服務2、RPC服務與NFS3、NFS的優缺點4、NFS服務端的搭建與配置5、小結

1)首先伺服器端啟動RPC服務,并開啟111端口

2)伺服器端啟動NFS服務,并向RPC注冊登記端口資訊

3)用戶端啟動RPC,向服務端的RPC服務請求服務端的NFS端口

4)服務端的RPC服務回報NFS端口資訊給用戶端

5)用戶端通過擷取的NFS端口來建立和服務端的NFS連接配接并進行資料的傳輸

3、NFS的優缺點

優點:

  • 節省本地存儲空間,将一些常用的資料存放在一台伺服器通過網絡通路
  • 對于大多數負載均衡群集來說,使用NFS協定來共享資料存儲是比較常見的方法

缺點:

  • 局限性:

    容易發生單點故障,即server伺服器當機所有的用戶端都不能通路

  • 性能瓶頸:

    網站高并發的情況下,NFS性能有限

  • 安全性:

    用戶端的資料都是通過明文傳送,用戶端沒有使用者認證機制,安全性一般,建議在區域網路内使用

  • 資料完整性:

    NFS伺服器傳輸資料都是采用明文的方式進行傳輸,對資料沒有什麼驗證機制,對資料完整性較高的業務不建議使用

  • 維護繁瑣:

    NFS伺服器都是多台用戶端挂載在一台server端,對于共享伺服器的連接配接管理維護都是一項比較繁瑣的事情

4、NFS服務端的搭建與配置

第一步:NFS服務端包安裝(服務端)
//查詢是否安裝nfs-utils和rpcbind,未裝則安裝

rpm -q nfs-utils|| yum -y install nfs-utils
rpm -q rpcbind || yum -y install rpcbind
           

注意:

有的文章中提到了portmap,centos 6.4中portmap已經被rpcbind取代,而它又已經在安裝nfs-utils包的時候安裝了,不放心可以裝完nfs後service rpcbind status驗證

第二步:NFS配置檔案修改(服務端)
# 建立服務端用于測試的共享目錄
mkdir -p /root/test

# 編輯配置檔案,我直接>>追加了
# 以下:*即客戶機随意,ro表示用戶端是隻讀權限
echo "/root/test *(ro)" >> /etc/exports

           

關于NFS配置權限設定,即/etc/exports檔案配置格式中小括号()裡的參數集:

什麼是NFS?NFS挂載1、NFS服務2、RPC服務與NFS3、NFS的優缺點4、NFS服務端的搭建與配置5、小結
第三步:關閉防火牆(服務端)并啟動服務
# 關閉防火牆
systemctl stop firewalld

# 檢視是否關閉成功
systemctl status firewalld
           
# 先啟動rpcbind!!!并設定開機自啟動
systemctl start rpcbind
systemctl enable rpcbind

# 再啟動nfs并設定開機自啟動
systemctl start nfs
systemctl enable nfs
           
# 釋出共享目錄
exportfs -rv

# 檢視共享目錄
showmount -e
           
第四步:用戶端安裝NFS并挂載
//查詢是否安裝nfs-utils和rpcbind,未裝則安裝

rpm -q nfs-utils|| yum -y install nfs-utils
rpm -q rpcbind || yum -y install rpcbind
           
//啟動rpcbind和nfs

systemctl start rpcbind
systemctl start nfs
           
//檢視NFS服務端共享的目錄情況,假設服務端IP為1.1.1.1
showmount -e 1.1.1.1

//挂載
//其中,1.1.1.1是NFS伺服器IP,/root/test是第二步中共享出來的目錄
//目錄/home/mnt是用戶端的挂載點

mount 1.1.1.1:/root/test /home/mnt

           
//檢視挂載是否成功
df -h /home/mnt
           
什麼是NFS?NFS挂載1、NFS服務2、RPC服務與NFS3、NFS的優缺點4、NFS服務端的搭建與配置5、小結

mount的時候報錯no route to host,八成是防火牆忘關了,systemctl stop firewalld

5、小結

NFS是一種基于TCP/IP傳輸的網絡檔案系統協定,可以實作客戶機通路遠端伺服器中的共享資源,NFS服務配置檔案是/etc/exports,其缺點是安全性差。
配置NFS共享存儲的步驟:

伺服器端

第一步:安裝nfs-utils和rpcbind軟體,并關閉防火牆和增強安全功能

第二步:設定共享目錄并把共享目錄的權限設為777

第三步:修改NFS的配置檔案(格式為:共享的目錄名稱 客戶機位址(權限))

第四步:啟動NFS服務(先啟動rpcbind,再啟動nfs),并設定開機自啟動

第五步:釋出NFS共享目錄,并檢視

用戶端

第一步:安裝nfs-utils和rpcbind軟體,并關閉防火牆和增強安全功能

第二步:檢視伺服器端的共享目錄,并将其挂載到建立目錄上(可手動或自動挂載)

參考文章:

篇一:NFS詳解

篇二:NFS實驗

繼續閱讀