スナップショットは、バックアップと復元のためにディスクデータの特定時点の状態を取得し、増分ストレージ方式によりコストを削減します。
スナップショット作成の仕組み
スナップショットを作成するには、手動で実行するか、自動スナップショットポリシーを設定します。
仕組み
スナップショットは、データバックアップの最小単位としてブロックを使用します。ディスクの最初の標準スナップショットは完全スナップショットであり、すべてのデータブロックをバックアップします。その後の標準スナップショットは増分スナップショットとなり、直前のスナップショット以降に新規または変更されたブロックのみをバックアップします。増分スナップショットは、スナップショットチェーン内の以前のスナップショットから変更されていないデータを参照するため、任意のスナップショットからディスクの完全な状態を復元できます。
スナップショットはデフォルトでObject Storage Service (OSS)に保存されます。スナップショット用に使用される OSS バケットはユーザーからは非表示となっており、スナップショットデータの保存に独自の OSS バケットを使用することはできません。
例
ECS インスタンスに接続されたディスクがあり、10:00 および 11:00 にデータが変更されたと仮定します。
9:00 時点で、ディスクにはデータブロック A と B が含まれています。スナップショット 1(完全)では、両方のブロックをバックアップします。
ブロック B が B1 に変更されました。10:00 時点で、スナップショット 2(増分)ではブロック B1 のみをバックアップします。ブロック A はスナップショット 1 から参照されます。
新しいブロック C が追加されました。11:00 時点で、スナップショット 3(増分)ではブロック C のみをバックアップします。ブロック A および B1 は、それぞれスナップショット 1 および 2 から参照されます。
このプロセスは、それ以降のスナップショットにも同様に適用されます。
スナップショットのアーカイブの仕組み
仕組み
アクセス頻度が低くても長期的に保持する必要がある標準スナップショットをアーカイブすることで、ストレージコストを削減できます。ディスクの最初のアーカイブスナップショットは完全スナップショットです。その後のアーカイブスナップショットは増分スナップショットとなり、直前のアーカイブスナップショット以降に変更されたブロックのみをバックアップします。スナップショットのアーカイブをご参照ください。
例
例 1:ディスクの唯一のスナップショットをアーカイブする場合
ディスクに標準スナップショットが 1 つだけ存在すると仮定します。これをアーカイブすると、同じサイズのアーカイブスナップショットが生成され、標準スナップショットのサイズはゼロになります。
例 2:ディスクの増分スナップショットをアーカイブする場合
ディスクに標準スナップショットが 3 つあると仮定します。スナップショット 2 およびスナップショット 3 をアーカイブします。
標準スナップショット 2 をアーカイブすると、ブロック A および B1 を含む完全アーカイブスナップショットに変換されます。標準スナップショット 3 がスナップショット 2 からブロック B1 を参照していたため、ブロック B1 は保持され、スナップショット 3 に再関連付けられます。
標準スナップショット 3 をアーカイブすると、ブロック C のみを含む増分アーカイブスナップショットが作成されます。ブロック A および B1 はアーカイブスナップショット 2 から参照されます。
このプロセスは、それ以降のスナップショットにも同様に適用されます。
アーカイブ後、ディスクには 2 つのスナップショットチェーン(標準チェーン:1 つのスナップショット、アーカイブチェーン:2 つのスナップショット)が存在します。
スナップショット削除の仕組み
不要になったスナップショットやスナップショットクォータを超えた場合に、ストレージ領域を解放するためにスナップショットを削除します。スナップショットの削除をご参照ください。
ディスクごとのスナップショットクォータ(手動、自動、アーカイブ)については、使用制限をご参照ください。
仕組み
増分スナップショットは、チェーン内の以前のスナップショットから変更されていないデータを参照します。スナップショットを削除しても、残っているスナップショットからディスクを復元する機能には影響しません。
例
ディスクに以下のデータブロックを持つ 3 つのスナップショットがあると仮定します。
スナップショット 1(完全):データブロック A および B を含む。
スナップショット 2(増分):ブロック B1 のみを含む。ブロック A はスナップショット 1 から参照される。
スナップショット 3(増分):ブロック C のみを含む。ブロック A はスナップショット 1 から、ブロック B1 はスナップショット 2 から参照される。
例 1:ディスクの完全スナップショットを削除する場合
完全スナップショット 1 を削除すると、スナップショット 2 が完全スナップショットに昇格します。スナップショット 2 がスナップショット 1 から参照していたブロック A は保持され、スナップショット 2 にマージされます。スナップショット 1 固有のブロック B は削除されます。スナップショット 3 のブロック A に対する参照先はスナップショット 2 に切り替わり、ブロック B1 に対する参照は変更されません。
例 2:ディスクの増分スナップショットを削除する場合
増分スナップショット 2 を削除すると、スナップショット 1 からのブロック A に対する参照が解除され、ブロック B1 がスナップショット 3 にマージされます。
スナップショットのサイズ計算方法
仕組み
ディスクのスナップショット合計サイズは、そのスナップショットチェーン内のすべてのデータブロックが占有するストレージ量の合計です。アーカイブ後、ディスクには標準およびアーカイブの 2 つのチェーンが存在し、それぞれ別々に課金されます。ディスクのスナップショットサイズの確認およびスナップショットの課金をご参照ください。
スナップショットサイズの計算には数分程度の遅延が生じる場合があります。実際の請求額については、請求書をご確認ください。
基本概念:
完全サイズ:単一スナップショットのすべてのデータブロックが占有するストレージ量。
増分サイズ:同一チェーン内で現在のスナップショットと直前のスナップショットとの間で異なるデータブロックが占有するストレージ量。
スナップショット合計サイズ:チェーン内の最初のスナップショットの完全サイズと、それ以降のすべてのスナップショットの増分サイズの合計。
スナップショットサイズ計算の例
ディスク容量が 100 GiB で、30 GiB のデータが書き込まれていると仮定します。データは 10:00 および 11:00 に変更されます。
標準スナップショット 1:9:00 時点で、ディスクには 30 GiB のデータが含まれています。スナップショット 1(完全)ではすべてのデータをバックアップします。完全サイズ:30 GiB。
標準スナップショット 2:10 GiB のデータが上書きされました。10:00 時点で、スナップショット 2(増分)では変更された 10 GiB のデータのみをバックアップします。残りの 20 GiB はスナップショット 1 から参照されます。
標準スナップショット 3:10 GiB の新規データが書き込まれ、ディスクのデータ総量は 40 GiB になります。11:00 時点で、スナップショット 3(増分)では変更された 10 GiB のデータのみをバックアップします。変更されていない 30 GiB のうち、20 GiB はスナップショット 1 から、10 GiB はスナップショット 2 から参照されます。
アーカイブ前の標準スナップショット合計サイズ = 30 + 10 + 10 = 50 GiB です。
スナップショット 2 およびスナップショット 3 をアーカイブして、アーカイブスナップショットチェーンを構成します。
アーカイブスナップショット 2(完全):すべてのデータをバックアップします。完全サイズ:30 GiB。
アーカイブスナップショット 3(増分):変更された 10 GiB のデータのみをバックアップします。変更されていない 30 GiB はアーカイブスナップショット 2 から参照されます。
アーカイブ後、ディスクには 2 つのスナップショットチェーンが存在します。
アーカイブスナップショット合計サイズ = アーカイブスナップショット 2 の完全サイズ + アーカイブスナップショット 3 の増分サイズ = 40 GiB
標準スナップショット合計サイズ = 標準スナップショット 1 の完全サイズ = 30 GiB
アーカイブ後のスナップショットの合計サイズは 20 GiB 増加します。一部のスナップショットのみをアーカイブしても、コストが削減されない可能性があります。コスト比較については、「スナップショットのコストを最適化する」をご参照ください。
スナップショットサイズとディスク容量の関係
単一のスナップショットはディスク容量を超えることはありませんが、スナップショットを追加するにつれて、すべてのスナップショットの合計サイズがディスク容量を超えることがあります。
たとえば、40 GiB のディスクを作成し、30 GiB のデータを書き込みます(スナップショット = 30 GiB)。その後、30 GiB を上書きして 2 番目のスナップショットを作成します。このときディスク容量は依然として 40 GiB ですが、スナップショット合計サイズは 60 GiB になります。
ディスク容量とスナップショットサイズを確認するには、ディスクのスナップショットサイズの確認をご参照ください。次の図において、① はディスク容量、② はスナップショット合計サイズを示しています。

スナップショットサイズとシステム容量の違い
スナップショットは、バックアップの最小単位として固定サイズのデータブロックを使用します。スナップショットサイズはこれらのブロックに基づいて計算されます。
ディスク上のファイルを削除すると、オペレーティングシステムが表示する利用可能容量は増加しますが、物理的にデータが消去されるわけではありません。ほとんどのファイルシステムでは、ファイルを削除したとマークするだけです。この時点で作成されたスナップショットには、削除されたファイルのデータブロックが依然として含まれています。データは、TRIM コマンドなどの使用によりファイルシステムが物理的にファイルを削除した場合にのみ削除されます。
システムディスクのスナップショットサイズは、アクティブな書き込みがなくても増加する場合があります。これは、オペレーティングシステムがランタイム中にシステムファイルを生成し、それがスナップショットにバックアップされるためです。
ファイルシステムのメタデータも含まれるため、スナップショットはディスクに書き込まれたデータよりもわずかに大きくなることがあります。たとえば、1 MB のテキストファイルはメタデータのため、スナップショット内では 1 MB をわずかに超える容量を占有します。