Gitlab 中存储库的可扩展存储
Posted
技术标签:
【中文标题】Gitlab 中存储库的可扩展存储【英文标题】:Scalable storage for repositories in Gitlab 【发布时间】:2014-04-07 09:52:47 【问题描述】:我正在 AWS EC2 上部署 Gitlab。默认情况下,Gitlab 使用实例的文件系统来存储存储库。但是,如果我要扩展它并在 Elastic LoadBalancer 后面运行多个实例,这将不起作用。
我的问题是,如果我希望为存储库使用可扩展存储,有哪些可能的选择? Gitlab 文档建议可以使用网络文件系统将文件存储在单独的服务器上。如何在 AWS 上实现类似的功能?
【问题讨论】:
【参考方案1】:您可以为此使用 EBS 驱动器。
【讨论】:
我需要支持通过存储连接到多个 EC2 实例。我认为 EBS 卷不可能做到这一点,不是吗? 如果你想直接访问它就不行。如果您想要多个 EC2 实例,您需要设置一个 NFS 服务器(带有 EBS 驱动器)或使用诸如 GlusterFS 之类的东西。【参考方案2】:首先,EBS 不能附加到多个正在运行的实例。这就像两台计算机共享一个硬盘。您可以使用 EBS,但不能直接将其用作共享文件系统。您需要自己设置 NFS 服务。您可以按照http://theredblacktree.wordpress.com/2013/05/23/how-to-setup-a-amazon-aws-ec2-nfs-share/ 的说明进行操作。
您可以考虑的另一个选项是 AWS Storage Gateway。它公开了一个标准的 iSCSI 块磁盘设备接口。支持多种配置(网关缓存卷与网关存储卷)。 AWS S3 在这些配置中用作主存储或备份存储。
【讨论】:
以上是关于Gitlab 中存储库的可扩展存储的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 4 使用存储库模式(由 Eloquent 支持)和缓存的可扩展设计