Baculaを使用してリモート(別のDC内)のサーバーに接続し、バックアップしています。
速度の制約と日中のオフィスネットワークの停止がないため、4台のサーバーの完全バックアップを同時に実行することは不可能だと思います。代わりに、完全バックアップを分割して、毎週1台のサーバーがローテーションでの完全バックアップ。
要件1-完全バックアップ転送の負荷分散
サーバーが4台ある場合、次のようにローテーションで完全バックアップを実行します。
特定の日付を指定して、完全バックアップとその前の最後の完全バックアップを保持します。今から最新の完全バックアップまでのすべての増分を保持する必要があります。
要件2-個別のプールでのフルおよびインクリメンタル
2つのストレージプールがあります。1つはインクリメンタル用、もう1つはフル用です。インクリメンタルスナップショットで前のフルが見つからない場合はpool-fullを使用するように、そうでない場合はpool-incを使用するようにBaculaに指示する必要があります。
要件3-スケーラビリティ
土曜日と日曜日にサーバーをローテーションしたい場合は、将来的にサーバーが増える可能性があります([1,2]、[8,9]、[15,16]、[22、 23])。大きな構成ファイルになるので、ジョブを定義する簡単な方法はありますか?.
あなたの質問の個々のポイントを取る:
要件1-負荷分散
環境に合わせてこれを把握する必要があります。「合理的」とは、多くの要因(マシンの数、データの量、バックアップするメディアの種類、帯域幅の量)によって異なります。テープを回転させるようにトレーニングできるCeilingCatがデータセンターにあるかどうかに関係なく、上司がバックアップに割り当てても構わないと思っている金額を用意してください...)
「合成フルバックアップ」を調べることもできます (BaculaはそれらをVirtualFull
バックアップと呼びます) -これらは統合することでクライアントからデータをプルすることなく「フル」バックアップを生成できます最新の完全なデータとすべての増分/差分変更でバックアップしたデータ。
要件2-代替プールでのフルおよびインクリメンタルFullPool
、IncrementalPool
、およびDifferentialPool
構成ディレクティブを検出していないようです。 Baculaのマニュアルを参照してください これらの詳細については。
これらは、バックアップをジョブタイプごとに異なるプールに分割するために必要なものです。
要件3-スケーラビリティ
まず、Baculaを使用していて、中程度の複雑さでさえ何かをしている場合は、今すぐ小さな構成ファイルをあきらめます。ディレクターの構成は大きくなります。
JobDef
およびSchedule
ディレクティブで行っていることは、物事を処理する正しい方法です。要件を満たすために必要に応じて定義を追加します。
私があなたなら、命名規則としてバックアップ日付を使用しません-スケジュール(およびジョブのデフォルト)を「グループA」、「グループB」など(または同様に一般的なもの)と呼びます。
各サーバーがどのバックアップグループに属しているかを文書化します。これにより、サーバーをあるグループから別のグループに移動するときに、バックアップの負荷を簡単に再調整できます。
もちろん、日付ベースの名前でこれを行うことができますが、バックアップグループを抽象的な概念として考える方が簡単だと思います。さらに、Group A
がGroup B
のバックアップ時間枠に流れ込んでいる場合、スケジュール定義を変更することで、いつでもすべてのGroup B
を1日進めることができ、名前を変更する必要はありません。