Kylin麒麟操作系統服務部署 | NFS服務部署

以下所使用的環境為:
虛擬化軟件:VMware Workstation 17 Pro
麒麟系統版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64

一、 NFS服務概述

NFS(Network File System),即網絡文件系統。是一種使用于分散式文件協議通過網絡讓不同的機器、不同的操作系統能夠分享個人數據,讓應用程序通過網絡可以訪問位于服務器磁盤中的數據。NFS在文件傳輸或信息傳輸的過程中,依賴于RPC協議。RPC(Remote Procedure Call),即遠程過程調用。是客戶端能夠執行其它系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,能實現基于網絡的資料共享,是因為NFS使用了PRC提供的傳輸協議,可以說NFS是RPC的一個程序。NFS一般使用在中小型網站集群后端存儲,存儲一些靜態的資源(如圖片、附件)。如果是大型網站,則會使用mooseFS-mfs。在企業應用中,使用FastDFS-fastdfs較多。

NFS可以通過網絡讓不同的機器、不同的操作系統彼此分享文件。當用戶想使用遠程文件時,只要用mount命令就可以把遠程文件系統掛載到自己的文件系統下。NFS支持的功能很多,不同的功能使用不同的程序來啟動,并且會主動向RPC服務注冊所采用的端口和功能信息。RCP服務使用固定端口111監聽來著NFS客戶端的請求。

二、RPC守護進程

NFS服務依賴于RPC服務,至少需要啟動3個系統守護進程。

  • **nfsd:**NFS的守護進程,主要功能是管理客戶端是否能夠登錄服務器
  • mountd:RPC安裝守護進程,主要功能是管理NFS的文件系統。當客戶端順利通過rpc.nfsd登錄NFS服務后,在使用NFS服務所提供的憑證前,還必須通過文件使用權限的驗證。讀取NFS的配置文件/etc/exports來比對客戶端的權限。
  • rpcbind:進行端口映射。當客戶端嘗試連接并使用RPC服務器提供的服務,rpcbind 會將所管理的端口(服務對應的端口)提供給客戶端,從而使客戶可以通過該端口向服務器請求服務。

三、NFS軟件包

1.RPC主程序:rpcbind

在啟動RPC服務之前,需要做好端口的映射工作。在啟動任何一個RPC服務之前,都需要啟動rpcbind。

查看本機是否安裝rpcbind,可以看到rpcbind是默認安裝好,但是未啟動、未加入開機自啟

在這里插入圖片描述

2. NFS主程序:nfs-utils

提供rpc.nfsd和rpc.mountd這兩個NFS daemons 和其他相關文檔、說明文件、執行文件等。

查看本機是否安裝nfs-utils,默認已經安裝

在這里插入圖片描述

3. 管理NFS目錄列表:exportfs

exportfs命令需要參考配置文件/etc/exports。

常用參數

參數說明
-a輸出配置文件中的內容,或全選配置文件中目錄
-r重新讀取配置文件中的設置,并立即生效,無需重啟服務
-u卸載某一個目錄
-v顯示共享目錄

4. 客戶端查詢指令:showmount

exportfs 是NFS服務端所使用的命令,而 showmount 主要用在Client端。showmount 可以用來查看 NFS 服務器共享出來的目錄。

通過查詢可以發現 showmount 是由 nfs-utils 軟件包提供的

在這里插入圖片描述

查詢服務端的共享

showmount -e 192.168.110.1

四、NFS配置文件

NFS服務器共享目錄時所使用的配置文件為 /etc/exports,文件默認不存在,需要手動創建

/share	192.168.110.0/24(ro)
/share	192.168.110.0/24(ro) 192.168.120.0/24(rw)		# 存在多個客戶端,以空格分隔
  • /share:共享目錄的絕對路徑
  • 192.168.110.0/24:允許訪問的客戶端
  • ro:只讀,共享選項,可設置其他文件訪問權限

客戶端常用配置

客戶端配置說明
192.168.110.1指定主機
192.168.110.1/24 192.168.110.*指定網段
www.meaauf.com指定域名
*.meaauf.com指定域
*所有主機

權限選項

