NFS詳解以及NFS共享儲存服務安裝部署

2021-10-08 02:51:56 字數 4558 閱讀 8043

一、什麼是nfs?

nfs(network file system)即網路檔案系統,是freebsd支援的檔案系統中的一種,它允許網路中的計算機之間通過tcp/ip網路共享資源。在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。

它的主要功能是通過網路讓

不同的機器系統

之間可以彼此共享檔案和目錄。nfs伺服器可以允許nfs客戶端將遠端nfs伺服器端的共享目錄掛載到本地的nfs客戶端中。在本地的nfs客戶端的機器看來,nfs伺服器端共享的目錄

就好像自己的磁碟分割槽和目錄

一樣。一般客戶端掛載到本地目錄的名字可以隨便,但為方便管理,我們要和伺服器端一樣比較好。其就相當於windows裡面共享檔案,然後其他主機把這個共享檔案對映成了本地盤使用一樣。

nfs客戶端nfs和服務端nfs通訊過程和原理

首先伺服器端啟動rpc服務,並開啟111埠;啟動nfs服務,並向rpc註冊埠資訊

客戶端啟動rpc(portmap服務),向服務端的rpc(portmap)服務請求服務端的nfs埠(由程式在nfs客戶端發起訪問檔案的請求,客戶端本地的rpc(rpcbind)服務會通過網路向nfs服務端的rpc的111埠發出檔案訪問功能的請求。)

服務端的rpc(portmap)服務反饋nfs埠資訊給客戶端。

客戶端通過獲取的nfs埠來建立和服務端的nfs連線並進行資料的傳輸。(客戶端獲取正確的埠,並與nfs daemon聯機訪問資料。)

訪問資料成功後,返回前端訪問程式,完成一次訪問操作。

nfs在檔案傳送或資訊傳送過程中依賴於rpc協議。rpc,遠端過程呼叫 (remote procedure call) 是能使客戶端執行其他系統中程式的一種機制。nfs本身是沒有提供資訊傳輸的協議和功能的,但nfs卻能讓我們通過網路進行資料的分享,這是因為nfs使用了一些其它的傳輸協議。而這些傳輸協議用到這個rpc功能的。可以說nfs本身就是使用rpc的乙個程式。或者說nfs也是乙個rpc server。所以只要用到nfs的地方都要啟動rpc服務,不論是nfs server或者nfs client。這樣server和client才能通過rpc來實現program port的對應。可以這麼理解rpc和nfs的關係:nfs是乙個檔案系統,而rpc是負責資訊的傳輸。

nfs的原理結構其實還是挺簡單,nfs就是網路共享目錄,就是共享檔案.服務端共享,客戶端掛載使用。掛載流程原理,就是上面提到的5個流程。nfs要向rpc去註冊埠資訊。nfs的埠也是隨機獲取的。

nfs優點:

節省本地儲存空間,將常用的資料存放在一台nfs伺服器上且可以通過網路訪問,那麼本地終端將可以減少自身儲存空間的使用。

使用者不需要在網路中的每個機器上都建有home目錄,home目錄可以放在nfs伺服器上且可以在網路上被訪問使用。

一些儲存裝置cdrom和zip(一種高儲存密度的磁碟驅動器與磁碟)等都可以在網路上被別的機器使用。這可以減少整個網路上可移動介質裝置的數量。

簡單容易上手,維護非常快捷簡單

nfs缺點:

侷限性容易發生單點故障,及server機宕機了所有客戶端都不能訪問

在高併發下nfs效率/效能有限

客戶端沒用使用者認證機制,且資料是通過明文傳送,安全性一般(一般建議在區域網內使用)

nfs的資料是明文的,對資料完整性不做驗證

多台機器掛載nfs伺服器時,連線管理維護麻煩

二、安裝部署

nfs共享儲存服務

nfs是一種基於tcp/ip傳輸的網路檔案系統協議,最初由sun公司開發。通過使用nfs協議客戶機可以向訪問本地目錄一樣訪問遠端伺服器中的共享資源。對大多數負載均衡群集來說,使用nfs協議來共享資料儲存比較適用。

