docker单机版Minio迁移方案

发布时间 2023-10-19 22:46:31作者: pigeon-fancier

docker单机版Minio迁移方案

起因

一开始并没有想到会在轻量应用服务器上部署好几个服务,因为这个轻量服务器是用来做测试用的,但是由于缺少运维的原因,正式使用的也是这台服务器上的minio,结果因为其他的服务导致服务器老是卡死,所以需要在新的服务器上重新起一个单机的minio

前置条件

  1. linux环境

  2. docker环境

  3. 两台机器的端口如 9000minio服务端口都互相开放 或者两台机器都启用了域名访问,可以是使用nginx反代或其他网关产品

第一次尝试

直接使用 rsync命令将 data目录迁移至新服务器,报错format fail应该是版本+配置的问题,放弃

第二次尝试

启动一个minio/mcminio客户端的docker容器,可以在任何一个地方,需要能访问新老minio服务

  1. # docker pull minio/mc 可以先运行这句,不运行docker
    # 如下代码为创建一个 minio/mc 容器并进入其控制台
    docker run -it --entrypoint=/bin/sh minio/mc
  2. mc alias set minio_old http://ip_old:port_old admin admin@old
    # minio_old -> 起别名  minio的服务地址(也可以是 https://www.minio.com) 管理员账号 管理员密码
    mc alias set minio_new http://ip_new:port_new admin admin@new
    # 如果是两台云服务器,一般ip都为公网ip,如果两台云服务器都在如腾讯云这样的,并且可以内网互通,可以把ip改成内网ip,port设置成内网ip开放的
    # 当然,最好是使用两个域名 -> 比如 https://old.minio.com https://new.minio.com 自己cname一下配置就可以了 https 比较安全 
  3. # 迁移命令
    # 1. 全部迁移,重名文件不覆盖,如果对应的桶不存在,会自动创建
    mc mirror minio_old minio_new
    # 2. 只迁移某个桶,假设桶名为test,需要先在minio_new上创建桶test
    mc mirror minio_old/test minio_new/test
    # 3. 加上--overwrite参数,覆盖重名文件
    mc mirror --overwrite minio_old/test minio_new/test
  4. 等待数据迁移成功

参考链接:https://blog.51cto.com/u_10950710/6206451