MinIO 搭建
MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
官方对 Minio 的定义是一个高性能的对象存储。
Build high performance data infrastructure
for machine learning, analytics and
application data workloads with MinIO 。
Minio 的官方网站是 https://min.io ,
Minio 的官方文档是 https://docs.min.io/cn/ ,
GitHub 仓库地址是:https://github.com/minio/minio ,目前有 18.8k Stars (2019.11.9)
Minio 的 benchmark 说明:
https://min.io/resources/docs/MinIO-vs-HDFS-MapReduce-performance-comparison.pdf
https://min.io/resources/docs/MinIO-throughput-benchmarks-on-NVMe-SSD.pdf
https://min.io/resources/docs/Performance-comparison-Starburst-Presto-SQL.pdf
https://min.io/resources/docs/MinIO-throughput-benchmarks-on-HDD.pdf
https://min.io/resources/docs/Performance-comparison-Apache-Spark.pdf
快速开始一个单节点的 MinIO
MinIO 分为服务端和客户端,服务端提供一个对象存储,也提供一个 Web 的管理页面。客户端是用来管理、查看服务端的一个工具。服务端的二进制文件是 minio
,客户端的二进制文件是 mc
。
使用二进制文件启动
首先先下载服务端的二进制文件,其次准备一个用来存储的磁盘或者目录,
下载好以后赋予执行权限,可以使用如下命令快速启动。
chmod +x minio ./minio server /erdong/data
启动后可以通过访问 http://localhost:9000 来访问你的对象存储。
使用 Docker 启动
MinIO 需要一个持久卷来存储配置和应用数据。不过, 如果只是为了测试一下, 您可以通过简单地传递一个目录(在下面的示例中为 /erdong/data
)启动 MinIO 。这个目录会在容器启动时在容器的文件系统中创建,不过所有的数据都会在容器退出时丢失。
要创建具有永久存储的 MinIO 容器,您需要将本地持久目录从主机操作系统映射到虚拟配置 ~/.minio 并导出 /data 目录。 为此,请运行以下命令
docker run -p 9000:9000 --name minio \ -e "MINIO_ACCESS_KEY=minioadmin" \ -e "MINIO_SECRET_KEY=minioadminpassword" \ -v /erdong/minio/data:/data \ -v /erdong/minio/config:/root/.minio \ minio/minio server /data
启动后,即可访问 http://localhost:9000 来访问你的对象存储。
上述命令中设置了如下参数:
- MINIO_ACCESS_KEY 管理员的访问秘钥
- MINIO_SECRET_KEY 管理员的秘钥
- /erdong/minio/data:/data 挂载持久化数据目录
- /erdong/minio/config:/root/.minio 挂载配置文件
- server 启动 Server 模式,除了该模式还有一个 Gateway 模式。
- /data 指定数据目录
如果需要指定端口可以使用如下参数
--address ":9000"
使用 TLS 安全访问 MinIO 服务
接下来我们看看如何在 linux 上配置 MinIO 服务使用 TLS 。
使用 TLS 的前提是先下载好 MinIO Server 。
如果你已经有私钥和公钥证书,你需要将他们拷贝到 MinIO 的 $HOME/.minio/certs
文件夹,私钥的名字必须是 private.key
,公钥证书的名字必须是 public.crt
。 MinIO 在 Linux 只支持使用 PEM 格式的秘钥和证书,在 Windows 上只支持 PEM 格式的秘钥和证书,目前不支持 PFX 证书。