minio集群数据迁移实战

3,650 阅读2分钟

搭建新集群前准备工作

准备4台虚拟机,ip分别为 10.91.129.42 | 10.91.129.56 | 10.91.129.60 | 10.91.129.61 分别为4台机器挂载磁盘,minio集群必须使用干净的磁盘,否则启动的时候会一直尝试格式化磁盘,从而启动失败. 用lsblk命令查看磁盘情况:

image.png

vdb就是新挂载的磁盘.

2,分别给4个磁盘设置分区,minio建议只设置一个分区,因为一般磁盘坏了,所有分区数据都丢了 开始创建分区,命令fdisk /dev/vdb

image.png 再次查看,vdb1就是新建的分区

image.png

这里你会发现新的分区只有2T,原因是使用fdisk分区只能挂载上2TB的容量;针对这个情况引入parted对大于2TB的硬盘进行分区

磁盘分区

1.修改分区表格式

默认msdos,由于msdos不支持2TB以上容量的磁盘,所以大于2TB的磁盘选gpt分区表格式

parted /dev/vdb
(parted) mkpart primary 0% 100%
(parted) mklabel gpt  (格式化)

image.png

再次查看已经是20T了

image.png

目录挂载并设置开机自动挂载

mount /dev/vdb1  /minio
echo  "/dev/vdb1 /minio ext4 defaults 0 1" >> /etc/fstab

minio搭建

下载minio二进制安装文件到/minio下

wget https://dl.min.io/server/minio/release/linux-amd64/minio
赋予可执行权限   chmod +x  minio

分别在4台服务器的/minio目录创建data目录,最后运行脚本

#!/bin/bash
export MINIO_ACCESS_KEY=root
export MINIO_SECRET_KEY=密码
nohup /minio/minio server --address ":9000" --console-address ":50000" \
http://10.91.129.42/minio/data \
http://10.91.129.56/minio/data \
http://10.91.129.60/minio/data \
http://10.91.129.61/minio/data > /minio/minio.log 2>&1 &

启动完成可以查看日志 tail -f /minio/minio.log

image.png

配置nginx负载均衡

image.png

配置minio开机自启

cd /etc/rc.d/init.d
vim startMinio.sh
 编辑内容
#!/bin/bash
export MINIO_ACCESS_KEY=root
export MINIO_SECRET_KEY=密码
nohup /minio/minio server --address ":9000" --console-address ":50000" \
http://10.91.129.42/minio/data \
http://10.91.129.56/minio/data \
http://10.91.129.60/minio/data \
http://10.91.129.61/minio/data > /minio/minio.log 2>&1 &
保存
chmod +x startMinio.sh

chkconfig --add startMinio.sh

chkconfig startMinio.sh on

chkconfig --list

数据迁移

下载mc客户端

wget https://dl.min.io/client/mc/release/linux-amd64/mc
赋予可执行权限   chmod +x  mc

./mc --help 测试安装成功

./mc alias set old http://10.91.129.63:9000
./mc alias set new http://10.91.129.60:9000
添加客户端,需要输入用户名密码,old和new是取的别名
./mc admin info new

1677559311297.png

把old的bucket为test的数据迁移到new的test

./mc mirror --watch old/test new/test