NFS由SUN公司開發(fā),目前已經(jīng)成為文件服務(wù)的一種標(biāo)準(zhǔn)(RFC1904,RFC1813)。其最大功能是可以通過(guò)網(wǎng)絡(luò)讓不同操作系統(tǒng)的計(jì)算機(jī)可以共享數(shù)據(jù),所以也可以將其看做是一臺(tái)文件服務(wù)器,如圖1-1所示。NFS提供了除Samba之外,Windows與Linux及UNIX與Linux之間通信的方法。
圖1-1 NFS可作為文件服務(wù)器 |
客戶端PC可以掛載NFS服務(wù)器所提供的目錄并且掛載之后這個(gè)目錄看起來(lái)如同本地的磁盤分區(qū)一樣,可以使用cp、cd、mv、rm及df等與磁盤相關(guān)的命令。NFS有屬于自己的協(xié)議與使用的端口號(hào),但是在傳送資料或者其他相關(guān)信息時(shí)候,NFS服務(wù)器使用一個(gè)稱為"遠(yuǎn)程過(guò)程調(diào)用"(Remote Procedure Call,RPC)的協(xié)議來(lái)協(xié)助NFS服務(wù)器本身的運(yùn)行。
1.1.2 為何使用NFS
NFS的目標(biāo)是使計(jì)算機(jī)共享資源,在其發(fā)展過(guò)程中(即20世紀(jì)80年代),計(jì)算機(jī)工業(yè)飛速發(fā)展,廉價(jià)CPU及客戶端/服務(wù)器技術(shù)促進(jìn)了分布式計(jì)算環(huán)境的發(fā)展。然而當(dāng)處理器價(jià)格下降時(shí),大容量的存儲(chǔ)系統(tǒng)相對(duì)而言價(jià)格仍居高不下。因此必須采用某種機(jī)制在充分發(fā)揮單個(gè)處理器性能的同時(shí)使計(jì)算機(jī)可共享存儲(chǔ)資源和數(shù)據(jù),于是NFS應(yīng)運(yùn)而生。
1.1.3 NFS協(xié)議
使用NFS,客戶端可以透明地訪問(wèn)服務(wù)器中的文件系統(tǒng),這不同于提供文件傳輸?shù)腇TP協(xié)議。FTP會(huì)產(chǎn)生文件一個(gè)完整的副本;NFS只訪問(wèn)一個(gè)進(jìn)程引用文件部分,并且一個(gè)目的就是使得這種訪問(wèn)透明。這就意味著任何能夠訪問(wèn)一個(gè)本地文件的客戶端程序不需要做任何修改,就應(yīng)該能夠訪問(wèn)一個(gè)NFS文件。
NFS是一個(gè)使用SunRPC構(gòu)造的客戶端/服務(wù)器應(yīng)用程序,其客戶端通過(guò)向一臺(tái)NFS服務(wù)器發(fā)送RPC請(qǐng)求來(lái)訪問(wèn)其中的文件。盡管這一工作可以使用一般的用戶進(jìn)程來(lái)實(shí)現(xiàn),即NFS客戶端可以是一個(gè)用戶進(jìn)程,對(duì)服務(wù)器進(jìn)行顯式調(diào)用,而服務(wù)器也可以是一個(gè)用戶進(jìn)程。因?yàn)閮蓚€(gè)理由,NFS一般不這樣實(shí)現(xiàn)。首先訪問(wèn)一個(gè)NFS文件必須對(duì)客戶端透明,因此NFS的客戶端調(diào)用是由客戶端操作系統(tǒng)代表用戶進(jìn)程來(lái)完成的;其次,出于效率的考慮,NFS服務(wù)器在服務(wù)器操作系統(tǒng)中實(shí)現(xiàn)。如果NFS服務(wù)器是一個(gè)用戶進(jìn)程,每個(gè)客戶端請(qǐng)求和服務(wù)器應(yīng)答(包括讀和寫的數(shù)據(jù))將不得不在內(nèi)核和用戶進(jìn)程之間進(jìn)行切換,這個(gè)代價(jià)太大。第3版的NFS協(xié)議在1993年發(fā)布,圖1-2所示為一個(gè)NFS客戶端和一臺(tái)NFS服務(wù)器的典型結(jié)構(gòu)。
圖1-2 NFS客戶端和NFS服務(wù)器的典型結(jié)構(gòu) |
(1)訪問(wèn)一個(gè)本地文件還是一個(gè)NFS文件對(duì)于客戶端來(lái)說(shuō)是透明的,當(dāng)文件被打開時(shí),由內(nèi)核決定這一點(diǎn)。文件被打開之后,內(nèi)核將本地文件的所有引用傳遞給名為"本地文件訪問(wèn)"的框中,而將一個(gè)NFS文件的所有引用傳遞給名為"NFS客戶端"的框中。
(2)NFS客戶端通過(guò)其TCP/IP模塊向NFS服務(wù)器發(fā)送RPC請(qǐng)求,NFS主要使用UDP,最新的實(shí)現(xiàn)也可以使用TCP。
(3)NFS服務(wù)器在端口2049接收作為UDP數(shù)據(jù)包的客戶端請(qǐng)求,盡管NFS可以被實(shí)現(xiàn)為使用端口映射器,允許服務(wù)器使用一個(gè)臨時(shí)端口,但是大多數(shù)實(shí)現(xiàn)都是直接指定UDP端口2049。
(4)當(dāng)NFS服務(wù)器收到一個(gè)客戶端請(qǐng)求時(shí),它將這個(gè)請(qǐng)求傳遞給本地文件訪問(wèn)例程,然后訪問(wèn)服務(wù)器主機(jī)上的一個(gè)本地的磁盤文件。
(5)NFS服務(wù)器需要花一定的時(shí)間來(lái)處理一個(gè)客戶端的請(qǐng)求,訪問(wèn)本地文件系統(tǒng)一般也需要一部分時(shí)間。在這段時(shí)間間隔內(nèi),服務(wù)器不應(yīng)該阻止其他客戶端請(qǐng)求。為了實(shí)現(xiàn)這一功能,大多數(shù)的NFS服務(wù)器都是多線程的--服務(wù)器的內(nèi)核中實(shí)際上有多個(gè)NFS服務(wù)器在NFS本身的加鎖管理程序中運(yùn)行,具體實(shí)現(xiàn)依賴于不同的操作系統(tǒng)。既然大多數(shù)UNIX內(nèi)核不是多線程的,一個(gè)共同的技術(shù)就是啟動(dòng)一個(gè)用戶進(jìn)程(常被稱為"nfsd")的多個(gè)實(shí)例。這個(gè)實(shí)例執(zhí)行一個(gè)系統(tǒng)調(diào)用,使其作為一個(gè)內(nèi)核進(jìn)程保留在操作系統(tǒng)的內(nèi)核中。
通用Internet文件系統(tǒng)
在windows主機(jī)之間進(jìn)行網(wǎng)絡(luò)文件共享是通過(guò)使用微軟公司自己的CIFS服務(wù)實(shí)現(xiàn)的?!?/p>
CIFS 是一個(gè)新提出的協(xié)議,它使程序可以訪問(wèn)遠(yuǎn)程Internet計(jì)算機(jī)上的文件并要求此計(jì)算機(jī)的服務(wù)。CIFS 使用客戶/服務(wù)器模式??蛻舫绦蛘?qǐng)求遠(yuǎn)在服務(wù)器上的服務(wù)器程序?yàn)樗峁┓?wù)。服務(wù)器獲得請(qǐng)求并返回響應(yīng)。CIFS是公共的或開放的SMB協(xié)議版本,并由Microsoft使用。SMB協(xié)議現(xiàn)在是局域網(wǎng)上用于服務(wù)器文件訪問(wèn)和打印的協(xié)議。象SMB協(xié)議一樣,CIFS在高層運(yùn)行,而不象TCP/IP協(xié)議那樣運(yùn)行在底層。CIFS可以看做是應(yīng)用程序協(xié)議如文件傳輸協(xié)議和超文本傳輸協(xié)議的一個(gè)實(shí)現(xiàn)。
CIFS 可以使您達(dá)到以下功能:
1.訪問(wèn)服務(wù)器本地文件并讀寫這些文件
2.與其它用戶一起共享一些文件塊
3.在斷線時(shí)自動(dòng)恢復(fù)與網(wǎng)絡(luò)的連接
4.使用西歐字符文件名
一般來(lái)說(shuō),CIFS使用戶得到比FTP更好的對(duì)文件的控制。它提供潛在的更直接地服務(wù)器程序接口,這比使用HTTP協(xié)議的瀏覽器更好。CIFS最典型的應(yīng)用是windows用戶能夠從“網(wǎng)上鄰居”中找到網(wǎng)絡(luò)中的其他主機(jī)并訪問(wèn)其中的共享文件夾.
聯(lián)系客服