NFS——網路文件系統

来源:http://www.cnblogs.com/bolgliuzy/archive/2016/12/09/6149317.html
-Advertisement-
Play Games

一、NFS概念: 透過網路,讓不同的主機能“共用”文件。通過NFS,用戶和程式可以像訪問本地文件一樣訪問遠端系統上的文件。 二、版本: 共三個版本,NFSv2,NFSv3,NFSv4(包含4.0和4.1)。其中NFSv2和NFSv3由Sun公司起草。NFS4.0主要由NetApp。 三、版本特點 V ...


一、NFS概念:

  透過網路,讓不同的主機能“共用”文件。通過NFS,用戶和程式可以像訪問本地文件一樣訪問遠端系統上的文件。


 

二、版本:

  共三個版本,NFSv2,NFSv3,NFSv4(包含4.0和4.1)。其中NFSv2和NFSv3由Sun公司起草。NFS4.0主要由NetApp。


 

三、版本特點
  V2:實現基本的網路共用及存取功能
  V3:修正了V2的一些bug。
  ——————V3與V2區別——————
  1.V2對每次讀寫操作中傳輸數據的最大長度限制:8192位元組,V3無限制
  2.V2對文件名長度限制:255位元組,V3無限制
  3.V2對文件長度限制:0xFFFFFFF,V3無限制
  4.V2對文件句柄長度固定為32B,V3中句柄長度上限為64位元組
  5.V2只支持同步寫,V3支持非同步寫操作。V3增加了commit請求,commit可以將伺服器緩存中的數據刷新到磁碟中。
*註:同步寫指當客戶端向伺服器端寫入數據時,伺服器必須將數據寫入磁碟中才能發送應答消息。非同步寫指伺服器只需要將數據寫入緩存中就可以發送應答消息。
  6.V3增加了ACCESS請求
*註:ACCESS用來檢查用戶的訪問許可權。因為伺服器端可能進行uid映射,一次客戶端的Uid和gid不能正確反映用戶的訪問許可權。NFS2的處理方法是不管訪問許可權,直接返送請求,如果沒有訪問許可權就出錯。NFS3中增加了ACCESS請求,客戶端可以檢查是否有訪問許可權。
  7.V3中一些請求調整了參數和返回信息。
  ——————V4與V3區別——————
  1.V2和V3都是無狀態協議,即伺服器端不需要維護客戶端的狀態信息。無狀態協議的優點是當伺服器出現問題後,客戶端只需要重覆發送失敗請求就可以了,直到收到伺服器的響應信息。但某些操作必須需要狀態,如文件鎖。如果客戶端申請了文件鎖,但是伺服器重啟了,但NFSv3是無狀態的,客戶端再執行鎖操作可能會出錯。NFSv3需要NLM(Network Lock Manager)協助才能實現文件鎖功能,但有時兩者的配合不夠協調。NFSv4設計成了一種有狀態的協議,自身實現了文件鎖功能,從而不再需要NLM協議。  

  2.NFSv4 增加了安全性,支持RPCSEC-GSS身份認證。
  3.NFSv4 只提供了兩個請求NULL和COMPOUND ,所有的操作都整合進了COMPOUND中,客戶端可以根據實際請求將多個操作封裝到一個COMPOUND 請求中,增加了靈活性。
  4.NFSv4 文件系統的命令空間發生了變化,伺服器端必須設置一個根文件系統(fsid=0) ,其他文件系統掛載在根文件系統上導出。
  5.NFSv4 支持delegation( 代表) 。由於多個客戶端可以掛載同一個文件系統,為了保持文件同步, NFSv3 中客戶端需要經常向伺服器發起請求,請求文件屬性信息,判斷其他客戶端是否修改了文件。如果文件系統是只讀的,或者客戶端對文件的修改不頻繁,頻繁向伺服器請求文件屬性信息會降低系統性能。NFSv4 可以依靠delegation 實現文件同步。   

*如:當客戶端A 打開一個文件時,伺服器會分配給客戶端A 一個delegation 。只要客戶端A 具有delegation ,就可以認為與伺服器保持了一致。如果另外一個客戶端B 訪問同一個文件,則伺服器會暫緩客戶端B 的訪問請求,向客戶端A 發送RECALL 請求。當客戶端A 接收到RECALL 請求時將本地緩存刷新到伺服器中,然後將delegation 返回伺服器,這時伺服器開始處理客戶端B 的請求。
  6.NFSv4 修改了文件屬性的表示方法。
  ——————V4.1與V4.0區別——————
  NFSv4.1 支持並行存儲,伺服器由一臺元數據伺服器(MDS) 和多台數據伺服器(DS) 構成,元數據伺服器只管理文件在磁碟中的佈局,數據傳輸在客戶端和數據伺服器之間直接進行。由於系統中包含多台數據伺服器,因此數據可以以並行方式訪問,系統吞吐量迅速提升。


 

 四、Linux NFS相關文件

  /etc/exports:

        NFS 的主配置文件有的linux 版本中預設不存在,需要手動建立.

  /usr/sbin/exportfs:

        在Server端 維護NFS 共用資源的命令。

  /usr/sbin/showmount:

        在Client端 來查看NFS 共用的資源

  /var/lib/nfs/xtab:

        NFS 的記錄文件,可以客戶端查看鏈接伺服器的信息


五、搭建NFS服務 【預設服務埠:2049】

Serve端:

:安裝軟體

  yum install nfs-utils.x86_64 -y

:啟動服務

  systemctl start nfs-server.service

  如果報錯請先開啟“rpcbind.service”後再開啟“nfs-server.service”

:檢查服務狀態

  systemctl status nfs-server.service

  netstat -lantu |grep 2049

:編輯配置文件

  /etc/exports:   /nfsserver      *(rw,sync)

  格式:  共用目錄path   允許的IP/hostname  (許可權)

:重啟服務

  systemctl restart nfs-server.service

 

Clinet端:

掛載方式分:手動、自動

手動掛載:

①:執行命令:  mount.nfs   nfs_server_ip:/共用目錄path /local/path

自動掛載:

①:利用 fstab 

  nfs_server_ip:/共用目錄path  /local/path  nfs  defaults 0 0

②:使用automount

  安裝軟體:yum install -y autofs

  啟動服務:systemctl start autofs  systemctl enable autofs

  檢查服務:systemctl status autofs

  新建配置文件:/etc/auto.master.d/xxxxxx.autofs(新建文件)

      內容:/-   /etc/xxxxx.nfs(/- 指定配置文件)

  編輯配置文件:/etc/xxxxx.nfs(新建、製作配置文件)

      內容:/local/path  -type=nfs,rw,sync   nfs_server_ip:/共用目錄path

  重啟服務:systemctl restart autofs.servic


 

 

 

 

 

 

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 1、MDK、Keil C51 編譯後數據 Code:程式大小 Flash RO-data:常量 Flash RW-data:(已初始化的)可讀可寫變數 Flash RAM ZI-data:未初始化的變數 RAM ...
  • 1、上電,短接ERASE,>10秒後,拔USB。 2、短接TST,上電,>10秒後,拔USB。 3、安裝驅動。(看別人教程,下載到INF文件,WIN7不能右擊安裝,好,換虛擬機XP) 4、成功識別,但ISP居然不能下載,write Flash為灰色。 卡了N久 百度,別人write Flash 灰色 ...
  • 基於STM32F1開發平臺,從頭開始完成一個基於時間片輪詢和優先順序搶占的實時任務調度內核 ...
  • 對於包含 MMU 的處理器而言, Linux 系統提供了複雜的存儲管理系統,使得進程所能訪問的記憶體達到 4GB。進程的 4GB 記憶體空間被分為兩個部分—用戶空間與內核空間。用戶空間地址一般分佈為 0~3GB(即 PAGE_OFFSET),這樣,剩下的 3~4GB 為內核空間。內核空間申請記憶體涉及的函... ...
  • 介紹 forfiles是windows自帶的一個批量刪除命令,對於時間的判斷是通過文件自身的修改日期屬性進行判斷,使用它來對歷史文件進行判斷刪除是個不錯的選擇。 語法 forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | ...
  • 從網路上下載到的源碼包, 最常見的是 .tar.gz 包, 還有一部分是 .tar.bz2包要解壓很簡單 :.tar.gz 格式解壓命令為 tar -zxvpf xx.tar.gz.tar.bz2 格式解壓命令為 tar -jxvpf xx.tar.bz2 //p參數可以保留原文件許可權(很重要) ...
  • 本文地址 分享提綱: 1. svn 不常見單有用的命令 2. svn查看切換用戶 1. svn自己總結的一些不常見,但有用的命令 1)【導出svn不帶版本代碼】導出不帶svn版本控制的代碼到本地的 localdir下: svn export https://github.com/wozhuzaisi ...
  • 更改SSH服務端遠程登錄的配置 windows服務端的預設遠程管理埠是3389,管理員用戶是administrator,普通用戶是guest。Linux的管理用戶是root,普通用戶預設有很多個,遠程連接預設埠是22。 修改配置文件/etc/ssh/sshd_config,13行Port 22(... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...