本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗 。转载本文请联系小姐姐味道公众号。
最近看到ReadHat在搞Ceph的培训,而且是收费的,真的是吓了一跳。难道真要搞这么复杂这么强大的存储方案么?有了MinIO,我知道我永远和Ceph无缘了。
再说FastDFS。为什么我讨厌FastDFS,其实不是因为它不好用,也不是因为它部署困难,最大的原因就是它的名字。什么东西加个Fast就变味了,比如:fast boy。
开个玩笑,FastDFS还是伴随了我们很多岁月的。而且,Minio的min也不是什么谦虚的词。
撸完一遍FastDFS,感觉真是日了狗了。部署是贼麻烦,而且它的SDK是不全的,文档也是各处飞。在了解了MinIO之后,终于可以扔掉FastDFS了,真心高兴。
MinIO是apache项目,有着贵族血统,骄傲不失风范。它拥有着较高的性能,而且100%兼容s3。
什么意思呢?**如果你是私有云,搭建一套s3,就相当于拥有了aws最先进的s3存储。**它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM 映像。对象的大小可以从几 KB 到最大 5TB。很多商业公司背地里拿MinIO做开发,改吧改吧界面,最后说是自己做的,结果把掉一层皮后,发现就是MinIO。
更重要的是,它与现在的虚拟技术,如k8sk3s、etcd、docker等深度集成,可以说就是为了云环境而生的。再也不用在虚拟环境调试那些恶心人的配置文件了。Minio主要为人工智能、机器学习而设计,并适用于其他大数据负载。从架构与功能方面考虑,Minio是一个比较好的开源对象存储解决方案。
说到这里你或许能够猜到,这家伙是用go写的。使用go写的应用,干干净净就一个运行程序,看着就清爽。就像SpringBoot打成一个jar包那样清爽。
安装多简单?请看官方gif。
minio有中文文档,见:https://docs.min.io/cn/ 。内容很全,从安装到原理,一应俱全。
接下来我们稍微看一下最关心的高可用。Minio采用了纠删码技术,即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。这个也难怪,对象存储都是存的比较大的数据,写入耗时比协调耗时要长的多,这就没必要使用类似Raft或者Paxos一样的复杂协调机制。
这是启动之后的访问界面,可以看到非常清爽的界面。可以说是一清二白,如果你想要做一些自定义的售卖,只需要开发一层皮即可。
在使用方面,这个就和s3非常像了。事实上,你甚至可以使用s3cmd来操作Minio。可以看下这些基本命令,会Linux的应该一点压力都没有。
- ls 列出文件和文件夹。
- mb 创建一个存储桶或一个文件夹。
- cat 显示文件和对象内容。
- pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
- share 生成用于共享的URL。
- cp 拷贝文件和对象。
- mirror 给存储桶和文件夹做镜像。
- find 基于参数查找文件。
- diff 对两个文件夹或者存储桶比较差异。
- rm 删除文件和对象。
- events 管理对象通知。
- watch 监听文件和对象的事件。
- policy 管理访问策略。
- session 为cp命令管理保存的会话。
- config 管理mc配置文件。
- update 检查软件更新。
- version 输出版本信息。
SDK方面,提供了Java、JavaScript、Python、Golang、.Net等各种语言的sdk,集成变的更加容易。
其他的就不啰嗦了,中文文档的内容很全。文件服务很多,比如ceph、swift、hbase、hdfs、glusterfs,甚至是mongo等,相比较而言,Minio可以说是最好用的了。其实,Minio的作者,就是glusterfs的创始人。后者在2011年被红帽收购。
就像是MySQL被Oracle收购之后,又出来了Mariadb。你可能觉得公司亏了,但大公司根本不缺这点钱,收购并不一定是想要建设,他们只是想要消灭前进路上的一些威胁而已。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。