高性能对象存储MinIO学习
MinIO 是GlusterFS創始人之一Anand Babu Periasamy發布的開源項目,基于Apache V2 license 100% 開放源代碼。MinIO采用Golang實現,客戶端支持Java、Python、Javacript、Golang語言等。
其設計的主要目標是作為私有云對象存儲的標準方案。非常適合于存儲大容量非結構化的數據,例如圖片、視頻、日志文件、備份數據、容器和虛擬機鏡像等,而一個對象文件可以是任意大小,從幾kb到最大5T。
MinIO有中文文檔,見:http://docs.minio.org.cn/
1、MinIO的優點
(1)安裝部署(運維簡單)
MinIO在安裝過程是黑盒的,不用深入關注它的架構,也不需要進行零件組裝,基本上可以做到開箱即用。普通的技術人員就能夠參與后期的運維。
MinIO提供了兩種部署方式:單機部署和分布式,兩種部署方式都非常簡單,其中分布式部署還提供了糾刪碼功能來降低數據丟失的風險。
(2)UI界面
MinIO自帶UI界面,且頁面不需要你單獨的部署,和服務端一并安裝。開箱即用,愛了愛了。
(3)高性能
MinIO號稱是世界上速度最快的對象存儲服務器。在標準硬件上,對象存儲的讀/寫速度最高可以達到183 GB/s和171 GB/s。對象存儲可以充當主存儲層,以處理Spark、Presto、TensorFlow、H2O.ai等各種復雜工作負載以及成為Hadoop HDFS的替代品。MinIO用作云原生應用程序的主要存儲,與傳統對象存儲相比,云原生應用程序需要更高的吞吐量和更低的延遲。而這些都是MinIO能夠達成的性能指標。
(4)容器化支持
MinIO 符合一切原生云計算的架構和構建過程,并且包含最新的云計算的全新的技術和概念。其中包括支持Kubernetes 、Docker、微服和多租戶的的容器技術。
(5)豐富的SDK支持
MinIO幾乎提供了所有主流開發語言的SDK以及文檔。
(6)AWS S3標準兼容
亞馬遜云的 S3 API(接口協議) 是在全球范圍內達到共識的對象存儲的協議,是全世界內大家都認可的標準。MinIO 在很早的時候就采用了 S3 兼容協議,并且MinIO 是第一個支持 S3 Select 的產品. MinIO對其兼容性的全面性感到自豪, 并且得到了 750多個組織的認同, 包括Microsoft Azure使用MinIO的S3網關 - 這一指標超過其他同類產品的總和。
怎么理解呢?可以這么說你目前為了節約成本使用MinIO,等你的公司壯大了、有錢了。不想自己運維基礎設施了,你就可以把對象存儲放到云上,只要云廠商支持S3標準,你的應用程序是不需要重新開發的。
(7)可擴展性
MinIO利用了Web縮放器的來之不易的知識,為對象存儲帶來了簡單的縮放模型。這是我們堅定的理念 “簡單可擴展.” 在 MinIO, 擴展從單個群集開始,該群集可以與其他MinIO群集聯合以創建全局名稱空間, 并在需要時可以跨越多個不同的數據中心。通過添加更多集群可以擴展名稱空間, 更多機架,直到實現目標。
2、MinIO的缺點
MinIO不支持動態增加節點,MinIO創始人的設計理念就是動態增加節點太復雜,后續會采用其它方案來支持擴容。目前只能是新增節點后手動重啟系統才生效,系統會自動平衡數據,這種設計到底對系統后續有什么影響,我覺得使用者需要考慮清楚點。
這里有個方案可以參考下,就是事先準備好一套容量適中且是開啟狀態的MinIO集群,當業務量陡增、原MinIO集群容量告警時,應用自動啟用備份MinIO集群,后續再整合兩個集群的文件成一個更大的集群。否則不支持在線動態擴容,確實是個硬傷。
總結
以上是生活随笔為你收集整理的高性能对象存储MinIO学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerBI随笔(3)-增加自定义列
- 下一篇: oracle导致的负载高,Oracle