有了MinIO,你還會用FastDFS么?
本文轉載自微信公眾號「小姐姐味道」,作者小姐姐養的狗 。轉載本文請聯系小姐姐味道公眾號。
最近看到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。十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道。