Samba 共享解决方案:微服务多机共享 `/app` 目录

Samba 共享解决方案:微服务多机共享 /app 目录

背景需求

  • 技术栈‌:Java SpringCloud + Nacos 微服务架构
  • 部署变更‌:从单机开发环境迁移至四台生产服务器
  • 核心问题 ‌:多服务器需同时读写 /app 目录
  • 选型原因‌:分布式存储改造时间不足,采用 Samba 作为临时共享方案

服务端配置(Ubuntu)

1. 安装 Samba 服务

bash 复制代码
sudo apt update && sudo apt install samba samba-common-bin -y

2. 配置共享目录

创建目录并设置权限
shell 复制代码
sudo mkdir -p /app/share  # 推荐使用系统级目录
sudo chmod -R 1777 /appa/share  # 开放读写权限
编辑 Samba 配置 (/etc/samba/smb.conf)
ini 复制代码
[SharedApp] 
comment = App Samba Share  # 描述
path = /app/share 
browseable = yes 
writable = yes  
read only = no 
guest ok = no  
force create mode = 0775 
force directory mode = 0775 
  • ‌参数说明‌:
  • SharedApp 是url后的名字对应
  • comment 描述
  • path 物理路径
  • browseable 是否可见
  • writable 可写
  • read only 是否 禁用
  • guest ok 是否禁止匿名访问
  • force create mode 文件默认权限
  • force directory mode 目录默认权限

3. 用户与权限管理

复制代码
# 创建系统用户
sudo adduser smbuser

# 设置Samba专用密码(与系统密码隔离)
sudo smbpasswd -a smbuser

# 修改目录属主
sudo chown -R smbuser:smbuser /app/share

4. 防火墙与服务重启

复制代码
sudo ufw allow samba  # 放行139/445端口
sudo systemctl restart smbd
sudo testparm  # 验证配置语法

客户端挂载(其他服务器)

1. 安装依赖工具

shell 复制代码
sudo apt install cifs-utils -y

2. 挂载共享目录

shell 复制代码
sudo mount -t cifs //smb服务器ip/SharedApp /app/share -o username=smbuser,password=emacs,vers=3.0

‌注意事项‌:

  • 生产环境建议使用密钥文件替代明文密码
  • 如需开机自动挂载,需将配置写入 /etc/fstab
  • 确保所有客户端服务器的 /app/share 目录存在

方案优缺点

优点 缺点
快速实现多机共享 单点故障风险
无需改造现有代码 网络延迟影响IO性能
权限管理灵活 不适合海量小文件场景

建议后续迁移至 MinIO 或 NFS 等分布式存储方案

相关推荐
stark张宇2 天前
微服务架构必备:Gin + gRPC + Consul + Nacos + GORM 打造用户服务
微服务·gin·grpc
阿里云云原生6 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生6 天前
阿里云微服务引擎 MSE 及 API 网关 2026 年 1 月产品动态
微服务
麦聪聊数据6 天前
统一 Web SQL 平台如何收编企业内部的“野生数据看板”?
数据库·sql·低代码·微服务·架构
云司科技codebuddy7 天前
技术支持过硬Trae核心代理
大数据·运维·python·微服务
递归尽头是星辰7 天前
微服务事务分级治理:从 Seata 全模式到 TDSQL 实战
微服务·云原生·架构·分布式事务·事务分级治理
没有bug.的程序员7 天前
订单系统重构史诗:从单体巨兽到微服务矩阵的演进、数据一致性内核与分布式事务
java·微服务·矩阵·重构·分布式事务·数据一致性·订单系统
江西理工大学小杨7 天前
高性能 C++ 社交平台4:基于 Boost.Beast 的 WebSocket 网关实现
c++·websocket·微服务
麦聪聊数据7 天前
数据流通的最后一公里:SQL2API 在企业数据市场中的履约架构实践
数据库·sql·低代码·微服务·架构
知识即是力量ol7 天前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign