什麼?OSS存儲你還在用FastDFS?MinIO瞭解一下!!!

什麼是MinIO ?

根據官方定義:java

  1. MinIO 是在 Apache License v2.0 下發布的對象存儲服務器。 它與 Amazon S3 雲存儲服務兼容。 它最適合存儲非結構化數據,如照片,視頻,日誌文件,備份和容器/ VM 映像。 對象的大小能夠從幾 KB 到最大 5TB。node

  2. MinIO 服務器足夠輕,能夠與應用程序堆棧捆綁在一塊兒,相似於 NodeJS,Redis 和 MySQL。linux

  3. 一種高性能的分佈式對象存儲服務器,用於大型數據基礎設施。它是機器學習和其餘大數 據工做負載下 Hadoop HDFS 的理想 s3 兼容替代品。git

爲何須要MinIO?

  1. Minio 有良好的存儲機制
  2. Minio 有很好糾刪碼的算法與擦除編碼算法
  3. 擁有RS code 編碼數據恢復原理
  4. 公司作強作大時,數據的擁有重要性,對數據治理與大數據分析作準備。
  5. 搭建本身的一套文件系統服務,對文件數據進行安全保護。
  6. 擁有本身的平臺,不限於其餘方限制。

MinIO 和其餘OSS存儲解決方案各有什麼優缺點?

這裏主要針對Ceph、Minio、FastDFS 熱門的存儲解決方案進行比較。程序員

Ceph

優勢github

  • 成熟
  • 紅帽繼子,ceph創始人已經加入紅帽
  • 國內有所謂的ceph中國社區,私人機構,不活躍,文檔有滯後,並且沒有更新的跡象。
  • 從git上提交者來看,中國有幾家公司的程序員在提交代碼,星辰天合,easystack, 騰訊、阿里基於ceph在作雲存儲,可是在開源社區中不活躍,阿里一位叫liupan的有參與
  • 功能強大
  • 支持數千節點
  • 支持動態增長節點,自動平衡數據分佈。(TODO,須要多長時間,add node時是否能夠不間斷運行)
  • 可配置性強,可針對不一樣場景進行調優

缺點 學習成本高,安裝運維複雜。golang

Minio

優勢算法

  • 學習成本低,安裝運維簡單,開箱即用
  • 目前minio論壇推廣給力,有問必答
  • 有java客戶端、js客戶端
  • 數據保護:分佈式Minio採用 糾刪碼來防範多個節點宕機和位衰減bit rot。分佈式Minio至少須要4個硬盤,使用分佈式Minio自動引入了糾刪碼功能。
  • 一致性:Minio在分佈式和單機模式下,全部讀寫操做都嚴格遵照read-after-write一致性模型。

缺點docker

  • 社區不夠成熟,業界參考資料較少
  • 不支持動態增長節點,minio創始人的設計理念就是動態增長節點太複雜,後續會採用其它方案來支持擴容。

FastDFS

fastdfs是阿里餘慶作的一個我的項目,在一些互聯網創業公司中有應用,沒有官網,不活躍,6個contributors。shell

如何安裝使用MinIO?

基於 Docker 容器使用

  • 穩定版
docker pull minio/minio
docker run -p 9000:9000 minio/minio server /data
  • 嚐鮮版
docker pull minio/minio:edge
docker run -p 9000:9000 minio/minio:edge server /data

基於 Mac Homebrew 使用

brew install minio/stable/minio
minio server /data

下載二進制文件安裝使用

操做系統 CPU架構 地址
Apple macOS 64-bit Intel https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod 755 minio
./minio server /data

GNU/Linux

下載二進制文件

操做系統 CPU架構 地址
GNU/Linux 64-bit Intel https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

微軟Windows系統

下載二進制文件

操做系統 CPU架構 地址
微軟Windows系統 64位 https://dl.min.io/server/minio/release/windows-amd64/minio.exe
minio.exe server D:\Photos

FreeBSD

Port

使用 pkg進行安裝。

pkg install minio
sysrc minio_enable=yes
sysrc minio_disks=/home/user/Photos
service minio start

使用源碼安裝

採用源碼安裝僅供開發人員和高級用戶使用,若是你尚未Golang環境, 請參考 How to install Golang.

go get -u github.com/minio/minio

使用MinIO瀏覽器進行驗證

安裝後使用瀏覽器訪問http://127.0.0.1:9000,若是能夠訪問,則表示minio已經安裝成功。

使用MinIO客戶端 mc進行驗證

mc 提供了一些UNIX經常使用命令的替代品,像ls, cat, cp, mirror, diff這些。 它支持文件系統和亞馬遜S3雲存儲服務。 更多信息請參考 mc快速入門 - https://docs.min.io/docs/minio-client-quickstart-guide

已經存在的數據

當在單塊磁盤上部署MinIO server,MinIO server容許客戶端訪問數據目錄下已經存在的數據。好比,若是MinIO使用minio server /mnt/data啓動,那麼全部已經在/mnt/data目錄下的數據均可以被客戶端訪問到。

上述描述對全部網關後端一樣有效。

瞭解更多

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索