當客戶端在掛載NFS服務器共享目錄時,會根據NFS服務器的權限選項來設置共享權限。

訪問權限選項說明
ro只讀
rw讀寫

NFS用戶映射選項

選項
all_squash將遠程用戶訪問的所有普通用戶和其所屬用戶組都映射為匿名用戶或用戶組(nobody)
no_all_squash不將遠程訪問的普通用戶和其所屬組映射為匿名用戶或用戶組【默認】
root_squash將root用戶和所屬用戶組映射為匿名用戶或用戶組【默認】
no_root_squash不將root用戶和所屬用戶組映射為匿名用戶或用戶組
anonuid=xxx將遠程訪問的所有用戶都映射為匿名用戶,指定該匿名用戶賬號的UID(匿名用戶為服務端的本地賬戶)
anongid=xxx將遠程訪問的所有用戶組都映射為匿名組,指定該匿名組賬號的UID(匿名組為服務端的本地組)

在這里插入圖片描述

NFS其他訪問權限

選項
secure限制客戶端只能從小于1024的TCP/IP端口連接NFS服務器【默認】
insecure允許客戶端從大于1024的TCP/IP端口連接NFS服務器
sync將數據同步寫入內存緩存區和磁盤中,效率降低,可以保證數據一致性
async將數據先保存在內存緩沖區,必須時才寫入磁盤
wdelay檢測是否存在相關的寫操作,將這些寫操作一起執行,提高效率【默認】
no_wdelay有寫操作則立即執行,應該與sync一起使用
subtree-check如果輸出目錄是一個子目錄,則NFS服務器將檢查其父目錄的權限【默認】
no_subtree_check輸出目錄是一個子目錄,NFS不會檢查其父目錄的權限,提高效率

五、NFS服務器部署

案例需求

  • 將Kylin-1搭建為內網YUM服務器,為Kylin-2通軟件包
  • 在Kylin-1上開啟NFS服務,共享路徑為YUM倉庫目錄
  • 僅允許Kylin-2訪問目錄,權限為讀寫

節點設置

主機網絡信息說明
Kylin-1192.168.110.1/24NFS服務器
Kylin-2192.168.110.2/24測試客戶端

[Step1]: Kylin-1配置:安裝所需軟件

yum install -y nfs-utils rpcbind

在這里插入圖片描述

[Step2]: Kylin-1配置:編輯配置文件

vim /etc/exports# 寫入下列內容
/mnt/cdrom      192.168.110.2(rw)

[Step3]: Kylin-1配置:查看rpcbind服務狀態,默認狀態為關閉

在這里插入圖片描述

[Step4]: Kylin-1配置:啟動rpcbind和nfs-server,并加入開機自啟,調整防火墻策略

systemctl enable --now rpcbind.service
systemctl enable --now nfs-server.service
firewall-cmd --add-service=rpc-bind --permanent		# 防火墻需要放行NFS的三個組件
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload

[Step5]: Kylin-1驗證:查看NFS的權限目錄,可以看到所有默認配置

cat /var/lib/nfs/etab

在這里插入圖片描述

[Step6]: Kylin-1驗證:查看本地NFS共享目錄

exportfs -a

在這里插入圖片描述

[Step7]: Kylin-1驗證:顯示本地系統中注冊到rpcbind協議版本2的所有RPC服務

rpcinfo -p localhost

在這里插入圖片描述

[Step8]: Kylin-2配置:啟動RPC守護進程和nfs服務

systemctl enable --now nfs-server.service
systemctl enable --now rpcbind.service

[Step9]: Kylin-2驗證:查看服務端的全部共享目錄

showmount -e 192.168.110.1

在這里插入圖片描述

[Step10]: Kylin-2驗證:新建目錄/mnt/nfs,將目錄掛載到/mnt/nfs(掛載點需要提前創建)

mkidr /mnt/nfs
mount 192.168.110.1:/mnt/cdrom /mnt/nfs

在這里插入圖片描述

[Step11]: Kylin-2配置:配置yum倉庫文件,將原有的倉庫文件備份

cd /etc/yum.repos.d/
mv kylin_x86_64.repo{,.bak}
vim nfs.repo# 輸入下列內容
[yum]
name=yum
baseurl=file:///mnt/nfs
enabled=1
gpgcheck=0

