MINIO集群部署手册

为了满足电子仓库功能相关部署与扩容等操作,因此提供电子仓库部署手册。手册中我们以2个minio节点,每个节点2个盘来进行分布式部署;并且最终扩容成4个节点每个节点2个盘。
操作系统
由于在Windows下运行分布式Minio处于实验阶段,因此我们在Linux系统中搭建文件服务。
相关依赖
minio server
通过使用minio作为文件服务存储的载体,因此部署需要minio的server包;
nginx
以集群的方式部署minio,通过nginx作为请求转发到集群中不同的minio节点上。

minio下载与安装
对集群中的每个minio节点都要执行相同的操作,这里我们以节点1【192.168.80.128】为例执行安装与配置过程,节点2【192.168.80.129】需要与节点1保持一致的操作,这里不做展示。

1.进入minio官网下载页面 下载最新的linux版本的minio server,如下图所示:
在这里插入图片描述
2.将下载好的minio server包存放到每个节点的/home/dex/Minio/目录下,如下图所示:
在这里插入图片描述
3.cd 到minio server所在的目录(/home/dex/Minio),给minio server添加可执行权限用于启动minio

# 给予minio server可执行权限
chmod +x minio

4.开启minio的访问端口9000,方便后续访问

# 防火墙开放minio 9000端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重新载入防火墙
firewall-cmd --reload

至此节点1上的minio就安装成功了,节点2需要按照同样的方式安装。

分布式部署
当节点1与节点2的minio都安装成功之后,以分布式的方式部署。2个节点每个节点两个盘(data1与data2)来进行分布式部署,具体过程如下所示:
minio秘钥环境变量设置
分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量【每个节点都得设置】。

#设置minio的秘钥
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin

集群启动命令
minio双节点集群,每个节点俩磁盘data1与data2【磁盘里必须是干净的,里面没有数据,否则启动报错】。cd到minio server所在的目录(/home/dex/Minio),执行启动命令如下所示【每个节点都得运行如下命令】:

#分布式实例启动命令(命令1与命令2选择其一即可)
#命令1:
nohup ./minio server http://192.168.80.128/home/dex/MinioData/data1  http://192.168.80.128/home/dex/MinioData/data2  http://192.168.80.129/home/dex/MinioData/data1  http://192.168.80.129/home/dex/MinioData/data2 &
#命令2:如果ip地址连续,磁盘名称除了序号其他一致,可以使用命令2
hohup ./minio server http://192.168.80.{128...129}/home/dex/MinioData/data{1...2} &

所有的节点都执行完之后,访问每个节点的9000端口查看minio是否正常启动,如下图所示,节点1与节点2都正常访问:
节点1
在这里插入图片描述
节点2
在这里插入图片描述
上传文件测试
启动成功之后,节点1中创建桶并且上传文件,如果节点2也能看到创建的桶与文件数据,则证明分布式部署成功。创建桶newbucket,并且上传文件如下图所示:
在这里插入图片描述
节点二中的数据如下图所示:
在这里插入图片描述
至此分布式部署成功。

nginx配置请求转发
由于通过分布式的方式部署了多节点,我们需要通过配置nginx统一请求地址与端口,将请求转发到不同的minio节点上,nginx可以单独部署到一台服务器上,这里由于条件限制部署到节点1上。

1.修改nginx的配置文件nginx.conf添加如下数据:

upstream minioCluster{
         ip_hash;
         server 192.168.80.128:9000; #节点1
         server 192.168.80.129:9000; #节点2
     }
     #监听请求的9100端口,转发到节点1与节点2
    server {
      listen 9100;
      location / {
        proxy_pass http://minioCluster;
      }
    }

2.重启nginx

./nginx -s reload

3.开启nginx的监听端口9100,方便统一访问

# 防火墙开放 9100端口
firewall-cmd --zone=public --add-port=9100/tcp --permanent
# 重新载入防火墙
firewall-cmd --reload

4.前端统一访问9100,如下图所示:
在这里插入图片描述
扩容
MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式);已有节点1(128)与节点2(129),扩容添加节点3(130)与节点4(131)实现由俩节点扩容为四节点操作【节点3与节点4提前安装好minio,设置秘钥,并且开放9000端口】,具体步骤入下:

1.扩容启动命令

#分布式实例启动命令
nohup ./minio server http://192.168.80.{128...129}/home/dex/MinioData/data{1...2} http://192.168.80.{130...131}/home/dex/MinioData/data{1...2} &

当四个节点每个节点都如下图显示,集群中八个盘都显示在线则启动成功
在这里插入图片描述
现在整个集群就扩展了4个磁盘,总磁盘变为8个,新的对象上传请求会自动分配到最少使用的集群上。通过以上策略来实现磁盘扩展。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响,如下图所示:
扩容的节点3
在这里插入图片描述
扩容的节点4
在这里插入图片描述
2.nginx配置修改

由于添加了新的节点(节点3与节点4),因此nginx的配置中加入这俩节点信息,如下所示:

upstream minioCluster{
         ip_hash;
         server 192.168.80.128:9000; #节点1
         server 192.168.80.129:9000; #节点2
         server 192.168.80.130:9000; #节点3(新加入)
         server 192.168.80.131:9000; #节点4(新加入)
     }
     #监听请求的9100端口,转发到节点1、节点2、节点3、节点4
    server {
      listen 9100;
      location / {
        proxy_pass http://minioCluster;
      }
    }

3.重启nginx,前端重新访问即可。

./nginx -s reload

注意项
添加的每个区域必须具有与原始区域相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。 例如,第一个区有8个磁盘,可以将集群扩展为16个、32个或1024个磁盘的区域,只需确保部署的SLA是原始区域的倍数即可。

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unbuntu Minio是一种开源的对象存储服务器,提供高可用性和可伸缩性。部署Minio集群可以实现数据冗余,并提供高性能的存储解决方案。 首先,使用Unbuntu操作系统运行服务器,确保系统已经具备最新的软件更新。 接下来,下载Minio二进制文件,并解压到指定的目录。然后创建存储桶目录,用于存放数据。 在每个节点上,启动Minio服务器,并配置端口号、存储路径和访问密钥。可以使用命令"minio server <存储路径> --address <IP地址:端口号> --access-key <访问密钥> --secret-key <密钥>"来启动。 在所有节点上重复以上步骤,确保每个节点都按照相同的方式配置。 当所有节点都成功启动后,可以使用浏览器访问其中任何一个节点的Web界面。 在Web界面中,可以创建和管理存储桶,并上传、下载和删除对象。 为了实现高可用性,可以使用分布式存储系统,如Docker Swarm或Kubernetes,来管理Minio集群。 使用Docker Swarm,首先在每个节点上安装Docker和Docker Compose。 然后,创建Docker Compose文件,定义Minio服务和集群的其他配置。 运行Docker Stack命令,部署Minio集群。 使用Kubernetes,首先在每个节点上安装Kubernetes集群,并配置网络和存储卷。 然后,创建Kubernetes Deployment和Service对象,定义Minio服务和集群的配置。 部署Minio集群,使用Kubernetes命令创建和管理。 无论使用哪种方法,都需要确保集群中的所有节点都在线,并且数据同步正常。 总而言之,通过以上步骤,可以在Unbuntu系统上成功部署Minio集群,实现高可用性和可伸缩性的对象存储解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的老史

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值