nfs服務的實現依賴於rpc(remote process call,遠端過程呼叫)機制,以完成遠端到本地的對映過程,在centos6中,需要安裝nfs-utils,rpcbind軟體包來提供nfs共享服務,前者用於nfs共享發布和訪問,後者用於rpc支援。

[root@localhost ~]# yum -y install nfs-utils rpcbind[root@localhost ~]# systemctl enable nfs[root@localhost ~]# systemctl enable rpcbind

nfs的配置檔案為/etc/exports,檔案內容預設為空(無任何共享),在exports檔案中設定共享資源時,記錄格式為:」

目錄位置  客戶機位址(許可權選項)」。例如要將資料夾    /backup共享給192.168.253.0網段使用,允許讀寫操作。

[root@localhost ~]# mkdir /backup

[root@localhost ~]# vim /etc/exports

/backup/ 192.168.253.0/24(rw,sync,no_root_squash)

解釋一下:

其中客戶機位址可以是主機名、ip位址、允許使用「*」等萬用字元,多個時空格隔開即可;許可權選項中的rw表示允許讀寫;ro為唯讀;sync表示同步寫入,no_root_squash表示當客戶機以root身份訪問時賦予本地root許可權(預設是root_squash,將作為nfsnobody使用者降權對待)

[root@localhost ~]# systemctl start rpcbind

[root@localhost ~]# systemctl start nfs

[root@localhost ~]# netstat -antp | grep rpcbind

檢視本機nfs共享目錄

[root@localhost ~]# showmount -e

export list for localhost.localdomain:

/backup 192.168.253.0/24

nfs協議的目標是提供一種網路檔案系統,因此對nfs共享的訪問也使用mount命令來進行掛載,對應的檔案系統型別為nfs。

若要正常訪問nfs共享資源,客戶機中也需要安裝rpcbind軟體包,並啟動rpcbind服務,另外為了使用showmount查詢工具,最好將nfs-utils軟體包也裝上。

安裝部署客戶機:

[root@localhost ~]# yum -y install nfs-utils rpcbind[root@localhost ~]# systemctl  enable rpcbind[root@localhost ~]# systemctl  start rpcbind

檢視nfs伺服器共享目錄:

[root@localhost ~]# showmount -e 192.168.253.110

export list for 192.168.253.110:

/backup 192.168.253.0/24

手動掛載nfs共享目錄以root使用者身份執行mount操作,將nfs伺服器共享的/backup目錄掛載到本地目錄的//var/www/html。與掛載不同的是,裝置位置應該指出伺服器位址。

[root@localhost ~]# mount 192.168.253.110:/backup /var/www/html/

檢視掛載結果

[root@localhost ~]# tail -1 /etc/mtab 

192.168.253.110:/backup /var/www/html nfs4 rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.253.120,local_lock=none,addr=192.168.253.110 0 0

完成掛載以後,訪問客戶機的/var/www/html資料夾,實際上就相當於訪問nfs伺服器中的/backup資料夾。其中的網路對映過程對於使用者來說是透明

NFS共享儲存詳解

nfs network file system 即網路檔案系統,是freebsd支援的檔案系統中的一種,它允許網路中的計算機之間通過tcp ip網路共享資源。在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。它的主要功能是通過網路讓不同的機器系...

NFS共享儲存

yum install rpcbind rpc服務監聽111埠 yum install nfs utils nfs服務包 1 修改配置檔案 etc exports vim etc exports 修改配置檔案 data 192.168.10.0 24 rw,sync,no root squash 以...

NFS共享儲存

一 linux下部署nfs 1.簡介 nfs 網路檔案系統,英文network file system nfs 是由sun公司研製的unix表示層協議 pressentation layer protocol 能讓使用者像訪問自己的計算機一樣訪問網路上的檔案。2.部署步驟 1 準備兩台伺服器 以ce...