什么是MinIO ?
根據官方定義:
-
MinIO 是在 Apache License v2.0 下發布的對象存儲服務器。 它與 Amazon S3 雲存儲服務兼容。 它最適合存儲非結構化數據,如照片,視頻,日志文件,備份和容器/ VM 映像。 對象的大小可以從幾 KB 到最大 5TB。
-
MinIO 服務器足夠輕,可以與應用程序堆棧捆綁在一起,類似於 NodeJS,Redis 和 MySQL。
-
一種高性能的分布式對象存儲服務器,用於大型數據基礎設施。它是機器學習和其他大數
據工作負載下 Hadoop HDFS 的理想 s3 兼容替代品。
為什么需要MinIO?
- Minio 有良好的存儲機制
- Minio 有很好糾刪碼的算法與擦除編碼算法
- 擁有RS code 編碼數據恢復原理
- 公司做強做大時,數據的擁有重要性,對數據治理與大數據分析做准備。
- 搭建自己的一套文件系統服務,對文件數據進行安全保護。
- 擁有自己的平台,不限於其他方限制。
MinIO 和其他OSS存儲解決方案各有什么優缺點?
這里主要針對Ceph、Minio、FastDFS 熱門的存儲解決方案進行比較。
Ceph
優點
- 成熟
- 紅帽繼子,ceph創始人已經加入紅帽
- 國內有所謂的ceph中國社區,私人機構,不活躍,文檔有滯后,而且沒有更新的跡象。
- 從git上提交者來看,中國有幾家公司的程序員在提交代碼,星辰天合,easystack, 騰訊、阿里基於ceph在做雲存儲,但是在開源社區中不活躍,阿里一位叫liupan的有參與
- 功能強大
- 支持數千節點
- 支持動態增加節點,自動平衡數據分布。(TODO,需要多長時間,add node時是否可以不間斷運行)
- 可配置性強,可針對不同場景進行調優
缺點
學習成本高,安裝運維復雜。
Minio
優點
- 學習成本低,安裝運維簡單,開箱即用
- 目前minio論壇推廣給力,有問必答
- 有java客戶端、js客戶端
- 數據保護:分布式Minio采用 糾刪碼來防范多個節點宕機和位衰減bit rot。分布式Minio至少需要4個硬盤,使用分布式Minio自動引入了糾刪碼功能。
- 一致性:Minio在分布式和單機模式下,所有讀寫操作都嚴格遵守read-after-write一致性模型。
缺點
- 社區不夠成熟,業界參考資料較少
- 不支持動態增加節點,minio創始人的設計理念就是動態增加節點太復雜,后續會采用其它方案來支持擴容。
FastDFS
fastdfs是阿里余慶做的一個個人項目,在一些互聯網創業公司中有應用,沒有官網,不活躍,6個contributors。
如何安裝使用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目錄下的數據都可以被客戶端訪問到。
上述描述對所有網關后端同樣有效。
了解更多

