Kubernetes

GlusterFS 卷創建建議

  • January 20, 2020

我必須部署從 3 個節點到 10 個節點的多個 Openshift 集群。對於 3 個節點,我正在創建已複製的捲。

但是對於 4 及以上,創建複製卷看起來不太好,因此每個節點都有 300GB 磁碟並將其複製到 10 個節點並不是最佳的。我正在尋找可以使用的公式

For 4 nodes create volume as disperse:2:1
For 5 nodes create volume as disperse:?:?
For 6 nodes create volume as disperse:?:?
For 7 nodes create volume as disperse:?:?
For 8 nodes create volume as disperse:?:?
For 9 nodes create volume as disperse:?:?
For 10 nodes create volume as disperse:?:?

環境: 我將為 MYSQL 5.7.28 使用這些卷,每個伺服器都有 300GB 磁碟,在 300GB 中,我將為 MYSQL 創建大小為 250GB 的捲。

OpenShift 3.11 version

# gluster --version
glusterfs 6.1

PS:我沒有儲存背景,所以如果我遺漏了一些明顯的點,我試圖在Google上搜尋但無法提取所需的資訊。

您打算將所有節點用作儲存節點還是僅將節點的子集用作儲存節點?根據您的問題,MySQL 使用 250GiB,其他哪些應用程序需要儲存?

複製卷:可用的有效儲存空間將是

volume_size = sum of storage available from three nodes / 3

在您的情況下,使用三個儲存節點的捲大小將為 300GiB。

分散體積:可用的有效儲存空間將是

volume_size = storage in single node * (number of bricks - redundancy count)

在您的情況下,卷大小將為300 * (3-1) = 600GiB. 此處提供更多詳細資訊https://docs.gluster.org/en/v3/Administrator%20Guide/Setting%20Up%20Volumes/#creating-dispersed-volumes 分散卷非常適合存檔,因為與副本相比它可以節省空間卷。但與 Replica 相比可能會慢,因為每次 IO 都涉及計算。

Kadalu ( https://kadalu.io ) 項目提供了一種在 Kubernetes 中配置卷的不同方法。它從儲存中創建單個 Gluster 卷,並在請求 PV 時從該卷中提供子卷(在您的情況下為 Mysql 儲存)。

Kadalu 目前支持 Replica 1 和 Replica 3 卷。當從其他儲存提供商(例如 AWS/Azure)聲明儲存設備時,副本 1 很有用。Replica 3 為應用程序提供了高可用性的儲存,即使三分之一的節點出現故障。最近的部落格文章 ( https://kadalu.io/blog/kadalu-kubernetes-storage ) 解釋了 Kadalu 可用的多種配置以及將其與現有儲存一起使用。

Kadalu 使用 GlusterFS 並與 Kubernetes 原生集成,無需使用 Gluster 管理守護程序——glusterd。

更新:添加了分散體積的計算

number of disperse bricks = data bricks + redundancy count

如果有 3 個儲存設備可用,

2 data bricks + 1 redundancy bricks

如果是 6 個儲存設備,

4 data bricks + 2 redundancy bricks

如果冗餘磚的數量增加,則可用卷大小將減少。即使相當於冗餘磚的磚數量減少,該卷仍可供應用程序使用。例如,在4+2配置中,即使 6 個積木中有 2 個出現故障,Volume 仍然可用。

引用自:https://serverfault.com/questions/999403