NFS伺服器的安裝與配置

来源:http://www.cnblogs.com/happenlee/archive/2017/10/22/7707611.html
-Advertisement-
Play Games

由於實驗室的項目需要實現在CephFS之上建立NFS之上,所以記錄一下NFS伺服器的安裝與配置流程。 1.NFS服務的簡介: NFS 是 N etwork F ile S ystem 的縮寫,是Sun公司於1984開發的一種分散式文件系統協議。它的核心功能就是可以通過網路,讓不同的客戶端,可以彼此訪 ...


由於實驗室的項目需要實現在CephFS之上建立NFS之上,所以記錄一下NFS伺服器的安裝與配置流程。

1.NFS服務的簡介:

NFS 是 Network File System 的縮寫,是Sun公司於1984開發的一種分散式文件系統協議。它的核心功能就是可以通過網路,讓不同的客戶端,可以彼此訪問共同的文件系統 ,來實現文件的共用。像許多其他的協議,建立在開放的網路計算的遠程過程調用(RPC)之上。NFS是在RFC中定義的開放標準,允許任何人實現該協議。

NFS 伺服器可以讓客戶端將網路遠程的 NFS 伺服器分享的目錄,直接掛載到本地端的機器當中。本地端的機器通過直接讀寫掛載的目錄,就可以同步到NFS伺服器之上。

版本更迭

  • NFS V2
    2是NFS最早實現的版本之一,基於UDP協議實現了一個無狀態的伺服器版本。僅僅支持32位的系統,且不大於2GB的文件。
  • NFS V3
    3的版本在2的基礎之上做了大量的改進。支持了大於2GB的文件讀寫,使用了TCP協議來進行數據交互,支持了客戶端的非同步讀寫來提高文件系統的性能(同時也會產生我們頭疼的一致性問題)
  • NFS V4
    4的版本提高了安全性,通過TCP協議實現了一個有狀態的伺服器版本,通過鎖租約的機制來實現多客戶端的讀寫同步。在4.1版本引入了pNFS,通過類似於一個HDFS架構來提供並行的一個分散式文件系統。

2.系統環境:

系統平臺:Ubuntu 14.04

NFS Server IP:192.168.1.2

iptables關閉: Firewall is disable.(NFS埠使用在預設情況下是不固定,所以若配置NFS伺服器需要搭配防火牆使用的話,請配置固定埠)

SELINUX=disabled

3.NFS伺服器的安裝:

NFS的安裝只需要安裝rpcbind與nfs-server就可以對外提供服務了。

  • rpcbind
    NFS 服務都是通過 RPC 來具體實現的,所以要正常使用NFS服務,需要啟動 rpcbind來實現埠的映射工作 。執行如下命令,安裝並啟動rpcbind

    sudo apt-get install rpcbind
  • nfs-kernel-server
    提供nfs伺服器的軟體,提供文件系統的完整功能。這裡要提醒一下,NFS伺服器會直接使用到內核的模塊,所以內核必須要支持 NFS 才行。如果操作系統的版本是自行編譯的內核的話,需要註意編譯NFS的內核支持。

    sudo apt-get install nfs-kernel-server

4.NFS伺服器的配置:

NFS伺服器的主要配置文件就是:/etc/exports。不過這個配置文件不一定會存在,可能需要使用 vim 主動新建這個文件。

/etc/exports文件由以下選項構成:

    [共用的目錄] [主機名或IP(參數,參數)]

每一行最前面是要分享出來的目錄,目錄可以依照不同的許可權分享給不同的主機。若許可權參數不止一個時,則以逗號 (,) 分開。且主機名與小括弧是連在一起的喔!其中參數是可選的,當不指定參數時,nfs將使用預設選項。預設的共用選項是 sync,ro,root_squash,no_delay 當主機名或IP地址為空時,則代表共用給任意客戶機提供服務。

下麵是一些NFS共用的常用參數:

  • 訪問許可權選項

    設置輸出目錄只讀:ro
    設置輸出目錄讀寫:rw

  • 用戶映射選項

    all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
    no_all_squash:與all_squash取反(預設設置);
    root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(預設設置);
    no_root_squash:與rootsquash取反;
    anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,並指定該用戶為本地用戶(UID=xxx);
    anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,並指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
  • 其它選項

    secure:限制客戶端只能從小於1024的tcp/ip埠連接nfs伺服器(預設設置);
    insecure:允許客戶端從大於1024的tcp/ip埠連接伺服器;
    sync:將數據同步寫入記憶體緩衝區與磁碟中,效率低,但可以保證數據的一致性;
    async:將數據先保存在記憶體緩衝區中,必要時才寫入磁碟;
    wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(預設設置);
    no_wdelay:若有寫操作則立即執行,應與sync配合使用;
    subtree:若輸出目錄是一個子目錄,則nfs伺服器將檢查其父目錄的許可權(預設設置);
    no_subtree:即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率;

這裡我們使用了NFS v3的配置,如下圖所示:

Screenshot from 2017-10-22 02:38:17.png

5.NFS伺服器的啟動:

配置完/etc/exports之後,接下來就可以啟動NFS伺服器了。

為了使NFS伺服器能正常工作,需要啟動rpcbind和nfs-kernel-server兩個服務,並且rpcbind一定要先於nfs-kernel-server啟動。

  sudo service rpcbind start
  sudo service nfs-kernel-server start

若要開機自啟動nfs服務,可以通過sysv-rc-conf配置自啟動服務。

  sudo sysv-rc-conf --level 35 rpcbind on
  sudo sysv-rc-conf --level 35 nfs-kernel-server on

6.NFS客戶端的掛載:

客戶端的掛載很簡單,先建立一個掛載目錄

  sudo mkdir /mnt/nfs
  sudo mount -t nfs 192.168.12:/tmp /mnt/nfs

之後客戶端對應的文件目錄便掛載上對應的文件系統了。

7、啟動自動掛載NFS文件系統:

客戶端可以通過命令配置開機自啟動掛載NFS的文件系統。

格式:
<server>:</remote/export> </local/directory> nfs < options> 0 0

將對應的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要嘗試在直接在/etc/fstab/里掛載

  • 原因分析:
    在Linux內核啟動的流程中,網路的啟動是在本機文件系統掛載之後,所以直接利用 /etc/fstab 嘗試掛載 NFS 時,系統由於尚未啟動網路,是無法掛載成功的。

小結:梳理了一下在ubuntu之下NFS伺服器的安裝與配置。當然RedHat系列的發行版也是大同小異。若有疏漏,望指點斧正。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 瞭解NAND Flash 晶元的介面 掌握通過NAND Flash控制器訪問NAND Flash的方法 ...
  • Httpd 2.2常見配置 要配置http服務的配置文件,先備份一下,養成良好習慣,如果誤操作導致http服務起不來,就可以將備份的主配置文件重新覆蓋一下 httpd配置文件的組成:有三大部分組成,其實配置文件裡面的內容放的順序沒有規定,之所以把它劃分為三部分是為了查看更加清晰 # grep "Se... ...
  • 瞭解虛擬地址和物理地址的關係; 掌握如何通過設置MMU來控制虛擬地址到物理地址的轉化; 瞭解MMU的記憶體訪問許可權機制; 瞭解TLB、Cache、Write buffer的原理,使用時的註意事項; 通過實例深刻掌握上述要點; ...
  • 以root賬戶為例 準備兩台以上的Linux伺服器,我這裡用的是s204,s205兩台機器,多台同樣的 先使用ssh登錄試一下,如果沒有安裝則需要先安裝一下 ssh s205會提示你輸入密碼 原理:用你本機的私鑰加密數據 ,其他主機用你的公鑰解密你的數據。 確認系統已經安裝了SSH。 rpm –qa ...
  • 瞭解S3C2410/S3C2440地址空間的佈局 掌握如何通過匯流排形式訪問擴展的外設,比如記憶體、NOR Flash、網卡等 ...
  • 1.1 第一個裡程碑:安裝sersync軟體 1.1.1 將軟體上傳到伺服器當中並解壓 1、上傳軟體到伺服器上 rz -E 為了便於管理上傳位置統一設置為 /server/tools 中 2、解壓軟體包 [root@backup sersync_installdir_64bit]# tree . └ ...
  • 第1章 數據實時同步介紹 1.1 什麼是實時同步:如何實現實時同步 A. 要利用監控服務(inotify),監控同步數據伺服器目錄中信息的變化 B. 發現目錄中數據產生變化,就利用rsync服務推送到備份伺服器上 1.2 實現實時同步的方法 inotify+rsync 方式實現數據同步 sersyn ...
  • 雖然通過了Service解決了Pod重建後 IP動態變化(服務發現)、負載均衡問題 ,但使用Service還是要需要知道CLUSTER IP,而通過NDS可以解決該問題;在Kubernetes集群中可 通過DNS進行Service服務名與IP進行映射 ,從而需要知道Service名稱就可以訪問該服務 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...