minio集羣搭建以及與其他分佈式存儲系統對比

### Ceph
優點

  • 成熟
  • 紅帽繼子,ceph創始人已經加入紅帽
  • 國內有所謂的ceph中國社區,私人機構,不活躍,文檔有滯後,而且沒有更新的跡象。
  • 功能強大
  • 支持數千節點
  • 支持動態增加節點,自動平衡數據分佈。
  • 可配置性強,可針對不同場景進行調優

缺點

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

### Minio
優點

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

缺點

  • 不支持動態增加節點,minio創始人的設計理念就是動態增加節點太複雜,後續會採用其它方案來支持擴容。

### FastDFS
fastdfs是阿里餘慶做的一個個人項目,在一些互聯網創業公司中有應用,沒有官網,不活躍,

Minio使用糾刪碼erasure code和校驗和checksum來保護數據免受硬件故障和無聲數據損壞。 即便丟失一半數量(N/2)的硬盤,仍然可以恢復數據。

糾刪碼是一種恢復丟失和損壞數據的數學算法,目前,糾刪碼技術在分佈式存儲系統中的應用主要有三類,陣列糾刪碼(Array Code: RAID5、RAID6等)、RS(Reed-Solomon)裏德-所羅門類糾刪碼和LDPC(LowDensity Parity Check Code)低密度奇偶校驗糾刪碼。Erasure Code是一種編碼技術,它可以將n份原始數據,增加m份數據,並能通過n+m份中的任意n份數據,還原爲原始數據。即如果有任意小於等於m份的數據失效,仍然能通過剩下的數據還原出來。

 

minio存儲數據原理:https://blog.csdn.net/huangbaoling66/article/details/90179658

 

minio集羣搭建:(centos7及以上版本)

生產環境建議最少4節點

節點    IP    data
minio1    10.10.0.1    /data/minio/data
minio2    10.10.0.2    /data/minio/data
minio3    10.10.0.3    /data/minio/data
minio4    10.10.0.4    /data/minio/data
1、獲取Minio
https://dl.min.io/server/minio/release/linux-amd64/minio


2、目錄創建
啓動腳本及二進制文件目錄 run
數據存儲目錄 data
配置文件目錄/etc/minio

mkdir -p /data/minio/{run,data} && mkdir -p /etc/minio



3、集羣啓動文件
vim /data/minio/run/run.sh

MINIO_ACCESS_KEY:用戶名,長度最小是5個字符
MINIO_SECRET_KEY:密碼,密碼不能設置過於簡單,不然minio會啓動失敗,長度最小是8個字符
–config-dir:指定集羣配置文件目錄

#!/bin/bash
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test1234!

/data/minio/run/minio server --config-dir /etc/minio \
http://10.10.0.1/data/minio/data \
http://10.10.0.2/data/minio/data \
http://10.10.0.3/data/minio/data \
http://10.10.0.4/data/minio/data \



4、minio.service
WorkingDirectory:二進制文件目錄
ExecStart:指定集羣啓動腳本
vim /usr/lib/systemd/system/minio.service 

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/data/minio/run/
ExecStart=/data/minio/run/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target



5、二進制文件
將minio二進制文件上傳到/data/minio/run目錄

6、權限修改
給所有涉及到的文件或目錄添加權限

service文件
二進制文件
集羣啓動腳本

chmod +x /usr/lib/systemd/system/minio.service && chmod +x /data/minio/run/minio && chmod +x /data/minio/run/run.sh



7、啓動集羣

systemctl daemon-reload
systemctl enable minio && systemctl start minio



8、代理集羣
生產環境需要使用Nginx將集羣地址進行代理,對外統一入口

upstream minio{
        server 10.10.0.1:9000;
        server 10.10.0.2:9000;
        server 10.10.0.3:9000;
        server 10.10.0.4:9000;
}
server {
        listen 9000;
        server_name minio;
        location / {
                proxy_pass http://minio;
                proxy_set_header Host $http_host;
                client_max_body_size 1000m;
        }
}



9、測試
瀏覽器訪問minio集羣代理地址+9000端口,用戶名密碼爲上文中啓動文件run.sh中我們設置的

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章