目前,我的Minecraft服务器位于CentOS服务器上,使用Git作为版本控制和“灾难管理”的手段。除了两个问题外,这种方法非常有效:
这很重要。因为服务器有一个中央存储库,主分支(服务器实际运行在其上)和一个测试服务器分支,每个包含所有已提交的更改,使SSD无需填充(使用过去1.5个月大约70GB) )
这很慢。在对象目录中存储了如此多的数据之后,提交,推送和拉取的速度很慢,因为它尝试压缩/解压缩并解析所有这些数据。
我正在寻找一种解决方案,让Git对这个应用程序或替代品更有效。以下是我选择使用Git的一些原因:
当我们过去使用精确的tarballing bash脚本来备份服务器时,我们通常会删除超过2周的备份。使用增量备份时,此期限应为一个月或更长时间。
如果你不熟悉Minecraft的结构,它有点像这样:
.
|-- plugins
|-- SomePlugin
|-- config.yml
|-- SomePlugin.jar
|-- world
|-- region
|-- (binary files of chunks, a 2000x2000 world is often 1GB in size)
|-- mcmmo_data (third party plugin)
|-- x coordinate
|-- y coordinate
|-- small flatfile
|-- level.dat
|-- stuff.txt
|-- properties.yml
|-- server.jar
任何想法?
答案 0 :(得分:2)
为了存储二进制文件/大文件,您可能会考虑的一个选项是git-annex,它用于管理git中的大对象。它可以让你检查这些巨大的文件,而不会混乱中央git数据库本身。但是,需要重新思考如何弄乱这些文件并让它们随着时间的推移而改变。它确实有一个很好的推/拉/备份组件可能会运行良好,但你会遇到其他需要处理的“新思维方式”。当然,首先在测试系统上试一试。