写一个关于minio的吧(后半部分为自建minio)

3,828 阅读6分钟

minio是什么

  • MinIO是对象存储服务。它基于Apache License 开源协议,兼容Amazon S3云存储接口。适合存储非结构化数据,如图片,音频,视频,日志等。对象文件最大可以达到5TB。\
  • 适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。\
  • MinIO主要采用Golang语言实现,整个系统都运行在操作系统的用户态空间,客户端与存储服务器之间采用http/https通信协议。

minIO有哪些特点

高性能

MinIO 是全球领先的对象存储先锋,目前在全世界有数百万的用户. 在标准硬件上,读/写速度上高达183 GB / 秒 和 171 GB / 秒。
对象存储可以充当主存储层,以处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为Hadoop HDFS的替代品。
MinIO用作云原生应用程序的主要存储,与传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。而这些都是MinIO能够达成的性能指标。

image.png

可扩展性

MinIO利用了Web缩放器的来之不易的知识,为对象存储带来了简单的缩放模型。 这是我们坚定的理念 “简单可扩展.” 在 MinIO, 扩展从单个群集开始,该群集可以与其他MinIO群集联合以创建全局名称空间, 并在需要时可以跨越多个不同的数据中心。 通过添加更多集群可以扩展名称空间, 更多机架,直到实现目标。

Scalability

云的原生支持

MinIO 是在过去4年的时间内从0开始打造的一款软件 ,符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。 其中包括支持Kubernetes 、微服和多租户的的容器技术。使对象存储对于 Kubernetes更加友好。

image.png

开放全部源代码 + 企业级支持

MinIO 基于Apache V2 license 100% 开放源代码 。 这就意味着 MinIO的客户能够自动的、无限制、自由免费使用和集成MinIO、自由的创新和创造、 自由的去修改、自由的再次发行新的版本和软件. 确实, MinIO 强有力的支持和驱动了很多世界500强的企业。 此外,其部署的多样性和专业性提供了其他软件无法比拟的优势。

Open Source + Enterprise Grade

与Amazon S3 兼容

亚马逊云的 S3 API(接口协议) 是在全球范围内达到共识的对象存储的协议,是全世界内大家都认可的标准。 MinIO 在很早的时候就采用了 S3 兼容协议,并且MinIO 是第一个支持 S3 Select 的产品. MinIO对其兼容性的全面性感到自豪, 并且得到了 750多个组织的认同, 包括Microsoft Azure使用MinIO的S3网关 - 这一指标超过其他同类产品的总和。

image.png

最重要的一点:简单

极简主义是MinIO的指导性设计原则。简单性减少了出错的机会,提高了正常运行时间,提供了可靠性,同时简单性又是性能的基础。 只需下载一个二进制文件然后执行,即可在几分钟内安装和配置MinIO。 配置选项和变体的数量保持在最低限度,这样让失败的配置概率降低到接近于0的水平。 MinIO升级是通过一个简单命令完成的,这个命令可以无中断的完成MinIO的升级,并且不需要停机即可完成升级操作 - 降低总使用和运维成本。

自建minIO(centos7.6+宝塔面板(参考))

为什么要搭建这个minio

因为咸鱼之前趁着腾讯云开年采购季,买了4Tb的数据盘,所以准备搞一个自己的存储
用来放自己的资源对接图床等等
同时,网上对于新版minio的资料少之又少,于是自己搭建一个同时记录下来

方法

话不多说,开搞

首先,我们去宝塔面板的这里找到docker进行安装

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/aa7db8eb62b34c16953fcb9e665f9cf3~tplv-k3u1fbpfcp-zoom-1.image

然后我们可以直接搜索minio以及他的客户端mc或者直接拉取

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0d1bf1941c1b45ad80e6c3ae99eaeb77~tplv-k3u1fbpfcp-zoom-1.image

获取的时候输入 minio/minio 以及minio/mc 即可获取镜像 然后....宝塔这边创建容器如果不会的话,建议去shell里面进行操作吧 或者也可以纯shell进行docker的镜像拉取操作等

shell开搞(咸鱼因为镜像是新版的,所以以新版为例子了)

docker run --name minio \
-p 9000:9000 \    //端口可以自己修改,记得修改了,面板安全以及服务器防火墙or安全组记得放行端口哦
-p 9090:9090 \
-d --restart=always \
-e "MINIO_ROOT_USER=user" \  //这行的用户名和下行的password(密码)可以按照自己喜好修改哟
-e "MINIO_ROOT_PASSWORD=password" \
-v /home/minio/data:/data \    //这行以及下面的是设置minio的存储地方以及他的配置地方?
-v /home/minio/config:/root/.minio \
minio/minio server /data \
--console-address '0.0.0.0:9090'

输完上面的这些,你的minio就已经启动了 我们可以用你的ip 端口号来查看 如果是服务器就用你的公网ip 9000(就是上面设置的端口号哦,会自动跳到9090) 如下图

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/181dffef388245e0843e023c58397773~tplv-k3u1fbpfcp-zoom-1.image

username password就是上面你设置的 然后我们就可以进去创建bucket了!

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e8bc105c70224109825c9c83b7f5601c~tplv-k3u1fbpfcp-zoom-1.image

如咸鱼已经创建了juyuantop的桶 然后就可以愉快的上传和下载东西啦

mc的使用

当然你发现,自己只能在minio的web端进行使用,那么如何通过域名 bucket name 文件名就可以直接下载呢 这我们就要用到mc了 mc是minio的客户端

我们已经在docker拉好镜像了 所以可以直接使用 我们用如下命令来启用mc

docker run -it --entrypoint=/bin/sh minio/mc

注意,mc自己就有一个play的桶,咱们不用管,我们就用上面这个命令,用完之后发现变成了下图

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9fe2bc27a27b4b4b83a021ec1518f0a3~tplv-k3u1fbpfcp-zoom-1.image

然后我们就开始输入命令,使得我们的资源可以通过ip 端口 bucket 资源名来访问到

mc config host add minio http://127.0.0.1:9000 username password --api S3v4

这个ip地址可以是你的公网ip也可以是本机ip username以及password就是上面的了 然后再来

 mc policy set download minio/你的桶名

这个是给你的桶具有下载权限 minio是我拉取镜像并且没有改变名字,如果你改了记得修改,桶名可以通过 mc ls minio 查看你的bucket 用完之后如果是绿色的则说明成功

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/498171e0d517425aa1e60424c3e09fd8~tplv-k3u1fbpfcp-zoom-1.image

这样我们就可以进行通过ip端口 bucketname 资源名字下载预览里面的资源了

nginx反向代理

如何使用域名访问 这个其实宝塔用户挺友好的,直接开搞 创建一个站点,啥都不用管,直接找到反向代理

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/65dc7bae57be4066b06b96d2b75de93a~tplv-k3u1fbpfcp-zoom-1.image

然后我们进行反向代理配置就可以了

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/344f8f60d683459d9f6240e957f7d51c~tplv-k3u1fbpfcp-zoom-1.image

你可以通过查看docker容器里面的容器日志看到minio的api 通过把这个api反向代理到你的域名就可以了。效果如下

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/60582a9f09b94d44b627f2d3f15d2300~tplv-k3u1fbpfcp-zoom-1.image

我们就可以通过这个使用各种图床以及用链接了! 至于其他的,我们可以通过官方文档以及百度来查到你所需要的资料哦

那么,今天的分享就到这里了!