NFS(NetworkFileSystem)即網(wǎng)絡(luò)文件系統(tǒng)。
主要功能:通過網(wǎng)絡(luò)(局域網(wǎng))讓不同的主機(jī)系統(tǒng)之間可以共享文件或目錄。
主要用途:NFS網(wǎng)絡(luò)文件系統(tǒng)一般被用來存儲(chǔ)共享視頻,圖片,附件等靜態(tài)資源文件。
NFS存儲(chǔ)服務(wù)
無NFS文件共享存儲(chǔ)
當(dāng)用戶A通過互聯(lián)網(wǎng)上傳文件時(shí),經(jīng)過負(fù)載均衡,隨機(jī)或者定向分配到某個(gè)節(jié)點(diǎn)。但是當(dāng)用戶B去下載這個(gè)文件的時(shí)候,并不確定會(huì)向哪個(gè)節(jié)點(diǎn)發(fā)送請(qǐng)求,這樣會(huì)導(dǎo)致用戶存在一定幾率下載不到的情況。
有NFS文件共享存儲(chǔ)
當(dāng)用戶A通過互聯(lián)網(wǎng)上傳文件時(shí),經(jīng)過負(fù)載均衡,無論發(fā)送到哪個(gè)節(jié)點(diǎn)都會(huì)被存儲(chǔ)到NFS文件服務(wù)器。但是當(dāng)用戶B去下載這個(gè)文件的時(shí)候,任何節(jié)點(diǎn)都可以讀取NFS文件服務(wù)器的文件。
NFS服務(wù)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
- 簡單容易上手
- 方便部署非常快速,維護(hù)十分簡單
- 節(jié)省本地存儲(chǔ)空間將常用的數(shù)據(jù)存放在一臺(tái)服務(wù)器可以通過網(wǎng)絡(luò)訪問
缺點(diǎn)
- 在高并發(fā)下NFS效率/性能有限
- NFS的數(shù)據(jù)是明文的,對(duì)數(shù)據(jù)完整性不做驗(yàn)證
- 多臺(tái)機(jī)器掛載NFS服務(wù)器時(shí),連接管理維護(hù)麻煩
- 容易發(fā)生單點(diǎn)故障,如果服務(wù)端宕機(jī),所有客戶端將不能訪問
- 客戶端沒用用戶認(rèn)證機(jī)制,且數(shù)據(jù)是通過明文傳送,安全性一般(一般建議在局域網(wǎng)內(nèi)使用)
RPC工作流程
NFS支持的功能非常多,不同的功能會(huì)有不同的服務(wù)來完成,很多服務(wù)都需要監(jiān)聽在一些端口,其中的很多端口并不是固定的。這些服務(wù)在啟動(dòng)時(shí),都需要向rpcbind服務(wù)注冊(cè)一個(gè)端口,rpcbind服務(wù)隨機(jī)選取一個(gè)未被使用的端口予以分配。rpcbind服務(wù)監(jiān)聽在111端口,所以rpcbind的主要功能就是指定每個(gè)RPCservice對(duì)應(yīng)的portnumber,并且通知給客戶端,讓客戶端連接到正確的端口上去。
客戶端向NFS服務(wù)器端請(qǐng)求的步驟:
首先用戶訪問網(wǎng)站程序,由程序在NFS客戶端上發(fā)出存取NFS文件的請(qǐng)求,這是NFS客戶端的RPC服務(wù)就不通過網(wǎng)絡(luò)向NFS服務(wù)器端的RPC服務(wù)的111端口發(fā)出NFS文件存取功能的查詢請(qǐng)求,包括要實(shí)現(xiàn)的什么功能。
NFS服務(wù)器端的RPC服務(wù)找到對(duì)應(yīng)的已注冊(cè)的NFS端口,通知NFS客戶端的RPC服務(wù)。
此時(shí)NFS客戶端獲取到正確的端口,并與NFS聯(lián)機(jī)存取數(shù)據(jù)。
NFS客戶端把數(shù)據(jù)存取成功后,返回給客戶端程序,告知用戶存取結(jié)果。
注意:由于rpcservice在啟動(dòng)時(shí)需要向rpcbind注冊(cè)端口,所以rpcbind要先啟動(dòng)。另外若rpcbind重新啟動(dòng),原來注冊(cè)的數(shù)據(jù)也會(huì)不見,因此一但rpcbind重新啟動(dòng),讓所管理的服務(wù)因?yàn)樾枰匦聠?dòng)以重新向rpcbind注冊(cè)。
NFS服務(wù)器端配置
NFS服務(wù)器:192.168.1.180
檢查并安裝NFS
如果沒有,安裝NFS服務(wù)器所需的軟件包,實(shí)際上需要安裝兩個(gè)包nfs-utils(nfs服務(wù)主程序)和rpcbind(rpc主程序),不過當(dāng)使用yum安裝nfs-utils時(shí)會(huì)把rpcbind一起安裝上。
yuminstall-ynfs-utils
配置說明
/etc/sysconfig/nfs#NFS的主配置文件
/etc/exports#配置共享目錄的文件
/etc/exports的配置格式:
nfs共享目錄nfs客戶端地址1(參1,參2.....)客戶端地址2(參1,參2...)
說明:
nfs共享目錄:為nfs服務(wù)器要共享的實(shí)際目錄,絕對(duì)目錄。注意權(quán)限問題。
nfs客戶端地址:為nfs服務(wù)器授權(quán)可以訪問的客戶端的地址,可以是單獨(dú)的ip地址或主機(jī)名,域名。也可以是整個(gè)網(wǎng)段。
授權(quán)整個(gè)網(wǎng)段:eg:10.0.0.0/24
文件配置實(shí)例說明:
/data/fileserver192.168.1.190(rw,sync,no_root_squash)
若服務(wù)器端對(duì)/etc/exports文件進(jìn)行了修改,可以通過exportfs命令重新加載服務(wù)而不需要重啟服務(wù)。若重啟服務(wù)需要重新向prcbind注冊(cè),而且對(duì)客戶端的影響也很大,所以盡量使用exportfs命令來使配置文件生效。
相關(guān)參數(shù)(manexports)
A.選項(xiàng):選項(xiàng)用來設(shè)置輸出目錄的訪問權(quán)限、用戶映射等。
- 設(shè)置輸出目錄只讀:ro
- 設(shè)置輸出目錄讀寫:rw
B.用戶映射選項(xiàng)
- all_squash:將遠(yuǎn)程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
- no_all_squash:與all_squash取反(默認(rèn)設(shè)置);
- root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認(rèn)設(shè)置);
- no_root_squash:與rootsquash取反;
- anonuid=xxx:將遠(yuǎn)程訪問的所有用戶都映射為匿名用戶,并指定該用戶為本地用戶(UID=xxx);
- anongid=xxx:將遠(yuǎn)程訪問的所有用戶組都映射為匿名用戶組賬戶,并指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
C.其它選項(xiàng)
- secure:限制客戶端只能從小于1024的tcp/ip端口連接nfs服務(wù)器(默認(rèn)設(shè)置);
- insecure:允許客戶端從大于1024的tcp/ip端口連接服務(wù)器;
- sync:將數(shù)據(jù)同步寫入內(nèi)存緩沖區(qū)與磁盤中,效率低,但可以保證數(shù)據(jù)的一致性;
- async:將數(shù)據(jù)先保存在內(nèi)存緩沖區(qū)中,必要時(shí)才寫入磁盤;
- wdelay:檢查是否有相關(guān)的寫操作,如果有則將這些寫操作一起執(zhí)行,這樣可以提高效率(默認(rèn)設(shè)置);
- no_wdelay:若有寫操作則立即執(zhí)行,應(yīng)與sync配合使用;
- subtree:若輸出目錄是一個(gè)子目錄,則nfs服務(wù)器將檢查其父目錄的權(quán)限(默認(rèn)設(shè)置);
- no_subtree:即使輸出目錄是一個(gè)子目錄,nfs服務(wù)器也不檢查其父目錄的權(quán)限,這樣可以提高效率;
啟動(dòng)NFS服務(wù)端上nfs服務(wù)
1.先為rpcbind和nfs做開機(jī)啟動(dòng):
systemctlenablerpcbind.servicesystemctlenablenfs-server.service
2、然后分別啟動(dòng)rpcbind和nfs服務(wù):
systemctlstartrpcbind.servicesystemctlstartnfs-server.service
查看服務(wù)是否啟動(dòng)
使用exportfs查看本機(jī)上已經(jīng)共享的目錄:
exportfs
NFS客戶端配置
NFS客戶端:192.168.1.190
安裝nfs,并啟動(dòng)服務(wù)。
yuminstall-ynfs-utilssystemctlenablerpcbind.servicesystemctlstartrpcbind.service
客戶端不需要啟動(dòng)nfs服務(wù),只需要啟動(dòng)rpcbind服務(wù)。
檢查NFS服務(wù)器端是否有目錄共享
showmount-e192.168.1.180
掛載遠(yuǎn)程服務(wù)
mount-tnfs192.168.1.180:/data/fileserver/data/itstyle
查看掛載
df-h
開機(jī)掛載,編輯/etc/fstab
vim/etc/fstab加入以下內(nèi)容:
_netdev明確說明這是網(wǎng)絡(luò)文件系統(tǒng),避免網(wǎng)絡(luò)啟動(dòng)前掛載出現(xiàn)錯(cuò)誤。
保存后,重新掛載/etc/fstab里面的內(nèi)容。
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Javaweb項(xiàng)目實(shí)例視頻教程,NFS文件服務(wù)器”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Javaweb項(xiàng)目相關(guān)視頻教程
MVC架構(gòu):http://www.bjpowernode.com/javavideo/123.html
CRM項(xiàng)目:http://www.bjpowernode.com/javavideo/124.html