了解最新公司動(dòng)態(tài)及行業(yè)資訊
一、NFS 協(xié)議
NFS 服務(wù)工作在 TCP 的 2049 端口和 UDP 的 2049 端口。
NFS是File的縮寫,即 File ,是分布式文件系統(tǒng)中使用的一種協(xié)議。作用是讓不同的機(jī)器和不同的操作系統(tǒng)通過(guò)網(wǎng)絡(luò)共享各自的數(shù)據(jù),使客戶端可以通過(guò)網(wǎng)絡(luò)訪問(wèn)位于服務(wù)器磁盤中的數(shù)據(jù),是Unix之間實(shí)現(xiàn)磁盤文件共享的一種方法類系統(tǒng)。.
此 NFS 服務(wù)器允許您的 PC 將網(wǎng)絡(luò)上遠(yuǎn)程 NFS 服務(wù)器共享的目錄掛載到本地計(jì)算機(jī)。在本地機(jī)器上,遠(yuǎn)程主機(jī)的目錄看起來(lái)就像它自己的磁盤分區(qū)槽。
1.1 工作原理
因?yàn)镹FS支持的功能相當(dāng)多,而且不同的功能會(huì)使用不同的程序來(lái)啟動(dòng),所以每次啟動(dòng)一個(gè)功能,都會(huì)啟用一些端口來(lái)傳輸數(shù)據(jù)。因此,NFS功能對(duì)應(yīng)的端口不是固定的,而是隨機(jī)選擇一些小于1024的未使用端口進(jìn)行傳輸。但這在客戶端要連接服務(wù)器的時(shí)候也會(huì)帶來(lái)麻煩,因?yàn)榭蛻舳吮仨氈婪?wù)器的相關(guān)端口才能連接!
NFS 在文件傳輸或信息傳輸過(guò)程中依賴于 RPC 協(xié)議。RPC 是 Call 的縮寫,是一種使客戶端能夠在其他系統(tǒng)中執(zhí)行程序的機(jī)制。RPC的主要作用是指定每個(gè)NFS函數(shù)對(duì)應(yīng)的端口號(hào),并上報(bào)給客戶端,以便客戶端連接到正確的端口。
NFS本身不提供信息傳輸?shù)膮f(xié)議和功能,但是NFS允許我們通過(guò)網(wǎng)絡(luò)共享數(shù)據(jù),因?yàn)镹FS使用了一些其他的傳輸協(xié)議。而這些傳輸協(xié)議使用這個(gè) RPC 功能??梢哉f(shuō)NFS本身就是一個(gè)使用RPC的程序服務(wù)器運(yùn)維,或者說(shuō)NFS也是一個(gè)RPC。所以只要使用了NFS,就必須啟動(dòng)RPC服務(wù),不管是NFS還是NFS。這樣就可以通過(guò)RPC來(lái)實(shí)現(xiàn)PORT的對(duì)應(yīng)。RPC和NFS的關(guān)系可以這樣理解:NFS是一個(gè)文件系統(tǒng),RPC負(fù)責(zé)信息的傳遞。
事實(shí)上,很多這樣的服務(wù)器都注冊(cè)了RPC,例如NIS()也是RPC的一種。
RPC 是如何知道每個(gè) NFS 的端口的?
客戶端如何與 NFS 服務(wù)器交換數(shù)據(jù)?
1.2 激活 NFS 服務(wù)
NFS 服務(wù)需要激活幾個(gè)重要的 RPC 守護(hù)進(jìn)程
工作過(guò)程
nfs— => => => nfs-(nfsd)
(1)rpc.nfsd
(2)rpc.
主要功能
請(qǐng)求過(guò)程
注意:NFS 需要兩個(gè)套件
NFS 服務(wù)的主要套件
為兩個(gè) NFS 守護(hù)程序 rpc.nfsd 和 rpc. 以及其他相關(guān)文檔和文檔、可執(zhí)行文件等提供包。
主要負(fù)責(zé)RPC端口與守護(hù)進(jìn)程的映射關(guān)系,即
在激活任何 RPC 之前,我們需要激活它
1.3 版本比較
NFS 是一個(gè)網(wǎng)絡(luò)文件系統(tǒng)。自 1985 年推出以來(lái),已經(jīng)發(fā)布了三個(gè)版本:NFSv2、NFSv3、NFSv4,NFSv4 包含兩個(gè)次要版本 NFSv4.0 和 NFSv4.1。經(jīng)過(guò)20多年的發(fā)展,NFS發(fā)生了很大的變化。最大的變化是發(fā)起人已經(jīng)從Sun改變了。NFSv2和NFSv3基本由Sun起草,從NFSv4.0參與,主導(dǎo)NFSv4.1標(biāo)準(zhǔn)制定過(guò)程,Sun已被收購(gòu)。
1. 。NFSv3
協(xié)議特性
區(qū)分差異
3. NFSv4.0 協(xié)議特性差異
(1) NFSv4 增加了安全性并支持 -GSS 身份驗(yàn)證。
(2) NFSv4被設(shè)計(jì)成有狀態(tài)協(xié)議,實(shí)現(xiàn)了文件鎖功能和獲取文件系統(tǒng)根節(jié)點(diǎn)的功能。
(3) NFSv4 只提供了 NULL 和 2 個(gè)請(qǐng)求,所有操作都集成在其中??蛻舳丝梢愿鶕?jù)實(shí)際請(qǐng)求將多個(gè)操作封裝成一個(gè)請(qǐng)求,增加了靈活性。
(4)NFSv4文件系統(tǒng)的命令空間發(fā)生變化服務(wù)器運(yùn)維,服務(wù)器必須設(shè)置根文件系統(tǒng)(fsid=0),其他文件系統(tǒng)掛載導(dǎo)出到根文件系統(tǒng)上)。
(5) NFSv4 支持。由于多個(gè)客戶端可以掛載同一個(gè)文件系統(tǒng),為了保持文件同步,NFSv3 中的客戶端需要頻繁向服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求文件屬性信息,并判斷其他客戶端是否有修改如果文件系統(tǒng)是只讀的,或者客戶端不經(jīng)常修改文件,頻繁向服務(wù)器請(qǐng)求文件屬性信息會(huì)降低系統(tǒng)性能,NFSv4可以依靠文件同步的實(shí)現(xiàn)。
(6) NFSv4修改了文件屬性的表示。由于NFS是Sun公司開(kāi)發(fā)的文件系統(tǒng),設(shè)計(jì)的NFS文件屬性指的是UNIX中的文件屬性,可能沒(méi)有某些屬性,所以NFS與操作系統(tǒng)的兼容性系統(tǒng)不是很好。
4. NFSv4.1
二、NFS 服務(wù)
以 NFSv4 作為默認(rèn)版本,NFSv4 使用 TCP 協(xié)議(??端口號(hào)為 2049) 與 NFS 服務(wù)器建立連接。
#?系統(tǒng)環(huán)境
系統(tǒng)平臺(tái):CentOS release 7.0?(Final)
NFS Server IP:192.168.10.10
防火墻已關(guān)閉/iptables:?Firewall?is?not?running.
SELINUX=disabled
2.1 安裝NFS服務(wù)服務(wù)器客戶端
查看 NFS 服務(wù)端口
#?使用rpcinfo?-P會(huì)發(fā)現(xiàn)rpc啟動(dòng)了很多監(jiān)聽(tīng)端口
[root@localhost?~]#?rpcinfo?-p?localhost
???program?vers?proto???port??service
????100000????4???tcp????111??portmapper
????100000????2???udp????111??portmapper
????100005????1???udp??49979??mountd
????100005????1???tcp??58393??mountd
????100003????2???tcp???2049??nfs
????100227????2???tcp???2049??nfs_acl
????......
#?添加如下
[root@localhost?~]#?vim?/etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
啟動(dòng)服務(wù)
[root@localhost?~]#?service?nfs?start
Starting?NFS?services:????????[OK]
Starting?NFS?quotas:??????????[OK]
Starting?NFS?mountd:??????????[OK]
Starting?NFS?daemon:??????????[OK]
Starting?NFS?idmapd:??????????[OK]
2.2 服務(wù)文件配置
我們可以定義要共享的目錄和對(duì)應(yīng)的權(quán)限,格式為“共享目錄的路徑允許訪問(wèn)NFS客戶端(共享權(quán)限參數(shù))”
[root@localhost?~]#?cat?/etc/exports
/nfsfile?192.168.10.*(rw,sync,root_squash)
/tmp/serverdir?192.168.174.132(rw,sync,no_root_squash)?192.168.174.133(ro,sync,no_root_squash)
三、實(shí)戰(zhàn)演示
有興趣可以試試:兩臺(tái)web服務(wù)器,共享關(guān)系數(shù)據(jù)庫(kù),共享NFS服務(wù)器,使用DNS記錄輪詢提供負(fù)載均衡。
第 1 步:機(jī)器設(shè)置
主機(jī)名 操作系統(tǒng) IP 地址 NFS 服務(wù)器 RHEL 7192.168.10.10NFS 客戶端 RHEL 7192.168.10. 20
#?清空NFS服務(wù)器上面iptables防火墻的默認(rèn)策略,以免默認(rèn)的防火墻策略禁止正常的NFS共享服務(wù)
[root@localhost?~]#?iptables?-F
[root@localhost?~]#?service?iptables?save
iptables:?Saving?firewall?rules?to?/etc/sysconfig/iptables:[?OK?]
第二步:創(chuàng)建共享目錄
[root@localhost?~]#?mkdir?/nfsfile
[root@localhost?~]#?chmod?-Rf?777?/nfsfile
[root@localhost?~]#?echo?"welcome?to?localhost.com"?>?/nfsfile/readme
第三步:編輯配置文件 /etc/
#?把/nfsfile目錄共享給192.168.10.0/24網(wǎng)段內(nèi)的所有主機(jī),讓這些主機(jī)都擁有讀寫權(quán)限
[root@localhost?~]#?vim?/etc/exports
/nfsfile?192.168.10.*(rw,sync,root_squash)
第四步:?jiǎn)?dòng)并啟用 NFS 服務(wù)程序
[root@localhost?~]#?systemctl?restart?rpcbind
[root@localhost?~]#?systemctl?enable?rpcbind
[root@localhost?~]#?systemctl?start?nfs-server
[root@localhost?~]#?systemctl?enable?nfs-server
ln?-s?'/usr/lib/systemd/system/nfs-server.service'?'/etc/systemd/system/nfs.target.wants/nfs-server.service'
第 5 步:配置 NFS 客戶端
命令
參數(shù)功能 -e 顯示 NFS 服務(wù)器的共享列表 -a 顯示本機(jī)掛載的文件資源情況 NFS 資源情況 -v 顯示版本號(hào)
命令
#?查看NFS服務(wù)器端共享的文件系統(tǒng)
#?showmount?-e?NFSSERVER_IP
[root@localhost?~]#?showmount?-e?192.168.10.10
Export?list?for?192.168.10.10:
/nfsfile?192.168.10.*
#?NFS客戶端創(chuàng)建一個(gè)掛載目錄,掛載服務(wù)端NFS文件系統(tǒng)到本地
#?mount?-t?nfs?SERVER:/path/to/sharedfs??/path/to/mount_point
[root@localhost?~]#?mkdir?/nfsfile
[root@localhost?~]#?mount?-t?nfs?192.168.10.10:/nfsfile?/nfsfile
#?掛載成功后就應(yīng)該能夠順利地看到在執(zhí)行前面的操作時(shí)寫入的文件內(nèi)容了
[root@localhost?~]#?cat?/nfsfile/readme
welcome?to?linuxprobe.com
#?如果希望NFS文件共享服務(wù)能一直有效,則需要將其寫入到fstab文件中
#?SERVER:/PATH/TO/EXPORTED_FS??/mount_point??nfs??defaults,_netdev??0??0
[root@localhost?~]#?vim?/etc/fstab
/dev/mapper/rhel-root?/?xfs?defaults?1?1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b?/boot?xfs?defaults?1?2
/dev/mapper/rhel-swap?swap?swap?defaults?0?0
/dev/cdrom?/media/cdrom?iso9660?defaults?0?0
192.168.10.10:/nfsfile?/nfsfile?nfs?defaults?0?0
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)