永続ディスクのスナップショットに関するベスト プラクティス

永続ディスクのスナップショットはいつでも作成できますが、以下のおすすめの方法を利用することで、より迅速かつ信頼性の高いスナップショットを作成できます。

始める前に

整合性のとれたスナップショット取得に向けた準備

ほとんどの場合、アプリがデータを書き込んでいる間でも永続ディスクのスナップショットを作成でき、スナップショットの整合性がとれていることも期待できます。スナップショットのクオリティは、大量の書き込みワークロード中に作成されたスナップショットから復旧するアプリの性能によって変わります。

アプリで厳密な整合性が必要な場合に、次の手順に従うことで、スナップショットを意図した永続ディスクの状態と一致させることができます。

スナップショットの作成前にディスクのバッファをフラッシュする

アプリがディスクにデータを書き込んでいる間でも、永続ディスクのスナップショットを作成できます。ですが、スナップショットを作成する前に、ディスク バッファをフラッシュしてファイル システムを同期するとスナップショットの整合性が向上します。

永続ディスクにデータを書き込むアプリやオペレーティング システムのプロセスを一時停止します。次に、スナップショットを作成する前にディスク バッファをフラッシュします。

スナップショットの取得に先だって永続ディスクの準備を整えるには、次の手順に従います。

  1. SSH を使用してインスタンスに接続します。
  2. アプリでディスクへのフラッシュを実行します。たとえば、MySQL では FLUSH ステートメントを使用します。アプリで使用できるツールで行ってください。
  3. アプリの永続ディスクへの書き込みを停止します。
  4. sudo sync を実行します。

この手順を省略すると、アプリが正常にディスクにフラッシュしたデータだけが、スナップショットに含まれます。この状況は、アプリからは突然停電したように見えます。

ファイル システムをフリーズしてマウントを解除する

もう一つの方法は、スナップショットを作成する前に、ファイル システムをフリーズするか、マウント解除することです。これはディスク バッファをクリアする最も確実な方法です。ですが、より時間がかかり、また、単純にディスク バッファをフラッシュするほど簡単ではありません。

永続ディスクを完全にマウント解除して、スナップショットの作成中にデータが書き込まれないようにします。これは通常は不要ですが、スナップショットの整合性を向上させます。

  1. SSH を使用してインスタンスに接続します。
  2. 永続ディスクのデータの読み取り、あるいは書き込みを行っているすべてのアプリを停止します。
  3. ファイル システムをフリーズするか、マウント解除します。

    1. フリーズ: sudo fsfreeze -f [example-disk_location]
    2. マウント解除: sudo umount [example-disk_location]

    スナップショットが完了した後は、ファイル システムをフリーズ解除またはマウントできます。

    1. フリーズ解除: sudo fsfreeze -u [example-disk_location]
    2. マウント: sudo mount [example-disk_location mount_location]

Linux の場合

ディスクが Linux インスタンスに接続されている場合は、インスタンスに接続し、umount ツールを使用してインスタンスからディスクをマウント解除します。

sudo umount /dev/disk/by-id/google-[DISK_NAME]

ここで、[DISK_NAME] は永続ディスクの名前です。

Windows の場合

ディスクが Windows インスタンスに接続されている場合は、インスタンスに接続し、ディスクの管理ツールを使用してインスタンスからディスクをマウント解除します。

永続ディスクを再マウントする

スナップショットを取った後、永続ディスクを再マウントする必要があります。詳細については、永続ディスクのフォーマットとマウントをご覧ください。

アプリで複数の永続ディスク間の整合性が必要な場合は、各ディスク上のすべてのファイル システムをフリーズまたはマウント解除し、それらのディスクのスナップショットをすべて完了してから、アプリを再開する必要があります。Compute Engine は、複数の永続ディスクで同時に実行されるスナップショット間の整合性を保証しません。

ext4 などのジャーナリング ファイル システムを使用することで、永続ディスクに実際に書き込まれることなくデータがキャッシュに保存されるリスクを低減させるようにします。

Windows Server インスタンスを使用する永続ディスク

Windows Server インスタンスに接続されている永続ディスクの場合は、VSS スナップショットを使用してデータの整合性を維持します。

こまめなスナップショットを効率的に作成する

