1 / 43

第 26 章

第 26 章. NFS 伺服器. 前言. 在 Windows 中 , 使用者可以透過 網路上的芳鄰 , 將其他電腦分享出來的目錄設為 『 網路磁碟機 』 。如此一來 , 遠端電腦的檔案目錄 , 就如同是本機的一個磁碟機 , 存取起來就方便多了。而在 Linux 系統中 , 也有類似的功能 , 那就是 NFS (Network File System, 網路檔案系統 ) 服務。本章就要介紹如何在 Linux 上設定 NFS 伺服器 , 以達到資源共享的目的。. 本章提要. 26-1 NFS 簡介 26-2 安裝與啟動 NFS 伺服器

garren
Download Presentation

第 26 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 26 章 NFS 伺服器

  2. 前言 • 在 Windows 中, 使用者可以透過網路上的芳鄰, 將其他電腦分享出來的目錄設為『網路磁碟機』。如此一來, 遠端電腦的檔案目錄, 就如同是本機的一個磁碟機, 存取起來就方便多了。而在 Linux 系統中, 也有類似的功能, 那就是NFS (Network File System, 網路檔案系統) 服務。本章就要介紹如何在 Linux上設定 NFS 伺服器, 以達到資源共享的目的。

  3. 本章提要 • 26-1 NFS 簡介 • 26-2 安裝與啟動 NFS 伺服器 • 26-3 設定 NFS 伺服器的分享目錄 • 26-4 由用戶端掛載 NFS 的目錄

  4. 26-1 NFS 簡介 • NFS 是由昇陽電腦公司 (Sun Microsystems) 發展出來的分散式檔案系統。 • 可讓使用者透過連接的網路, 將其他台電腦所分享的檔案目錄, 掛載到自己的系統下。使用者在操作這些檔案或目錄時, 感覺就如同是儲存在本機上一樣。 • 分享出目錄的一方稱為 NFS 伺服端, 而使用的一端稱為 NFS 用戶端。

  5. NFS 簡介 • 在下圖中, A 與 B 電腦皆設定了 NFS 伺服器 (稱為 NFS 伺服端), 並且分享出數個目錄。 • 而本機電腦則為 NFS 用戶端, 取用伺服端分享的資源, 例如 A 電腦的/mnt/cdrom 與 /home/tony 目錄, 分別被本機電腦掛載為 /dir1 與 /dir2, 而 B 電腦的 /var/ftp/pub 目錄, 被本機電腦掛載為 /dir3 目錄:

  6. NFS 簡介

  7. NFS 簡介 • 如此當使用者在本機上操作 /dir3 目錄, 例如執行 ls /dir3指令後, 所列出來的檔案, 實際上是存放在 B 電腦的 /var/ftp/pub 目錄中。因此若有需要, 我們可以將數台電腦的目錄, 掛載到本機的目錄下, 以方便作業。

  8. 26-2 安裝與啟動 NFS 伺服器 • NFS 的官方網站為 http://sourceforge.net/projects/nfs, 透過該網站可獲得有關 NFS 的詳細資訊, 也可以下載最新的版本。 • 目前, 大多數 Linux 發行版也都已經內附了 NFS 伺服器及用戶端程式。

  9. 安裝與啟動 NFS 伺服器 • 安裝 NFS • 檢查 RPC 程序是否已啟動 • RPC 未啟動的錯誤訊息 • 啟動 NFS 伺服器

  10. 安裝 NFS • 如果您在安裝系統時, 已經一併安裝了 NFS, 當然就不需要重新安裝了!如果不確定是否已安裝, 則請執行以下指令檢查:

  11. 安裝 NFS • 如果有顯示出上列套件的名稱, 則表示已經安裝 NFS 套件了。若沒有出現上列套件, 則請將 nfs-utils 套件所在的系統光碟放入光碟機, 掛載並切換到檔案所在的目錄下後, 依下列方式安裝:

  12. 檢查 RPC 程序是否已啟動 • 由於 NFS 是透過 RPC (遠端程序呼叫, Remote Procedure Call) 協定來存取遠端電腦的檔案, 因此系統中的 RPC 服務也必須啟動, NFS 伺服器才可以順利啟動。我們可以執行 rpcinfo -p指令來查看:

  13. 檢查 RPC 程序是否已啟動 • 啟動 NFS 伺服器後再執行 rpcinfo -p指令, 會列出更多的程序。 • 用 "rpcinfo -p 遠端主機名稱" 指令, 可查看遠端主機的 RPC 狀態。

  14. RPC 未啟動的錯誤訊息 • 如果在執行 rpcinfo -p指令時, 看到下面的訊息, 則表示 RPC 服務沒有啟動: • 此時您有兩種方法可啟動 portmapper 程序:

  15. RPC 未啟動的錯誤訊息 • 直接執行 /etc/rc.d/init.d/portmap start指令, 可指定現在立即啟動。 • 執行 chkconfig portmap on指令可設定開機時自動啟動。開機就會自動啟動了。

  16. 啟動 NFS 伺服器 • 安裝好 NFS 套件, 並啟動 portmapper 程序後, 接著就可以啟動 NFS 伺服器了。請如下操作:

  17. 啟動 NFS 伺服器

  18. 啟動 NFS 伺服器 • 如要關閉 NFS 伺服器, 可執行 /etc/rc.d/init.d/nfs stop指令。若要重新啟動 NFS 伺服器, 則請執行 /etc/rc.d/init.d/nfs restart指令。 • 若想設定開機時自動啟用 NFS 服務, 可執行 chkconfig nfs on指令設定。

  19. 26-3 設定 NFS 伺服器 的分享目錄 • 26-3-1 設定分享的目錄 • 26-3-2 將設定的目錄分享出去 • 不加入 /etc/exports 也可以分享

  20. 26-3-1 設定分享的目錄 • 要設定 NFS 伺服器分享的目錄, 則需使用 /etc/exports 這個檔案來控制。 • 我們先看看此檔的內容:

  21. 設定分享的目錄 • 在 /etc/exports 檔中預設沒有分享任何目錄, 我們可以依自己的需要來設定。 • 此檔案的寫法有一定的格式, 格式如下: • 下列為常用的權限設定項目 (同時使用兩項設定時, 兩者間請以逗號區隔):

  22. 設定分享的目錄 • ro:設定權限為唯讀。 • rw:設定權限為可讀寫。 • root_squash:設定使用者以 root 帳號登入時, 會被指定為預設的特定使用者, 以避免系統被入侵。此為預設值。 • no_root_squash:與上項相反, 設定允許使用 root 帳號存取 (建議不要使用此選項)。

  23. 設定分享的目錄 • async:使用 async 選項時, 可增加檔案的讀寫效率, 但是遇到當機時容易造成檔案損毀。 • sync:與上項相反。若不使用 async 項目, 請記得加上此項權限設定, 否則稍後執行 exportfs -v 指令時會出現警告訊息。

  24. 設定分享的目錄 • 以下舉幾個例子, 以供參考: • /var/ftp/pub *(sync) 表示所有的主機皆可存取此目錄,權限為唯讀 (ro) • /var/ftp/pub *(rw,sync) 表示所有的主機可讀寫 (rw) • /var/ftp/pub shadow(rw,sync) 允許 shadow 主機讀寫

  25. 設定分享的目錄 • /var/ftp/pub shadow.flag.com.tw (ro,sync) 允許 shadow.flag.com.tw 主機唯讀 • /var/ftp/pub shadow(rw,sync) kogi(rw,sync) 允許 shadow 與 kogi主機皆可讀寫 • /var/ftp/pub 203.74.205.0/255.255.255.0(ro,sync) 分享給所有在203.74.205 子網路的主機, 權限為唯讀

  26. 設定分享的目錄 • /var/ftp/pub *.flag.com.tw(rw,sync) 允許所有 flag.com.tw 網域的主機可讀寫 • 若您使用主機名稱, 如 shadow, 而不是如 shadow.flag.com.tw 的完整網址 , 需確定可在 DNS 或 /etc/hosts 查到其對應的 IP。

  27. 26-3-2 將設定的目錄分享出去 • 現在, 請依照您的需要, 設定分享的目錄。底下是筆者用來示範的例子:

  28. 將設定的目錄分享出去 • 編輯完 /etc/exports 檔之後, 還需要執行 exportfs指令, 處理剛才的設定。 • 請如下操作:

  29. 將設定的目錄分享出去 • 如果在轉換的過程中出現錯誤訊息, 則請仔細檢查是否語法有錯, 或是不該空格的地方多出了空格。只有當所有訊息都正確時, 才表示設定完成。 • 如果 /etc/exports 檔有誤或未執行 exportfs 指令轉換, 則在使用 mount指令掛載時, 會出現 "Permission denied" 的訊息。

  30. 將設定的目錄分享出去 • exportfs指令的用處是維護 NFS 分享的目錄:當您執行此指令時, 系統會將 /etc/exports 的內容寫到 /var/lib/nfs/etab 檔中。 • 而用戶端要掛載伺服端的目錄時, NFS 伺服器會去查看 etab 檔的內容, 以決定該目錄被用戶端掛載後的限制。

  31. 不加入 /etc/exports 也可以分享 • 如果臨時要分享一個目錄給某一台電腦, 可以直接使用 exportfs指令, 而不需重新編寫/etc/exports 檔。例如: • 不過此方法是屬於暫時性的, 若是經常需要分享此目錄, 最好還是加到 /etc/exports 檔中。

  32. 26-4 由用戶端掛載 NFS 的目錄 • 26-4-1 查看 NFS 伺服器分享的目錄 • 26-4-2 掛載遠端目錄到本機檔案系統 • Time out • 26-4-3 開機時自動掛載遠端目錄

  33. 26-4-1 查看 NFS 伺服器 分享的目錄 • 在掛載目錄之前, 我們要先知道某個 NFS 伺服器分享出了哪些目錄, 以及允許哪些電腦進入。在 NFS 套件中包含了 showmount這個指令可供查看 (以下使用之前的 /etc/exports 範例來做示範):

  34. 查看 NFS 伺服器分享的目錄 • 記得將 NFS 伺服端的主機名稱加入 /etc/hosts 檔中, 或要能在指定的 DNS 伺服器上查到。 • 如果您尚未設定好 NFS 伺服器, 可以先使用網路上已知有提供 NFS 服務的主機來測試。在此筆者以台大電機與 Red Hat公司的 FTP 站為例來操作, 示範有提供與沒提供 NFS 服務的差別:

  35. 查看 NFS 伺服器分享的目錄

  36. 26-4-2 掛載遠端目錄 到本機檔案系統 • 使用 showmount指令查出 NFS 伺服器所分享的目錄與允許進入的主機之後,即可使用 mount指令將該目錄掛載到本機的目錄下:

  37. 掛載遠端目錄到本機檔案系統 • 掛載後, 就可以使用一般操作本機目錄的指令, 來使用掛載進來的目錄了。不過一定要記得, 用戶端是否可以在此目錄中存檔, 或是只能讀取, 是在伺服端分享目錄時, 便已決定的。 • 如果不想再使用掛載進來的目錄時, 也可以執行 umount指令卸載:

  38. Time out • 如果在執行 mount指令時, 出現 "RPC: Time out" 的訊息, 則表示伺服端的 portmapper 或 nfs等程序可能出了問題。請確認執行無誤後, 再重新掛載一次。您可執行 "rpcinfo -u遠端主機名稱 程序名稱" 指令查驗, 例如:

  39. 26-4-3 開機時自動掛載遠端目錄 • 前面講的掛載方法, 是手動輸入指令將遠端目錄掛載到用戶端的目錄。如果想在用戶端一開機時, 即自動掛載遠端的目錄, 則必須將掛載的設定寫在/etc/fstab 檔中:

  40. 開機時自動掛載遠端目錄

  41. 開機時自動掛載遠端目錄 • 如此當用戶端開機時, 即可在開機的過程中按空白鍵, 看到掛載 NFS 檔案系統的訊息:

  42. 開機時自動掛載遠端目錄 • 如果順利掛載遠端目錄, 上面箭頭所指的步驟很快就會通過, 並顯示出 [確定] 字樣。若是掛載不進來, 則會在此處停一會兒, 然後顯示 "掛載 NFS 檔案系統 : RPC : 程式沒有註冊" 或是其他的錯誤訊息。 • 如此就知道掛載不成功了, 表示遠端的 NFS 伺服器可能出了問題。

  43. 開機時自動掛載遠端目錄 • 開機掛載完成後, 使用者只要一登入系統, 就可以直接取用遠端分享出來的目錄與檔案, 而不需要執行 mount指令了。 • 設定 NFS 伺服器的好處是, 可以將資源用網路目錄的方式分享出去。某些學校有提供利用 NFS 伺服器來安裝 Linux 系統的服務, 雖然這樣會花費較多的傳輸時間, 但也算是一種不用光碟安裝 Linux 的方法。

More Related