日期: 2024 年 9 月 23 日

  • Minio文件镜像同步配置

    背景

    项目中由于会使用到minio对象存储,在需要满足项目多点灾备的情况下,记录下使用mirror和replicate来实现minio同步和镜像的相关功能,作为后续配置参考。

    mirror和replicate的区别

    mc mirror 用于在两个minio server中的桶之间进行数据同步。mc mirror 命令类似于 Unix rsync 命令,会对源和目标地址进行比较,并只将新增或修改的内容从源复制到目标,可以实现将源目录快速同步到目标目录。

    mc replicate 用于配置 Minio 服务器上的桶(replication rules)用于在区域间自动复制对象。这通常用于地理冗余和跨区域数据复制。最大的优势是在源桶和目标桶之间实现自动、异步的对象复制。

    1
    mc replicate add <source-bucket> --priority <arg> --remote-bucket <arg> --storage-class <value> --tags <value> --prefix <string> --arn <string>

    replicate配置

    两者的主要区别在于mc replicate 适用于设置自动跨区域复制规则,而 mc mirror 则更适合于手动的、一次性的数据迁移或备份。

    配置别名(源节点和备节点)

    alias主要的作用是方便好记,方便后续配置。

    1
    2
    3
    mc alias set minio-server http://10.8.40.1:9000 minio password --api s3v4 
    mc alias set minio-backup http://10.8.40.2:9000 minio password --api s3v4 
    mc alias ls

     

    创建bucket(源节点)

    1
    2
    3
    4
    mc mb -p minio-server/ucap 
    mc mb -p minio-backup/ucap 
    mc version enable minio-server/ucap 
    mc version enable minio-backup/ucap

    配置双向同步的主主复制(源节点)

    1
    2
    3
    4
    5
    #主节点上配置 
    mc replicate add --remote-bucket http://minio:password@10.8.40.2:9000/ucap --replicate "delete,delete-marker,existing-objects" --sync minio-server/ucap --limit-upload 200Mi  
    
    #备份节点配置-如果是灾备,只有执行1条即可。 
    mc replicate add --remote-bucket http://minio:password@10.8.40.1:9000/ucap --replicate "delete,delete-marker,existing-objects" --sync minio-backup/ucap --limit-upload 200Mi

    测试效果

    用以下方法测试在多点写入,是否都可以访问。

    1
    2
    3
    4
    5
    6
    mc cp /etc/hosts minio-server/ucap 
    mc cp /etc/alias minio-backup/ucap 
    curl http://10.8.40.1:9000/ucap/hosts 
    curl http://10.8.40.2:9000/ucap/hosts 
    curl http://10.8.40.1:9000/ucap/alias 
    curl http://10.8.40.2:9000/ucap/alias

     

    replicate相关状态查看

    命令 描述
    mc replicate add 添加服务器端复制配置规则
    mc replicate edit 修改现有的服务器端复制配置规则
    mc replicate ls 列出服务器端复制配置规则
    mc replicate status 显示服务器端复制状态
    mc replicate resync 重新复制所有以前复制的对象
    mc replicate export 导出服务器端复制配置
    mc replicate import 以 JSON 格式导入服务器端复制配置
    mc replicate rm 删除服务器端复制配置规则

    mirror后续再补…..

    mirror后续再补…..