[Step12]: Kylin-2配置:清除YUM的緩存目錄,重新創建緩存數據

yum clean all		# 清除YUM的緩存目錄
yum makecache		# 重新創建緩存數據

在這里插入圖片描述

[Step13]: Kylin-2驗證:嘗試下載vsftpd

在這里插入圖片描述

[Step14]: Kylin-2配置:將NFS共享寫入配置文件中,以實現開機自動掛載

vim /etc/fstab# 追加下列內容
192.168.110.1:/mnt/cdrom        /mnt/nfs        nfs4    defaults        0 0

[Step15]: Kylin-2配置:客戶端卸載NFS掛載

umount /mnt/nfs		# 如果顯示[device is busy],可以添加 -lf 參數強制卸載

六、autofs自動掛載

autofs自動掛載文件系統服務,需要后臺automount進程支持。缺省配置下,客戶端的NFS訪問在系統重啟后就消失了;如果將掛載寫入/etc/fstab文件中,會實現永久掛載,即使不訪問,該掛載點仍然是存在;autofs可以實現按需掛載,當你訪問該目錄時會自動掛載,超時會自動卸載。掛載點也無需提前新建,autofs會自動幫我們新建該目錄。

autofs服務的配置文件

  • /etc/auto.master:主配置文件

  • /etc/auto.xxx:映射文件,文件必須以auto開頭,后綴無任何要求

默認情況下,麒麟操作系統的鏡像中不存在autofs的安裝包

在這里插入圖片描述

主配置文件的編寫方式:

/misc  /etc/auto.misc			# autofs提供給我們的示例文件
  • /misc:掛載點的父目錄
  • /etc/auto.misc:掛載點的映射文件

查看掛載點的映射文件 /etc/auto.misc

在這里插入圖片描述

[Step1]: 為了方便后續實驗,此處重新設置一個NFS共享

mkdir /share
vim /etc/exports# 寫入下列內容,經過測試好像[192.168.110.*]無法匹配該網段
/share      192.168.110.0/24(rw)

[Step2]: 重新讀取配置文件

exportfs -r

在這里插入圖片描述

七、Kylin桌面版autofs配置

麒麟操作系統桌面版基于Ubuntu,包管理工具使用的是apt。

案例需求

  • 在Kylin-1上存在1個NFS共享,共享的目錄為 /mnt/cdrom
  • 將共享的目錄掛載到 Desktop 上的 /mnt/nfsshare
  • 共享權限為讀寫

節點設置

主機網絡信息說明
Kylin-1192.168.110.1/24NFS服務器
Desktop192.168.110.4/24;外網網卡(訪問外網)Kylin V10桌面版

[Step1]: 安裝nfs-common

sudo apt install -y nfs-common
> 輸入當前用戶密碼

在這里插入圖片描述

[Step2]: 啟動rpc守護進程和NFS服務

sudo systemctl start rpcbind
sudo systemctl start nfs-client.target

[Step3]: 顯示NFS服務器的共享信息

showmount -e 192.168.110.1

[Step4]: 安裝autofs服務

sudo apt-get install autofs

[Step5]: 編輯autofs主配置文件

sudo vim /etc/auto.master# 寫入下列內容,/mnt為掛載點的父目錄
/mnt    /etc/auto.mnt

[Step6]: 將示例文件拷貝為映射文件,編輯映射文件

sudo cp /etc/auto.misc /etc/auto.mnt
sudo vim /etc/auto.mnt# 寫入下列內容
nfsshare                -fstype=nfs,rw  192.168.110.1:/share

在這里插入圖片描述

[Step7]: 查看/mnt目錄,可以看到此時不存在任何目錄。啟動autofs服務后,會自動創建該目錄

sudo systemctl start autofs

在這里插入圖片描述

八、Kylin服務器版autofs配置

麒麟操作系統服務器版的的鏡像源中默認不存在autofs安裝包,需要連接互聯網使用第三方源。

案例需求

  • 在Kylin-1上存在1個NFS共享,共享的目錄為 /mnt/cdrom
  • 將共享的目錄掛載到 Desktop 上的 /mnt/nfsshare
  • 共享權限為讀寫

節點設置

主機網絡信息說明
Kylin-1192.168.110.1/24NFS服務器
Kylin-3192.168.110.3/24;外網網卡(訪問外網)Kylin服務器版

[Step1]: 安裝rpcbind和nfs-utils

yum install -y rpcbind nfs-utils

[Step2]: 啟動rpc守護進程和nfs服務

systemctl start rpcbind.service
systemctl start nfs.service

[Step3]: 查看NFS服務器的共享

showmount -e 192.168.110.1

在這里插入圖片描述

[Step4]: 安裝autofs服務

yum install -y autofs

[Step5]: 編輯autofs主配置文件

vim /etc/auto.master# 寫入下列內容
/mnt    /etc/auto.mnt

[Step6]: 編輯autofs映射文件

cp /etc/auto.misc /etc/auto.mnt
vim /etc/auto.mnt# 修改內容如下
nfsshare                -fstype=nfs,rw 192.168.110.1:/share

在這里插入圖片描述

[Step7]: 查看mnt目錄內容,可以看到為空。啟動autofs服務并加入到開機自啟,然后訪問掛載點目錄,此時mnt目錄下會自動創建掛載點

ll /mnt/
systemctl enable --now autofs.service
ll /mnt/nfsshare

在這里插入圖片描述

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

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

相關文章

三參數水質在線分析儀:從源頭保障飲用水安全

【TH-ZS03】飲用水安全是人類健康的重要保障,其質量直接關系到人們的生命健康。隨著工業化、城市化的快速發展,水體污染問題日益嚴峻,飲用水安全面臨著前所未有的挑戰。為了從源頭保障飲用水安全,科學、高效的水質監測手段必不可少…

PGlite:瀏覽器中運行的PostgreSQL

PGlite 是一款基于 WebAssembly(WASM)構建的輕量級 PostgreSQL 數據庫引擎,旨在簡化開發者在瀏覽器、Node.js、Bun 或 Deno 環境中運行 PostgreSQL。PGlite 無需復雜的安裝或配置,特別適合開發測試、本地化應用及快速原型設計。 一…

【Spring AOP】_使用注解編寫AOP程序

目錄 1. 以增加方法執行時間為例使用AOP 1.1 引入AOP依賴 1.2 編寫AOP程序 2. AOP的重要概念 3. AOP通知類型與通知方法標注 3.1 在通知方法前使用對應注解 3.2 使用Pointcut注解提取公共切點表達式 3.3 跨類使用切點 3.4 切面類排序 1. 以增加方法執行時間為例使用AO…

C# iText 抽取PDF頁特定區域文本內容

開發中需要提取PDF文件某頁某區域內的特定文本內容,對于文字轉換而成的PDF文件,可以使用iText庫,通過Rectangle劃定PDF頁中特定區域提取文字,思路是將這個Rectangle框定區域放到TextRegionEventFilter過濾器中,代碼如下…

Java 關鍵字 volatile

volatile 是 Java 中的一個關鍵字,用于修飾變量,確保多線程環境下的可見性和有序性。它主要用于解決以下兩個問題: 可見性問題:一個線程對 volatile 變量的修改對其他線程立即可見。有序性問題:禁止指令重排序&#x…

python網絡爬蟲開發實戰之基本庫使用

目錄 第二章 基本庫的使用 2.1 urllib的使用 1 發送請求 2 處理異常 3 解析鏈接 4 分析Robots協議 2.2 requests的使用 1 準備工作 2 實例引入 3 GET請求 4 POST請求 5 響應 6 高級用法 2.3 正則表達式 1 實例引入 2 match 3 search 4 findall 5 sub 6 com…

Linux內存分頁:原理、優勢與實踐

一、分頁機制核心原理 1.1 分頁技術原理 核心思想: 將虛擬地址空間和物理內存劃分為固定大小的頁(Page),通過頁表(Page Table)建立虛擬頁到物理頁框(Page Frame)的映射。例如,x86_64架構的4級頁表結構: 虛擬地址: [63-48] | [47-39] PGD | [38-30] PUD | [29-21]…

文件上傳漏洞與phpcms漏洞安全分析

