尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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
RELATED

相关推荐

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

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

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

📅 2026/8/24 1:28:14
AI 协作完整流程:从任务输入到可验证产出

AI 协作完整流程:从任务输入到可验证产出

AI 协作完整流程:从任务输入到可验证产出 版本:2026-07-16 适用对象:使用 AI 处理写作、研究、代码和知识工作的个人或小团队 核心目标:让 AI 不只是“生成答案”,而是参与一套可审阅、可验证、可回写、可演化的协作闭…

📅 2026/9/12 21:16:26
【课程设计/毕业设计】数字化宠物生活服务管理平台 基于 Django 的宠物临时寄养互助共享服务系统【附源码、数据库、万字文档】

【课程设计/毕业设计】数字化宠物生活服务管理平台 基于 Django 的宠物临时寄养互助共享服务系统【附源码、数据库、万字文档】

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

📅 2026/8/24 1:28:14
MORE NEWS

更多资讯

📰

PyCharm远程连接服务器:配置、同步与断点调试指南

1. 为什么我把开发环境搬到了服务器上第一次被逼着把跑代码的地方从笔记本挪到服务器上,是因为一个特别朴素的原因:本地机器跑不动。数据文件几个G,模型一训练风扇就起飞,跑一半内存爆掉,前功尽弃。后来换了个思路——…

📰

oj题完全背包

题意分析我们定义 dp[x]:拼成总长度为 x 的棒,能得到的最大武力值。规则:基础情况:直接用一根短棒 a_i,如果 a_i x,那么 dp[x] 可以取 b_i。合并规则:把两根棒(长度 A、B&#xff0…

📰

SyncToy 2.1汉化版:Windows本地文件同步的可控实践

1. 项目概述:SyncToy 2.1 汉化版不是“破解补丁”,而是本地化工程的务实落地SyncToy 2.1 是微软在2009年发布的轻量级文件同步工具,它不走云盘路线,也不搞实时监控,就干一件事:在你指定的两个文件夹之间&am…

📰

Win11 删除“入门”和“Windows备份”以及 Win10 删除“Windows备份”的方法

Win11 删除"入门"和"Windows备份":说明:此方法适用范围:- 联机 Windows:Windows 11 21H2/22H2/23H2 ,24H2及以上版本不支持- 未部署的 Windows 映像:Windows 11 所有版本1.将在C:\Windows\SystemA…

📰

如何设置PI-Desktop的思考级别覆盖:为每个模型定制思考深度

如何设置PI-Desktop的思考级别覆盖:为每个模型定制思考深度 【免费下载链接】PI-Desktop Local-first AI coding agent desktop: Electron Rust host core pi Agent Harness user-installable plugins 项目地址: https://gitcode.com/GitHub_Trending/pid/PI-D…

📰

超市进销存系统UML建模:从用例图到包图全流程解析

简介:这份演示文稿资源面向软件工程、系统分析与设计课程师生,以超市进销存系统为案例,完整展示UML建模过程。内容围绕销售、库存、订货、统计四大业务域展开:销售部分拆解从开单、输入商品、计算总价到打印清单、保存购买记录的完…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