openEuler 22.03 NFS + mergerfs 存储池部署与性能调优完整文档

发布时间:2026/7/23 22:01:02

openEuler 22.03 NFS + mergerfs 存储池部署与性能调优完整文档
openEuler 22.03 NFS mergerfs 存储池部署与性能调优完整文档文档概述本文档基于实际生产环境部署经验详细记录了在 openEuler 22.03 系统上使用NFS mergerfs构建超大容量统一存储池的完整流程。特别针对NFS 写入性能瓶颈进行了深度排查与优化最终将 NFS 写入速度从642 KB/s提升至342 MB/s峰值并实现了长期稳定运行。文档结构系统架构概述存储服务器NFS 服务端配置客户端服务器NFS 客户端 mergerfs配置性能调优核心章节监控与运维常见故障排查附录完整配置清单1. 系统架构概述1.1 硬件环境角色IPCPU内存存储客户端合并节点192.168.20.364核188GB本地 138TB/dev/mapper/vgdata-lvdata存储服务器1192.168.20.1464核188GB本地 139TB/bak存储服务器2192.168.20.1964核188GB本地 139TB/bak存储服务器N192.168.20.x64核188GB本地 139TB/bak1.2 软件版本操作系统openEuler 22.03 (LTS-SP1)NFS 版本v4.2客户端/ v4.2服务端mergerfs 版本2.40.21.3 架构示意图┌─────────────────────────────────────────────────────────────────┐ │ 客户端服务器 (192.168.20.3) │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ /bak (mergerfs 统一挂载点) │ │ │ │ 总容量 本地138T 多个NFS分支各139T │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │localbak │ │ nfs14 │ │ nfs19 │ │ nfs20 │ │ │ │(本地存储)│ │(NFS挂载) │ │(NFS挂载) │ │(NFS挂载) │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 本地存储设备 │ │192.168.20.14│ │192.168.20.19│ │192.168.20.20│ │ /bak 138T │ │ /bak 139T │ │ /bak 139T │ │ /bak 139T │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘2. 存储服务器NFS 服务端配置适用于所有 NFS 服务端192.168.20.14、192.168.20.19 等。2.1 安装 NFS 服务sudodnfinstall-ynfs-utils2.2 启动并启用服务sudosystemctlenablerpcbind nfs-serversudosystemctl start rpcbindsudosystemctl start nfs-server2.3 配置共享目录/etc/exports编辑/etc/exportssudovi/etc/exports添加以下内容将192.168.20.3替换为实际客户端 IP/bak 192.168.20.3(rw,async,no_root_squash,no_subtree_check)⚠️ 关键参数说明asyncvssyncasync能大幅提升写入性能测试中从 6MB/s 提升至 342MB/s但存在数据丢失风险服务器意外断电时可能丢失未落盘数据。sync数据安全但性能极低。no_root_squash允许客户端 root 用户保持 root 权限按需使用有安全风险。no_subtree_check禁用子目录检查提升性能。2.4 使配置生效sudoexportfs-rsudoexportfs-v# 验证2.5 配置防火墙sudofirewall-cmd--permanent--add-servicenfssudofirewall-cmd--permanent--add-servicemountdsudofirewall-cmd--permanent--add-servicerpc-bindsudofirewall-cmd--reload2.6 优化 NFS 服务线程数关键编辑/etc/nfs.confsudovi/etc/nfs.conf在[nfsd]段添加[nfsd] threads128重启服务sudosystemctl restart nfs-server验证cat/proc/net/rpc/nfsd|grepth# 应显示 th 128 ...说明默认线程数仅为 8对于 64 核 CPU 严重不足。调高至 128 后并发处理能力大幅提升。2.7 优化内核脏页参数用于 async 模式性能调优编辑/etc/sysctl.confsudovi/etc/sysctl.conf添加vm.dirty_background_ratio 5 vm.dirty_ratio 10 vm.dirty_expire_centisecs 1000生效sudosysctl-p参数说明dirty_background_ratio5脏页占内存 5% 时后台开始刷盘。dirty_ratio10脏页占内存 10% 时前台写入被阻塞强制刷盘。dirty_expire_centisecs1000脏页存活超过 10 秒后强制刷盘。3. 客户端服务器配置192.168.20.33.1 安装 NFS 客户端和 mergerfs# 安装 NFS 客户端sudodnfinstall-ynfs-utils# 安装 mergerfs以 2.40.2 为例wgethttps://github.com/trapexit/mergerfs/releases/download/2.40.2/mergerfs-2.40.2-1.el8.x86_64.rpmsudodnfinstall-y./mergerfs-2.40.2-1.el8.x86_64.rpm3.2 准备挂载点# 本地存储挂载点sudomkdir-p/mnt/localbak# 远程 NFS 挂载点sudomkdir-p/mnt/nfs14 /mnt/nfs19 /mnt/nfs20# 按需添加# mergerfs 合并挂载点sudomkdir-p/bak3.3 挂载本地存储# 假设本地存储设备为 /dev/mapper/vgdata-lvdatasudomount/dev/mapper/vgdata-lvdata /mnt/localbak3.4 挂载远程 NFS性能优化版挂载参数说明rsize4194304,wsize4194304读写块大小设为 4MB提升大文件吞吐量。vers4.2使用 NFSv4.2支持nconnect特性。nconnect8为单个挂载点建立 8 个 TCP 连接充分利用多核 CPU。noatime,nodiratime禁用访问时间更新减少元数据开销。sudomount-tnfs-orw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8192.168.20.14:/bak /mnt/nfs14sudomount-tnfs-orw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8192.168.20.19:/bak /mnt/nfs19验证挂载df-h/mnt/nfs14 /mnt/nfs193.5 配置 mergerfs 合并存储池sudomergerfs-odefaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19 /bak验证df-h/bak# 应显示总容量约为 138T 139T 139T 416T4. 开机自动挂载systemd fstab4.1 配置 /etc/fstab编辑/etc/fstabsudovi/etc/fstab添加# 本地存储挂载到 /mnt/localbak /dev/mapper/vgdata-lvdata /mnt/localbak xfs defaults 0 0 # 远程 NFS 存储 192.168.20.14:/bak /mnt/nfs14 nfs rw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8,_netdev 0 0 192.168.20.19:/bak /mnt/nfs19 nfs rw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8,_netdev 0 0测试 fstabsudomount-a4.2 创建 systemd 服务编辑/etc/systemd/system/mergerfs-bak.servicesudovi/etc/systemd/system/mergerfs-bak.service写入[Unit] DescriptionMergerfs pool for /bak Requiresnetwork-online.target Afternetwork-online.target remote-fs.target Wantsremote-fs.target [Service] Typesimple ExecStartPre/bin/mount -a ExecStart/usr/bin/mergerfs -f -o defaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19 /bak ExecStop/bin/umount /bak Restarton-failure [Install] WantedBymulti-user.target启用并启动服务sudosystemctl daemon-reloadsudosystemctlenablemergerfs-bak.servicesudosystemctl start mergerfs-bak.servicesudosystemctl status mergerfs-bak.service5. 性能调优核心章节5.1 排查过程总结阶段操作速度结果说明初始状态服务端sync 默认参数642 KB/s极慢无法接受调整服务端线程数threads1286.2 MB/s提升 10 倍但仍不理想服务端改为asyncsync→async342 MB/s峰值瓶颈解除性能飞跃长期持续写入100GB 持续写入~80 MB/s受限于物理磁盘速度内核参数调优dirty_ratio10%稳定运行防止内存溢出5.2 关键优化点优化 1服务端 /etc/exports —sync改为async# 修改前/bak192.168.20.3(rw,sync,no_subtree_check,no_root_squash)# 修改后/bak192.168.20.3(rw,async,no_subtree_check,no_root_squash)优化 2服务端 NFS 线程数# /etc/nfs.conf[nfsd]threads128优化 3客户端挂载参数mount-tnfs-orw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8IP:/bak /mountpoint优化 4服务端内核脏页参数# /etc/sysctl.confvm.dirty_background_ratio5vm.dirty_ratio10vm.dirty_expire_centisecs10005.3 性能验证命令写入测试客户端# 10GB 写入测试ddif/dev/zeroof/mnt/nfs14/test.ddbs1Mcount10240oflagdirectstatusprogress# 100GB 持续写入测试ddif/dev/zeroof/mnt/nfs14/longtest.ddbs1Mcount102400oflagdirectstatusprogress读取测试客户端ddif/mnt/nfs14/test.ddof/dev/nullbs1Mcount10240iflagdirectstatusprogress网络带宽测试# 服务端iperf3-s# 客户端iperf3-c192.168.20.146. 热添加新 NFS 分支在线扩容当需要添加新的存储服务器如 192.168.20.20时6.1 挂载新 NFSsudomkdir-p/mnt/nfs20sudomount-tnfs-orw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8192.168.20.20:/bak /mnt/nfs206.2 热添加到 mergerfsechoadd /mnt/nfs20|sudotee/bak/.mergerfs/ctl6.3 验证扩容df-h/bak6.4 持久化配置更新/etc/fstab和 systemd 服务的ExecStart分支列表。7. 监控与运维7.1 监控命令查看脏页状态服务端watch-n2cat /proc/meminfo | grep -E Dirty|Writeback|DirtyThreshold查看 NFS 统计信息nfsstat-c# 客户端nfsstat-s# 服务端查看 NFS 服务线程数服务端cat/proc/net/rpc/nfsd|grepth查看磁盘 I/Oiostat-x1查看 mergerfs 状态客户端mount|grepmergerfsdf-h/bak7.2 服务管理# 启动/停止/重启 mergerfs 服务sudosystemctl start mergerfs-bak.servicesudosystemctl stop mergerfs-bak.servicesudosystemctl restart mergerfs-bak.service# 查看服务状态和日志sudosystemctl status mergerfs-bak.servicesudojournalctl-xeumergerfs-bak.service-n507.3 取消 mergerfs 恢复原始挂载# 停止服务sudosystemctl stop mergerfs-bak.servicesudosystemctl disable mergerfs-bak.service# 卸载 mergerfs 挂载点sudoumount/bak# 恢复本地存储到 /baksudomount/dev/mapper/vgdata-lvdata /bak8. 常见故障排查问题现象可能原因解决方案NFS 写入速度极慢1MB/s服务端 /etc/exports 使用了sync改为async注意数据风险NFS 服务启动失败线程数配置错误或端口冲突检查/etc/nfs.conf语法查看systemctl status nfs-servermergerfs 服务启动后立即退出systemd 服务类型错误或缺少-f参数确保Typesimple且ExecStart包含-fumount: target is busy有进程正在使用挂载点使用sudo fuser -km /bak强制终止或cd /后重试热添加失败No such file or directorymergerfs 控制接口未启用删除/bak/.mergerfs文件重新挂载 mergerfs写入速度波动大间歇性卡顿脏页阈值设置不合理调整dirty_ratio和dirty_background_ratio网络带宽不足物理链路或交换机限制使用iperf3测试检查网卡速率和 MTU9. 附录9.1 最终配置文件清单服务端192.168.20.x/etc/exports/bak 192.168.20.3(rw,async,no_root_squash,no_subtree_check)/etc/nfs.conf[nfsd] threads128/etc/sysctl.conf追加vm.dirty_background_ratio 5 vm.dirty_ratio 10 vm.dirty_expire_centisecs 1000客户端192.168.20.3/etc/fstab/dev/mapper/vgdata-lvdata /mnt/localbak xfs defaults 0 0 192.168.20.14:/bak /mnt/nfs14 nfs rw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8,_netdev 0 0 192.168.20.19:/bak /mnt/nfs19 nfs rw,hard,intr,rsize4194304,wsize4194304,noatime,nodiratime,vers4.2,nconnect8,_netdev 0 0/etc/systemd/system/mergerfs-bak.service[Unit] DescriptionMergerfs pool for /bak Requiresnetwork-online.target Afternetwork-online.target remote-fs.target Wantsremote-fs.target [Service] Typesimple ExecStartPre/bin/mount -a ExecStart/usr/bin/mergerfs -f -o defaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19 /bak ExecStop/bin/umount /bak Restarton-failure [Install] WantedBymulti-user.target9.2 性能基准参考场景速度服务端本地磁盘写入80 MB/s物理磁盘极限NFS 写入峰值async 内存缓存342 MB/sNFS 写入持续稳定80 MB/s网络带宽iperf38.79 Gbits/secmergerfs 写入底层 NFS 优化后≈ NFS 写入速度9.3 参考文档openEuler 官方文档mergerfs GitHubNFS 性能调优指南文档版本2.0 | 最后更新2026-07-14 | 适用环境openEuler 22.03

相关新闻

链接表能删了:Access 直连 SQL Server,DAO 绑窗体 + ADO 参数查询完整代码

链接表能删了:Access 直连 SQL Server,DAO 绑窗体 + ADO 参数查询完整代码

2026/7/23 22:01:02

摘要: 后台是 SQL Server 却不想用链接表?本文介绍 DAO 直连绑定窗体和 ADO 参数化查询两种方案,配完整可运行代码,直接拿走用。access开发|access培训|access框架|请添加edonsoft。Hi,大家好! 上一篇讲了 …

【RT-DETR涨点改进】TGRS 2026 | 卷积创新改进篇 | 引入 3DSBE 三维光谱瓶颈增强模块,增强模型对通道间互补信息的利用能力,助力高光谱目标检测、遥感目标检测任务,有效涨点

【RT-DETR涨点改进】TGRS 2026 | 卷积创新改进篇 | 引入 3DSBE 三维光谱瓶颈增强模块,增强模型对通道间互补信息的利用能力,助力高光谱目标检测、遥感目标检测任务,有效涨点

2026/7/23 21:51:02

一、本文介绍 🔥本文给大家介绍使用 3DSBE 三维光谱瓶颈增强模块 改进RT-DETR网络模型,主要作用是在特征提取阶段强化不同通道或波段之间的相关性,减少冗余信息,并为后续多尺度融合提供更具判别力的特征表示。该模块通过空间下采样与通道扩展降低计算负担,再采用主、辅双…

为什么你的AI自动化项目卡在85%?资深架构师亲授“最后一公里”攻坚清单

为什么你的AI自动化项目卡在85%?资深架构师亲授“最后一公里”攻坚清单

2026/7/23 21:51:02

更多请点击: https://kaifayun.com 第一章:为什么你的AI自动化项目卡在85%? 当模型在验证集上稳定达到84.7%–85.3%准确率却再难提升时,问题往往不在算法本身,而在于数据闭环的断裂与工程化落地的盲区。大量团队将精力…

“留学顾问哪用得上AI?“——说这话的人,今年已经被优化了

“留学顾问哪用得上AI?“——说这话的人,今年已经被优化了

2026/7/24 3:31:17

“留学顾问哪用得上AI?不就是帮学生填填表吗?” 这话我去年听过不下二十遍。说这话的同行,有的今年已经被优化了,有的还在原地打转,每天加班到十点,业绩却越来越差。 而我认识的Linda,一个29岁的…

从读者需求出发,观察CBCX的资料复查便利度

从读者需求出发,观察CBCX的资料复查便利度

2026/7/24 3:31:17

从读者需求出发,观察CBCX的资料复查便利度用户对经纪商类平台的期待正在变得更加成熟。相比单一功能,大家更愿意了解平台的规则说明、风控意识、投教内容和后续支持。围绕CBCX展开评测,可以避免只看表面信息,也能让读者从多个角度…

AI逆向设计如何革新材料科学研究

AI逆向设计如何革新材料科学研究

2026/7/24 3:31:17

1. 硅基造物主:AI如何重塑材料科学的研究范式在材料科学实验室里,我亲眼目睹过研究员们为寻找一种新型电池材料,花费数月时间尝试数百种元素配比。这种"试错法"研发模式,正是爱迪生发明电灯时采用的经典方法——通过160…

OpenViking:基于文件系统的AI智能体记忆优化方案

OpenViking:基于文件系统的AI智能体记忆优化方案

2026/7/24 3:31:17

1. 项目背景与核心价值最近在AI智能体开发领域遇到一个棘手问题:大多数Agent在长周期任务中会出现严重的记忆丢失现象。这就像让一个健忘症患者处理复杂项目,每次交互都需要重新交代背景,效率极其低下。字节跳动最新开源的OpenViking项目给出…

国产大模型排位赛实测:编程任务 DeepSeek 胜出,但长文本 Kimi 便宜 40%

国产大模型排位赛实测:编程任务 DeepSeek 胜出,但长文本 Kimi 便宜 40%

2026/7/24 3:31:17

2026年国产大模型技术路线深度评测与企业选型指南 随着国产大模型技术的快速迭代,2026年主流模型的技术路线已基本收敛于Transformer架构,但在实际业务场景中的表现差异却越发明显。笔者通过Taotoken平台对四大主流模型(DeepSeek-V3、Qwen2-…

AI如何超越人类实现GPU内核优化?

AI如何超越人类实现GPU内核优化?

2026/7/24 3:21:17

1. 项目背景与核心突破上周在硅谷实验室里,我亲眼见证了英伟达最新AI系统的惊艳表现——这套完全自主运行的AI智能体仅用168小时就完成了传统工程师团队需要数月才能完成的GPU内核优化任务。更令人震惊的是,最终生成的优化方案在能效比上比人类专家的历史…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/23 4:40:05

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

Django毕设项目:基于 Django 的 智能化学生综合素质测评审核系统 校园学生评优评奖综合管理系统(源码+文档,讲解、调试运行,定制等)

Django毕设项目:基于 Django 的 智能化学生综合素质测评审核系统 校园学生评优评奖综合管理系统(源码+文档,讲解、调试运行,定制等)

2026/7/24 0:01:07

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

[具身智能-634]:Python 封装的地平线 VIO 多媒体库:libsrcampy库详解

[具身智能-634]:Python 封装的地平线 VIO 多媒体库:libsrcampy库详解

2026/7/24 0:01:07

srcampy /libsrcampy 名称释义先明确结论: 官方文档没有公布标准化英文全称,是地平线内部项目缩写;行业公认拆解如下:srcampy Source Amplifier Python bindingsrc Source(图像源:MIPI Sensor、视频源&am…

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

2026/7/24 0:01:07

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…