minio是什么
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
中文官网:http://www.minio.org.cn/
中文文档地址:http://docs.minio.org.cn/docs/
码云地址:https://gitee.com/mirrors/minio
github地址:https://github.com/minio/minio
minio与fastDFS比较
\ | minio | fastDFS |
---|---|---|
应用场景 | 更适合海量的大文件,当然MinIO的性也非常强劲 | 适合小文件存储的场景,比如图片、JS文件等 |
安装部署(运维)复杂度 | 简单方便 | 部署复杂 |
文档 | 文档全面,中英文支持友好 | 暂无官方文档,全是网友自己总结 |
活跃度 | 开源项目,社区论坛的活跃度目前也非常的不错 | 个人项目,没有官网,不活跃 |
UI界面 | 界面不需要你单独的部署,和服务端一并安装。开箱即用 | 不带UI界面 |
性能 | 号称是世界上速度最快的对象存储服务器 | \ |
容器化支持 | k8s、etcd、docker等容器化技术深度集成方案 | 不具备 |
丰富的SDK支持 | 几乎提供了所有主流开发语言的SDK以及文档 | C 和 Java SDK ,以及 PHP 扩展 SDK |
AWS S3标准兼容 | 第一个采用API和第一个添加对S3 Select支持的标准之一 | \ |
以上总结自:http://slack.minio.org.cn/question/23
从上述可知,minio确实更出色一些,但是技术没有好坏之分,只有适合和不适合,只有适合自己的才是最好的。
minio的安装
无纠删码模式安装
docker安装
上面也说了,minio支持丰富的容器化技术,可以使用k8s或者docker进行安装。
官网教程:http://docs.minio.org.cn/docs/。这来不建议使用中文的文档,因为更新不及时,所有会有很多问题。
英文官方文档:https://docs.min.io/docs/minio-docker-quickstart-guide.html。
# 拉取镜像
docker pull minio
# 启动minio
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v /mnt/data:/data \
-v /mnt/config:root/.minio \
-e "MINIO_ROOT_USER=用户名" \
-e "MINIO_ROOT_PASSWORD=密码" \
minio/minio server /data --console-address ":9001"
- -p对外暴露端口
- --name 取别名
- -v 将数据和配置挂载到磁盘上
- -e 设置用户名密码(可以省略)可以通过后面的配置设置
如果不是很熟,请点击:docker初级篇 - docker基本命令使用。是不是很简单呢?
linux安装
那我们接下来就来看看单机版的linux安装:
# 1、拉取minio程序到服务器
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
# 2、授权
chmod +x minio
#3、简单的启动
./minio server /data
最后在浏览器输入:ip:port就可以看到登陆页面了,初始化的用户名密码都是minioadmin
纠删码模式安装
Minio使用纠删码erasure code和校验和checksum来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。
纠删码是一种恢复丢失和损坏数据的数学算法, Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复,是不是很NB,感兴趣的同学请翻墙google。
相关地址:https://docs.min.io/docs/minio-erasure-code-quickstart-guide.html
docker安装
# 拉取镜像
docker pull minio
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v /mnt/data1:/data1 \
-v /mnt/data2:/data2 \
-v /mnt/data3:/data3 \
-v /mnt/data4:/data4 \
-v /mnt/data5:/data5 \
-v /mnt/data6:/data6 \
-v /mnt/data7:/data7 \
-v /mnt/data8:/data8 \
minio/minio server /data{1...8} --console-address ":9001"
带纠删码的安装就是多挂载了几片磁盘。启动和不带的大同小异。
linux安装
# 1、拉取minio程序到服务器
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
# 2、授权
chmod +x minio
#3、简单的启动
./minio server /data{1...8}
minio集群搭建
官方地址:https://docs.min.io/docs/distributed-minio-quickstart-guide.html
中文地址:http://docs.minio.org.cn/docs/master/distributed-minio-quickstart-guide
注意:英文好的同学,还是建议看英文文档哦。
minio的安装注意事项
- warning提示需要修改用户名和密码
# 新版本
export MINIO_ROOT_USER=用户名
export MINIO_ROOT_PASSWORD=密码
# 老版本
export MINIO_ACCESS_KEY=用户名
export MINIO_SECRET_KEY=密码
- 数据存放问题
数据默认存放在哪我也不知道,所以要修改默认存放的位置,方便管理
mkdir /data/minio/data
- 永久启动的问题和关闭
# 查看minio所在的进程
ps -ef|grep minio
# 杀掉minio进程
kill -9 进程号
#后台启动
nohup /usr/local/bearjun/minio server --address 192.168.0.37:9002 --console-address 192.168.0.37:9001 /data/minio/data/ > /data/minio/minio.log 2>&1 &
/usr/local/bearjun/minio minio所在的路径
--address 192.168.0.37:9002 minio访问的路径和端口
--console-address 192.168.0.37:9001 minio API访问的路径和端口
/data/minio/data/ minio数据存放的位置
使用JAVA API连接minio
关于java使用minio,官网已经写的很清楚了。
~~ 地址:http://docs.minio.org.cn/docs/master/java-client-api-reference ~~
地址:https://docs.min.io/docs/java-client-api-reference.html
小弟我也是第一次接触minio,如有纰漏,欢迎指出,后期看看能不能再更新下用法。
评论区