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-1 | 192.168.110.1/24 | NFS服务器 |
Kylin-2 | 192.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-1 | 192.168.110.1/24 | NFS服务器 |
Desktop | 192.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-1 | 192.168.110.1/24 | NFS服务器 |
Kylin-3 | 192.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
相关文章:

Kylin麒麟操作系统服务部署 | NFS服务部署
以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、 NFS服务概述 NFS(Network File System),即网络文件系统。是一种使用于…...

7.1.2 计算机网络的分类
文章目录 分布范围交换方式 分布范围 计算机网络按照分布范围可分为局域网、广域网、城域网。局域网的范围在10m~1km,例如校园网,网速高,主要用于共享网络资源,拓扑结构简单,约束少。广域网的范围在100km,例…...
Spring Cloud Alibaba 实战:轻松实现 Nacos 服务发现与动态配置管理
1. Nacos 介绍 1.1 什么是 Nacos? Nacos(Naming and Configuration Service)是阿里巴巴开源的一个服务注册中心和配置管理中心。它支持动态服务发现、配置管理和服务治理,适用于微服务架构,尤其是基于 Spring Cloud …...

【数据结构】LRUCache|并查集
目录 一、LRUCache 1.概念 2.实现:哈希表双向链表 3.JDK中类似LRUCahe的数据结构LinkedHashMap 🔥4.OJ练习 二、并查集 1. 并查集原理 2.并查集代码实现 3.并查集OJ 一、LRUCache 1.概念 最近最少使用的,一直Cache替换算法 LRU是Least Recent…...
智能合约中权限管理不当
权限管理不当 : 权限管理不当是智能合约中常见的安全问题之一,尤其是在管理员或特定账户被过度赋予权限的情况下。如果合约中的关键功能,如转移资产、修改合约状态或升级合约逻辑,可以被未经授权的实体随意操作,这将构…...
MariaDB Galera 原理及用例说明
一、底层原理 MariaDB Galera 集群是一种基于同步多主架构的高可用数据库解决方案,适合需要高并发、低延迟和数据强一致性的场景。以下是部署和配置 MariaDB Galera 集群的简明步骤: 1. 环境准备 节点要求:至少 3 个节点(奇数节点…...
【RAG 篇】万字长文:向量数据库选型指南 —— Milvus 与 FAISS/Pinecone/Weaviate 等工具深度对比
大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 文章目录 向量数据库的核心价值主流工具横向对比 FAISS:Meta 的高效检索引擎Pinecone:全托管商业…...
关于服务器cpu过高的问题排查
1.定位是哪个程序造成的cpu过高 如果有云服务器,就用云服务器自带的监控功能,查时间段 如果没有,则使用: ps -eo pid,comm,pcpu,pmem,cputime --sort-cputime | head -n 100 2.定位到问题 发现是uwsgi的cpu消耗过高࿰…...

Gpt翻译完整版
上一篇文章收到了很多小伙伴的反馈,总结了一下主要以下几点: 1. 说不知道怎么调api 2. 目前只是把所有的中文变成了英文,如果想要做多语言还需要把这些关键字提炼出来成放到message_zh.properties和message_en.properties文件中,…...

雷池WAF的为什么选择基于Docker
Docker 是一种开源的容器化平台,可以帮助开发人员将应用程序及其所有依赖项打包到一个称为容器的独立、可移植的环境中。Docker 的核心概念包括以下几点: 容器:Docker 使用容器来封装应用程序及其依赖项,使其能够在任何环境中都能…...
美股回测:历史高频分钟数据的分享下载与策略解析20250305
美股回测:历史高频分钟数据的分享下载与策略解析20250305 在金融分析和投资决策的精细化过程中,美股历史分钟高频数据发挥着至关重要的作用。这些数据以其详尽性和精确性,记录了股票每分钟的价格波动和成交量变化,为投资者提供了…...

【文生图】windows 部署stable-diffusion-webui
windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 带图片的详细功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…...
[Python入门学习记录(小甲鱼)]第3章 Python基础知识
第3章 基础知识 前面三章都没啥用,这一章开始进入主题。 3.1 变量 变量顾名思义就是一个可变的量,但Python的变量更像是一个名字,通过这个名字可以找到我们想要的值。注意点如下: Python不需要显式声明,但使用之前…...

某系统webpack接口泄露引发的一系列漏洞
视频教程在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 目录: 信息搜集 未授权敏感信息泄露越权任意用户密码重置 1.越权访问 2.大量敏感信息 越权 任意用户密码重置 信息搜集 这里找到从小穿一条裤子长大的兄弟,要挟他交…...

【计算机网络入门】初学计算机网络(十一)重要
目录 1. CIDR无分类编址 1.1 CIDR的子网划分 1.1.1 定长子网划分 1.1.2 变长子网划分 2. 路由聚合 2.1 最长前缀匹配原则 3. 网络地址转换NAT 3.1 端口号 3.2 IP地址不够用? 3.3 公网IP和内网IP 3.4 NAT作用 4. ARP协议 4.1 如何利用IP地址找到MAC地址…...

决策树(Decision Tree)基础知识
目录 一、回忆1、*机器学习的三要素:1)*函数族2)*目标函数2.1)*模型的其他复杂度参数 3)*优化算法 2、*前处理/后处理1)前处理:特征工程2)后处理:模型选择和模型评估 3、…...

Nat Mach Intell | AI分子对接算法评测
《Nature Machine Intelligence》发表重磅评测,系统评估AI与物理方法在虚拟筛选(VS)中的表现,突破药物发现效率瓶颈。 核心评测体系:三大数据集 研究团队构建了三个新型测试集: TrueDecoy:含14…...
【自学笔记】Hadoop基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Hadoop基础知识点总览1. Hadoop简介2. Hadoop生态系统3. HDFS(Hadoop Distributed File System)HDFS基本命令 4. MapReduceWordCount示例&am…...
【Linux】使用问题汇总
#1 ssh连接的时候报Key exchange failed 原因:服务端版本高,抛弃了一些不安全的交换密钥算法,且客户端版本比较旧,不支持安全性较高的密钥交换算法。 解决方案: 如果是内网应用,安全要求不这么高…...

(二 十 二)趣学设计模式 之 备忘录模式!
目录 一、 啥是备忘录模式?二、 为什么要用备忘录模式?三、 备忘录模式的实现方式四、 备忘录模式的优缺点五、 备忘录模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...