跳到主要内容
版本:v3&v6

配置对象存储

适用版本

v6.37.x 或以上版本

适用场景

  • 场景1: 本地存储(NFS/NAS)迁移到对象存储
  • 场景2: 对象存储迁移到对象存储
  • 场景3: 其他存储任意存储迁移到对象存储

前提条件

准备 3个 bucket,比如:

  • ones-public-files: 用于存放公开访问的资源,比如用户头像、团队logo等
  • ones-private-files: 用于存放私有资源, 用户存放业务附件、wiki页面资源
  • ones-tmp-files: 用于存放临时的、不公开访问的对象

权限要求: 3个 bucket 统一配置为私有读写

配置对象存储

  1. 配置对象存储配置

执行ones-ai-k8s.sh进入操作容器,编辑config/private.yaml
⚠️注意,根据实际情况调整以下配置项的值

dataS3Endpoint: "https://obs.cn-south-1.myhuaweicloud.com"
dataS3AccessKeyID: "<your-access-key-id>"
dataS3SecretAccessKey: "<your-access-key-secret>"
dataS3Region: "cn-shenzhen"
dataS3ForcePathStyle: true
dataS3PublicBucket: "ones-public-files"
dataS3PrivateBucket: "ones-private-files"
dataS3TmpBucket: "ones-tmp-files"
  1. 配置回源(平滑迁移)

执行ones-ai-k8s.sh进入操作容器,根据不同场景,按需修改config/private.yaml

场景1: 本地存储(NFS/NAS)迁移到对象存储, 则配置以下配置项

backToOriginEnabled: true
backToOriginWithS3Endpoint: ""

场景2: 对象存储迁移到对象存储, 则配置以下配置项

backToOriginEnabled: true
# 根据实际情况,调整下方配置值
backToOriginWithS3Endpoint: "https://old-oss.example.com"
backToOriginWithS3AccessKeyID: "<your-access-key-id>"
backToOriginWithS3SecretAccessKey: "<your-access-key-secret>"
backToOriginWithS3Region: "cn-shenzhen"
backToOriginWithS3ForcePathStyle: true
backToOriginWithS3PublicBucket: "old-public-files"
backToOriginWithS3PrivateBucket: "old-private-files"
backToOriginWithS3DisableSSL: false

场景3: 其他存储任意存储迁移到对象存储, 则配置以下配置项

⚠️注意:其他存储迁移到对象存储,需要 开发对应的 HTTP fileserver, 可连续ONES提供技术咨询

backToOriginEnabled: true
# 根据实际情况,调整下方配置值
backToOriginWithFileServerEndpoint: "http://fileserver.example.com"
backToOriginWithFileServerBasicUser: "<your-basic-user>"
backToOriginWithFileServerBasicPassword: "<your-basic-password>"
  1. 应用配置

执行命令,应用配置

make setup-ones
  1. 同步全量数据

全量同步数据基于Rclone,Rclone支持限制同步速度,比如:

  • --bwlimit 2M 固定限制到2M/s
    • 示例: clone --bwlimit 2M --config /etc/rclone.conf -L copy ones-public-files/data/ s3-src:${newPublicBucket}/
  • --bwlimit "08:00,10M 21:00,50M" 从 08:00 开始,每秒限速 10MB,从 21:00开始,每秒限速 50MB
    • 示例:rclone --bwlimit "08:00,10M 21:00,50M" --config /etc/rclone.conf -L copy ones-public-files/data/ s3-src:${newPublicBucket}/

⚠️ 注意:根据不同场景,按需选择操作步骤

场景1: 本地存储(NFS/NAS)迁移到对象存储, 则执行以下命令完成同步(建议用screen后台执行)

# 进入容器
kubectl -n ones exec -it $(kubectl -nones get pods |grep mc-backup-tools |awk '{print $1}') -- bash

# 在容器内执行以下命令
# 注意,根据对象存储桶名,替换下方的 newPrivateBucket 和 newPublicBucket 值
cd /data/ones/files
newPublicBucket=ones-public-files
newPrivateBucket=ones-private-files
# 如需限制速度,可以在 rclone 命令后面加上 --bwlimit 参数
rclone --config /etc/rclone.conf -L copy ones-public-files/data/ s3-src:${newPublicBucket}/
rclone --config /etc/rclone.conf -L copy ones-private-files/data/ s3-src:${newPrivateBucket}/

场景2: 对象存储迁移到对象存储, 则执行以下命令完成同步(建议用screen后台执行)

待新版本优化,暂未提供便捷的操作步骤

场景3: 其他存储任意存储迁移到对象存储, 则执行以下命令完成同步(建议用screen后台执行)

待新版本优化,暂未提供便捷的操作步骤
  1. 校验

步骤4完成同步后,再次执行步4的 rclone copy命令,如果无报错,则完成校验