有了MinIO,你還會(huì)用FastDFS么?
本文轉(zhuǎn)載自微信公眾號(hào)「小姐姐味道」,作者小姐姐養(yǎng)的狗 。轉(zhuǎn)載本文請(qǐng)聯(lián)系小姐姐味道公眾號(hào)。
最近看到ReadHat在搞Ceph的培訓(xùn),而且是收費(fèi)的,真的是嚇了一跳。難道真要搞這么復(fù)雜這么強(qiáng)大的存儲(chǔ)方案么?有了MinIO,我知道我永遠(yuǎn)和Ceph無(wú)緣了。
再說(shuō)FastDFS。為什么我討厭FastDFS,其實(shí)不是因?yàn)樗缓糜茫膊皇且驗(yàn)樗渴鹄щy,最大的原因就是它的名字。什么東西加個(gè)Fast就變味了,比如:fast boy。
開個(gè)玩笑,F(xiàn)astDFS還是伴隨了我們很多歲月的。而且,Minio的min也不是什么謙虛的詞。
擼完一遍FastDFS,感覺真是日了狗了。部署是賊麻煩,而且它的SDK是不全的,文檔也是各處飛。在了解了MinIO之后,終于可以扔掉FastDFS了,真心高興。
MinIO是apache項(xiàng)目,有著貴族血統(tǒng),驕傲不失風(fēng)范。它擁有著較高的性能,而且100%兼容s3。
什么意思呢?**如果你是私有云,搭建一套s3,就相當(dāng)于擁有了aws最先進(jìn)的s3存儲(chǔ)。**它最適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),如照片,視頻,日志文件,備份和容器/ VM 映像。對(duì)象的大小可以從幾 KB 到最大 5TB。很多商業(yè)公司背地里拿MinIO做開發(fā),改吧改吧界面,最后說(shuō)是自己做的,結(jié)果把掉一層皮后,發(fā)現(xiàn)就是MinIO。
更重要的是,它與現(xiàn)在的虛擬技術(shù),如k8sk3s、etcd、docker等深度集成,可以說(shuō)就是為了云環(huán)境而生的。再也不用在虛擬環(huán)境調(diào)試那些惡心人的配置文件了。Minio主要為人工智能、機(jī)器學(xué)習(xí)而設(shè)計(jì),并適用于其他大數(shù)據(jù)負(fù)載。從架構(gòu)與功能方面考慮,Minio是一個(gè)比較好的開源對(duì)象存儲(chǔ)解決方案。
說(shuō)到這里你或許能夠猜到,這家伙是用go寫的。使用go寫的應(yīng)用,干干凈凈就一個(gè)運(yùn)行程序,看著就清爽。就像SpringBoot打成一個(gè)jar包那樣清爽。
安裝多簡(jiǎn)單?請(qǐng)看官方gif。
minio有中文文檔,見:https://docs.min.io/cn/ 。內(nèi)容很全,從安裝到原理,一應(yīng)俱全。
接下來(lái)我們稍微看一下最關(guān)心的高可用。Minio采用了糾刪碼技術(shù),即便您丟失一半數(shù)量(N/2)的硬盤,您仍然可以恢復(fù)數(shù)據(jù)。Minio在分布式和單機(jī)模式下,所有讀寫操作都嚴(yán)格遵守read-after-write一致性模型。這個(gè)也難怪,對(duì)象存儲(chǔ)都是存的比較大的數(shù)據(jù),寫入耗時(shí)比協(xié)調(diào)耗時(shí)要長(zhǎng)的多,這就沒必要使用類似Raft或者Paxos一樣的復(fù)雜協(xié)調(diào)機(jī)制。
這是啟動(dòng)之后的訪問(wèn)界面,可以看到非常清爽的界面??梢哉f(shuō)是一清二白,如果你想要做一些自定義的售賣,只需要開發(fā)一層皮即可。
在使用方面,這個(gè)就和s3非常像了。事實(shí)上,你甚至可以使用s3cmd來(lái)操作Minio。可以看下這些基本命令,會(huì)Linux的應(yīng)該一點(diǎn)壓力都沒有。
- ls 列出文件和文件夾。
- mb 創(chuàng)建一個(gè)存儲(chǔ)桶或一個(gè)文件夾。
- cat 顯示文件和對(duì)象內(nèi)容。
- pipe 將一個(gè)STDIN重定向到一個(gè)對(duì)象或者文件或者STDOUT。
- share 生成用于共享的URL。
- cp 拷貝文件和對(duì)象。
- mirror 給存儲(chǔ)桶和文件夾做鏡像。
- find 基于參數(shù)查找文件。
- diff 對(duì)兩個(gè)文件夾或者存儲(chǔ)桶比較差異。
- rm 刪除文件和對(duì)象。
- events 管理對(duì)象通知。
- watch 監(jiān)聽文件和對(duì)象的事件。
- policy 管理訪問(wèn)策略。
- session 為cp命令管理保存的會(huì)話。
- config 管理mc配置文件。
- update 檢查軟件更新。
- version 輸出版本信息。
SDK方面,提供了Java、JavaScript、Python、Golang、.Net等各種語(yǔ)言的sdk,集成變的更加容易。
其他的就不啰嗦了,中文文檔的內(nèi)容很全。文件服務(wù)很多,比如ceph、swift、hbase、hdfs、glusterfs,甚至是mongo等,相比較而言,Minio可以說(shuō)是最好用的了。其實(shí),Minio的作者,就是glusterfs的創(chuàng)始人。后者在2011年被紅帽收購(gòu)。
就像是MySQL被Oracle收購(gòu)之后,又出來(lái)了Mariadb。你可能覺得公司虧了,但大公司根本不缺這點(diǎn)錢,收購(gòu)并不一定是想要建設(shè),他們只是想要消滅前進(jìn)路上的一些威脅而已。
作者簡(jiǎn)介:小姐姐味道 (xjjdog),一個(gè)不允許程序員走彎路的公眾號(hào)。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。