大家好!今天這篇文章主要向大家介紹如何通過 Sealos 一鍵部署高可用 MinIO 集群。
MinIO 對(duì)象存儲(chǔ)是什么?
對(duì)象是二進(jìn)制數(shù)據(jù),例如圖像、音頻文件、電子表格甚至二進(jìn)制可執(zhí)行代碼。對(duì)象的大小可以從幾 B 到幾 TB 不等。像 MinIO 這樣的對(duì)象存儲(chǔ)平臺(tái)提供了專用工具和功能,使用標(biāo)準(zhǔn)的 S3 兼容 API 存儲(chǔ)、列出和檢索對(duì)象。
MinIO 對(duì)象存儲(chǔ)使用存儲(chǔ)桶來(lái)組織對(duì)象。存儲(chǔ)桶類似于文件系統(tǒng)中的文件夾或目錄,其中每個(gè)存儲(chǔ)桶可以容納任意數(shù)量的對(duì)象。MinIO 存儲(chǔ)桶提供與 AWS S3 存儲(chǔ)桶相同的功能。
原文鏈接:https://forum.laf.run/d/1029
MinIO 的糾刪碼
MinIO 支持分布式部署,支持服務(wù)和數(shù)據(jù)的高可用,核心就是 MinIO 的糾刪碼功能。
MinIO 實(shí)現(xiàn)了糾刪碼功能,將其作為提供數(shù)據(jù)冗余和可用性的核心組件。假設(shè) MinIO 將一個(gè)對(duì)象分為 K 個(gè)數(shù)據(jù)分片,糾刪碼可根據(jù) K 個(gè)數(shù)據(jù)分片生成 M 個(gè)校驗(yàn)分片,MinIO 需要最少 K 個(gè)任何類型的分片來(lái)恢復(fù)原對(duì)象。意味著總共 K+M 個(gè)分片中可以允許 M 個(gè)分片失效。
如下圖舉個(gè)栗子:我們將一個(gè)對(duì)象分為 12 個(gè)數(shù)據(jù)分片(Data shard),然后生成 4 個(gè)校驗(yàn)分片(Parity shard),總共有 16 個(gè)分片,分別存儲(chǔ)在單個(gè)驅(qū)動(dòng)中,此方式可以容忍 4 個(gè)驅(qū)動(dòng)的失效,并且有 0.75(12/16)的存儲(chǔ)效率。(此為 EC:4,EC 為 Erasure Coding,4 為校驗(yàn)分片的數(shù)量)
為了更好跟三副本方式進(jìn)行比較,我們假設(shè)現(xiàn)有 2 個(gè)數(shù)據(jù)分片和 2 個(gè)校驗(yàn)分片,比較結(jié)果如下:
方式 | 容忍失效分片(副本)數(shù) | 存儲(chǔ)效率 |
---|---|---|
糾刪碼(EC:2) | 2 | 1/2 |
三副本 | 2 | 1/3 |
通過比較可以看出糾刪碼可以提高存儲(chǔ)效率,減少存儲(chǔ)資源的使用(補(bǔ)充:當(dāng)數(shù)據(jù)分片數(shù)等于校驗(yàn)分片數(shù)時(shí),MinIO 中為了避免出現(xiàn)腦裂問題,寫入數(shù)據(jù)時(shí)需要大多數(shù)分片,即 3 個(gè)分片,詳情可查看:MinIO 可用性和彈性)。
MinIO 中可以調(diào)整 校驗(yàn)分片/總分片 的比例,比例范圍為為 0 - 1/2。比例越大,數(shù)據(jù)可用性越高(可容忍失效分片數(shù)),同時(shí)存儲(chǔ)效率越低。
快速部署高可用 MinIO 的教程
模板部署的 MinIO 采用了 4 節(jié)點(diǎn)和 EC:2 的方式。能保證單節(jié)點(diǎn)宕機(jī)不影響讀寫服務(wù),雙節(jié)點(diǎn)掛機(jī)不影響讀服務(wù),且存儲(chǔ)效率為 1/2。
- 點(diǎn)擊鏈接 https://cloud.sealos.top/?openapp=system-fastdeploy%3FtemplateName%3Dminio
- 輸入賬號(hào)密碼和存儲(chǔ)大小。(注:賬號(hào)密碼至少需要8位,存儲(chǔ)大小部署后無(wú)法修改)
- 點(diǎn)擊 Deploy Application,MinIO 啟動(dòng)!
- 點(diǎn)擊 Confirm,跳轉(zhuǎn)查看詳情。
- 點(diǎn)擊鏈接即可訪問 MinIO Console 界面。
- 輸入賬號(hào)密碼,開始使用 MinIO。簡(jiǎn)單創(chuàng)建一個(gè) bucket 存儲(chǔ)桶,然后上傳 install.sh 文件。
至此,我們已經(jīng)成功部署一個(gè)強(qiáng)大的對(duì)象存儲(chǔ)應(yīng)用了??梢蚤_始愉快的存儲(chǔ)對(duì)象啦!
MinIO on Kubernetes
抽象的介紹一下 MinIO 在 K8S 中的架構(gòu):文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-709843.html
- Pod:作為 MinIO 實(shí)例運(yùn)行的基礎(chǔ)單元,每個(gè) Pod 部署一個(gè) MinIO 容器實(shí)例。
- StatefulSet:用于管理 4 個(gè) MinIO Pod 副本,保證副本數(shù)量和順序,為每個(gè) Pod 提供穩(wěn)定的網(wǎng)絡(luò)標(biāo)識(shí)(如 DNS 名字)和存儲(chǔ)標(biāo)識(shí)(PV 卷)。
- Service(Headless):為 StatefulSet 內(nèi)的 MinIO Pod 提供內(nèi)部服務(wù)發(fā)現(xiàn),其他 Pod 可以通過固定的 DNS 名字訪問每個(gè) MinIO 實(shí)例。
- Service(ClusterIP):對(duì)外提供 MinIO Console 服務(wù)的訪問端口和目標(biāo)端口映射。
- Ingress:配置外網(wǎng)入口域名和路徑映射規(guī)則,可以通過域名訪問 Minio Console。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-709843.html
參考資料
- https://min.io/docs/minio/kubernetes/upstream/operations/concepts/erasure-coding.html
- https://min.io/docs/minio/kubernetes/upstream/operations/concepts/availability-and-resiliency.html#minio-availability-resiliency
- https://cloud.tencent.com/developer/article/1829995
到了這里,關(guān)于使用 Sealos 一鍵部署高可用 MinIO,開啟對(duì)象存儲(chǔ)之旅的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!