Minio分布式文件服务器介绍及部署
温馨提示:这篇文章已超过578天没有更新,请注意相关的内容是否还可用!
MinIO是基于Apache License v2.0开源协议的对象存储服务。兼容Amazon S3云存储服务接口,非常适合存储大容量的非结构化数据,如图片、视频、日志文件、备份数据、容器/虚拟机镜像等,以及一个object文件可以是任何大小,从几 kb 到最大 5T。MinIO作为一个基于Golang编程语言的开源项目,是一个高性能的分布式存储解决方案,官方文档非常齐全。目前MinIO支持市场上主流的开发语言,可以通过SDK快速集成使用。MinIO 号称是最快的对象存储服务器。在分布式和单机模式下企业 文件服务器,Minio对所有的读写操作都严格遵守先读后写的一致性模型。独立的 Minio 服务存在单点故障。
迷你
什么是Minio
MinIO是基于Apache License v2.0开源协议的对象存储服务。 兼容Amazon S3云存储服务接口,非常适合存储大容量的非结构化数据,如图片、视频、日志文件、备份数据、容器/虚拟机镜像等,以及一个object文件可以是任何大小,从几 kb 到最大 5T。
MinIO 是一个非常轻量级的服务,可以很容易地与其他应用程序集成,比如 NodeJS、Redis 或 MySQL。
主流文件服务器对比
综合比较
功能比较
为什么选择 Minio
活跃的文档社区
MinIO作为一个基于Golang编程语言的开源项目,是一个高性能的分布式存储解决方案,官方文档非常齐全。 .
官网文档地址:
丰富的SDK接口
目前MinIO支持市场上主流的开发语言,可以通过SDK快速集成使用。
安装部署简单
在Linux环境下,只需下载一个二进制文件并执行,几分钟即可完成MinIO的安装配置,MinIO提供了与k8s、etcd、docker等主流容器化技术深度集成的解决方案。
很好的表现
MinIO 号称是最快的对象存储服务器。 在标准硬件上,对象存储读/写速度最高可达 183 GB/s 和 171 GB/s。 对象存储可以作为主要的存储层来处理各种复杂的工作负载,例如 Spark 和 Presto,以及 Hadoop HDFS 的替代品。
符合 AWS S3 标准
亚马逊云的S3 API(Interface Protocol)是一种在全球范围内达成共识的对象存储协议,是全世界所有人都认可的标准。 MinIO很早就采用了S3兼容协议,MinIO是第一个支持S3 Select的产品。
aws s3 迷你
Minio分布式部署的优势
数据保护
一致性
在分布式和单机模式下企业 文件服务器,Minio对所有的读写操作都严格遵守先读后写的一致性模型。
高可用性
独立的 Minio 服务存在单点故障。 相反,如果是N个节点的分布式Minio,只要有N/2个节点在线企业 文件服务器,数据就是安全的。 但是,至少需要 N/2+1 个节点来创建新对象。 (比如在一个8节点的Minio集群中,每个节点都有一个磁盘,即使4个节点宕机,集群仍然可读,但是你需要5个节点来写入数据。)
Minio分布式部署
环境
环境
创建对应目录
$ mkdir -p /minio/{run,data} && mkdir -p /etc/minio
run:启动脚本和二进制文件目录;
data:数据存放目录;
/etc/minio:配置文件目录;
注意:/minio目录必须是单独挂载的硬盘,否则后续启动会有问题
集群启动文件
$ cat /minio/run/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=MinioTest
export MINIO_SECRET_KEY=1QAZ2wsx!
/data/minio/run/minio server --config-dir /etc/minio \
http://10.10.4.100/minio/data \
http://10.10.4.101/minio/data \
http://10.10.4.102/minio/data \
http://10.10.4.103/minio/data
MINIO_ACCESS_KEY:用户名,最小长度为5个字符;
MINIO_SECRET_KEY:密码,密码有复杂性要求,最小长度为8个字符;
--config-dir:指定集群配置文件目录;
配置为系统服务
$ cat /etc/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/minio/run/
ExecStart=/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
将 minio 二进制文件上传到 /minio/run 目录!
为所有涉及的文件或目录添加权限!
启动
$ systemctl daemon-reload
$ systemctl enable minio
$ systemctl start minio
至此,Minio集群搭建完成! 可以通过 10.10.4.100:9000 访问 UI。
用户界面
后记
普罗米修斯
搭建完成只是第一步,后续还需要监控等操作,监控留到下一篇。