優化伺服器在機架上的分佈

在一次聊天中,有人問我一個問題:

— 我可以讀到有關如何將伺服器正確裝入機架的任何內容嗎?

我意識到我不知道這樣的文字,所以我自己寫了。

首先,本文介紹的是實體資料中心 (DC) 中的實體伺服器。 其次,我們認為伺服器數量相當多:數十萬;對於較少的數量,此文本沒有意義。 第三,我們認為我們有三個限制:機架中的實體空間、每個機架的電源以及將機架排成一排,以便我們可以使用一台 ToR 交換器連接相鄰機架中的伺服器。

這個問題的答案很大程度上取決於我們正在優化哪些參數以及我們可以改變哪些參數以獲得最佳結果。 例如,我們只需要佔用最小的空間,以便為進一步的成長留下更多的空間。 或者,也許我們可以自由選擇機架的高度、每個機架的功率、PDU 中的插座、一組交換器中的機架數量(一個交換器用於1、2 或3 個機架)、電線長度和牽引工作(這在行的末端至關重要:一排有10 個機架,每個交換機有3 個機架,您必須將電線拉到另一排或未充分利用交換器中的連接埠),等等。 單獨的故事:伺服器的選擇和DC的選擇,我們假設它們被選擇。

最好了解一些細微差別和細節,特別是伺服器的平均/最大消耗,以及如何為我們供電。 因此,如果我們有一個 230V 的俄羅斯電源,每個機架一相,那麼一台 32A 的機器可以處理約 7kW。 假設我們名義上為每個機架支付 6 千瓦的費用。 如果提供者僅測量一排10 個機架的功耗,而不是每個機架的功耗,並且如果機器設定為有條件的7 kW 截止值,那麼從技術上講,我們可以在單一機架中消耗6.9 kW,在另一個機架中消耗5.1 kW,一切都會好起來的——不會受到懲罰。

通常我們的主要目標是最小化成本。 衡量的最佳標準是 TCO(總擁有成本)的降低。 它由以下幾部分組成:

  • 資本支出:購買資料中心基礎設施、伺服器、網路硬體和佈線
  • OPEX:直流電租賃、用電量、維修。 營運成本取決於使用壽命。 假設為3年是合理的。

優化伺服器在機架上的分佈

根據整個蛋糕中各個部分的大小,我們需要優化最昂貴的部分,並讓其餘部分盡可能有效地使用所有剩餘資源。

假設我們有一個現有的 DC,機架高度為 H 單位(例如 H=47),每個機架的電力為 Prack(Prack=6kW),我們決定使用 h=2U 兩台伺服器。 我們將從機架上移除 2..4 個用於交換器、配線架和管理器的裝置。 那些。 從物理上來說,我們的機架中有Sh=rounddown((H-2..4)/h) 伺服器(即Sh = rounddown((47-4)/2)=每個機架21 台伺服器) 。 讓我們記住這個Sh。

在簡單的情況下,機架中的所有伺服器都是相同的。 總的來說,如果我們在一個機架上裝滿伺服器,那麼在每台伺服器上我們平均可以花費的功率 Pserv=Prack/Sh (Pserv = 6000W/21 = 287W)。 為了簡單起見,我們在這裡忽略開關消耗。

讓我們退一步來確定最大伺服器消耗 Pmax 是多少。 如果它非常簡單、非常無效且完全安全,那麼我們會讀取伺服器電源上寫的內容 - 就是這樣。

如果它更複雜、更有效率,那麼我們將所有組件的TDP(熱設計封裝)相加(這不是很正確,但有可能)。

通常我們不知道組件的TDP(CPU除外),所以我們採取最正確,但也是最複雜的方法(我們需要一個實驗室) - 我們採用所需配置的實驗伺服器並加載它,例如,我們使用Linpack( CPU 和記憶體)和fio(磁碟)來測量消耗。 如果認真的話,我們在測試時還需要在冷走廊中創造最溫暖的環境,因為這會影響風扇消耗和CPU消耗。 我們得到具有特定配置的特定伺服器在這些特定條件下在該特定負載下的最大消耗。 我們只是說新的系統韌體、不同的軟體版本和其他條件可能會影響結果。

那麼,回到 Pserv 以及我們如何將其與 Pmax 進行比較。 問題在於了解服務如何運作以及技術總監的神經有多堅強。

如果我們完全不冒任何風險,我們相信所有伺服器都可以同時開始消耗其最大容量。 同時,可能會出現一個到 DC 的輸入。 即使在這些條件下,基礎設施也必須提供服務,因此 Pserv ≠ Pmax。 在這種方法中,可靠性是絕對重要的。

如果技術總監不僅考慮理想的安全性,還考慮公司的資金並且足夠勇敢,那麼你可以決定

  • 我們開始管理我們的供應商,特別是我們禁止在計劃的尖峰負載時進行定期維護,以盡量減少一項輸入的下降;
  • 和/或我們的架構允許您失去機架/行/DC,但服務繼續工作;
  • 和/或我們將負載水平分佈在機架上,因此我們的服務永遠不會在一個機架上達到最大消耗。

在這裡,不僅可以猜測,而且可以監控消耗並了解伺服器在正常和高峰條件下實際消耗的電力是非常有用的。 因此,經過一番分析後,技術總監壓縮了他所擁有的一切並說道:“我們自願決定,每個機架的最大伺服器消耗的最大可實現平均值比最大消耗低**這麼多**”,有條件地Pserv = 0.8* P最大。

那麼一個6kW的機架就不再能容納16台Pmax=375W的伺服器,而是20台Pserv=375W*0.8=300W的伺服器。 那些。 伺服器數量增加 25%。 這是一個非常大的節省 - 畢竟,我們立即需要減少 25% 的機架(而且我們還將節省 PDU、交換器和電纜)。 這種解決方案的一個嚴重缺點是我們必須不斷監控我們的假設是否仍然正確。 新韌體版本不會顯著改變風扇的運作和消耗,新版本的突然開發並沒有開始更有效地使用伺服器(閱讀:它們在伺服器上實現了更大的負載和更大的消耗)。 畢竟,我們最初的假設和結論都會立即變得錯誤。 這是必須負責任地承擔的風險(或避免並為明顯未充分利用的機架付費)。

重要提示 - 如果可能的話,您應該嘗試將來自不同服務的伺服器等級分佈在機架上。 這是必要的,這樣就不會出現當一批伺服器到達執行一項服務時,機架垂直地堆疊它以增加「密度」的情況(因為這樣更容易)。 事實上,事實證明,一個機架充滿了相同服務的相同低負載伺服器,而另一個機架則充滿了相同的高負載伺服器。 第二次跌倒的機率明顯較高,因為負載設定檔是相同的,並且由於負載增加,該機架中的所有伺服器開始消耗相同的量。

讓我們回到機架​​中伺服器的分佈。 我們已經研究了實體機架空間和功率限制,現在讓我們來看看網路。 您可以使用具有 24/32/48 N 連接埠的交換器(例如,我們有 48 連接埠 ToR 交換器)。 幸運的是,如果您不考慮分支電纜,那麼選擇並不多。 我們正在考慮這樣的場景:每個機架有一台交換機,Rnet 組中的兩個或三個機架都有一台交換機。 在我看來,一組超過三個機架就已經太多了,因為… 機架之間的佈線問題變得更加嚴重。

因此,對於每個網路場景(一組中的 1、2 或 3 個機架),我們將伺服器分佈在機架之間:

Srack = min(Sh, 向下捨入(Prack/Pserv), 向下捨入(N/Rnet))

因此,對於一組 2 個機架的選項:

Srack2 = min(21, rounddown(6000/300), rounddown(48/2)) = min(21) = 每個機架 20 台伺服器。

我們以同樣的方式考慮其餘選項:

碎片1 = 20
碎片3 = 16

我們已經快到了。 我們計算分配所有伺服器 S 的機架數量(假設為 1000):

R = 匯總(S / (Srack * Rnet)) * Rnet

R1 = 匯總(1000 / (20 * 1)) * 1 = 50 * 1 = 50 個機架

R2 = 匯總(1000 / (20 * 2)) * 2 = 25 * 2 = 50 個機架

R3 = 匯總(1000 / (16 * 3)) * 3 = 25 * 2 = 63 個機架

接下來,我們根據機架數量、所需交換器數量、佈線等計算每個選項的 TCO。 我們選擇 TCO 較低的選項。 利潤!

請注意,雖然選項 1 和 2 所需的機架數量相同,但它們的價格會有所不同,因為第二種選擇的開關數量是第二種選擇的一半,並且所需電纜的長度更長。

PS 如果您有機會研究每個機架的功率和機架的高度,可變性就會增加。 但只需瀏覽選項即可將流程簡化為上述流程。 是的,會有更多的組合,但數量仍然非常有限 - 用於計算的機架的電源可以以 1 kW 為步長增加,典型機架的標準尺寸數量有限:42U、45U、47U、48U , 52U。 Excel 的資料表模式下的假設分析可以幫助計算。 我們查看收到的車牌並選擇最小值。

來源: www.habr.com

添加評論