1. 程式人生 > >14.1-14.3 NFS介紹,服務端安裝,客戶端掛載NFS

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

NFS NFS客戶端掛載 NFS服務端安裝

14.1 NFS介紹


NFS是Network File System的縮寫

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

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

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


NFS架構

技術分享圖片

應用場景:

A B C為別是三臺機器

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

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


NFS原理圖

技術分享圖片

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

rpcbind監聽111端口

NFS服務需要借助RPC協議實現通信


14.2 NFS服務端安裝配置

大綱

技術分享圖片

準備工作:

2臺或以上linux機器

centos7-01(192.168.189.128)客戶端

centos7-02(192.168.189.129)服務端

*以下全部操作都在服務端操作

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

[root@centos7-01 ~]# yum install -y nfs-utils rpcbindc

[root@centos7-02 ~]# yum install -y nfs-utils rpcbindc

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

[root@centos7-01 ~]#vim /etc/exports //加入如下內容

/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

格式解釋:

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

第一部分是本地要分享出去的目錄(如果不存在,需要自行創建)

第二部分是允許訪問的主機(可以是一個IP,也可以是一個IP段)

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

3 啟動服務

3.1 啟動服務之前的準備

[root@centos7-01 ~]#mkdir /home/nfstestdir創建分享目錄

[root@centos7-01 ~]#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 啟動rpc服務

#systemctl start nfs啟動nfs服務

#systemctl enable rpcbind 開機啟動rpc服務

#systemctl enable nfs開機啟動nfs服務(服務端)



14.3 NFS配置選項

大綱

技術分享圖片

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

[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

大綱

技術分享圖片

1 安裝nfs-utils包

#yum install -y nfs-utils

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

[root@centos7-02 ~]# showmount -e 192.168.189.128

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

報錯提示,網絡不通,通訊失敗(原因:防火墻、rpc的端口沒被監聽)

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

[root@centos7-01 home]# systemctl stop firewalld

[root@centos7-01 home]# setenforce 0

[root@centos7-02 home]# systemctl stop firewalld

[root@centos7-02 home]# setenforce 0

2.2 關閉防火墻後,再次showmount

[root@centos7-02 ~]# showmount -e 192.168.189.128

Export list for 192.168.189.128:

/home/nfstestdir 192.168.189.0/24

關閉防火墻後正常輸出,可以看到狀態信息和服務端的NFS設置一樣

3 掛載NFS

[root@centos7-02 ~]# mount -t nfs 192.168.189.128:/home/nfstestdir /mnt/

3.1 檢查掛載

[root@centos7-02 ~]# 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 在客戶端上創建文件

[root@centos7-02 ~]# cd /mnt/

[root@centos7-02 mnt]# touch client.test

[root@centos7-02 mnt]# 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搭建成功。

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