|
一、簡介 網(wǎng)絡文件系統(tǒng)(NFS)是一種在網(wǎng)絡上的機器間共享文件的方法,文件就如同位于客戶的本地硬盤驅動器上一樣。 Red Hat Linux 既可以是 NFS 服務器也可以是 NFS 客戶,這意味著它可以把文件系統(tǒng)導出給其它系統(tǒng), 也可以掛載從其它機器上導入的文件系統(tǒng) 網(wǎng)絡文件系統(tǒng)(NFS),起初由 Sun 微系統(tǒng)公司進行開發(fā),后經(jīng) IETF 擴展, 現(xiàn)在能夠支持在不同類型的系統(tǒng)之間通過網(wǎng)絡進行文件共享。換言之, NFS 可用于不同類型計算機、操作系統(tǒng)、網(wǎng)絡架構和傳輸協(xié)議運行環(huán)境中的網(wǎng)絡文件遠程訪問和共享。 NFS 使用客戶端/服務器架構,并由一個客戶端程序和服務器程序組成。 服務器程序向其它計算機提供對文件系統(tǒng)的訪問,其過程就叫做“輸出”。 NFS 客戶端程序對共享文件系統(tǒng)進行訪問時,把它們從 NFS 服務器中“輸送”出來。 NFS 傳輸協(xié)議用于服務器和客戶機之間文件訪問和共享的通信, 該協(xié)議還支持服務器通過輸出控制向一組受到限制的客戶計算機分配遠程訪問特權。 NFS 版本2,是 NFS 最早被廣泛應用的版本,起初完全運行于 UDP 協(xié)議之上,并且不保留狀態(tài)。 幾大廠商擴展了 NSF 版本2,使之支持 TCP 傳輸。NFS 版本3整合了 TCP 傳輸。 使用了 TCP 傳輸后,使得廣域網(wǎng)中的 NFS 應用更為靈活。 在繼承了以前版本優(yōu)點的基礎之上,目前,NFS 版本4在功能上有如下的改進: * 提高了經(jīng)由 Internet 進行訪問的性能。本協(xié)議能夠很容易地通過防火墻; 在等待時間較長時帶寬較小的情況下,其性能優(yōu)越;且每臺服務器所連接用戶的數(shù)目可擴展到相當大的數(shù)目。 * 將許可條款內(nèi)置到協(xié)議之中,安全性得到了極大的加強。在對遠程過程調(diào)用(RPC) PRCSEC_GSB 協(xié)議的支持上, 本協(xié)議則建立在 ONCRPC 工作組的工作之上。另外,NFS 版本4支持客戶機與服務器之間的安全對話, 并要求客戶機和服務器支持最簡單的安全計劃。 * 支持擴展協(xié)議。本協(xié)議接受所支持協(xié)議的標準擴展,而不是打折的向后兼容。 NFS 與 UNIX 系統(tǒng)息息相關,盡管它可以用于任何平臺中, 如 Macintosh 和 Microsoft Windows 操作系統(tǒng)。 服務器消息塊協(xié)議(SMB)和國際互聯(lián)網(wǎng)普通文件系統(tǒng)(CIFS)是 NFS 的類似協(xié)議, 在 Microsoft Windows 平臺中,擁有著對等的網(wǎng)絡文件系統(tǒng)應用。 二、好處 以下是NFS最顯而易見的好處: 1.本地工作站使用更少的磁盤空間,因為通常的數(shù)據(jù)可以存放在一臺機器上而且可以通過網(wǎng)絡訪問到。 2.用戶不必在每個網(wǎng)絡上機器里頭都有一個home目錄。Home目錄 可以被放在NFS服務器上并且在網(wǎng)絡上處處可用。 3.諸如軟驅,CDROM,和 Zip(是指一種高儲存密度的磁盤驅動器與磁盤)之類的存儲設備可以在網(wǎng)絡上面被別的機器使用。 這可以減少整個網(wǎng)絡上的可移動介質(zhì)設備的數(shù)量。 三、組成 NFS至少有兩個主要部分: 一臺服務器和一臺(或者更多)客戶機。 客戶機遠程訪問存放在服務器上的數(shù)據(jù)。為了正常工作,一些進程需要被配置并運行。 四、應用 NFS 有很多實際應用。下面是比較常見的一些: 1.多個機器共享一臺CDROM或者其他設備。這對于在多臺機器中安裝軟件來說更加便宜跟方便。 2.在大型網(wǎng)絡中,配置一臺中心 NFS 服務器用來放置所有用戶的home目錄可能會帶來便利。 這些目錄能被輸出到網(wǎng)絡以便用戶不管在哪臺工作站上登錄,總能得到相同的home目錄。 3.幾臺機器可以有通用的/usr/ports/distfiles 目錄。 這樣的話,當您需要在幾臺機器上安裝port時,您可以無需在每臺設備上下載而快速訪問源碼。 五、NFS的安裝 RedHad默認已經(jīng)安裝了NFS,如果沒裝需手動安裝如下5個rpm包: setup-*: 共享NFS目錄在/etc/exports中定義 initscripts-*: 包括引導過程中裝載網(wǎng)絡目錄的基本腳本 nfs-utils-*: 包括基本的NFS命令與監(jiān)控程序 portmap-*: 支持安全NFS RPC服務的連接 quota-*: 網(wǎng)絡上共享的目錄配額,包括rpc.rquotad (這個包不是必須的) 六、NFS服務端 1. 配置 (服務端配置,在需要共享文件系統(tǒng)的主機上進行的操作) 編輯/etc/exports文件添加共享目錄: /home/stb 192.168.1.235(rw,sync,no_root_squash) /home/stb 192.168.1.170(rw,sync,no_root_squash) /home/stb 192.168.1.31(rw,sync,no_root_squash) 注釋: /home/stb為對外共享的目錄; 192.168.1.235為需要掛載共享目錄的主機(客戶端)的ip地址; ()內(nèi)為opitons; rw: 可讀寫的權限; ro: 只讀的權限; no_root_squash: 登入到NFS主機的用戶如果是ROOT用戶,他就擁有ROOT的權限r(nóng)oot_squash: 在登入 NFS 主機使用目錄的使用者如果是 root 時,那么這個使用者的權限 sync: 資料同步寫入存儲器中。 async: 資料會先暫時存放在內(nèi)存中,不會直接寫入硬盤。 2. NFS服務端的啟動 $ service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] Starting RPC idmapd: [ OK ] $ service nfs restart $ service nfs stop $ service nfs reload //當修改過/etc/exports文件后不用重啟服務可執(zhí)行該命令 啟動時報錯: Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp). [FAILED] Starting NFS daemon: [FAILED] 這時候應該先啟動portmap 然后啟動nfs即可! $ service portmap start 3. NFS服務端卸載 如果不想再使用已掛載的NFS輸出目錄,可用umount命令來卸載該目錄。 例如, 要卸載前面掛載的/mnt/nfs目錄,可使用下面的命令。 $ umount /mnt/nfs 如果當前還有客戶端正在連接NFS服務器,此時要想將NFS服務器所在的主機關機,應先關掉portmap和nfs這兩個服務, 否則可能要等待很久才能正常關機。 如果無法正確地將potrmap和nfs這兩個服務關掉,那么可先用命令netstat -utlp找出它們的PID, 然后使用kill命令殺掉,這樣才能正常關機。 當然,還可以先用exportfs -auv命令將當前主機中NFS服務器的所有輸出目錄停止掉,再關機。 七、客戶端的掛載 1. 通過mount命令掛載 $ mkdir /mnt/stb $ mount 192.168.1.162:/home/stb /mnt/stb $ mount -t nfs 192.168.1.162:/home/stb /mnt/stb -o nolock NOTE: 其中客戶端必須有/mnt/stb目錄; 在本地文件系統(tǒng)的 /mnt/stb 目錄中不應該有子目錄; mount時出錯: 1). mount.nfs: Input/output error 解決: 在客戶端也需啟動portmap 2). mount: 192.168.1.111:/utuLinux failed, reason given by server: Permission denied 查看配置文件exports,是否為允許掛載的客戶。 3). mount: RPC: Unable to receive; errno = No route to host 首先看是否在同一網(wǎng)段; 再者輸入: [root@localhost etc]# service iptables status 看防火墻是否開啟,有則將其關閉 [root@localhost etc]# service iptables stop 4). mount: RPC: Unable to receive; errno = Connection refused 首先看nfs服務是否開啟,其次看rpcbind是否開啟,如果rpcbind沒有運行,那在重新開啟rpcbind后,要再restart nfs服務, 因為重啟rpcbind已對nfs的一些配置造成影響,需要restart. 2.使用/etc/fstab來掛載NFS 要掛載其他機器上的NFS共享的另一種方法是在/etc/fstab文件中添加一行, 必須是根用戶才能修改/etc/fstab文件. 在這一行中必須聲明: NFS服務器的主機名:要導出的目錄 要掛載NFS共享的本地機器目錄 nfs options /etc/fstab中每行的一般語法如下所示: server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr 注釋: 掛載點/pub在客戶端機器上必須存在. 在客戶端系統(tǒng)的/etc/fstab文件中添加這一行后, 在shell提示下鍵入命令 $ mount /pub 將會從服務器中掛載的掛載點/pub. 3.使用autofs來掛載NFS 掛載NFS共享的第3種方法是使用autofs, 它使用automount守護進程來管理掛載點,只在文件系統(tǒng)被訪問時才動態(tài)地掛載. autofs咨詢主映射配置文件/etc/auto.master來決定要定義哪些掛載點, 然后使用適用于各個掛載點的參數(shù)來啟動automount守護進程. 主映射配置中的每一行都定義一個掛載點, 一個分開的映射文件定義在該掛載點下要掛載的文件系統(tǒng). 如/etc/auto.misc文件可能會定義/misc目錄中的掛載點,這種關系在/etc/auto.master文件中會被定義. auto.master文件中的每個項目都有3個字段, 第1個字段是掛載點; 第2個字段是映射文件的位置; 第3個字段可選,可以包括超時數(shù)值之類的信息. 例如, 要在客戶端機器上的 /opt/myproj 掛載點上 掛載遠程服務端機器penguin.example.net中的 /opt/proj52 目錄, Step1. 在客戶端的 /etc/auto.master 文件中添加或修改以下行: /opt /etc/auto.misc --timeout 60 Step2. 在客戶端的 /etc/auto.misc 文件中添加以下行: myproj -rw,soft,intr,rsize=8192,wsize=8192 penguin.example.net:/opt/proj52 /etc/auto.misc中: 第1個字段是/opt/下,子目錄的名稱,該目錄被automount動態(tài)地創(chuàng)建,它不應該在客戶端機器上實際存在; 第2個字段包括掛載選項,如rw代表讀寫訪問權, 第3個字段是要導出的NFS的位置,包括主機名和目錄. Step3. autofs是一種服務,要啟動這項服務, 在shell提示下鍵入以下命令: $ /sbin/service autofs restart Step4. 要查看活躍的掛載點,在shell提示下鍵入以下命令: $ /sbin/service autofs status Step5. 如果在autofs運行時修改了/etc/auto.master配置文件, 則必須在shell提示下鍵入以下命令來通知automount守護進程重新載入配置文件: $ /sbin/service autofs reload NOTE: A. 目錄 /opt 在本地文件系統(tǒng)中必須存在. B. 要先啟動服務 portmap 才能成功掛載; 4. 客戶端卸載 如果不想再使用已掛載的NFS輸出目錄,可用umount命令來卸載該目錄。 例如, 要卸載前面掛載的/mnt/nfs目錄,可使用下面的命令。 $ umount /mnt/nfs 如果當前還有客戶端正在連接NFS服務器,此時要想將NFS服務器所在的主機關機,應先關掉portmap這個服務, 5. 補充: 如果nfs的服務器和客戶端不在同一網(wǎng)段,一定要給客戶端所在網(wǎng)段的出口加上權限; 比如: nfs服務器在192.168.1.0網(wǎng)段,客戶端在3.0網(wǎng)段, 但是通過192.168.1.48與1.0網(wǎng)段通信,這時要給1.48加上權限; |
|
|