スナップショットを使用すると、データを効率的に管理できます。

  • データのスナップショットを定期的に作成して、予期しない障害によるデータ損失を最小限に抑えます。

  • 過剰なスナップショットのダウンロードを回避し、作成したイメージを再利用することで、パフォーマンスを改善します。

  • スナップショットの時間を短縮するには、スナップショットのスケジュールをオフピーク時に設定します。

よく使用するスナップショットのイメージを作成する

同じゾーン内のスナップショットを繰り返し使用して永続ディスクを作成している場合は、スナップショットを 1 回使用し、そのスナップショットのイメージを作成することでネットワーク コストを節約することができます。このイメージを保存してディスクを作成し、VM インスタンスを起動します。手順については、カスタム イメージの作成をご覧ください。

ディスクのスナップショットは 1 時間に 1 回作成することをおすすめします。それ以上の頻度でスナップショットを取得することは避けます。これを実現する最も簡単な方法は、スナップショット スケジュールを設定することです。

既存のスナップショットを後続のスナップショットのベースラインとして使用する

既存のスナップショットが永続ディスク上にある場合は、そのディスクから作成する後続のスナップショットのベースラインとして自動的に使用されます。

  • 永続ディスクから以前のスナップショットを削除する前に、その永続ディスクから新しいスナップショットを作成します。以前のスナップショットを使用でき、新規または変更されたデータのみを永続ディスクから読み込める場合、システムは新しいスナップショットをより迅速に作成できます。

  • 新しいスナップショットが完了するまで待ってから、後続のスナップショットを同じ永続ディスクから取得します。同じ永続ディスク上で 2 つのスナップショットを同時に実行すると、両方とも同じベースラインから開始し、作業が重複します。新しいスナップショットの完了を待つと、後続のスナップショットは、最後のスナップショットの終了後に変更されたデータを取得するだけで済むため、より迅速に実行されます。

オフピーク時にスナップショットをスケジュールする

永続ディスクの定期的なスナップショットをスケジュールする場合、可能な限りオフピーク時にスナップショットを作成することによって、各スナップショットの完了に要する時間を短縮できます。

  • 永続ディスクが設置されているゾーンの営業時間内に、自動スナップショットをスケジュールします。通常、スナップショットの作成は営業時間の終わりにピークに達します。
  • 永続ディスクが設置されているゾーンの深夜 0 時直後ではなく、早朝に自動スナップショットをスケジュールします。通常、スナップショットの作成は深夜 0 時にピークに達します。

データを別々の永続ディスクに整理する

永続ディスクのスナップショットを作成すると、ディスクに保存するすべてのデータがスナップショットに含まれます。データ量が大きいほど、作成されるスナップショットが大きくなるため、コストが増加し、作成に時間がかかります。必要なデータだけのスナップショットを作成するには、データを別々の永続ディスクに整理します。

  • 重要なデータは、ブートディスクではなくセカンダリの永続ディスクに保存します。これにより、必要なときにのみ、または頻度の低いスケジュールで、ブートディスクのスナップショットを作成できます。
  • ブートディスクのスナップショットを作成する場合は、スワップ パーティション、ページファイル、キャッシュ ファイル、重要性の低いログを別の永続ディスクに保存します。これらのファイルとパーティションは頻繁に変更され、スナップショット プロセスはそれらを、増分スナップショットに含める必要のある変更されたデータとして識別する可能性が高くなります。
  • 1 つの永続ディスクに類似のデータをまとめておくことで、作成する必要のあるスナップショットの数を減らします。オペレーティング システムと揮発性データはスナップショットを作成するデータと別に保存するべきですが、物理マシンでのように複数の永続ディスクに重要なデータを分散させる必要はありません。1 つの大きな永続ディスクで、同じ合計サイズの複数の小さな永続ディスクと同じパフォーマンスを実現できます。

永続ディスクで discard オプションを有効にするか、fstrim を実行する

Linux インスタンスで、discard オプションを使用して永続ディスクをフォーマットおよびマウントしなかった場合は、スナップショットを作成する前に fstrim コマンドを実行します。このコマンドは、ファイル システムが必要としなくなったブロックを削除し、システムがスナップショットをより迅速かつ小さなサイズで作成できるようにします。永続ディスクに discard オプションを構成する方法については、永続ディスクをフォーマットしてマウントするをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント