openEuler 22.03 NFS + mergerfs 分布式存储池部署完整文档
openEuler 22.03 NFS mergerfs 分布式存储池部署完整文档文档概述本文档详细记录了在 openEuler 22.03 系统上将多台存储服务器的/bak目录通过 NFS 共享并在客户端使用 mergerfs 合并为统一存储池的完整流程。架构示意图┌─────────────────────────────────────────────────────────────────┐ │ 客户端服务器 (192.168.20.3) │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ /bak (mergerfs 统一挂载点) │ │ │ │ 总容量 本地138T NFS14 139T NFS19 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 │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘第一部分存储服务器NFS 服务端配置适用于所有需要共享/bak目录的存储服务器如 192.168.20.14、192.168.20.19、192.168.20.20 等。1.1 安装 NFS 服务sudodnfinstall-ynfs-utilsNFS 服务的实现依赖于 RPCRemote Procedure Call机制RPC 服务rpcbind负责统一管理 NFS 的动态端口。1.2 启动并启用服务按照正确的顺序启动服务必须先启动 rpcbind再启动 nfs-server因为 NFS 服务需要向 RPC 注册端口信息。sudosystemctlenablerpcbind nfs-serversudosystemctl start rpcbindsudosystemctl start nfs-server1.3 配置共享目录/etc/exports编辑 NFS 核心配置文件/etc/exports定义需要共享的目录和访问权限sudovi/etc/exports添加以下内容将192.168.20.3替换为实际的客户端 IP/bak 192.168.20.3(rw,sync,no_root_squash,no_subtree_check)参数说明参数说明/bak要共享的目录192.168.20.3允许访问的客户端 IP可指定网段如192.168.20.0/24rw可读可写sync同步写入磁盘数据更安全推荐生产环境使用async异步写入性能更高但有数据丢失风险谨慎使用no_root_squash允许客户端 root 用户保持 root 权限有安全风险按需使用no_subtree_check禁用子目录检查提升性能安全建议生产环境中建议使用rw,sync,no_root_squash并严格限制客户端 IP。1.4 使配置生效sudoexportfs-r修改 NFS 配置后无需重启服务执行exportfs -r即可使/etc/exports的变更生效。验证共享是否成功sudoexportfs-v# 或showmount-elocalhost1.5 配置防火墙如果防火墙已开启需要放行 NFS 相关服务sudofirewall-cmd--permanent--add-servicenfssudofirewall-cmd--permanent--add-servicemountdsudofirewall-cmd--permanent--add-servicerpc-bindsudofirewall-cmd--reload说明NFS 依赖 RPC 服务需要放行 rpcbind端口 111和 nfs端口 2049等相关服务。第二部分客户端服务器配置在客户端服务器192.168.20.3上执行以下操作。2.1 安装 NFS 客户端工具sudodnfinstall-ynfs-utils2.2 准备本地存储如果客户端有本地存储设备如/dev/mapper/vgdata-lvdata138TB需要将其挂载到独立目录供 mergerfs 使用# 创建挂载点sudomkdir-p/mnt/localbak# 挂载本地存储设备请根据实际设备路径调整sudomount/dev/mapper/vgdata-lvdata /mnt/localbak2.3 挂载远程 NFS 存储为每个远程存储服务器创建独立的挂载点并挂载# 创建挂载点sudomkdir-p/mnt/nfs14 /mnt/nfs19# 挂载远程存储使用性能优化参数sudomount-tnfs-orw,hard,intr,rsize1048576,wsize1048576,noatime192.168.20.14:/bak /mnt/nfs14sudomount-tnfs-orw,hard,intr,rsize1048576,wsize1048576,noatime192.168.20.19:/bak /mnt/nfs19挂载参数说明参数说明rw读写模式hard硬挂载请求会持续重试直到成功保证数据一致性intr允许中断卡住的 NFS 操作rsize1048576读取块大小设为 1MB提升大文件传输吞吐量wsize1048576写入块大小设为 1MBnoatime不更新访问时间戳减少元数据写入开销验证挂载是否成功df-h/mnt/nfs14 /mnt/nfs19第三部分mergerfs 存储池配置3.1 安装 mergerfs# 从 GitHub 下载 RPM 包安装以 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.rpm最新版本请访问 mergerfs releases 获取。3.2 创建 mergerfs 合并挂载点# 如果 /bak 已存在且被占用先处理sudoumount/bak2/dev/nullsudomkdir-p/bak3.3 挂载 mergerfs合并所有分支将所有存储分支本地 所有远程 NFS合并到/baksudomergerfs-odefaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19 /bak参数说明参数说明defaults使用默认选项allow_other允许其他用户访问需在/etc/fuse.conf中启用user_allow_othercategory.createmfs创建新文件时选择剩余空间最多的分支most free spaceminfreespace10240G每个分支至少保留 10TB 空闲空间3.4 验证合并结果# 查看总容量应约为所有分支容量之和df-h/bak# 查看各分支独立容量df-h/mnt/localbak /mnt/nfs14 /mnt/nfs19# 查看文件列表ls/bak第四部分开机自动挂载systemd 服务4.1 配置 /etc/fstab编辑/etc/fstab确保所有存储分支在开机时自动挂载sudovi/etc/fstab添加以下内容# 本地存储挂载到 /mnt/localbak而非 /bak /dev/mapper/vgdata-lvdata /mnt/localbak xfs defaults 0 0 # 远程 NFS 存储 192.168.20.14:/bak /mnt/nfs14 nfs rw,hard,intr,rsize1048576,wsize1048576,noatime,_netdev 0 0 192.168.20.19:/bak /mnt/nfs19 nfs rw,hard,intr,rsize1048576,wsize1048576,noatime,_netdev 0 0_netdev选项确保网络就绪后再尝试挂载 NFS避免系统启动卡住。测试 fstab 配置是否正确sudomount-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注意Typesimplemergerfs 默认在前台运行。-f选项强制前台运行确保 systemd 能正确管理进程。ExecStartPre/bin/mount -a确保 fstab 中的所有挂载已生效。4.3 启用并启动服务sudosystemctl daemon-reloadsudosystemctlenablemergerfs-bak.servicesudosystemctl start mergerfs-bak.servicesudosystemctl status mergerfs-bak.service第五部分热添加新 NFS 分支在线扩容当需要添加新的存储服务器如 192.168.20.20时可以使用 mergerfs 的运行时接口进行热添加无需停机。5.1 挂载新 NFS 到临时目录sudomkdir-p/mnt/nfs20sudomount-tnfs-orw,hard,intr,rsize1048576,wsize1048576,noatime192.168.20.20:/bak /mnt/nfs205.2 验证挂载成功df-h/mnt/nfs205.3 通过控制接口热添加分支mergerfs 提供了伪文件/mountpoint/.mergerfs用于运行时修改配置和执行命令。echoadd /mnt/nfs20|sudotee/bak/.mergerfs/ctl或者使用setfattr命令sudosetfattr-nuser.mergerfs.branches-v/mnt/nfs20/bak/.mergerfs5.4 验证扩容成功df-h/bak# 总容量应增加约 139TB5.5 持久化配置确保重启后保留① 更新/etc/fstabecho192.168.20.20:/bak /mnt/nfs20 nfs rw,hard,intr,rsize1048576,wsize1048576,noatime,_netdev 0 0|sudotee-a/etc/fstab② 更新 systemd 服务文件编辑/etc/systemd/system/mergerfs-bak.service在分支列表中添加/mnt/nfs20ExecStart/usr/bin/mergerfs -f -o defaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19:/mnt/nfs20 /bak③ 重载 systemdsudosystemctl daemon-reload第六部分性能优化针对 64 核 188GB 内存的高性能服务器可以进行以下优化6.1 NFS 客户端参数优化在挂载时使用以下参数mount-tnfs-o\rw,hard,intr,\rsize4194304,wsize4194304,\noatime,nodiratime,\timeo300,retrans3,\tcp\192.168.20.14:/bak /mnt/nfs14参数说明rsize4194304读取块大小设为 4MB需服务端支持wsize4194304写入块大小设为 4MBnodiratime禁用目录访问时间更新timeo300超时时间设为 30 秒局域网环境可适当降低retrans3重传次数6.2 内核网络调优编辑/etc/sysctl.conf# 最大 TCP 缓冲区提升至 64MB net.core.rmem_max 67108864 net.core.wmem_max 67108864 # TCP 自动调优缓冲区范围 net.ipv4.tcp_rmem 4096 87380 33554432 net.ipv4.tcp_wmem 4096 65536 33554432使配置生效sudosysctl-p6.3 服务端优化在 NFS 服务端各存储服务器增加 nfsd 线程数编辑/etc/nfs.conf[nfsd] threads128重启服务sudosystemctl restart nfs-server6.4 openEuler eNFS 特性可选openEuler 提供了增强的 NFS 客户端 eNFS支持多链路负载均衡可显著提升性能和可靠性。当前版本负载均衡仅支持NFSv3。配置文件/etc/enfs/config.inipath_detect_interval10 path_detect_timeout10 multipath_timeout0 multipath_disable0使用 eNFS 挂载mount-tnfs-overs3,localaddrs192.168.20.3,remoteaddrs192.168.20.14192.168.20.14:/bak /mnt/nfs14第七部分运维管理命令速查7.1 查看存储池状态# 查看合并总容量df-h/bak# 查看各分支独立容量df-h/mnt/localbak /mnt/nfs14 /mnt/nfs19# 查看当前 mergerfs 挂载选项mount|grepmergerfs# 查看控制接口信息如果可用cat/bak/.mergerfs/ctl2/dev/null7.2 管理 mergerfs 服务# 启动服务sudosystemctl start mergerfs-bak.service# 停止服务sudosystemctl stop mergerfs-bak.service# 重启服务sudosystemctl restart mergerfs-bak.service# 查看服务状态sudosystemctl status mergerfs-bak.service# 查看服务日志sudojournalctl-xeumergerfs-bak.service-n507.3 管理 NFS 挂载# 查看所有 NFS 挂载mount|grepnfs# 手动挂载所有 fstab 条目sudomount-a# 卸载 NFS 挂载sudoumount/mnt/nfs14# 查看服务端共享列表客户端showmount-e192.168.20.14第八部分故障排查8.1 服务启动失败# 查看详细错误sudosystemctl status mergerfs-bak.servicesudojournalctl-xeumergerfs-bak.service-n50常见原因及解决方案问题解决方案target is busy使用sudo fuser -km /bak强制结束占用进程unknown option controlmergerfs 版本不支持该选项移除即可分支路径不存在检查 NFS 是否已正确挂载到/mnt/nfs*服务启动后立即退出在ExecStart中添加-f选项强制前台运行8.2 热添加失败# 检查控制接口是否存在ls-la/bak/.mergerfs如果/bak/.mergerfs是普通文件而非目录删除后重新挂载 mergerfssudorm-f/bak/.mergerfssudoumount/baksudomergerfs-odefaults,allow_other,category.createmfs,minfreespace10240G /mnt/localbak:/mnt/nfs14:/mnt/nfs19 /bak8.3 NFS 挂载卡住# 使用软挂载intr 允许中断mount-tnfs-ointr,timeo30192.168.20.14:/bak /mnt/nfs14# 检查服务端 NFS 服务状态systemctl status nfs-server# 在服务端执行# 检查防火墙sudofirewall-cmd --list-all# 在服务端执行附录常用命令速查表操作命令安装 NFSsudo dnf install -y nfs-utils配置共享sudo vi /etc/exports生效共享配置sudo exportfs -r查看共享showmount -e localhost挂载 NFSsudo mount -t nfs IP:/dir /mountpoint安装 mergerfssudo dnf install -y ./mergerfs-*.rpm合并存储池sudo mergerfs -o ... branch1:branch2 /mountpoint热添加分支echo add /new/branch | sudo tee /mountpoint/.mergerfs/ctl查看服务状态sudo systemctl status mergerfs-bak.service查看日志sudo journalctl -xeu mergerfs-bak.service -n 50文档版本1.0 | 更新日期2026-07-13 | 适用环境openEuler 22.03

相关新闻

# RAG效果不好怎么调?6张图讲透相似度·意图识别·召回排序·ReRank·混合检索(附代码)

# RAG效果不好怎么调?6张图讲透相似度·意图识别·召回排序·ReRank·混合检索(附代码)

📢 本文是 「108张AI知识卡片大模型通关手册」 系列第 6 篇。上一篇把 RAG 核心链路(切→嵌→存→检→答)从 0 串通了,但"跑通"和"好用"之间隔着一条鸿沟——检索不准、排序不对、相似度选错、意图没识别………

2026/7/23 21:43:34阅读更多 →
2026芜湖黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026芜湖黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026芜湖黄金白银铂金回收实测榜单|公安备案中检认证无折旧费门店推荐 Meta快照标题:芜湖黄金回收哪家靠谱|工商公安双备案中检认证实体门店在芜湖这座滨江之城,贵金属回收店铺遍地丛生,行业套路层出不穷。不少市民变现…

2026/7/23 21:41:34阅读更多 →
中日跨境物流上海翼速DDP全包价报价引擎设计:多维度费用计算与一口价模型的技术实现

中日跨境物流上海翼速DDP全包价报价引擎设计:多维度费用计算与一口价模型的技术实现

在中日专线跨境物流领域,DDP(Delivered Duty Paid)全包价模式对报价引擎的计算精度和覆盖广度提出了较高要求。DDP全包价意味着从国内提货到日本收货人签收的全部费用包含在一个价格中,报价引擎需要覆盖运输、清关、关税、仓储、派…