目錄 1. 文件上傳漏洞簡介 2. 文件上傳漏洞的危害 3. 文件上傳漏洞的觸發條件 1. 文件必須能被服務器解析執行 2. 上傳目錄必須支持代碼執行 3. 需要能訪問上傳的文件 4. 例外情況:非腳本文件也可能被執行 4. 常見的攻擊手法 4.1 直接上傳惡意文件 4.2 文件…

模塊和端口

1、模塊 模塊內部的5個組成是:變量聲明 數據流語句 低層模塊實例 函數和任務 行為語句 SR鎖存器 timescale 1ns / 1psmodule SR_latch(input wire Sbar ,input wire Rbar ,output wire Q ,output wire Qbar);nand…

爬蟲(持續更新ing)

爬蟲(持續更新ing) # 網絡請求 # url統一資源定位符(如:https://www.baidu.com) # 請求過程:客戶端的web瀏覽器向服務器發起請求 # 請求又分為四部分:請求網址,請求方法&#xff08…

2025.3.2機器學習筆記:PINN文獻閱讀

2025.3.2周報 一、文獻閱讀題目信息摘要Abstract創新點網絡架構實驗結論不足以及展望 一、文獻閱讀 題目信息 題目: Physics-Informed Neural Networks of the Saint-Venant Equations for Downscaling a Large-Scale River Model期刊: Water Resource…

使用IDEA如何隱藏文件或文件夾

選擇file -> settings 選擇Editor -> File Types ->Ignored Files and Folders (忽略文件和目錄) 點擊號就可以指定想要隱藏的文件或文件夾

前端基礎之腳手架

腳手架結構 目錄結構 這里的package.json,存放著我們去執行npm run serve 或是npm run build的腳本文件 package-lock.json中存放著我們使用的外部包的版本類型,相當于maven src下的main.js是整個項目的入口文件 src下的components用于存放組件&#xff…

MacBook上API調??具推薦

在當今的軟件開發中,API調用工具已經成為了開發者不可或缺的助手。無論是前端、后端還是全棧開發,API的調試、測試和管理都是日常工作中的重要環節。想象一下,如果沒有這些工具,開發者可能需要手動編寫復雜的CURL命令,…

pgsql行列轉換

目錄 一、造測試數據 二、行轉列 1.函數定義 2.語法 3.示例 三、列轉行 1.函數定義 2.語法 3.示例 一、造測試數據 create table test ( id int, json1 varchar, json2 varchar );insert into test values(1,111,{111}); insert into test values(2,111,222,{111,22…

NVIDIA(英偉達) GPU 芯片架構發展史

GPU 性能的關鍵參數 CUDA 核心數量(個):決定了 GPU 并行處理能力,在 AI 等并行計算類業務下,CUDA 核心越多性能越好。 顯存容量(GB):決定了 GPU 加載數據量的大小,在 AI…

《Python實戰進階》No 10:基于Flask案例的Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻擊

第10集:Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻擊 在現代 Web 開發中,安全性是至關重要的。無論是用戶數據的保護,還是系統穩定性的維護,開發者都需要對常見的 Web 安全威脅有深刻的理解,并采取有效的防…

【大數據分析 | 深度學習】在Hadoop上實現分布式深度學習

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?智能大數據分析 ? ? ? 智能大數據分析是指利用先進的技術和算法對大規模數據進行深入分析和挖掘,以提取有價值的信息和洞察。它結合了大數據技術、人工智能(AI)、機器學習(ML&a…

盛鉑科技SCP4000射頻微波功率計與SPP5000系列脈沖峰值 USB功率計 區別

在射頻(RF)和微波測試領域,快速、精準的功率測量是確保通信系統、雷達、衛星設備等高性能運行的核心需求。無論是連續波(CW)信號的穩定性測試,還是脈沖信號的瞬態功率分析,工程師都需要輕量化、…

自學微信小程序的第十三天

DAY13 1、使用map組件在頁面中創建地圖后,若想在JS文件中對地圖進行控制,需要通過地圖API來完成。先通過wx.createMapContext()方法創建MapContext(Map上下文)實例,然后通過該實例的相關方法來操作map組件。 const m…