ブロックストアでのブロック サイズの設定
項目一覧
ブロックストアベースのバックアップのパフォーマンスは、 ブロックストアの FCVによって異なります。
配置をブロックストアにバックアップすると、次のアクションが実行されます。
MongoDB Agent は、ブロックに分割されたファイルのコピーを送信します。
バックアップ サービスはこれらのブロックをブロックストアに書込みます。
各種ブロックストアでは、ブロックのデフォルト サイズとサイズ範囲が異なります。
ブロックストア タイプ | ブロック サイズ範囲 | デフォルトのサイズ |
---|---|---|
MongoDB | 64 KB から 15 MB | 1 MB |
S3 | 64 KB から 16 MB | 16 MB |
デフォルトのMongoDBブロックブロックストアのブロック サイズは1 MB です。 これにより、スナップショットのパフォーマンスが向上します。
ブロックストアに100 GB を超えるファイルを含むバックアップが含まれる場合は、 2 MB 以上のブロック サイズの使用を検討してください。 ブロック サイズの選択でサポートが必要な場合は、 MongoDB サポート にお問い合わせください。
Considerations
ブロックサイズ変更後の完全なスナップショット
ブロック サイズを変更すると、次のスナップショットは増分スナップショットではなく完全なスナップショットとして実行されます。
ブロック サイズが大きいとパフォーマンスとディスク使用量が増加
一般に、ブロック サイズを増やすとスナップショットと復元が高速化されますが、必要なディスク容量が増えます。 ブロック サイズを調整する必要があるかどうかを判断する際には、これらの競合する要因を考慮してください。
これらの 2 つの例外では、追加のディスク領域を必要とせずにブロック サイズが増加するにつれてパフォーマンスが向上します。
ワークロード | 影響 |
---|---|
更新と削除が強制される | ブロック サイズをどれだけ小さくしても、ブロック ファイル全体が書き換えられます。 ファイル全体は常に書き換えられるため、ブロックサイズを変更してもストレージ容量は変更されません。 |
挿入のみ | 既存のブロックは変更されません。 ブロック サイズを増やすと、ブロック管理が簡素化されます。 これにより、スナップショットと復元で最高のパフォーマンスが得られます。 |
ブロックサイズを変更する前にディスク容量を確認
ブロック サイズを変更する前に、MongoDB ブロックストアが変更後に現在のディスク領域に収まるようにしていることを確認してください。 変更後のスナップショットでは、以前のスナップショットのブロックを重複させることはできません。 ブロック サイズは一致しません。 これにより、各ブロックストアのディスク使用量は、バックアップする配置のサイズに応じて増加します。
新しいブロックを保存できないブロックストアはクラッシュします。 これによりバックアップがブロックされます。 ディスクからスペースをクリアして、ブロックストアを作業順序に戻します。
特定のジョブのブロック サイズを変更するのに十分なディスク領域があるかどうかを確認するには、次の手順を実行します。
ブロックストアを実行しているホストで使用可能なディスク領域の量を検出します。
次のスナップショットの圧縮バイトを追加するときに、ブロックストア ストレージの使用量が増加する量を見積もります。 バックアップ ジョブの最新のスナップショットの圧縮バイトを確認して、その推定値を作成します。
圧縮されたバイトを確認するには、次のクエリを実行します。
1 db.getSiblingDB("backupjobs").snapshots.findOne( 2 { 3 rsId : <rsId>, 4 groupId : <groupId>, 5 completed: true 6 }, { 7 compressedSize: 1 8 }, { 9 sort: { 10 startTime: -1 11 } 12 } 13 ) いくつかのバッファ領域を残すように、見つかった値をスケールアップします。
ブロック サイズを増やした後に取得される最初のスナップショットで、ブロックストア ストレージの使用率が急増します。 その新しいブロック サイズに設定されている後続のスナップショットによっても、ブロックストアが拡張されます。 すべてのブロックがその最初のスナップショットで重複するわけではありません。
MongoDB Ops Managerが 1 つのブロックストア(ブロックストア内グルーム ジョブ)を使用してスペースを再利用する場合、ブロックストアにはより多くのバッファ領域が必要になります。 ブロックストア内グルーム ジョブ中に、ブロックストアは次のスペースを一時的に割り当てます。
以前に期限切れになったスナップショットのデッドバイト
以前に完了したすべてのスナップショットのライブバイトの 2 つのコピー
新しいスナップショットからの バイトの 2 つのコピー
ステップ 1 とステップ 3 で見つかったディスク容量を比較します。 ステップ 3 で計算されたディスク容量は、ステップ 1 で見つかったディスク容量に収まる必要があります。
特定のジョブのブロック サイズを変更するのに十分なディスク領域がホストにない場合は、次のいずれかの解決策をお試しください。
ブロックストア用にディスク領域を追加します。
バックアップジョブを終了して再開します。 これにより、既存のスナップショットがすべて消去されます。
グルーム 優先順位 管理ページから 1 つ以上のグルーム ジョブを実行し、デッド バイトをクリアします。 各ジョブで実際にクリーンできるデータ量を確認するには、[リソース使用量 ] 管理ページを確認してください。
新しいブロックストアを追加し、一部のバックアップジョブのブロックストア間グルーム ジョブをスケジュールします。
ブロック サイズは変更せず、
MongoDB Ops Managerでは、 FCV 4.2 以降とMongoDBブロックストアを使用して 1 つ以上のバックアップにブロック サイズを構成しなかった場合、ブロック サイズを増やすための バナーが表示されます。 バナーを非表示にするには、すべてのバックアップジョブに対して任意のブロック サイズを設定します。 古いデフォルトのブロック サイズ64 KB を設定できます。
サポートが必要な場合は、 MongoDB サポートにお問い合わせください。
注意
ブロックストア ストレージの使用状況は急増し、ブロック サイズを変更すると徐々に増加します。 この使用量は、古いブロック サイズで取得されたスナップショットの有効期限が切れると、減少します。 MongoDB Ops Managerが 1 から 7 年間の月次スナップショットを保持するため、この使用量はブロックサイズが変更前のレベルに戻るまでに長い時間がかかる可能性があります。