单台机器能超过10万个项目托管?好奇就来了解这个Git仓库的硬件平台

运维 系统运维 移动开发
10万个仓库需要占用好多个 TB 的存储,因此存储能力至关重要。而因为我们使用的是 Git,因此存储必须是一个单一的文件系统,而不能是类似亚马逊提供的 S3 对象存储服务。我们希望能够轻松扩展存储。此外大量的人提交和下载代码对系统的 CPU 要求也非常高,因此拥有更多的 CPU 核有助于在高负载的情况下提升响应速度。

如果你想要托管项目,可以考虑 GitLab.com ,在这个网站上我们运行了一个单实例的 GitLab。目前有将近 20000 个用户在使用这个服务。单台机器上有超过 10 万个项目托管之上。

单一服务器

之前 GitLab.com 是运行在亚马逊的 AWS 平台上,使用的是 AWS 上最高的配置实例。但是由于用户的不断增长,AWS 单实例已经无法满足我们的需要,特别是 CPU 和存储方面的限制。我们必须寻找一种替代解决方案。

10万个仓库需要占用好多个 TB 的存储,因此存储能力至关重要。而因为我们使用的是 Git,因此存储必须是一个单一的文件系统,而不能是类似亚马逊提供的 S3 对象存储服务。我们希望能够轻松扩展存储。此外大量的人提交和下载代码对系统的 CPU 要求也非常高,因此拥有更多的 CPU 核有助于在高负载的情况下提升响应速度。

看来最具性价比的方案是使用自己的服务器了。好在 GitLab 可以很方便的运行之上。

htop on GitLab server

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 卷,这将让我们的移植变得容易。

英文原文:The hardware that powers 100,000 git repositories

译文出自:http://www.oschina.net/translate/the-hardware-that-powers-100k-git-repos

责任编辑:林师授 来源: 开源中国社区
相关推荐

2015-11-27 10:02:05

WindowsLinuxLabxNow

2013-01-29 09:46:04

黑莓10BB10移动应用

2019-03-28 14:30:21

代码开发命令

2020-11-13 15:29:21

机器学习数据技术

2023-02-26 18:44:43

iOS苹果开发

2023-02-21 17:06:49

硬件软件系统

2018-02-05 09:00:00

Git仓库GitHbub

2017-11-20 11:01:49

支付宝门店APP

2023-12-15 08:17:13

防御性编程代码

2022-12-16 16:54:45

2021-03-14 09:37:45

Git仓库管理代码

2011-09-06 09:37:04

MTK平台

2014-03-19 10:01:16

Git项目远端仓库

2024-03-04 19:14:15

2022-12-05 11:20:21

CSS渐变小技巧

2017-06-08 13:31:40

NetflixEureka服务器

2020-11-05 14:12:16

Vue开源项目js框架

2015-08-03 14:51:59

2018-05-05 07:18:52

机器学习线性代数深度学习

2018-10-23 13:00:48

php比特币区块链
点赞
收藏

51CTO技术栈公众号