美文网首页
MinioIO迁移

MinioIO迁移

作者: 知然 | 来源:发表于2024-11-11 15:06 被阅读0次

使用 mc (MiniIO Client) 命令行工具

# 配置源和目标MiniIO
mc config host add source http://source-minio:9000 <ACCESS_KEY> <SECRET_KEY>
mc config host add target http://target-minio:9000 <ACCESS_KEY> <SECRET_KEY>

# 迁移数据
mc cp --recursive source/bucket target/bucket

使用rclone工具

# 配置rclone.conf
[source]
type = s3
provider = Minio
access_key_id = <ACCESS_KEY>
secret_access_key = <SECRET_KEY>
endpoint = http://source-minio:9000

[target]
type = s3
provider = Minio
access_key_id = <ACCESS_KEY>
secret_access_key = <SECRET_KEY>
endpoint = http://target-minio:9000

# 执行同步
rclone sync source:bucket target:bucket

使用AWS CLI

bashCopyaws s3 sync \
    --endpoint-url http://source-minio:9000 \
    s3://source-bucket \
    s3://target-bucket \
    --endpoint-url http://target-minio:9000

安装方法

AWS CLI

使用 apt 安装(简单但可能不是最新版本):

bashCopysudo apt update
sudo apt install awscli

rclone

sudo apt update
sudo apt install rclone

工具对比

MinIO 数据迁移工具对比

特性 rclone AWS CLI mc (MinIO Client)
安装复杂度 中等 简单 简单
配置复杂度 中等 简单 简单
断点续传 支持 支持(有限) 不支持
增量同步 支持 支持 支持
带宽限制 支持 不支持 不支持
并发控制 支持 有限支持 有限支持
传输速度 中等 中等
错误恢复 优秀 一般 一般
日志详细度 中等
过滤规则 丰富 基础 基础
常用命令 rclone sync/copy aws s3 sync/cp mc mirror/cp
监控进度 详细 基础 基础
存储服务支持 多种 主要是S3兼容 仅MinIO/S3
内存占用 中等
适用场景 - 大规模迁移
- 定期同步
- 复杂规则
- 需要详细监控
- 简单迁移
- AWS生态
- 基础S3操作
- MinIO日常管理
- 简单迁移
- 基础操作
特殊优势 - 功能最全面
- 性能最好
- 配置灵活
- AWS生态集成
- 命令简单
- 广泛使用
- MinIO原生工具
- 简单直观
- 管理功能全面
主要缺点 - 配置较复杂
- 学习曲线陡
- 功能相对有限
- 不支持带宽限制
- 功能较基础
- 性能一般
推荐场景 - 大规模数据迁移
- 需要精细控制传输过程
- 复杂的同步规则
- 跨多种存储服务传输
- AWS/S3生态系统内使用
- 简单的迁移任务
- 需要脚本自动化
- 团队已熟悉AWS工具
- MinIO日常管理操作
- 简单的数据迁移
- 需要MinIO特定功能
- 轻量级使用场景

实际操作

选用 rclone进行数据迁移

# 运行配置向导
rclone config

按照向导选择下面的内容


# 按照提示输入:
# n) New remote
# name> minio-source  (输入名称)
# Storage> s3        (选择 s3)
# provider> Minio    (选择 Minio)
# env_auth> false    (选择 false)
# access_key_id>     (输入 access key)
# secret_access_key> (输入 secret key)
# endpoint>          (输入 MinIO 地址,如 http://localhost:9000)
# location_constraint> 
# acl>

配置文件

生成配置文件路径

~/.config/rclone/rclone.conf
大概样子这样,可以手动编辑

[prod-60-old]
type = s3
provider = Minio
env_auth = false
access_key_id = xxxxx
secret_access_key = xxxxxx
endpoint = http://xxxxx


[prod-60-new]
type = s3
provider = Minio
access_key_id = xxxx
secret_access_key = xxxx
endpoint = http://xxxx


我的目标是将 prod-60-old数据全部迁移到 prod-60-new

同步全部桶

#!/bin/bash

# 配置
SOURCE="prod-60-old"
DEST="prod-60-new"
LOG_FILE="sync_$(date +%Y%m%d_%H%M%S).log"


# 日志函数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

# 开始同步
log "开始全量同步"

# 获取所有桶并检查命令是否成功
bucket_list=$(rclone lsd ${SOURCE}:)
if [ $? -ne 0 ]; then
    log "获取桶列表失败"
    exit 1
fi

# 从输出中提取桶名
echo "$bucket_list" | while read -r line; do
    bucket=$(echo "$line" | awk '{print $5}')
    
    log "开始同步桶: $bucket"
    
    # 修改后的同步命令
    rclone sync \
        ${SOURCE}:${bucket} \
        ${DEST}:${bucket} \
        -P \
        --transfers 8 \
        --checkers 16 \
        --stats 30s \
        --stats-one-line \
        --retries 3 \
        --low-level-retries 10 \
        --timeout 60s \
        --contimeout 60s \
        --buffer-size 64M \
        --max-backlog 10000 \
        --size-only \
        --ignore-times \
        --no-update-modtime \
        2>> "$LOG_FILE"
    
    # 检查同步结果
    if [ $? -eq 0 ]; then
        log "桶 $bucket 同步成功"
    else
        log "警告: 桶 $bucket 同步失败"
    fi
    
    log "------------------------"
done

log "全部同步完成"


慢慢等待吧。。。

相关文章

  • 点评营销系统迁移方案

    迁移方案总体步骤 代码迁移 服务器迁移 数据库迁移 代码迁移 主要内容:代码全部迁移至general-market...

  • 2018-04-15 迁移学习的度量准则

    迁移学习的方法主要包括:基于样本的迁移,基于特征的迁移,基于模型的迁移和基于关系的迁移。 “迁移学习的总体思路可以...

  • 深入浅出KVM(八)丨使用 libvirt 迁移 QEMU/KV

    1. QEMU/KVM 迁移的概念 迁移(migration)包括系统整体的迁移和某个工作负载的迁移。系统整理迁移...

  • 学习迁移的种类

    一,性质和结果:正迁移,负迁移,零迁移。 二,发生的方向:顺向迁移,逆向迁移。 三,内容的抽象和概括水平不同:水平...

  • 《超级个体》拆听13——乐高式能力结构

    技能迁移分为两种:正迁移、负迁移。正迁移会带来好处,负迁移会产生负面效应。 输入一致,输出一致——正迁移 输入一致...

  • laravel的数据迁移命令

    1. 创建数据迁移 2. 迁移结构 3. 运行迁移 4. 回滚迁移 5. 编写迁移 创建表使用Schema门面上的...

  • 简单的服务端数据迁移

    数据迁移在服务端是很常见的,包括cache迁移、db迁移等。迁移的动机包括业务重构、业务隔离、机器迁移、扩容等很多...

  • 记一次ES的索引迁移

    由于公司需要统一整合ES服务,最近开始着手迁移。迁移方案主要分为物理迁移、本地升级、逻辑迁移三种。 物理迁移,就是...

  • 可迁移能力

    什么是可迁移能力?哪些能力属于可迁移能力? 如何培养可迁移能力? 可迁移能力的底成框架,思维模型是什么? 可迁移能...

  • kvm迁移

    kvm分静态和动态迁移,静态就是关机迁移,比较简单,动态迁移就是不关闭服务器进行迁移。静态迁移:确定虚拟机关闭 准...

网友评论

      本文标题:MinioIO迁移

      本文链接:https://www.haomeiwen.com/subject/cmdfjjtx.html