スナップショットは、バックアップに用いられる便利な機能です。短時間でシステムの状態を記録できることから、近年では多くのシステムに使われるようになりました。しかし、スナップショットの仕組みや具体的な使い方などについては、よくわからないという人も多いのではないでしょうか。

本記事では、スナップショットの仕組みや使い方、利用時の注意点をお伝えします。

スナップショットとは

スナップショットとは、ある一時点のデータ状態を抜き出したもののことです。データの状態を写真撮影したような状態で保存できるため、スナップショットという名前が付けられています。

多くのシステムでは、万が一のデータ破損や機器故障などに備えてバックアップを取得しますが、バックアップの取得中にデータが更新されてしまうと、データの不整合が発生してしまいます。

スナップショットは、主にこのデータ不整合を防ぐために採取されるのです。

仮想化システムでは、クラウドサーバの仮想ディスクをスナップショットでそのまま保存してテンプレート化し、簡単に複製できます。またスナップショットを採取した時点に簡単に切り戻せるため、非常に便利です。

スナップショットとバックアップの違い

スナップショットは一見バックアップと似たような動作のように見えますが、実は大きく異なります。

スナップショットは、あくまで一時点のデータの状態を抜き出したものです。例えばディスク故障で元データが消失した場合は、以前の状態に切り戻せなくなります。一方バックアップは、元データを別の場所に複製する処理です。元データが破損しても以前の状態に切り戻すことが可能です。

バックアップの場合、元データをコピーするために一定の時間がかかります。また、バックアップしたデータを格納できるストレージを用意する必要があります。

一方のスナップショットは、状態を保存するだけなので保存領域は少なくすみ、採取時間も数秒です。

スナップショットの仕組み

あるファイルのスナップショットを採取すると、スナップショットと一緒にスナップショットキャッシュ(スナップショットの管理領域)が生成されます。スナップショットはファイルへの参照情報のみを保持し、スナップショットキャッシュにはファイルの更新分が記録されます。

スナップショットの採取時点に切り戻す際には、スナップショットとスナップショットキャッシュの情報を用いて処理が実施されます。

スナップショットの使い方

ここからは、スナップショットの具体的な使い方を見ていきましょう。

整合性を損なわないオンラインバックアップ

バックアップ作業にスナップショットを併用して、整合性を損なわないバックアップを実現します。一般的にバックアップはシステムを停止したうえで実施しますが、スナップショットを併用することで、システムがオンラインのままでもバックアップが採取できるようになります。

仮想サーバを手軽にコピー

仮想環境では、仮想サーバの仮想ディスクをファイルとして管理できます。オンラインのままでもスナップショットを取得できるため、仮想サーバを手軽にコピーできます。

個人のデータ誤消去のリカバリ

OSがWindowsのパソコンでは、万が一データを誤消去してしまった場合のリカバリ対策としてスナップショットを利用します。ファイルやフォルダのプロパティを開いて「以前のバージョン」タブをクリックすると、スナップショット取得時点の情報が出てくるため、「復元」をクリックすれば元に戻せます。

OSがMacのパソコンでは「Time Machine」と呼ばれる機能を利用することで、同様の処理を実現できます。

セキュリティパッチ適用後の不具合発生時に素早い切り戻し

セキュリティパッチ適用前にスナップショットを取得しておき、セキュリティパッチ適用後に不具合が発生した場合のリカバリに備えます。設定変更やアプリリリースなどの際にも同様の動きが可能です。

ただしスナップショットは、元データが破壊されてしまった場合は元に戻せないため注意が必要です。

スナップショットでバックアップ時間を短縮

スナップショットは、見かけ上は論理ボリュームと同じように取り扱えます。そのため、バックアップサーバにスナップショットをマウント(認識させること)すれば、稼働中のシステムへの影響をほぼゼロに抑え、バックアップサーバ上だけでバックアップができるのです。

データを復旧する際には、複製されたデータ領域をマウントし直すだけでよいため、従来のバックアップデータからのリストアよりも簡単に復旧できます。

災害対策を意識するなら、バックアップサーバで採取したバックアップデータを遠隔地にネットワーク経由で複製する「リモートレプリケーション」を実施しましょう。

レプリケーションについて詳しくは「レプリケーションとは? メリットやバックアップとの違いを解説」の記事をご覧ください。

スナップショット利用時の注意点

スナップショットには利用上の注意点もあります。ひとつずつ見ていきましょう。

スナップショット取得前には可能であればシステムを停止する

スナップショットはメモリ領域ごとに採取されるため、システムがオンラインのままスナップショットを取得してしまうと、タイミングによってはファイルシステムに不整合が発生し、破損する可能性があります。

特にDBサーバのように書き込みが頻繁に発生するサーバは、システムを停止してからスナップショットを取得しましょう。

スナップショットは不要になったら削除する

スナップショット取得中は、スナップショットキャッシュへの書き込みが発生するため、キャッシュ領域が大きくなるとシステムのパフォーマンスが落ちていきます。不要になったスナップショットは削除しましょう。

Carbonite® Availabilityで高可用性を実現

ウェブルートの「Carbonite® Availability」なら、予期せぬトラブルが発生しても、最短数分で復旧が可能です。運用中のサーバのOS、アプリケーション、データのすべてを24時間リアルタイムに待機サーバへレプリケーションし、障害発生時には直前まで複製したデータをもとに即座に業務を再開できます。

Carbonite® Migrateで柔軟なサーバ移行を実現

Carbonite® Migrate」を利用すれば、プラットフォームやクラウドに依存しないAny to Anyの効率的かつ柔軟なサーバ移行が可能です。データ移行をもれなく短い時間で完了します。

スナップショットの特性を生かしたシステム運用を

スナップショットはデータの実体をバックアップするのではなく、データの状態を保存する機能です。

素早くデータの状態を保存できるため、レプリケーションと組み合わせれば、本番環境の影響を最小限に抑えて素早くバックアップを実施できます。

スナップショットの特性を生かしたシステム運用をしていきましょう。