7

現在、CentOS サーバー上にある私の Minecraft サーバーは、バージョン管理と「災害管理」の手段として Git を使用しています。これは、次の 2 つの問題を除いて非常にうまく機能します。

  1. 大きいです。サーバーには中央リポジトリ、マスター ブランチ (サーバーが実際に実行されるブランチ)、およびテスト サーバー ブランチがあるため、これまでにコミットされたすべての変更が含まれているため、SSD は際限なくいっぱいになります (過去 1.5 か月の使用で約 70 GB を使用)。 )

  2. 遅いです。オブジェクトディレクトリに非常に多くのデータが保存された後、コミット、プッシュ、およびプルは、このすべてのデータを圧縮/解凍および解析しようとするため遅くなります。

このアプリケーションで Git をより効果的にするためのソリューション、または代替品を探しています。私が Git を使用することを選択した理由のいくつかを次に示します。

  • 増分バックアップ - バックアップするたびに、8 GB の非圧縮/2 GB の圧縮サーバー全体を保存する必要はありません。
  • チェリーピック復元 - サーバーの特定の部分を簡単に復元できるようにする必要があります (メイン ワールドへのユーザーの変更を復元せずに特定のプラグイン構成など)。
  • オフサイトのバックアップとテストのためにプロジェクトを自宅のコンピューターに複製する機能
  • テストサーバー用のブランチを作成して、不安定な機能をロールアウトする前に試す機能

サーバーのバックアップに正確な tarballing bash スクリプトを使用していたときは、通常、2 週間以上前のバックアップを削除していました。増分バックアップの場合、この期間は 1 か月以上にする必要があります。

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

アイデアはありますか?

4

1 に答える 1

2

バイナリ/ラージファイルを保存するために検討する可能性のあるオプションの1つは、git-annexです。これは、git内のラージオブジェクトを管理するために設計されています。中央のgitデータベース自体を乱雑にすることなく、これらの巨大なファイルをチェックインできます。ただし、これらのファイルをどのように操作し、時間の経過とともに変更するかについて、ある程度再考する必要があります。うまく機能する可能性のある優れたプッシュ/プル/バックアップコンポーネントがありますが、対処する必要のある他の「新しい考え方」に遭遇します。もちろん、最初にテストシステムで試してみてください。

于 2013-01-11T17:03:58.720 に答える