永続ディスクのスナップショットに関するおすすめの方法

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

始める前に

スナップショットの整合性を最適に保つために永続ディスクを準備する

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

アプリケーションで厳密な整合性が必要な場合は、スナップショットが永続ディスクの望ましい状態と一致するように追加の手順を実施できます。

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

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

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

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

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

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

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

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

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

  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 スナップショットを使用してデータの整合性を維持します。

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

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

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

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

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

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

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

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

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

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

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

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

次のステップ

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

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

Compute Engine ドキュメント