【Linux】部署NFS服務實現數據共享

👨?🎓博主簡介

??🏅CSDN博客專家
??🏅云計算領域優質創作者
??🏅華為云開發者社區專家博主
??🏅阿里云開發者社區專家博主
💊交流社區:運維交流社區 歡迎大家的加入!
🐋 希望大家多多支持,我們一起進步!😄
🎉如果文章對你有幫助的話,歡迎 點贊 👍🏻 評論 💬 收藏 ?? 加關注+💗


文章目錄

  • 一、NFS簡介與RPC簡介
    • 1. NFS服務簡介
    • 2. RPC協議簡介
    • 3. NFS工作流程
  • 二、準備工作
    • 2.1 服務器信息
    • 2.2 防火墻配置
    • 2.3 selinux沙盒
  • 三、部署 NFS 和 RPC 服務
  • 四、配置共享目錄
  • 五、掛載共享目錄及配置永久掛載

一、NFS簡介與RPC簡介

1. NFS服務簡介

NFS是一種網絡協議,NFS依賴RPC才能工作。(RHEL5.0上是NFS V3而RHEL6.0上是NFS V4)

NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的文件系統”,它是獨立于操作系統,容許不同硬件及操作系統的系統共同進行文件的分享。

NFS在文件傳送或信息傳送過程中依賴于RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以這么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責信息的傳輸。

2. RPC協議簡介

RPC(Remote Procedure Call)遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。其工作在TCP/UDP的111端口。建立在Socket之上的,主要是簡化編程的工作在底層提供網絡之間的通信。

RPC采用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息的到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息,獲得進程結果,然后調用執行繼續進行。

RPC遠程過程調度:

  • NFS 協議本身并沒有網絡傳輸功能,而是基于遠程過程調用協議實現的
  • 提供一個面向過程的遠程服務的接口
  • 可以通過網絡從遠程主機程序上請求服務,而不需要了解底層網絡技術的協議
  • 工作在 OSI 模型的會話層,它可以為遵從 RPC 協議應用層協議提供端口注冊功能
  • 事實上,有很多服務(NFS 和 NIS 等)都可以向 RPC 注冊端口
  • RPC 使用網絡端口 111 來監聽客戶端的請求

3. NFS工作流程

