能支持 10 萬個 Git 倉庫的硬件平臺

jopen 9年前發布 | 5K 次閱讀 Git

如果你想要托管項目,可以考慮 GitLab.com ,在這個網站上我們運行了一個單實例的 GitLab。目前有將近 20000 個用戶在使用這個服務。單臺機器上有超過 10 萬個項目托管之上。

單一服務器

之前 GitLab.com 是運行在亞馬遜的 AWS 平臺上,使用的是 AWS 上最高的配置實例。但是由于用戶的不斷增長,AWS 單實例已經無法滿足我們的需要,特別是 CPU 和存儲方面的限制。我們必須尋找一種替代解決方案。

10萬個倉庫需要占用好多個 TB 的存儲,因此存儲能力至關重要。而因為我們使用的是 Git,因此存儲必須是一個單一的文件系統,而不能是類似亞馬遜提供的 S3 對象存儲服務。我們希望能夠輕松擴展存儲。此外大量的人提交和下載代碼對系統的 CPU 要求也非常高,因此擁有更多的 CPU 核有助于在高負載的情況下提升響應速度。

看來最具性價比的方案是使用自己的服務器了。好在 GitLab 可以很方便的運行之上。

能支持 10 萬個 Git 倉庫的硬件平臺And 因此,我們目前采購了兩臺獨立服務器用來運行 GitLab.com,其中一臺是活動的主服務器,另外一臺備用。服務器配置如下:

  • 服務器型號: HP DL180 G6 (2009 生產)

  • 處理器: 2x X5690 (共 24 核)

  • 32GB RAM

  • 12x 2TB HDDs, (其中兩個用于 root 卷,使用 RAID 1,另外 10 個磁盤使用 RAID 10 ext4 文件系統)

我們實際上只用了其中的 16 核。

故障以及故障轉移

從亞馬遜上遷移出來意味著我們不能再利用 AWS 平臺的一些特性,因此一旦服務器宕機我們需要一些故障轉移的措施。

我們需要使用 DRBD 來創建主從服務器架構,同一時間只有一個應用服務器是活動的,一旦出問題就會讓 DRBD 切換到另外一臺服務器。

我們的 DRBD 工具可通過 subscribers 獲取。

未來的擴展性

GitLab.com 在當前的硬件平臺上運行良好,但其增長越來越快。如果對現有的硬件進行擴展,其成本是很高的,而且有些部分是很難的。

將來 GitLab.com 將再次托管到亞馬遜的 AWS 平臺上,這可以讓我們很容易的實現水平的擴展。此外亞馬遜剛剛宣布了超過 10TB 的 ESB 卷,這將讓我們的移植變得容易。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!