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.rhkb.cn/news/30411.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解

FPGA之Usb数据传输 Usb 通信 你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢? 原因有很多,如下: 1. 高速数据传输能力 高带宽:USB接口提供了较高的数据传…

生活反思公园散步与小雨遇记

《公园散步与小雨遇记》(一) 总收录于《生活小事灵感反思》与《生活小美好》 最近又新增一个习惯:每天至少走一小时 那天天气有雨,软件上显示在下雨,但是外面没雨,心想着大不了淋湿回来洗个头,…

夏门大学DeepSeek 手册:从社会大众到高校及企业的全面应用实践研究(附 PDF 下载)

这 3 份手册分别从 DeepSeek 大模型概念、技术与应用实践、DeepSeek 大模型赋能高校教学和科研、DeepSeek 大模型及其企业应用实践-企业人员的大模型宝典几个角度进行全面分析,可以结合着清华、北大系列相互对照着学习。 清华北大推出的 DeepSeek 教程(…

微服务保护:Sentinel

home | Sentinelhttps://sentinelguard.io/zh-cn/ 微服务保护的方案有很多,比如: 请求限流 线程隔离 服务熔断 服务故障最重要原因,就是并发太高!解决了这个问题,就能避免大部分故障。当然,接口的并发…

工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)

作为在 HarmonyOS 开发一线摸爬滚打的工程师,笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读(v14 实战版)开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…

驾校与无人机飞手培训机构合作开展低空业务技术详解

驾校与无人机飞手培训机构合作开展低空业务是一个创新的举措,旨在结合双方的资源和专业优势,为学员提供多元化的技能培训和业务拓展机会。以下是对这种合作模式下低空业务技术的详细解析: 一、合作背景与意义 1. 市场需求增长:随…

黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 黄昏时分有着独特而迷人的光线,使此时拍摄的人像自带一种浪漫、朦胧的氛围 。通过 Lr 调色,可以进一步强化这种特质并根据不同的风格需求进行创作。Lr(Lightroom)作为专业的图像后期处理软件,提供了丰富的调色…

数据结构(队列)

数据结构(队列) 什么是队列? 队列和栈类似,也是一类特殊的线性表。特殊之处也是在于操作上。队列:只允许在一端进行插入数据操作(入队),在另一端进行删除数据操作(出队&…

DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)

DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…

[Lc7_分治-快排] 快速选择排序 | 数组中的第K个最大元素 | 库存管理 III

目录 1. 数组中的第K个最大元素 题解 代码 2.库存管理 III 代码 1. 数组中的第K个最大元素 题目链接:215. 数组中的第K个最大元素 题目分析: 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要…

集合论--形式化语言里的汇编码

如果一阶逻辑是数学这门形式化语言里的机器码,那么集合论就是数学这门形式化语言里的汇编码。 基本思想:从集合出发构建所有其它。 构建自然数构建整数构建有理数构建实数构建有序对、笛卡尔积、关系、函数、序列等构建确定有限自动机(DFA) 全景图 常…

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块(学生管理系统) 框架顺利运行 首先肯定要顺利运行框架了,这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…

MybatisPlus

1.增删改查入门案例&#xff1a; 首先导入依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency> 然后这些增删改查…

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Servlet 过滤器:实现请求的预处理与后处理

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、过滤器&…

服务器上通过ollama部署deepseek

2025年1月下旬&#xff0c;DeepSeek的R1模型发布后的一周内就火了&#xff0c;性能比肩OpenAI的o1模型&#xff0c;且训练成本仅为560万美元&#xff0c;成本远低于openAI&#xff0c;使得英伟达股票大跌。 下面我们来看下如何个人如何部署deepseek-r1模型。 我是用的仙宫云的…

点云软件VeloView开发环境搭建与编译

官方编译说明 LidarView / LidarView-Superbuild GitLab 我的编译过程&#xff1a; 安装vs2019&#xff0c;windows sdk&#xff0c;qt5.14.2&#xff08;没安装到5.15.7&#xff09;&#xff0c;git&#xff0c;cmake3.31&#xff0c;python3.7.9&#xff0c;ninja下载放到…

【Git】创建,切换分支

理解分支 这里开始介绍Git的杀手级功能之一&#xff1a;分支。 分支就是科幻电影里的平行宇宙&#xff0c;当你正在电脑前努力学习C的时候&#xff0c;另一个你正在另一个平行宇宙里努力学习JAVA。 如果两个平行宇宙互不干扰&#xff0c;那对现在的你也没啥影响。不过&#…

FPGA 实验报告:四位全加器与三八译码器仿真实现

目录 安装Quartus软件 四位全加器 全加器、半加器 半加器&#xff1a; 全加器&#xff1a; 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…

记录一次wifi版有人物联串口服务器调试经过

1、首先买了一个华为的wifi路由器&#xff0c;连接上以后&#xff0c;设置好网络名字和wifi密码 2、用网线连接串口服务器&#xff0c;通过192.168.1.1登录&#xff0c;进行配置 找到无线客户端配置&#xff0c;先在基本配置中打开5G配置&#xff0c;然后再去5.8G配置中设置 …

Vue3.5 企业级管理系统实战(八):Sidebar组件开发 2

本篇通过 Pinia 实现侧边栏&#xff08;Sidebar&#xff09;的展开收起功能&#xff0c;并通过 Pinia 实现展开状态的持久化。 1 安装 Pinia Persistedstate Pinia 是 Vue.js 的状态管理库&#xff0c;而 pinia-plugin-persistedstate 是一个针对 Pinia 的插件&#xff0c;它…