2026/7/23 21:41:34阅读更多 →
一封核查申请信件滞留多日,到底该由哪个科室签收受理?

一封核查申请信件滞留多日,到底该由哪个科室签收受理?

6月29日,我寄出一封EMS快件,里面是一套案件相关的举证申请材料,希望院领导对21920号案件相关程序情况予以核查。此前在案件审理阶段,我申请以第三人身份参与诉讼,仅得到口头答复,并未出具书面意见。快递收件…

2026/7/23 22:53:44阅读更多 →
AI趋势监控平台架构与实战解析

AI趋势监控平台架构与实战解析

1. 项目概述:为什么需要AI趋势监控平台?在信息爆炸的时代,每天产生的数据量已经超出了人类处理能力的极限。以2023年为例,全球每天产生的数据量超过3.28亿TB,其中结构化数据仅占20%。传统的数据分析方法已经无法应对这…

2026/7/23 22:53:44阅读更多 →
从思维链到草稿链:大模型推理能力进化与实践

从思维链到草稿链:大模型推理能力进化与实践

1. 从Chain of Thought到Chain of Draft:大模型推理能力的进化去年我在调试一个合同条款生成项目时,发现直接让大模型输出最终结果总会出现逻辑断层。直到尝试让模型"把思考过程写出来",生成质量突然提升了37%。这背后正是Chain of…

2026/7/23 22:53:44阅读更多 →
Micrometer 系列【1】JVM 可观测门面框架全景概述

Micrometer 系列【1】JVM 可观测门面框架全景概述

文章目录1. 概述1.1 框架简介1.2 三大核心项目1.2.1 Micrometer1.2.2 Micrometer Tracing1.2.3 Micrometer Context Propagation1.3 设计目标2. 核心特性2.1 主流框架原生集成2.2 开箱即用的通用埋点能力2.3 全环境兼容,灵活切换监控后端2.4 标准维度化指标模型2.5 …

2026/7/23 22:53:44阅读更多 →
被低估的AI自动化临界点(单点突破→全链路提效的4.7天拐点实测数据)

被低估的AI自动化临界点(单点突破→全链路提效的4.7天拐点实测数据)

更多请点击: https://codechina.net 第一章:被低估的AI自动化临界点(单点突破→全链路提效的4.7天拐点实测数据) 当AI工具在单一环节(如日志解析、PR描述生成或单元测试补全)首次稳定交付准确结果时&…

2026/7/23 22:53:44阅读更多 →
保姆级教程:MCP 工具链搭建实战——从零配置 AI 编程助手

保姆级教程:MCP 工具链搭建实战——从零配置 AI 编程助手

保姆级教程:MCP 工具链搭建实战——从零配置 AI 编程助手 一、背景:为什么需要 MCP? 说实话,过去一年我踩了不少 AI 编程的坑。最早用 ChatGPT 写代码,每次都是复制粘贴,改完还得手动再粘回去。后来上了 Cl…

2026/7/23 22:51:43阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →