14.1-14.3 NFS介紹,服務端安裝,客戶端掛載NFS

14.1 NFS介紹linux


  • NFS是Network File System的縮寫vim

  • NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本centos

  • NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。bash

  • NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致網絡


NFS架構架構

blob.png

應用場景:app

A B C爲別是三臺機器async

他們分別須要訪問同一個目錄,且目錄中都是圖片。傳統的作法就是把這些圖片分別放到A,B,C中,tcp

但若使用NFS,只須要把圖片放到A上,而後A共享給B和C便可。訪問B和C時,是經過網絡的方式去訪問A上的那個目錄的。ide


NFS原理圖

blob.png

NFS服務端 啓動NFS服務,利用RPC服務(啓動rpcbind,實現RPC通訊)去提供NFS客戶端使用NFS服務

rpcbind監聽111端口

NFS服務須要藉助RPC協議實現通訊


14.2 NFS服務端安裝配置

大綱

blob.png

準備工做:

2臺或以上linux機器 

centos7-01(192.168.189.128)客戶端

centos7-02(192.168.189.129)服務端

*如下所有操做都在服務端操做

1 先在服務端和客戶端安裝兩個包

yum install -y nfs-utils rpcbindc

2 安裝完成後,編輯exports文件

vim /etc/exports //加入以下內容
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

格式解釋:

以空格(空格鍵)分割,分爲三部分

第一部分是本地要分享出去的目錄(若是不存在,須要自行建立)

第二部分是容許訪問的主機(能夠是一個IP,也能夠是一個IP段)

第三部分是小括號裏面的權限選項。

3 啓動服務

3.1 啓動服務以前的準備

mkdir /home/nfstestdir    
#建立分享目錄
chmod 777 /home/nfstestdir    
#賦予777權限,方便後面測試權限經過

檢查監聽端口,看看rpcbind監聽端口狀態

[root@centos7-01 ~]# netstat -lntp |grep 111
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd

其實111端口就是rpcbind的服務,這裏顯示systemd並不表明rpcbind沒被監聽,

只需記住111端口就是rpcbind服務使用便可。

3.2 啓動服務

systemctl start rpcbind 
systemctl start nfs 
systemctl enable rpcbind 
systemctl enable nfs

以上命令依次順序是:啓動rpc服務  啓動nfs服務 開機啓動rpc服務 開機啓動nfs服務(服務端)


14.3 NFS配置選項

大綱

blob.png

先看看服務端配置的參數選項

[root@centos7-01 home]# cat /etc/exports
/home/nfstestdir 192.168.189.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

選項解釋:

 rw 讀寫

 ro 只讀

 sync 同步模式,內存數據實時寫入磁盤(下降磁盤效率)

 async 非同步模式,表示把內存中的數據按期寫入磁盤。(好處:保證磁盤效率,壞處:斷電可能會丟失某部分數據)

 no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大

 root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶

 all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶

 anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid


客戶端掛載NFS

大綱

blob.png

1 安裝nfs-utils包

yum install -y nfs-utils

2 查看指定ip掛載服務狀態,下面的ip爲NFS服務端ip

# showmount -e 192.168.189.128
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

報錯提示,網絡不通,通信失敗(緣由:防火牆、rpc的端口沒被監聽)

2.1 關閉客戶端與服務端的防火牆服務

systemctl stop firewalld
setenforce 0
systemctl stop firewalld
setenforce 0

2.2 關閉防火牆後,再次showmount

showmount -e 192.168.189.128
Export list for 192.168.189.128:
/home/nfstestdir 192.168.189.0/24

關閉防火牆後正常輸出,能夠看到狀態信息和服務端的NFS設置同樣

3 掛載NFS

mount -t nfs 192.168.189.128:/home/nfstestdir /mnt/

3.1 檢查掛載

#df -h
文件系統                          容量  已用  可用 已用% 掛載點
/dev/sda3                          28G  1.1G   27G    4% /
devtmpfs                          483M     0  483M    0% /dev
tmpfs                             493M     0  493M    0% /dev/shm
tmpfs                             493M  6.8M  486M    2% /run
tmpfs                             493M     0  493M    0% /sys/fs/cgroup
/dev/sda1                         187M   97M   91M   52% /boot
tmpfs                              99M     0   99M    0% /run/user/0
192.168.189.128:/home/nfstestdir   28G  9.3G   19G   34% /mnt

3.2 在客戶端建立文件測試

3.2.1 在客戶端上建立文件

cd /mnt/
touch client.test
ls -l
總用量 0
-rw-r--r--. 1 user5 user5 0 5月   9 16:14 client.test

3.2.2 在服務端檢查文件是否被創建

[root@centos7-01 home]# cd /home/nfstestdir/
[root@centos7-01 nfstestdir]# ls -l
總用量 0
-rw-r--r-- 1 aming aming 0 5月   9 16:14 client.test

文件被建立,

但能夠看到客戶端建立的文件用戶名和組都不一樣。

緣由是:在服務端限定了uid和gid爲1000,因此 客戶端和服務端的用戶和用戶組是不一樣的。

服務端ID爲1000的用戶

[root@centos7-01 nfstestdir]# cat /etc/passwd |grep 1000
aming:x:1000:1000::/home/aming:/bin/bash

客戶端ID爲1000的用戶

[root@centos7-02 mnt]# cat /etc/passwd |grep 1000
user5:x:1000:1000::/home/user5:/bin/bash

由此能夠證實,NFS搭建成功。

相關文章
相關標籤/搜索