High-Availability

從數學上講,如何根據節點數量及其各自的正常執行時間百分比計算正常執行時間百分比?

  • July 5, 2016

這個問題更多的是數學問題而不是伺服器問題,但它與伺服器密切相關。

如果我有一台能夠保證 95% 正常執行時間的伺服器,並且我將該伺服器放在 2 個集群中,那麼正常執行時間是多少?現在,假設我也這樣做,但我將其設為 3 個集群?

讓我們不考慮單點故障之類的事情,而只關注這裡的數學。使這有點複雜的一件事是,例如,如果我有 2 台伺服器,它們都關閉的機會是 2^2,所以這是 1/4;或者 3 是 2^3,所以 1/8。考慮到這些伺服器中的每一個都有 5% 的停機時間,那麼總平均值會是 5% 的 1/8 嗎?

你會如何計算這樣的東西?

正常執行時間是一件很棘手的事情……如果您想計算服務的可用性,那麼它很簡單

amount of time service is available
-----------------------------------   x 100
 amount of time that has passed 

如果您有一個提供服務的集群,那麼服務變得不可用的可能性會下降,但服務的可用性(正常執行時間)計算保持不變。

一台伺服器離線的機會是 (1 - 0.95) 兩台伺服器離線的機會是 (1 - 0.95) * (1 - 0.95) = 0.0025 等等…

因此,使用您的模型並從純數學的角度來看,一台或兩台伺服器應該在 99.75% 的時間內執行

但是,我不確定使用這樣的數學模型是否是計算潛在正常執行時間的正確方法,因為還有其他可能影響它的因素,這對兩台伺服器來說都很常見,即 95% 可能是因為 5% 的時間停電會影響兩台伺服器,因此擁有集群不會有任何區別

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