Centos7 使用 s3fs 挂载华为云对象存储OBS到本地

  以下是在 CentOS 7 上使用 s3fs 挂载华为云对象存储(OBS)的方法,使用 /data 作为本地挂载点,桶名为 cnsec(上海节点),AK/SK 替换为你的实际密钥。
先登录控制台,创建密钥:https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
#提前准备好以下信息
终端节点:obs.cn-east-3.myhuaweicloud.com
桶名称:cnsec
AK:ak111
SK:sk666

1. 安装依赖工具

# 安装EPEL仓库(提供s3fs)
yum install -y epel-release

# 安装s3fs和依赖
yum install -y fuse s3fs-fuse

2. 配置华为云认证信息

创建密钥文件并设置权限:

echo "ak123456:sk123456" > /etc/.passwd-huawei-obs
chmod 600 /etc/.passwd-huawei-obs

3. 创建本地挂载目录

mkdir -p /data

4. 挂载华为云OBS桶

华为云OBS的S3兼容端点格式为:https://obs.{region}.myhuaweicloud.com(上海节点为 cn-east-3)。

执行挂载命令:

s3fs cnsec /data \
  -o url=https://obs.cn-east-3.myhuaweicloud.com \
  -o passwd_file=/etc/.passwd-huawei-obs \
  -o allow_other \
  -o umask=022 \
  -o nonempty \
  -o use_path_request_style

参数说明

  • cnses: 华为云OBS桶名称。
  • /data: 本地挂载路径。
  • url: 华为云OBS的S3端点(根据你的区域调整)。
  • passwd_file: 存放AK/SK的文件路径。
  • allow_other: 允许其他用户访问挂载点。
  • umask=022: 设置文件权限掩码。
  • nonempty: 允许挂载到非空目录。
  • use_path_request_style: 华为云OBS必须的路径风格。

5. 验证挂载

df -h | grep s3fs

6. 设置开机自动挂载

编辑 /etc/fstab 文件:

echo "cnsec /data fuse.s3fs _netdev,url=https://obs.cn-east-3.myhuaweicloud.com,passwd_file=/etc/.passwd-huawei-obs,allow_other,umask=022,nonempty,use_path_request_style 0 0" >> /etc/fstab
验证 fstab 配置:

mount -a

7. 卸载方法

umount /data  # 卸载
fusermount -u /data  # 强制卸载(如果卡住)

常见问题解决

1. 挂载失败提示权限不足

  • 检查AK/SK是否正确。
  • 确保华为云OBS桶的权限策略允许该AK/SK访问。

2. 文件操作缓慢

  • 增加缓存参数(如 -o use_cache=/tmp/cache)。
  • 华为云OBS建议使用ECS内网端点(如 obs.cn-east-3.myhuaweicloud.com 替换为内网域名)。

3. SELinux阻止访问

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config