9.1 nfs介紹
站在用戶的角度思考問題,與客戶深入溝通,找到云巖網(wǎng)站設計與云巖網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋云巖地區(qū)。9.1.1 nfs特點
NFS(Network File System)即網(wǎng)絡文件系統(tǒng),是FreeBSD支持的文件系統(tǒng)中的一種,它允許網(wǎng)絡中的計算機之間通過TCP/IP網(wǎng)絡共享資源。
在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位于遠端NFS服務器上的文件,就像訪問本地文件一樣
nfs適用于Linux與Unix之間實現(xiàn)文件共享,不能實現(xiàn)Linux與Windows間的文件共享功能
nfs是運行在應用層的協(xié)議,其監(jiān)聽于2049/tcp和2049/udp套接字上
nfs服務只能基于IP進行認證,這也是它的缺點之一
9.1.2 使用nfs的好處
a) 節(jié)省本地存儲空間,將常用的數(shù)據(jù)存放在一臺NFS服務器上且可以通過網(wǎng)絡訪問,那么本地終端將可以減少自身存儲空間的使用
b) 用戶不需要在網(wǎng)絡中的每個機器上都建有Home目錄,Home目錄可以放在NFS服務器上且可以在網(wǎng)絡上被訪問使用
c) 一些存儲設備如軟驅(qū)、CDROM和Zip(一種高儲存密度的磁盤驅(qū)動器與磁盤)等都可以在網(wǎng)絡上被別的機器使用。這可以減少整個網(wǎng)絡上可移動介質(zhì)設備的數(shù)量
9.1.3 nfs的體系組成
nfs體系至少有兩個主要部分:
一臺NFS服務器
若干臺客戶機
nfs體系的架構(gòu)圖如下:
客戶機通過TCP/IP網(wǎng)絡遠程訪問存放在NFS服務器上的數(shù)據(jù)
在NFS服務器正式啟用前,需要根據(jù)實際環(huán)境和需求,配置一些NFS參數(shù)
9.1.4 nfs的應用場景
nfs有很多實際應用場景,以下是一些常用的場景:
a) 多個機器共享一臺CDROM或其他設備。這對于在多臺機器中安裝軟件來說更加便宜與方便
b) 在大型網(wǎng)絡中,配置一臺中心NFS服務器用來放置所有用戶的home目錄可能會帶來便利。這些目錄能被輸出到網(wǎng)絡以便用戶不管在哪臺工作站上登錄,總能得到相同的home目錄
c) 不同客戶端可在NFS上觀看影視文件,節(jié)省本地空間
d) 在客戶端完成的工作數(shù)據(jù),可以備份保存到NFS服務器上用戶自己的路徑下
9.2 nfs工作機制
nfs是基于rpc來實現(xiàn)網(wǎng)絡文件系統(tǒng)共享的。所以我們先來說說rpc
9.2.1 RPC
RPC(Remote Procedure Call Protocol),遠程過程調(diào)用協(xié)議,它是一種通過網(wǎng)絡從遠程計算機程序上請求服務,而不需要了解底層網(wǎng)絡技術(shù)的協(xié)議。
RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI網(wǎng)絡通信模型中,RPC跨越了傳輸層和應用層。
RPC采用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。
rpc工作機制如上圖所示,下面來描述一下它:
a) 客戶端程序發(fā)起一個RPC系統(tǒng)調(diào)用基于TCP協(xié)議發(fā)送給另一臺主機(服務端)
b) 服務端監(jiān)聽在某個套接字上,當收到客戶端的系統(tǒng)調(diào)用請求以后,將收到的請求和其所傳遞的參數(shù)通過本地的系統(tǒng)調(diào)用執(zhí)行一遍,并將結(jié)果返回給本地的服務進程
c) 服務端的服務進程收到返回的執(zhí)行結(jié)果后將其封裝成響應報文,再通過rpc協(xié)議返回給客戶端
d) 客戶端調(diào)用進程接收答復信息,獲得進程結(jié)果,然后調(diào)用執(zhí)行繼續(xù)進行
CentOS6中RPC服務的進程名是portmapper,可以通過rpcinfo -p查看當前系統(tǒng)使用的RPC服務名
9.2.2 NIS
NIS:Network Information System,網(wǎng)絡信息系統(tǒng),是對主機帳號等系統(tǒng)提供集中管理的網(wǎng)絡服務。
用戶登錄任何一臺NIS客戶機都會從NIS服務器進行登錄認證,可實現(xiàn)用戶帳號的集中管理
NIS協(xié)議是明文的,所以NIS一般不建議在公網(wǎng)中使用而通常在局域網(wǎng)中使用。
此章主要是講NFS,所以NIS的配置這里就不詳說了,有興趣的朋友可以去網(wǎng)上搜索
9.2.3 nfs工作機制
NFS服務器端運行著四個進程:nfsd,mountd,idmapd,portmapper
idmapd:實現(xiàn)用戶帳號的集中映射,把所有的帳號都映射為NFSNOBODY,但是在訪問時卻能以本地用戶的身份去訪問
mountd:用于驗證客戶端是否在允許訪問此NFS文件系統(tǒng)的客戶端列表中,在則允許訪問(發(fā)放一個令牌,持令牌去找nfsd),否則拒絕訪問
mountd的服務端口是隨機的,由rpc服務(portmapper)提供隨機端口號
nfsd:nfs的守護進程,監(jiān)聽在2049/tcp和2049/udp端口上
不負責文件存儲(由NFS服務器本地內(nèi)核負責調(diào)度存儲),用于理解客戶端發(fā)起的rpc請求,并將其轉(zhuǎn)交給本地內(nèi)核,而后存儲在指定的文件系統(tǒng)上
portmapper:NFS服務器的rpc服務,其監(jiān)聽于111/TCP和111/UDP套接字上,用于管理遠程過程調(diào)用(RPC)
下面通過一個例子來說明NFS的簡單工作流程:
需求:查看file文件的信息,此file存儲在遠程NFS服務端主機上(掛載在本地目錄/shared/nfs中)
(1)客戶端發(fā)起查看file信息的指令(ls file)給內(nèi)核,內(nèi)核通過NFS模塊得知此文件并不是本地文件系統(tǒng)中的文件,而是在遠程NFS主機上的一個文件
(2)客戶端主機的內(nèi)核通過RPC協(xié)議把查看file信息的指令(系統(tǒng)調(diào)用)封裝成rpc請求通過TCP的111端口發(fā)送給NFS服務端主機的portmapper
(3)NFS服務端主機的portmapper(RPC服務進程)告訴客戶端說NFS服務端的mountd服務在某某端口上,你去找它驗證
因為mountd在提供服務時必須要向portmapper注冊一個端口號,所以portmapper是知道其工作于哪個端口的
(4)客戶端得知服務端的mountd進程端口號后,通過已知的服務端mountd端口號請求驗證
(5)mountd收到驗證請求后驗證發(fā)起請求的客戶端是否在允許訪問此NFS文件系統(tǒng)的客戶端列表中,在則允許訪問(發(fā)放一個令牌,持令牌去找nfsd),否則拒絕訪問
(6)驗證通過后客戶端持mountd發(fā)放的令牌去×××端的nfsd進程,請求查看某文件
(7)服務端的nfsd進程發(fā)起本地系統(tǒng)調(diào)用,向內(nèi)核請求查看客戶端要查看的文件的信息
(8)服務端的內(nèi)核執(zhí)行nfsd請求的系統(tǒng)調(diào)用,并將結(jié)果返回給nfsd服務
(9)nfsd進程收到內(nèi)核返回的結(jié)果后將其封裝成rpc請求報文并通過tcp/ip協(xié)議返回給客戶端
9.3 nfs的配置
主配置文件:/etc/exports,文件中的項的格式相當簡單,要共享一個文件系統(tǒng),只要在文件中添加如下條目即可
directory(or file system) client1(option1,option2) client2(option1,option2)nfs主配置文件中的常用選項(option):
secure:這個選項是缺省項,它使用了1024以下的TCP/IP端口實現(xiàn)NFS的連接。指定insecure可以禁用這個選項
rw:允許NFS客戶機進行讀/寫訪問。缺省選項是只讀的
async:此選項可以改進性能,但如果沒有完全關(guān)閉NFS守護進程就重啟了NFS服務器,這也可能會造成數(shù)據(jù)丟失。
no_wdelay:此選項關(guān)閉寫延時。如果設置了async,那么NFS就會忽略此選項
nohide:若將一個目錄掛載到另一個目錄之上,則原來的目錄通常就被隱藏起來或看起來像空的一樣。要禁用這種行為,需啟用hide選項
no_subtree_check:此選項關(guān)閉子樹檢查,子樹檢查會執(zhí)行一些不想忽略的安全性檢查。缺省選項是啟用子樹檢查
no_auth_nlm:此選項可作為insecure_locks指定,它告訴NFS守護進程不要對加鎖請求進行認證。若關(guān)心安全性問題,就要避免使用此選項。缺省選項是auth_nlm或secure_locks
mp(mountpoint=path):通過顯式的聲明此選項,NFS要求掛載所導出的目錄
fsid=num:此選項通常在NFS故障恢復時使用。
用戶映射:
通過NFS中的用戶映射,可以將偽或?qū)嶋H用戶和組的標識賦給一個正在對NFS卷進行操作的用戶。這個NFS用戶具有映射所允許的用戶和組的許可權(quán)限。
對NFS卷使用一個通用的用戶/組可以提供一定的安全性和靈活性,而不會帶來很多管理負荷。
在使用NFS掛載的文件系統(tǒng)上的文件時,用戶的訪問通常都會受到限制,這就是說用戶都是以匿名用戶的身份來對文件進行訪問的,這些用戶缺省情況下對這些文件只有只讀權(quán)限。
這種行為對于root用戶來說尤其重要。然而,實際上的確存在這種情況:希望用戶以root用戶或所定義的其他用戶的身份訪問遠程文件系統(tǒng)上的文件。
NFS允許指定訪問遠程文件的用戶--通過用戶標識號(UID)和組標識號(GID),可以禁用正常的squash行為。
用戶映射的選項:
root_squash:此選項不允許root用戶訪問掛載上來的NFS卷
no_root_squash:此選項允許root用戶訪問掛載上來的NFS卷
all_squash:此選項對于公共訪問的NFS卷來說非常有用,它會限制所有的UID和GID,只使用匿名用戶。缺省設置是no_all_squash
anonuid和anongid:這兩個選項將匿名UID和GID修改成特定用戶和組帳號
查看NFS服務器端共享的文件系統(tǒng):
showmount -e NFSSERVER_IP掛載NFS文件系統(tǒng):
mount -t nfs SERVER:/path/to/sharedfs /path/to/mount_point開機自動掛載nfs:編輯/etc/fstab文件,添加如下格式的內(nèi)容
SERVER:/PATH/TO/EXPORTED_FS/mnt_pointnfsdefaults,_netdev0 0客戶端掛載時可以使用的特殊選項:
Client
Mounting remote directories
Before mounting remote directories 2 daemons should be started first:
rpcbind
rpc.statd
rsize:其值是從服務器讀取的字節(jié)數(shù)(緩沖)。默認為1024。若使用比較高的值,如8192,可以提高傳輸速度
wsize:其值是寫入到服務器的字節(jié)數(shù)(緩沖)。默認為1024。若使用比較高的值,如8192,可以提高傳輸速度
The timeo value is the amount of time, in tenths of a second, to wait before resending a transmission after an RPC timout.
After the first timeout, the timeout value is doubled for each retry for a maximum of 60 seconds or until a major timeout occurs.
If connecting to a slow server or over a busy network, better performance can be achiveved by increasing this timeout value.
The intr option allows signals to interrupt the file operation if a major timeout occurs for a hard-mounted share.
exportfs:維護exports文件導出的文件系統(tǒng)表的專用工具
export -ar:重新導出所有的文件系統(tǒng)
export -au:關(guān)閉導出的所有文件系統(tǒng)
export -u FS:關(guān)閉指定的導出的文件系統(tǒng)
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。