我是一个小型物理研究团队(10-15 人)的成员,该团队最近购买了一台存储服务器,我将负责设置它。因此,我需要考虑以最佳方式组织我们将生成的数据。
在研究实现此目的的最佳方法时,我偶然发现了 git lfs。我们已经使用 GitLab(云版本)来控制我们的代码版本并轻松地在我们之间共享它们。因此,创建一个“数据”存储库是有意义的,其中大多数文件都是二进制文件,通过 lfs 存储和跟踪。但是,这似乎会将文件上传到 GitLab 的服务器,从而违背了存储计算机的整个目的(此外,我们需要从他们那里购买存储空间)。
解决方案似乎是让我们在存储服务器上部署 GitLab 的社区版本。现在我的问题来了:
- 这是唯一的方法吗?理想情况下,我希望能够告诉 GitLab 我们的文件存储在其他地方,而 git repo 只是指出“其他地方”是我们的存储服务器?
- 如果我必须部署 GitLab 的 CE,维护这样的服务器有多难?我的理想情况是零维护,即设置一次,只要没有人更新操作系统,它就不会崩溃(请参阅下面的评论)。
- 万一发生故障,数据是否会以易于检索的方式存储,即数据不会被压缩为二进制 blob,需要运行服务器才能检索。理想情况下,我应该能够在服务运行的情况下从服务器内部读取数据,因为我们可能会在这台计算机内进行一些数据分析。
关于第 2 点的评论:我知道不定期更新可能会留下安全漏洞。但是,存储的数据不包含敏感信息。我们不处理个人信息,泄露或数据丢失只会造成轻微后果。另一方面,我是一名博士后,可能需要随时离开该小组,转而担任永久职位。由于该小组专注于物理研究,在我离开后加入的其他人可能不具备维护服务器的必要技能。因此,需要一个几乎不需要维护的系统来管理数据。
答案1
在我看来你有两个选择。
- 在您的存储服务器上运行自托管社区 Gitlab,并在其上使用 git-lfs。
- 使用 git-annex。
Git-annex 跟踪 git 中的文件位置,但实际文件内容可以存储在各种后端中,例如 rsync、s3、bup。您可以在存储服务器上设置其中一个:https://git-annex.branchable.com/special_remotes/
编辑以回答您关于 Gitlab CE Admin 的问题。我们将其用于一个由 10 人组成的小型开发团队和大约 100 个存储库。如果您不使用 Gitlab 的持续集成,管理应该非常简单。