1.首先服務器端啟動RPC服務,并開啟111端口
2.然后還需要服務器端啟動NFS服務,并向RPC注冊端口信息
3.客戶端啟動RPC(portmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口
4.服務端的RPC(portmap)服務反饋NFS端口信息給客戶端。
5.客戶端通過獲取的NFS端口來建立和服務端的NFS連接并進行數據的傳輸。

image-20240514135352731

  • 掛載原理

??當我們在NFS服務器設置好一個共享目錄/opt 后,其他人是有權訪問/opt這個共享目錄的,NFS客戶端就可以將這個目錄掛載到自己文件系統的某個掛載點(這個掛載點可以自己定義),路徑不同也可以;如下圖客戶端A與客戶端B掛載的目錄就不相同。并且掛載好后我們在本地能夠看到服務端/opt下的所有數據。

image-20240514135433772

二、準備工作

2.1 服務器信息

主機IP服務端口
服務端172.16.11.201nfs、rpc2049、111
客戶端172.16.11.202nfs、rpc2049、111

2.2 防火墻配置

  • 關閉防火墻服務
# 關閉防火墻
systemctl stop firewalld
# 禁止防火墻開機自啟
systemctl disable firewalld
  • 如果是必須要開啟防火墻,可以使用兩種方法,開端口或服務
# 開啟nfs和rpc服務
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
# 重載防火墻規則
firewall-cmd --reload
# 放行端口
# nfs端口為:2049、rpc端口為:111
firewall-cmd --permanent --add-port=2049/tcp
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
# 重載防火墻規則
firewall-cmd --reload
  • 如果使用的是iptables防火墻,可以使用以下命令:
iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -p udp --dport 111 -j ACCEPT
iptables-save > /etc/sysconfig/iptables

2.3 selinux沙盒

# 臨時關閉
setenforce 0# 永久關閉
vim /etc/selinux/config# 將selinux=修改為disabled

image-20240514154415251

修改配置文件永久生效要重啟服務器;

三、部署 NFS 和 RPC 服務

兩臺都安裝

yum install -y nfs-utils rpcbind# 啟動并設置開機自啟
systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server

查看服務狀態

systemctl status nfs
systemctl status rpcbind

image-20240514144829522

四、配置共享目錄

①、首先,在服務端需要確認好要掛載的共享目錄;這里我們要掛載的共享目錄為:/data/test/,就需要先創建此目錄

# 服務端
mkdir -p /data/test

②、然后,需要確認好共享目錄要掛載到客戶端的哪個目錄上,這里就同目錄吧;

# 客戶端
mkdir -p /data/test

③、配置服務端NFS配置文件

NFS配置文件格式:共享目錄 [客戶端1(參數)] [客戶端2(參數)]

共享目錄:NFS服務器需要共享的實際路徑(絕對路徑);
客戶端:可以訪問共享目錄的服務器地址或網段。

  • 客戶端常用形式:
客戶端說明
172.16.11.202指定IP地址的主機
172.16.10.1/24指定子網的所有主機
172.16.10.*指定子網的所有主機
www.xxx.com指定域名的主機
*.xxx.com指定域中的所有主機
*所有主機
vim /etc/exports/data/test *(rw,sync,no_root_squash)

解析:

參數參數解析
/data/test要共享的目錄
*要共享給誰,可以是網段,可以是ip,*代表是所有都可以共享
----括號內,NFS訪問權限參數-------------------括號內,NFS訪問權限參數---------------
ro只讀
rw讀寫
sync同時將數據寫入到內存與硬盤中,保證不丟失數據
async優先將數據保存到內存,然后再寫入硬盤;效率更高,但可能會丟失數據
root_squash當NFS客戶端以root管理員訪問時,映射為NFS服務器的匿名用戶
no_root_squash當NFS客戶端以root管理員訪問時,映射為NFS服務器的root管理員
all_squash無論NFS客戶端使用什么賬戶訪問,均映射為NFS服務器的匿名用戶
no_all_squash保留共享文件的UID和GID(默認)

④、重啟服務端NFS和RPC服務

systemctl restart nfs rpcbind

⑤、在客戶端查看NFS服務共享信息

showmount [選項] (參數/服務端IP)

-d:僅顯示已被NFS客戶端加載的共享目錄;
-e:顯示NFS服務器上所有的共享目錄。

[root@localhost ~]# showmount -e 172.16.11.201
Export list for 172.16.11.201:
/data/test *

五、掛載共享目錄及配置永久掛載

注意:

1、掛載目錄服務端的數據會覆蓋客戶端的數據;

1、掛載目錄服務端的數據會覆蓋客戶端的數據;

1、掛載目錄服務端的數據會覆蓋客戶端的數據;

? 執行mount掛載的為客戶端


2、如果卸載掛載,提示:設備正忙(umount.nfs4: /data/test: device is busy),可以使用umount -l /data/test,不過存在一定風險,容易丟失數據

  • 臨時掛載

客戶端執行掛載目錄命令

mount -t 指定掛載的文件類型 nfs服務端的IP:服務端要共享的路徑目錄 要掛載到本機的路徑目錄

mount -t nfs 172.16.11.201:/data/test /data/test/

如果遇到以下報錯,有可能是:目錄權限問題、服務端配置文件ip范圍寫的有問題、防火墻、selinux問題;

mount.nfs: access denied by server while mounting 172.16.11.201:/data/test

  • 永久掛載

這樣只是臨時掛載,重啟服務器之后就會消息,所以可以配置永久掛載,在客戶端上;

vim /etc/fstab172.16.11.201:/data/test /data/test nfs defaults 0 0

保存退出之后,重啟服務器可以進行測試,一旦寫錯,重啟服務器將造成啟動不了服務器,所以要謹慎;


  • 卸載掛載(客戶端
umount 掛載點舉例:
umount /data/test

數據測試的話可自行測試;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38500.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python基礎總結之isinstance()

Python基礎總結之isinstance() 在Python中,isinstance() 是一個非常有用的內置函數,用于判斷一個對象是否是一個已知的類型。這個函數在處理繼承和多態時特別有用,因為它會考慮繼承關系。 技術介紹 isinstance() 函數的基本語法如下&#xf…

4-數據提取方法2(xpath和lxml)(6節課學會爬蟲)

4-數據提取方法2(xpath和lxml)(6節課學會爬蟲) 1,Xpath語法:(1)選擇節點(標簽)(2)“//”:能從任意節點開始選擇(3&#xf…

ArcGIS Pro SDK (七)編輯 7 操作Blob字段

ArcGIS Pro SDK (七)編輯 7 操作Blob字段 目錄 ArcGIS Pro SDK (七)編輯 7 操作Blob字段1 使用屬性檢查器讀取和寫入 Blob 字段2 在回調中使用行游標讀取和寫入 Blob 字段 環境:Visual Studio 2022 .NET6 ArcGIS Pro…

計算機網絡面試TCP篇之TCP三次握手與四次揮手

TCP 三次握手與四次揮手面試題 任 TCP 虐我千百遍,我仍待 TCP 如初戀。 巨巨巨巨長的提綱,發車!發車! PS:本次文章不涉及 TCP 流量控制、擁塞控制、可靠性傳輸等方面知識,這些知識在這篇: TCP …

第3章:數據結構

樹 對稀疏矩陣的壓縮方法有三種: 1、三元組順序表 2、行邏輯連接的順序表 3、十字鏈表 同義詞才會占用同個位置,從而需要進行多次比較。這些關鍵字的第一個可以不是e的同義詞,可以是排在e之前的關鍵字正好占了那個位置。 Dijkstra算法主要特點…

何處理Java中的ZipException異常?

如何處理Java中的ZipException異常? 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在Java編程中,處理壓縮文件(如ZIP文件…

jenkins 發布服務到 windows服務器

1.環境準備 1.1 這些就不過多描述了,可以參考我的另一盤文章部署到linux。 jenkins 發布服務到linux服務器-CSDN博客 1.2 需要再windows上安裝openssh 地址:Releases PowerShell/Win32-OpenSSH GitHub 到windows上執行安裝,可以里面cmd命令…

【Oracle運維】導出數據庫中的數據SQL查詢結果保存到文件

Oracle SQL查詢結果導出到文件、SET命令用法學習 1 概述2 導出到文件的方法2.2 命令行方式-sqlplus方式導出指定SQL查詢的結果到csv文件步驟1:system或者實際其他的oracle賬號登錄到sqlplus命令行界面**步驟2:執行SQL查詢語句前的設置目標導出文件內容格…

Java的限制序列化和常用IO流

一.限制序列化 a.問題 出于安全考慮,對于一些比較敏感的信息(如用戶密碼),應限制被序列化,如何實現? ◆使用transient關鍵字修改不需要序列化的對象屬性 b.示例 ◆希望Person類對象中的年齡信息不被序列化 二.Java常用IO流有哪些&#x…

人臉特征68點識別 C++

1、加載一張圖片 main函數&#xff1a; cv::Mat img cv::imread("5.jpg");vector<Point2f> points_vec dectectFace68(img);2、人臉68特征識別函數 在這里vector<Point2f> dectectFace68(Mat src) {vector<Point2f> points_vec;int* pResults …

【SpringCloud】Eureka源碼解析 上

Eureka是一個服務發現與注冊組件&#xff0c;它包含服務端和客戶端&#xff0c;服務端管理服務的注冊信息&#xff0c;客戶端簡化服務實例與服務端的交互。我們結合源碼來分析下eureka組件的實現原理&#xff0c;內容分為上下兩章&#xff0c;第一章分析eureka的服務注冊&#…

ubuntu apt命令 出現紅色彈框 Daemons using outdated libraries

1. 彈框沒截圖&#xff0c;是因為ubuntu22.04一個新特性導致的&#xff0c;由 needrestart 命令觸發&#xff0c;默認情況是交互性質的&#xff0c;也就是會中斷在這里需要手動要處理提示。 2. 修改/etc/needrestart/needrestart.conf 文件&#xff0c;將 #$nrconf{restart} …

【區分vue2和vue3下的element UI PageHeader 頁頭組件,分別詳細介紹屬性,事件,方法如何使用,并舉例】

在 Vue 2 中&#xff0c;Element UI 并沒有一個直接命名為 PageHeader 的組件。然而&#xff0c;你可能是在尋找一種方式來創建自定義的頁頭&#xff08;Page Header&#xff09;&#xff0c;這通常是通過組合 Element UI 的其他組件&#xff08;如 el-header、el-row、el-col、…

大數據開發中如何計算用戶留存及SQL示例

在大數據開發領域&#xff0c;用戶留存是一個關鍵指標&#xff0c;它反映了產品吸引并保留用戶的能力。 留存率的計算不僅有助于評估產品的健康狀況&#xff0c;還能為產品優化和市場策略提供重要依據。 本文將詳細介紹如何在大數據開發中計算用戶留存&#xff0c;并附帶具體…

gpu是什么?

GPU&#xff08;Graphics Processing Unit&#xff0c;圖形處理單元&#xff09;是一種專門在個人電腦、工作站、游戲機以及一些移動設備&#xff08;如平板電腦、智能手機等&#xff09;上進行圖像和圖形相關運算工作的微處理器。以下是關于GPU的詳細解釋&#xff1a; 1. **定…

精密空氣加熱器負載組

小型便攜式 &#xff1a;精密空氣加熱器&#xff08;負載組&#xff09;能夠對數據中心熱通道/冷通道冷卻系統進行全面測試。EAK 是一款 19 英寸機架式設備&#xff08;10U 高&#xff09;&#xff0c;可輕松安裝到各種標準服務器機架中。通過集成可調節的熱量水平&#xff08;…

決策樹算法介紹:原理與案例實現以及Python、R、Java、 MATLAB中使用

決策樹&#xff08;Decision Tree&#xff09;是一種常用的機器學習算法&#xff0c;適用于分類和回歸任務。它通過一系列的二分決策將數據逐步劃分成不同的子集&#xff0c;直到每個子集中的數據點具有較高的同質性。下面介紹決策樹的基本原理&#xff0c;并通過Python實現一個…

C++ :lambda表達式

目錄 lambda表達式書寫格式&#xff1a; lambda表達式各部分說明&#xff1a; lambda的使用示范&#xff1a; 注意事項&#xff1a; 返回值類型可以省略&#xff0c;參數也可也省略&#xff1a; sort內部也可以直接寫lambda表達式&#xff1a; 排序時利用lambda進行排序…

STM32MP135裸機編程:使用軟件觸發硬件復位

0 參考資料 STM32MP13xx參考手冊.pdf 1 使用寄存器實現軟件復位 1.1 復位電路概述 重點關注下面標紅的路線&#xff1a; 通過這條路線可以清楚看到&#xff0c;我們可以通過設置RCC_MP_GRSTCSETR寄存器讓RPCTL&#xff08;復位脈沖控制器&#xff09;給NRST&#xff08;硬件復…

蘋果可能與谷歌合作推AI訂閱服務;全國首個司法審判大模型在深圳上線

&#x1f989; AI新聞 &#x1f680; 蘋果可能與谷歌合作推AI訂閱服務 摘要&#xff1a;蘋果宣布將與OpenAI合作推出Apple Intelligence&#xff0c;并有望在今年秋季與谷歌達成合作&#xff0c;接入Gemini。Meta的Llama因質量不佳被拒。蘋果計劃推出訂閱模式的智能功能服務&…