专业的编程技术博客社区

网站首页 > 博客文章 正文

Minio的扩容(mini4扩容128g多少钱)

baijin 2024-10-26 08:10:14 博客文章 7 ℃ 0 评论

Minio是一款分布式对象存储软件,使用比较广泛,在Minio的安装和数据高可用原理这篇文章中,介绍了它的安装和高可用的原理,这里对minio的扩容做介绍。

扩容前有几点要注意:

  1. Minio的扩容需要创建新的服务器池(Server Pool),不要在现有的池中增加硬盘(环境变量MINIO_VOLUMES的值中,空格隔开的就是minio的一个个池)
  2. 配置时间同步,可以在每台服务器安装ntpd
  3. 扩容前备份原集群桶和IAM配置,使用命令“mc admin cluster bucket export ALIAS”和“mc admin cluster iam export ALIAS”
  4. 新的主机名最好包含序号,如minio2.example.cn。硬盘的挂载点也包含序号,如/mnt/disk1,/mnt/disk2等
  5. 硬盘的类型保持相同,如果选择SSD就都用SSD,不建议机械盘和SSD混用。大小也相同
  6. 扩容操作需要同时(尽量最小时间间隔)重启集群中的全部minio服务,不是一个起来再启动另一个。
  • 实验环境

操作系统和软件版本与“Minio的安装和数据高可用原理”保持一致。扩容增加一台服务器,安装四块数据盘作为minio的后端存储。

原服务器域名,minio1.example.cn,硬盘挂载点/mnt/disk{1...4}

新服务器域名,minio2.example.cn,硬盘挂载点/mnt/disk{1...4}

  • 节点配置

新服务器minio2.example.cn的安装参照“Minio的安装和数据高可用原理”,安装完成后不要启动,修改环境变量文件/etc/default/minio,

#两个server pool,每个节点四块硬盘组成一个server pool
MINIO_VOLUMES="http://minio1.example.cn:9000/mnt/disk{1...4}/minio http://minio2.example.cn:9000/mnt/disk{1...4}/minio"
#Web UI的地址
MINIO_OPTS="--console-address :9001"
#超管的用户名
MINIO_ROOT_USER=minioadmin
#超管的密码
MINIO_ROOT_PASSWORD=minioadminWo3
#客户端访问minio的API地址,由Nginx做负载均衡,不是WebUI的地址
MINIO_SERVER_URL="http://minio.example.cn"

原服务器minio1.example.cn的环境变量文件/etc/default/minio也需要修改,和上面保持一致。

  • 负载均衡配置

为了保证客户端访问minio的稳定性,使用Nginx作为前端负载均衡,Nginx的配置文件如下,

upstream minio_upstream {
        least_conn;
        server minio1.example.cn:9000;
        server minio2.example.cn:9000;
    }

server {
        listen 80;
        server_name minio.example.cn;
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://minio_upstream;
        }
}
  • 扩容

配置完成后,启动Nginx和两个minio实例。启动后发现集群报下面异常,

在minio2服务器上发现是因为minio对硬盘没有写入权限导致,

使用下面命令修改文件系统所有者为minio-user

chown -R minio-user:minio-user /mnt

再次重启minio,状态恢复,查看状态如下,

  • 对象均衡

加入新的服务池(server pool)后,集群容器翻倍,但是原有的数据不会自动从Pool 1移动到Pool 2,可以看到Pool 2的空间并没有使用,

可以手动平衡(不是必需的,新的数据会写入Pool 2),

#手动执行数据平衡
mc admin rebalance start ALIAS
#查看平衡的状态
mc admin rebalance status ALIAS

平衡完成后,看到两个池的容器基本一致。

个人感觉这里显示有问题,百分比应该分别是31%和27%才对。看两台服务器文件系统的占用,

  • 总结

本文对minio的扩容做了简单介绍,生产环境需要规划好服务器的数量和每台服务器上硬盘的数量,每个池要留够硬盘用于存放校验数据(parity),防止设计不合理降低高可用性。

希望这篇文章能帮助到你!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表