近日,GitHub網站可靠性工程師、經理skottler在githubengineering.com發(fā)表了一篇博客,介紹了Github數據中心升級的相關事宜。在過去的18個月里,他們對GitHub的物理基礎設施進行了大量的投入。其目標是改進GitHub系統(tǒng)的冗余性和全局可用性。在這樣做的基礎上,他們將擴展計算和存儲空間,以支持其不斷增長的用戶群。以下內容來自skottler的博文:
概述
我們有四個設備,其中兩個是“中轉點”,我們稱之為“存在點”(points of presence ,POP),其中兩個是數據中心。先為大家說明一下我們的規(guī)模,我們已經為GitHub.com的用戶存儲了PB級的Git數據,并在傳輸、網絡交換和私有網絡接口上擁有大約100Gb / s的速度,以滿足每秒數千個請求。我們的網絡和設施是使用一個 hub-and-spoke設計來建造的。我們在西雅圖和弗吉尼亞北部地區(qū)運營著我們自己的主干網,通過受保護的光纖提供更穩(wěn)定的延遲和吞吐量。
POP是一些主要由網絡設備組成的機柜。他們被安置在具有高度集中的中轉供應商和接入區(qū)域互聯(lián)網交換機的設施中。這些設施不存儲客戶數據,而是專注于互聯(lián)網和主干網連接性,以及直接連接和Amazon Web服務的私有網絡接口。目前,我們在弗吉尼亞州北部有一個POP,在西雅圖的地鐵區(qū)有一個,每個都獨立地連接到在各自地理區(qū)域的中轉供應商和數據中心。
不過,這些連接好的POP有一些消極面,導致我們需要選擇單獨的數據中心來存儲客戶數據和服務請求。一方面,由于對各種各樣的交換選項的空間需求,我們使用的設施如POP更難以獲得空間。由于這種對空間的需求,經常會有更少的電力供應,這使得我們無法部署高密度的存儲和計算柜。因此,數據中心在設施不太連通的獨立的圍籠里,我們利用POP和數據中心之間的metro wave和被動式密集波分復用(DWDM)來連接它們。目前的POP是一對一的數據中心,所以我們在美國大陸的每個海岸都有一個數據中心。
設施之內
盡管POP和數據中心的圍籠擺放和部署的方式有些不同,但我們仍然有一套關于如何建造我們的設施的共同原則。我們的目標是使柜子類型盡可能地均勻,以增加可重復性。在POP中只有一種柜子,包括管理和生產邊界路由器、光學網絡設備和足夠的計算硬件來運行核心服務。我們的數據中心有三種不同類型的柜子——網絡、計算和存儲。大部分的柜子都是用于計算和存儲的硬件,每一種都是在特定的柜子里,而不是混合在一起,允許該層獨立擴展。我們關注的另一件事是,我們的基礎設施和數據中心提供商之間的交叉連接有明顯的分離。在POP中,我們使用預先標注的和電纜連接的分界點來添加新的中轉、傳輸或直接連接供應商,這是一個與補丁面板的單邊交互的問題。
數據中心是通過使用結構化的布線來簡化增加新容量的。建造西海岸的數據中心時,結構的布線被部署在整個空間,包括尚未使用的機柜位置。每個存儲和計算柜都通過一個上方的補丁面板連接到結構化的布線。每個柜側補丁面板都連接到一對匹配的面板上,它們位于一對網絡柜之間的兩個柱架上。在網絡柜中,將一個柜子連接到脊柱和聚合開關,就需要修補從葉片開關和控制臺設備到頭頂面板的一系列連接,然后從兩柱架到網絡柜打補丁。這兩個網絡補丁布置是通過使用預先標注的和錐形的光纖織機完成的,這有助于保持網絡柜的整潔,盡管它們的光纖密度很高。
▲圖片來源網絡,與內容無關
擴展計算和存儲
我們與一個機柜集成商緊密合作,以處理機架和堆疊、電纜、驗證和物流事務。當一個關于在我們的一個數據中心擴展計算和/或存儲能力的項目被啟動時,第一步要決定是使用我們已經構建的現(xiàn)有的機柜配置,還是設計一個新的。除非我們正在部署一種新型的機柜,或者對底架和sled的配置做出改變,這一過程包括從供應商那里獲得報價和交貨時間,確保機柜布局符合我們的預期,然后下訂單。一旦所有的部件都采購完成,機架集成商就會建造機柜,最終把它們裝進一個適合貨運的集裝箱里。
在我們的一個設施到達后,機柜在數據中心的目標位置部署。網絡配置是預先生成的,在機柜離開構建站點的時候已經在開關上了,所以需要打開一套新的柜子的所有東西為每一個打補丁,布置電源電路,并為它們內部的硬件供電。從集成商的機柜布局數據導入到我們的硬件管理系統(tǒng)gPanel,將序列號映射到機架單元和附件。gPanel通過無狀態(tài)映像提供硬件發(fā)現(xiàn),該映像在當前未安裝的所有底架上運行。在第一次啟動時,每個底架都進入一個未知狀態(tài),然后通過狀態(tài)機來配置像iDRAC這樣的設備,確保BMC、BIOS和驅動固件與我們在其他地方生產的版本匹配,然后驗證機器的健康狀況。一旦這些步驟完成,這個盒子就會在就緒狀態(tài)下結束,并且可以通過gPanel響應請求。
新存儲和計算柜的部署使用這種方法是高度可復制的,允許我們自信地在數據中心中擴展我們的物理覆蓋區(qū)。在目前的情況下,這一過程允許我們?yōu)楣镜墓こ處焸兲峁┯布谕惶靸龋麄兊臋C柜預置好并供電。
這是我們最近添加到西雅圖數據中心的一個計算柜:
結論
我們對數據中心和網絡的改進使我們能夠繼續(xù)自信地擴展我們的物理基礎設施。引入可重復的過程以增加新的容量,并將區(qū)域網絡邊緣從我們的計算和存儲系統(tǒng)中分離出來,這使我們能夠進入基礎設施的下一階段增長。
原文鏈接:https://githubengineering.com/evolution-of-our-data-centers/