记录一次minio的迁移

服务器1T的硬盘装满了,准备了两个16T的硬盘专门做文件服务器用,打算做个minio的迁移

这里从服务器A迁移到服务器B

安装新的minio

迁移首先肯定是在新的服务器B上安装minio,这里选择还没有阉割Web管理功能的最后一个版本

services:
  minio:
    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
    container_name: minio
    ports:
      - 9001:9001
      - 9000:9000
    restart: always
    command: "server /data --console-address :9001 --address :9000"
    environment:
      MINIO_ROOT_USER: user #自行修改账号
      MINIO_ROOT_PASSWORD: user123 #自行修改密码
      MINIO_BROWSER_SESSION_DURATION: 6h
      PUID: 1000
      PGID: 1000
      TZ: Asia/Shanghai
    volumes:
      - /vol2/1000/docker-store/minio/data:/data #自行设置文件目录
      - ./config:/root/.minio

安装客户端MC

下载地址,这里直接下载二进制文件

image

下载完成后复制到服务器B,添加执行权限,运行看一下版本,有版本信息就好了

chmod +x minio
./minio --version

设置别名

在迁移之前需要给 minio 服务端设置别名

./mc alias set 别名 服务器地址 账号 密码

# 比如
./mc alias set minio_a http://10.10.10.1:9000 user user123
./mc alias set minio_b http://10.10.10.2:9000 user user123

# minio_a 和 minio_b 是设置的别名
# http://10.10.10.1:9000 和 http://10.10.10.2:9000 是服务器地址
# user user123 是账号的用户名密码,也可以使用Access Keys

迁移

从服务器A迁移到服务器B,迁移完成后服务器A的数据将会保留

# 将服务器A的存储桶 bucketa 迁移到服务器B的 bucketb
./mc cp --recursive minio_a/bucketa/ minio_b/bucketb/
# 将服务器A的存储桶 bucketa 的 a 文件夹 迁移到服务器B的 bucketb 的 b 文件夹
./mc cp --recursive minio_a/bucketa/a/ minio_b/bucketb/b/
# 将服务器A的所有文件迁移到服务器B
./mc cp --recursive minio_a minio_b

从服务器A备份到服务器B(将文件拷贝到服务器B的硬盘中)

# 将服务器A的 bucketa 备份到服务器B的 /opt/minio/backup/bucketa
./mc cp --recursive minio_a/bucketa/ /opt/minio/backup/bucketa
# 将服务器A的所有桶备份到服务器B的 /opt/minio/backup
./mc cp --recursive minio_a /opt/minio/backup

从备份的文件恢复

# 将服务器B的备份文件恢复到服务器B的minio
./mc cp --recursive /opt/minio/backup/bucketa/ minio_b/bucketb/
# 将服务器B的备份文件恢复到服务器B的minio
./mc cp --recursive /opt/minio/backup/ minio_b