天天看點

NFS(NFS介紹,NFS服務端和用戶端配置)

一、NFS服務介紹

NFS是 Network File system的縮寫

分為2.3.4三個版本,2和3由sun公司起草開發,4.0開始netapp公司參與并主導開發

NFS資料傳輸基于RPC協定:

應用場景:A,B,C三台機器上需要保證被通路到的檔案是一樣的,A共享資料出來,B和C分别取挂載A共享的資料目錄,進而B和C通路到的資料和A上的一緻。

NFS(NFS介紹,NFS服務端和用戶端配置)

NFS原理圖:(NFS服務不監聽任何端口,但是RPC服務中的子產品,rpcbind預設監聽111端口,)

NFS(NFS介紹,NFS服務端和用戶端配置)

二、NFS服務端和用戶端配置

[root@litongyao ~]# yum install -y nfs-utils         (用戶端和服務端都要按章這個包)

接下來在服務端編輯:

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

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

# 第一段來定義共享目錄的絕對路徑  第二段指定ip和一些選項

# rw 讀寫

# ro 隻讀

# sync 同步模式,記憶體資料實時寫入磁盤

# async 非同步模式

# no_root_squash 用戶端挂載NFS共享目錄後,root使用者不受限制,權限很大

# root_squash 與上面選項相對,用戶端上的root使用者收到限制,被限定成某個普通使用者

# all_squash 用戶端上所有使用者在使用NFS共享目錄時都被限定為一個普通使用者

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

儲存配合檔案以後,因為共享目錄不存在,是以做以下操作。

[root@fuwuduan ~]# mkdir /home/nfstestdir                       (建立共享目錄)

[root@fuwuduan ~]# chmod 777 /home/nfstestdir/                    (權限設定為777)

我們可以看一下監聽的端口

[root@fuwuduan ~]# netstat -lntp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      4451/rpcbind   

rpcbind監聽的111端口。

啟動服務并設定開機啟動:

[root@fuwuduan ~]# systemctl start nfs

[root@fuwuduan ~]# systemctl enable nfs

Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

檢視程序

[root@fuwuduan ~]# ps ax |grep nfs

 6209 ?        S<     0:00 [nfsd4_callbacks]

 6215 ?        S      0:00 [nfsd]

 6216 ?        S      0:00 [nfsd]

 6217 ?        S      0:00 [nfsd]

 6218 ?        S      0:00 [nfsd]

 6219 ?        S      0:00 [nfsd]

 6220 ?        S      0:00 [nfsd]

 6221 ?        S      0:00 [nfsd]

 6222 ?        S      0:00 [nfsd]

 6264 pts/1    R+     0:00 grep --color=auto nfs

用戶端操作:

[root@kehu ~]# showmount -e 192.168.52.101     (檢視遠端共享資訊)

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

我們發現報錯,這是由于網絡不通造成,是由防火牆導緻我,是以我們把用戶端和服務端的防火牆和selinux關閉

[root@fuwuduan ~]# systemctl stop firewalld

[root@fuwuduan ~]# setenforce 0

下面就可以正常了。

[root@kehu ~]# showmount -e 192.168.52.101    (我們可以看到ip為101的機器上為我們共享的目錄)

Export list for 192.168.52.101:

/home/nfstestdir 192.168.52.100/24

挂載目錄并與遠端共享目錄同步:

[root@kehu ~]# mount -t nfs 192.168.52.101:/home/nfstestdir /mnt/  (指定格式是nfs)

檢視挂載目錄:

[root@kehu ~]# df -h

檔案系統                         容量  已用  可用 已用% 挂載點

/dev/sda3                         18G  4.7G   14G   27% /

devtmpfs                         483M     0  483M    0% /dev

tmpfs                            493M     0  493M    0% /dev/shm

tmpfs                            493M   13M  480M    3% /run

tmpfs                            493M     0  493M    0% /sys/fs/cgroup

/dev/sda1                        197M  109M   88M   56% /boot

tmpfs                             99M     0   99M    0% /run/user/0

192.168.52.101:/home/nfstestdir   18G  3.6G   15G   20% /mnt

實驗:

在用戶端建立一個檔案,看看服務端有沒有

本文轉自 小新銳 51CTO部落格,原文連結:http://blog.51cto.com/13407306/2061707,如需轉載請自行聯系原作者

繼續閱讀