minIO集群etcd部署和联邦扩容+nginx负载均衡实践
1 任务背景
公司有一个OA系统,其中有一个文件子系统模块,用于处理用户办公文件,主要是各种office word、excel、ppt、wps等日常办公文件,这个子系统还承载了在线编辑文档的存取,由于在线编辑需要保存大量历史版本的过程文件,这使得文件系统需要保存的文件大小快速增长,年预估达100T级别,如果系统升级为面向企业的平台,那么存储需求就更大了,PB级别的存储量是很正常的事情。
在面对如此庞大的存储需求,我们通常有两种方案可以选择,一是使用阿里云、腾讯云、华为云等对象存储服务,二是自建存储服务器。第一种方案是最省事也是最容易实现的方案,但数据托管在别人的服务器上,始终觉得心里不踏实,而且费用也是非常可观的。第二种方案虽然要求技术支持高,部署过程复杂,但数据始终是存储在自己的机房里,所谓“我命由我不由天”,命运掌握在自己手里。
2 技术选型
经过一番调研,我决定选用minIO作为文件存储系统。MinIO 是一个高性能的分布式对象存储系统,旨在提供与 Amazon S3 API 兼容的存储服务。它被设计为简单、可扩展且高度可靠,适用于大规模的数据存储和处理需求。而管理minIO分布式系统的工具,etcd是不二之选,天生与minIO无缝结合,打造高可用大规模分布式文件系统的最佳组合。Etcd 是一个分布式键值存储系统,专门用于分布式系统中存储配置信息、元数据和其他关键数据,其起到了minIO服务的管理作用,有点类似于微服务框架中的服务管理中心Nacos,提供了minIO服务的注册与发现、配置管理、服务选举等功能。
关键词:etcdminio联邦扩容分布式文件系统
3 拓扑规划
这次实践是作为生产环境的一次单元测试,我不可能使用那么多真机来试验,所以使用虚拟机进行模拟,本次实验使用vmware station安装的ubuntu,总共7个服务器。
| ip地址 | 角色 | 磁盘挂载 |
|---|---|---|
| 192.168.0.102 | etcd服务 | (无需挂载额外磁盘) |
| 192.168.0.103 | etcd服务 | (无需挂载额外磁盘) |
| 192.168.0.104 | etcd服务 | (无需挂载额外磁盘) |
| 192.168.0.106 | minIO服务 | /home/user/minio/data1, /home/user/minio/data2 |
| 192.168.0.107 | minIO服务 | /home/user/minio/data1, /home/user/minio/data2 |
| 192.168.0.109 | minIO服务 | /home/user/minio/data1, /home/user/minio/data2 |
| 192.168.0.110 | minIO服务 | /home/user/minio/data1, /home/user/minio/data2 |
其中
- 192.168.0.102,192.168.0.103,192.168.0.104作为etcd服务集群。
- 192.168.0.106,192.168.0.107作为第一个minIO服务集群,分别挂载两个额外的独立磁盘,为了验证分布式和扩展特性,每个磁盘大小只安排了1G,特意很容易就让磁盘写满。
- 192.168.0.109,192.168.0.110作为第二个minIO服务集群。
具于如何为虚拟机划拨和挂载磁盘,后续文章将给出详细的操作步骤。
4 实施步骤
4.1 部署etcd服务集群
在每台etcd服务器上,进行如下相同的操作:
- 创建etcd工作目录
mkdir -p /home/user/etcd/data
mkdir -p /home/user/etcd/bin
mkdir -p /home/user/etcd/conf
- 下载etcd程序
cd /home/user/etcd
wget https://github.com/etcd-io/etcd/releases/download/v3.5.14/etcd-v3.5.14-linux-amd64.tar.gz
tar -xvf etcd-v3.


2453

被折叠的 条评论
为什么被折叠?



