1.简介
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
Minio使用纠删码erasure code
来保护数据免受硬件故障和无声数据损坏。 即便丢失一半数量(N/2)的硬盘,仍然可以恢复数据。
2.基础环境
- centos 7
- Docker version 1.13.1
- docker-compose version 1.18.0
MinIO集群环境基于docker和docker-compose环境搭建。通过在一台机器中运行4个MinIO容器,来模拟4*2(每个容器2个data卷,表示每台MinIO服务有两个硬盘)个硬盘的集群环境,请提前安装好基础环境,以便后续操作。
3.安装步骤
3.1创建docker-compose文件
- 新建文件夹minio,在文件夹中新建文件docker-compose.yaml
- 在minio的github仓库中,复制官方的docker-compose.yaml文件的内容,并粘贴到新建的docker-compose.yaml文件中。
- yaml中定义有4个service,代表4个minio服务,每个服务下有两个存储卷,代表2个硬盘
#docker-compose.yaml
version: '3.7'
# starts 4 docker containers running minio server instances. Each
# minio server's web interface will be accessible on the host at port
# 9001 through 9004.
services:
minio1:
image: minio/minio:RELEASE.2020-08-08T04-50-06Z
volumes:
- data1-1:/data1
- data1-2:/data2
ports:
- "9001:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
command: server http://minio{
1...4}/data{
1...2}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
minio2:
image: minio/minio:RELEASE.2020-08-08T04-50-06Z
volumes:
- data2-1:/data1
- data2-2:/data2
ports:
- "9002:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
command: server http://minio