簡易 NFS 伺服器設定(zt)

tonykorn97發表於2006-07-12

轉貼地址:

圖形介面:system-config-nfs

命令: /etc/rc.d/init.d/portmap start 啟動 portmap

/etc/rc.d/init.d/nfs start 啟動 nfs

主要內容:


NFS 啟動的 RPC daemons
 
NFS server 總共需要啟用到至少兩個 daemons ,一個管理 Client 是否可以登入的問題,另一個管理登入主機後的 Client 能夠使用的檔案許可權!如果您還要管理 quota 的話,那麼 NFS 還會自動的再載入其它相關的 RPC program 呢!我們這裡以最簡單的方式來設定 NFS,說明如下:

    • rpc.nfsd:這個 daemon 主要的功能就是在管理 Client 是否能夠登入主機的許可權啦,其中還包含這個登入者的 ID 的判別喔!
    • rpc.mountd:這個 daemon 主要的功能,則是在管理 NFS 的檔案系統哩!當 Client 端順利的透過 rpc.nfsd 而登入主機之後,在他可以使用 NFS server 提供的檔案之前,還會經過檔案使用許可權 ( 就是那個 -rwxrwxrwx 與 owner, group 那幾個許可權啦 ) 的認證程式!他會去讀 NFS 的設定檔 /etc/exports來比對 Client 的許可權,當透過這一關之後, Client 就可以取得使用 NFS 檔案的許可權啦!(注:這個也是我們用來管理 NFS 分享之目錄的使用許可權與安全設定的地方哩!)

需要的套件

要啟動 NFS 我們必須要有兩個套件才行,分別是:

    • nfs-utils nfs-utils-clients (有時後僅有一個)
    • portmap
  • portmap
    就如同剛剛提的到,我們的 NFS 其實可以被視為一個 RPC server program,而要啟動任何一個 RPC server program 之前,我們都需要做好 port 的對應 ( mapping ) 的工作才行,這個工作其實就是『 portmap 』這個服務所負責的!也就是說,在啟動任何一個 RPC server 之前,我們都需要啟動 portmap 才行呢!那麼這個 portmap 到底在幹嘛呢?就如同這個服務的名稱,哈哈!就是作 port 的 mapping 啊!舉個例子來說:當 Client 端嘗試來使用 RPC server 所提供的服務時,由於 Client 需要取得一個可以連線的 port 才能夠使用 RPC server 所提供的服務,因此, Client 首先就會去跟 portmap 講『喂!可不可以通知一下,給我個 port number ,好讓我可以跟 RPC 聯絡吧!』這個時候 portmap 就自動的將自己管理的 port mapping 告知 Client ,好讓他可以連線上來 server 呢!所以囉:『啟動 NFS 之前,請先啟動 portmap !』
  • nfs-utils:
    就是提供 rpc.nfsd 及 rpc.mountd 這兩個 NFS daemons 與其它相關 documents 與說明檔案、執行檔等的套件!這個就是 NFS 的主要套件啦!一定要有喔!

好了,知道我們需要這兩個套件之後,現在幹嘛?!趕快去您的系統先用 RPM 看一下有沒有這兩個套件啦!沒有的話趕快用 RPM 去安裝喔!不然就玩不下去了!

例題:
請問我的主機是以 RPM 為套件管理的 Linux distribution ,例如 Red Hat, Mandrake 與 OpenLinux 等版本,那麼我要如何知道我的主機裡面是否已經安裝了 portmap 與 nfs 相關的套件呢?
答:

簡單的使用 rpm -qa | grep nfs 與 rpm -qa | grep portmap 即可知道啦!
 

Server 端的設定:

NFS 的套件結構
 
NFS 這個咚咚真的是很簡單,上面我們提到的 NFS 套件中,設定檔只有一個,執行檔案也不多,記錄檔案也三三兩兩而已吶!趕緊先來看一看吧! ^_^
 

    • /etc/exports:這個檔案就是 NFS 的主要設定檔了!不過,系統並沒有預設值,所以這個檔案『不一定會存在』,所以您必須要使用 vi 主動的建立起這個檔案喔!我們等一下要談的設定也僅只是這個檔案而已吶!
       
    • /usr/sbin/exportfs:這個是維護 NFS 分享資源的指令,我們可以利用這個指令重新分享 /etc/exports 變更的目錄資源、將 NFS Server 分享的目錄解除安裝或重新分享等等,這個指令是 NFS 系統裡面相當重要的一個喔!至於指令的用法我們在底下會再介紹。
       
    • /usr/sbin/showmount:這是另一個重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 則主要用在 Client 端。這個 showmount 可以用來察看 NFS 分享出來的目錄資源喔!
       
    • /var/lib/nfs/xtab:這個檔案則是主要的 NFS 的紀錄檔案咯!當我們的 NFS 分享出目錄資源後,到底有哪些 Client 端曾經連線上我們的 NFS 主機呢?呵呵!就是看這個檔案的內容即可囉! ^_^

 
就說不難吧!主要就是這幾個囉!
 


主機的規劃技巧建議
 
如果您的工作環境中,具有多部的 Linux 主機,並且預計彼此分享出目錄時,那麼在安裝 Linux distribution 的時候,最好可以規劃出一塊 partition 作為預留之用。因為『 NFS 可以針對目錄來分享』,因此,您可以將預留的 partition 掛載在任何一個掛載點,再將該掛載點(就是目錄啦!)由 /etc/exports 的設定中分享出去,那麼整個工作環境中的其它 Linux 主機就可以使用該 NFS 主機的那塊預留的 partition 了!所以,在主機的規劃上面,主要需要留意的只有 partition 而已。此外,由於分享的 partition 可能較容易被入侵,最好可以針對該 partition 設定比較嚴格的引數在 /etc/fstab 當中喔!
 


設定流程(/etc/exports)
 
我們在原理的部分對於 NFS 稍微解釋了一下,哇!怎麼看起來好像粉難喔!其實一點也不!為什麼呢?因為 portmap 只要一支 scripts 就可以啟動, NFS 只要設定一個檔案就可以順利運作!那麼怎麼能說不簡單呢!呵呵!這個 NFS 真是他 X 的太太太.....簡單了~在開始 NFS 之前,讓我們先以 Windows 的系統當中的『資源共享』來說明一下整個流程吧:
 

5. Windows Server 上面,開啟檔案總管,在某個目錄上面按右鍵選擇啟動資源共享;

6. 在資源共享的容當中,需要設定『使用者許可權』( Windows 2000 為例 )

7. Client 端需要登入 Windows server 時,需要啟動『網路上的芳鄰』來尋找可用的網路上面分享的目錄,然後點選該目錄,若可以登入該 Windows server 時,則可以依據步驟一的許可權使用該目錄下的檔案!

 
呵呵!沒錯! NFS 的整個流程也差不多是這樣:
 

    • 首先,需要確認一下您的 Linux 主機是否可以支援 NFS 這項服務,然後再設定一下使用者的來源IP或主機名稱以及分享出去的目錄的許可權,之後呢,啟動 NFS 即可將剛剛設定的目錄給他分享出去了!
    • 那麼在 Client 端怎麼使用這個分享出來的目錄?就是先以 showmount 這支程式檢查 Linux Server 是否有可以使用的 NFS 目錄,如果有的話,就將他 mount 在本機上面,如果可以 mount ,那麼就可以使用 NFS 主機提供的資源了!

 
哈哈!果然很簡單吧!所以底下我們就來一個一個步驟的說明一下 NFS 怎麼設定囉:
 

    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245365/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章