赞
踩
注:集群为rpm安装
目录
1.准备四台干净的机器,做实验我使用的是4台初始化的vmware虚拟机,本身20G的磁盘空间大小,增加四块磁盘,之后需要四块磁盘进行挂载,大小5G(做实验可以不用那么大,大于1G即可)。
2.做完上述磁盘之后启动虚拟机,第一步先关防火墙 ,格式化磁盘并挂载
Minio 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
Minio 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。Minio 不仅提供了服务器、Web 访问、客户端,还提供了 Docker 安装,各种语言的 SDK、实例、实战秘籍等等,支持分布式部署。
特点:
1.高性能:Minio 支持一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
2.可扩展:不同 Minio 集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心
3.云原生:容器化、基于 K8S 的编排、多租户支持。
4.Amazon S3 兼容。
5.存储多种后端。
6.SDK 支持:有类似 Java、Python 或 Go 等语言的 sdk 支持。
7.Lambda 计算:Minio 服务器通过其兼容 AWS SNS / SQS 的事件通知服务触发 Lambda 功能。
8.有图形化操作界面
9.功能简单
10.支持纠删码:Minio 使用纠删码、Checksum 来防止硬件错误和静默数据污染。
下载地址:中国镜像加速站
直接下载地址:MinIO下载 | 中国镜像下载加速站
- #创建数据磁盘目录(放哪具体看磁盘情况)
- mkdir -p /data/minio/ #存储目录
- mkdir /usr/local/minio
-
-
- #将下载的minio包放到/usr/local/minio下并修改权限
- chmod +x minio
-
- vim start-minio.sh
-
- #!/bin/bash
- export MINIO_ROOT_USER=minio
- export MINIO_ROOT_PASSWORD=minio@123456
- nohup /usr/local/minio/minio server /data/minio/ --console-address ":9001" > /usr/local/minio/nohup-minio.log 2>&1 &
-
- chmod +x start-minio.sh
-
- sh start-minio.sh
搭建一个四节点十六个Drive的最低配高可用MinIO集群
ip | 名称 |
192.168.40.201 | minio-1 |
192.168.40.202 | minio-2 |
192.168.40.203 | minio-3 |
192.168.40.204 | minio-4 |
192.168.40.66 | nginx |
过程如下:
fdisk -l 看到我们增加的四块磁盘,分别为sdb,sdc,sdd,sde,如下图所示
对四块磁盘进行格式化
- #我做实验的时候没有加-L 的,这边我推荐大家还是加上
- mkfs.xfs /dev/sdb -L DISK1
- mkfs.xfs /dev/sdc -L DISK2
- mkfs.xfs /dev/sdd -L DISK3
- mkfs.xfs /dev/sde -L DISK4
创建文件作为挂载源
- mkdir /minio1
- mkdir /minio2
- mkdir /minio3
- mkdir /minio4
- #使用mount进行挂载
- mount /dev/sdb /minio1
- mount /dev/sdc /minio2
- mount /dev/sdd /minio3
- mount /dev/sde /minio4
df -Th进行查看
- #设置开机自动挂载
- vim /etc/fstab
-
-
-
- /dev/sdb /minio1 xfs defaults,noatime 0 2
- /dev/sdc /minio2 xfs defaults,noatime 0 2
- /dev/sdd /minio3 xfs defaults,noatime 0 2
- /dev/sde /minio4 xfs defaults,noatime 0 2
二进制包下载地址:https://dl.min.io/server/minio/release/linux-amd64/
最新稳定版rpm包地址:单节点单硬盘部署MinIO — MinIO中文文档 | MinIO Linux中文文档
- #这边我下载的是rpm包,安装之后可以systemctl去启动嘛,
- #感兴趣的可以下载二进制包,链接地址在上面
- #这里下载不是最新稳定rpm包
- wget https://dl.min.io/server/minio/release/linux-amd64/minio-20230907020502.0.0.x86_64.rpm -O minio.rpm
-
-
- #同步一下四台机器的时间,要一致
- yum install ntp -y
- ntpdate ntp.aliyun.com
下载完成如下,确保四台机器都有
- #安装(下面的操作四台机器都要做哦)
- rpm -i minio.rpm
-
- #创建启动用户
- groupadd -r minio-user
- useradd -M -r -g minio-user minio-user
- chown minio-user:minio-user /minio1 /minio2 /minio3 /minio4
-
有的rpm包自带/etc/default/minio,下载完成后先find找一下
find /etc -name minio
没有的话自己写一个!
下面是官方给的文件配置
- # Set the hosts and volumes MinIO uses at startup
- # The command uses MinIO expansion notation {x...y} to denote a
- # sequential series.
- #
- # The following example covers four MinIO hosts
- # with 4 drives each at the specified hostname and drive locations.
- # The command includes the port that each MinIO server listens on
- # (default 9000)
- # 这写的是文件磁盘的位置 因为我们是集群节点是201-204 这边是一种池化写法
- MINIO_VOLUMES="https://192.168.40.{201..204}:9000/minio{1..4}"
-
- # Set all MinIO server options
- #
- # The following explicitly sets the MinIO Console listen address to
- # port 9001 on all network interfaces. The default behavior is dynamic
- # port selection.
- # 固定静态端口
- MINIO_OPTS="--console-address :9001"
-
- # Set the root username. This user has unrestricted permissions to
- # perform S3 and administrative API operations on any resource in the
- # deployment.
- #
- # Defer to your organizations requirements for superadmin user name.
- # 登录账号
- MINIO_ROOT_USER=minioadmin
-
- # Set the root password
- #
- # Use a long, random, unique string that meets your organizations
- # requirements for passwords.
- # 登录密码
- MINIO_ROOT_PASSWORD=minioadmin
-
- # Set to the URL of the load balancer for the MinIO deployment
- # This value *must* match across all MinIO servers. If you do
- # not have a load balancer, set this value to to any *one* of the
- # MinIO hosts in the deployment as a temporary measure.
- #负载均衡地址,没有配置就注释掉
- #MINIO_SERVER_URL="https://192.168.40.201:9000"
- #四个节点依次运行
- systemctl start minio
访问任意节点,出现下图即为成功!
验证
我们在40.201上创建一个桶,并上传文件
40.203上也有,这样即为成功!!!
nginx的版本我用的是yum安装的1.24稳定版,下载地址如下
upstream我并没有配置负载均衡算法,采用的是默认的轮询,需要的可以自己加哦
- #代理服务器
- upstream minio_api {
- server 192.168.40.201:9000;
- server 192.168.40.202:9000;
- server 192.168.40.203:9000;
- server 192.168.40.204:9000;
- }
- upstream minio_console {
- server 192.168.40.201:9001;
- server 192.168.40.202:9001;
- server 192.168.40.203:9001;
- server 192.168.40.204:9001;
- }
- server{
- listen 9998;
- server_name 192.168.40.66;
-
- ignore_invalid_headers off;
- client_max_body_size 0;
- proxy_buffering off;
-
- location / {
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
-
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- chunked_transfer_encoding off;
- proxy_ignore_client_abort on;
-
- proxy_pass http://minio_api;
- }
- }
- server{
- listen 9999;
- server_name 192.168.40.66;
-
- ignore_invalid_headers off;
- client_max_body_size 0;
- proxy_buffering off;
-
- location / {
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
-
- proxy_connect_timeout 300;
- proxy_http_version 1.1;
- chunked_transfer_encoding off;
- proxy_ignore_client_abort on;
-
- proxy_pass http://minio_console;
- }
- }
访问如下
docker安装:
- # step 1: 安装必要的一些系统工具
- sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- # Step 2: 添加软件源信息
- sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- # Step 3
- sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
- # Step 4: 更新并安装Docker-CE
- sudo yum makecache fast
- sudo yum -y install docker-ce
- # Step 4: 开启Docker服务
- sudo service docker start
-
minio部署:
- #拉取镜像
- docker pull minio/minio
-
- #查看镜像
- docker images
-
- #创建挂载目录
- mkdir -p /etc/docker/minio/data
-
- #启动镜像
- docker run -p 9000:9000 -p 9001:9001 \
- --name minio \
- -d --restart=always \
- -e "MINIO_ACCESS_KEY=minioadmin" \
- -e "MINIO_SECRET_KEY=minioadmin" \
- -v /etc/docker/minio/data:/data \
- minio/minio server \
- /data --console-address ":9001" -address ":9000"
-
访问地址:ip:9000
登录上去之后我们创建桶,上传试一下
创建和上传都成功!
欢迎大家多多交流!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。