5、monio環境搭建之分布式集群部署


  • 分布式Minio可以讓你將多塊硬盤(甚至在不同的機器上)組成一個對象存儲服務。由於硬盤分布在不同的節點上,分布式minio避免了單點故障
1、分布式存儲可靠性常用方法
  • 分布式存儲,很關鍵的點在於數據的可靠性,即保證數據的完整,不丟失,不損壞。只有在可靠性實現的前提下,才有了追求一致性、高可用、高性能的基礎。而對於在存儲領域,一般對於保證數據可靠性的方法主要有兩類:一類是冗余法,一類是校驗法
  • 冗余:
    • 冗余法最簡單直接,即對存儲的數據進行副本備份,當數據出現丟失,損壞,即可使用備份內容進行恢復,而副本備份的多少,決定了數據可靠性的高低。這其中會有成本的考量,副本數據越多,數據越可靠,但需要的設備就越多,成本就越高。可靠性是允許丟失其中一份數據。當前已有很多分布式系統是采用此種方式實現,如Hadoop的文件系統(3個副本), Redis的集群,MySQL的主備模式等。
  • 校驗:
    • 校驗法即通過校驗碼的數學計算的方法,對出現丟失、損壞的數據進行校驗、還原。注意,這里有兩個作用,一個校驗,通過對數據進行校驗和(checksum)進行計算,可以檢查數據是否完整,有誤損壞或更改,在數據傳輸和保存時經常用到,如TCP協議;二是恢復還原,通過對數據結合校驗碼,通過數學計算,還原丟失或損壞的數據,可以在保證數據可靠的前提下,降低冗余,如單機硬盤存儲的RAID技術,糾刪碼技術等。Minio采用的就是糾刪碼技術。
2、分布式Minio優勢
  • 數據保護:
    • 分布式Minio采用糾刪碼來防范多個節點宕機和位衰減bir rot
    • 分布式Minio至少需要4個硬盤,使用分布式Minio自動引入了糾刪碼功能
  • 高可用
    • 單機Minio服務存在單點故障,相反,如果是一個有N塊硬盤的分布式Minio,只要有N/2硬盤在線,你的數據就是安全的。不過需要至少有N/2+1個硬盤來創建新的對象
    • 例如,一個16節點的Minio集群,每個節點16塊硬盤,就算8台服務器宕機,這個集群仍然是可讀的,不過你需要9台服務器才能寫數據,
  • 一致性:
    • minio在分布式和單機模式下,所有的讀寫操作都嚴格遵守read-after-write一致性模型
3、運行分布式Minio
  • 啟動一個分布式Minio實例,你只需要把硬盤位置作為參數傳給minio server命令即可。然后,你需要在其他所有節點運行同樣的命令。
    • 分布式Minio里所有的節點需要有同樣的access秘鑰和secret秘鑰,這樣這些節點才能建立連接。為了實現這個,你需要在執行minio server命令之前,先將access秘鑰和secret密鑰export成環境變量。
    • 分布式Minio使用的磁盤里必須是干凈的,里面沒有數據。
    • 下面示例例的IP僅供示例參考,你需要改成你真是用到的IP和文件夾路徑
    • 分布式minio里的節點時間差不能超過3秒,你可以使用NTP來保證時間一致。
    • 在windows下運行分布式Minio處於實驗階段,請悠着點使用。
  • 8個節點,每個節點1塊盤
    • 啟動分布式Minio實例,8個節點,每個節點1塊盤,需要在8個節點上都運行下面的命令:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://192.168.1.11/export1 http://192.168.1.12/export2 \
       http://192.168.1.13/export3 http://192.168.1.14/export4 \
       http://192.168.1.15/export5 http://192.168.1.16/export6 \
       http://192.168.1.17/export7 http://192.168.1.18/export8
  • 4節點,每個節點4塊盤
    • 啟動分布式Minio實例,4節點,每節點4塊盤,需要在4個節點上都運行下面的命令。
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://192.168.1.11/export1 http://192.168.1.11/export2 \
       http://192.168.1.11/export3 http://192.168.1.11/export4 \
       http://192.168.1.12/export1 http://192.168.1.12/export2 \
       http://192.168.1.12/export3 http://192.168.1.12/export4 \
       http://192.168.1.13/export1 http://192.168.1.13/export2 \
       http://192.168.1.13/export3 http://192.168.1.13/export4 \
       http://192.168.1.14/export1 http://192.168.1.14/export2 \
       http://192.168.1.14/export3 http://192.168.1.14/export4
  • 通過腳本方式啟動
  • 執行腳本后查看日志和進程
4、使用docker Compose部署Minio
docker-compose pull
docker-compose up
4.1、擴展現有的分布式集群
  • 例如我們是通過區的方式啟動Minio集群,命令行如下:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server http://host{1...32}/export{1...32}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM