linux服務之NFS服務篇


一、概念

NFSNetwork File Server 網絡文件系統(映射)。網絡文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS NFS允許一個系統在網絡上與他人共享目錄和文件。

作用:用於Linux系統間進行文件共享

優點:配置簡單,使用方便

缺點:兼容性差,安全性低

應用:機房集群內部的服務器共享,企業里常用nfs搭建存儲系統(盤陣系統)

模式:C/S 模式

端口:NFS通常運行於2049端口

二、部署NFS

注意:

1、由於在使用NFS服務進行文件共享之前,需要使用RPCRemote Procedure Call,遠程過程調用)服務將NFS服務器的IP地址和端口號等信息發送給客戶端。所以,在啟動nfs之前,需要先查詢rpcbind狀態,如果該服務為停止狀態,需要先啟用rpcbind,再啟用nfs

2、圖形界面會自帶nfs,所以無需執行第一步驟,最小化安裝時,客戶端和服務端都需要安裝;

3、步驟中的掛載,需在客戶端上執行;

4、在設置掛載目錄時,需要注意絕對路徑,且該目錄是否允許訪問;

5設置共享目錄的權限時,除了服務權限,還要注意系統權限。

搭建步驟:

1、下載安裝

# yum install nfs-utils -y

2、啟動

# systemctl start nfs #開啟后最好查詢一下狀態:systemctl status nfs

3、配置

# vim /etc/exports

/PATH HOSTNAMErw/ro

共享地址 客戶機的IP  共享權限

/ken 172.20.10.7(rw) #給特定的ip共享,rw表示權限

/data *(rw) #給所有ip 共享   

/data 172.20.10.0/28(rw)  #把網段共享出去 28表示掩碼 

/data 172.20.10.0/28(rw)  192.168.64.0/24(rw)  #設置多個網絡

注意:* 表示對所有網段開放權限

nfs也可以共享多個目錄

/ken 192.168.64.5(rw)

/test 192.168.64.7(rw)

4、刷新

# exportfs -r

更改屬主:#chown -R nfsnobody:nfsnobody /home/renyz

或者更改權限:#chmod 757 /home/renyz

5、客戶端掛載使用(客戶端需要下載nfs-utils

# mount -t nfs ServerIP:/PATH /LocalIDIR

# mount 服務機IP/共享目錄 /本地目錄

# showmount -e ServerIP  #查看共享

6、開機自動掛載

服務機IP/共享目錄 /本地目錄 nfs default 0 0 /etc/fstab

三、autofs(客戶端操作)

nfs 是長連接的服務(客戶端掛載完成之后,客戶端與服務端之間連接一直保持,不管有無數據傳輸)

優點:響應速度快;缺點:浪費資源

自動掛載取消掛載的服務(15分鍾后自動解掛)

1、安裝

# yum install autofs -y

2、配置主配文件

# vim /etc/auto.master

/misc   /etc/auto.misc

#客戶端掛載點目錄 /etc/auto.misc

# 陷阱        規則文件

# 進入左邊的路徑將執行右邊的規則

3、配置規則文件

# vim /etc/auto.misc

觸發點 執行規則(命令)

cd  -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

1   -fstype=nfs,rw  192.168.11.3:/renyz/1

2   -fstype=nfs,rw  192.168.11.3:/renyz/2

4、重啟autofs服務

# systemctl restart autofs

5、測試

四、SSH

SSHSecure Shell縮寫,由IETF的網絡小組所制定。SSH為建立在應用層基礎上的安全協議。SSH是目前較可靠的,為遠程登錄會話和其他網絡服務提供安全性的協議。

使用格式:ssh USERNAME@HOSTNAME

注意:其中USERNAME是服務端的用戶名稱,HOSTNAME是服務器的訪問地址。

五、掛載問題一

1、問題起因:

在配置好一台NFS服務器,建立好分享目錄,刷新配置以后,在另一台客戶機中使用showmount -e 出現報錯:

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

2、問題原因:

服務端的防火牆上默認沒有開啟nfs服務相應的端口

3、解決辦法:

(1)簡單粗暴地關閉防火牆

systemctl stop firewalld

如果開啟了iptables的話,也是一樣的,iptables的策略里也默認不會為nfs服務開啟需要的端口

systemctl stop iptables

(2)在防火牆上開啟端口

在設置了防火牆的環境中使用NFS,需要在防火牆上打開如下端口:

1. portmap 端口 111 udp/tcp;
2. nfsd 端口 2049 udp/tcp;
3. mountd 端口 "xxx" udp/tcp
系統 RPC服務在 nfs服務啟動時默認會為 mountd動態選取一個隨機端口(32768--65535)來進行通訊,我們可以通過編輯/etc/services 文件為 mountd指定一個固定端口:
# vim /etc/services
在末尾添加

mountd 1011/udp mountd 1011/tcp

wq退出保存該文件

# stopsrc -s rpc.mountd
# startsrc -s rpc.mountd
# exportfs -a
# rpcinfo -p Hostname
現在我們會發現 mountd已經和端口 1011綁定了。

另外,nfs中需要通訊的服務還有 rpc.lockd和 rpc.statd,其中對lockd我們可以用類似的方法來指定固定端口,
# vim /etc/services
添加

lockd 35000/ucp lockd 35000/tdp

# stopsrc -s rpc.lockd

# startsrc -s rpc.lockd
# exportfs -a
nfs客戶端mount文件系統
# rpcinfo -p Hostname

但 rpc.statd無法通過該方法來指定端口,它只能使用隨機端口,如有必要,在防火牆上要根據下面命令的顯示來開放隨機端口:

# no -a |grep ephemeral
tcp_ephemeral_high = 65535
tcpp_ephemeral_low = 32768
udp_ephemeral_high = 65535
udp_ephemeral_low = 32768

當然也可以不開放 rpc.statd需要的隨機端口,帶來的影響就是如果 nfs連接中斷(比如server或client宕掉了),系統將無法通過statd來恢復連接中斷前的狀態,而必須重新 mount該nfs文件系統。

有關statd的詳細功能說明,請參閱 http://publib.boulder.ibm.com/infocenter/
pseries/v5r3/topic/com.ibm.aix.cmds/doc/aixcmds5/statd.htm

六、掛載問題二

用mount掛載時卻出現“access denied by server while mounting”這個錯誤;

原因及解決辦法:

1、使用了非法端口,也就是使用了大於1024的端口。
這個錯誤,可以通過查看日志確認:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.0.100 for /home/nfsshare/ (/home/nfsshare): illegal port 1689
解決辦法:
修改配置文件/etc/exports,加入 insecure 選項,重啟nfs服務,再嘗試掛載。
/home/nfsshare/  *(insecure,rw,async,no_root_squash)
2、NFS版本問題
編輯/etc/sysconfig/nfs文件,找到下面:

#Turn off v2 and v3 protocol support 
#RPCNFSDARGS="-N 2 -N 3" 
#Turn off v4 protocol support 
#RPCNFSDARGS="-N 4"  /*把這句前面的#號去掉*/

最后保存,重啟nfs服務,再嘗試掛載;如果掛載不上,可嘗試在后面加-o nolock參數。
3、查看客戶端掛載的目錄是否具備讀寫權限,添加相應權限即可。
4、nfs服務器上的/etc/hosts中設置了客戶端機器IP對應域名,去掉即可。
通過以上這幾種方法,access denied by server while mounting這個錯誤應該可以得到解決了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM