スナップショット対バックアップ 必要なデータ保護手段は?:バックアップ対その他【前編】
バックアップはデータを保護する唯一の方法ではない。スナップショットも有効な方法の一つだ。これはバックアップの代替となるのか。メリット/デメリットを検証する。
NASのデータを保護する方法はバックアップだけではない。スナップショットやレプリケーションなど、ストレージを中心とする方法もある。これらはいずれもバックアップよりも復旧が迅速になる。
本稿ではスナップショットがどの程度までバックアップの代替手段や補足手段になるかを考えてみる。レプリケーションについても少し触れ、スナップショットやバックアップとの相性について確認する。
関連記事
- クラウドバックアップの最適解はクラウド→クラウド
- Dockerのバックアップ戦略――Dockerの何を保護すべきか?
- クラウドストレージかテープかを決める境界線
- NAS感覚で使える“テープNAS”で大容量バックアップ問題を解決
- 仮想化時代のバックアップと災害復旧
- テープの無視できないメリットと残念なデメリット
スナップショットの基礎知識
基本的に、スナップショットはストレージユニット内のブロックやファイルの状態を示すメタデータで構成される記録だ。多くの場合、スナップショットはNASやSANストレージの機能として提供され、そのストレージに作成/保持される。
これを利用することで、ボリューム、ドライブ、ファイルシステム、データベースなどを過去の既存のバージョンにロールバックできる。スナップショットを作成した過去の任意の時点にストレージの状態を戻せるということだ。
スナップショットは、ある時点のブロックやファイルの存在場所を示す目次やコピーのようなものだ。ロールバックの際にブロックの削除や移動などを行うことでそのボリュームやストレージユニットを変更し、そのスナップショットが反映する状態に戻す。
ブロックが削除されても必要になる場合に備えてそのブロックを保持しなければならないため、削除済みブロックがスナップショットに追加される。従って、ロールバック後のバージョンには、過去のスナップショットのメタデータ、それらのスナップショットが保持するデータ、親コピー(スナップショット前のコピー)の全てが混在する可能性がある。
スナップショットはコピーではないので、つまりバックアップではない。スナップショットが大量の容量を消費することはない。だが多数のブロックやファイルが削除されると総容量が大きくなる恐れがある。そのため、サプライヤーは通常、保持可能なスナップショット数を制限している。
スナップショット:メリットとデメリット
スナップショットの主なメリットは、過去のある時点にバックアップよりも迅速にロールバックできる点だ。
バックアップよりもはるかに頻繁に保護できる点もメリットだ。1時間に1回スナップショットを取るように設定しても、システムにはそれほど影響しない。バックアップはリソースに影響するため、1日に1回、基本的には稼働時間外での実行になるだろう。
落とし穴もある。
落とし穴もある。スナップショットはそのストレージ、つまりローカルに保持される。従ってシステム全体に影響する障害には脆弱(ぜいじゃく)だ。ストレージ容量を消費する点はプライマリーストレージであっても変わらない。
そのため、スナップショットはバックアップと併用するのが最善だ。スナップショットは比較的高い頻度(分単位や時間単位)で保護するのに適している。
バックアップは1日1回の保護に使う。通常、この頻度をスナップショットの保持期間に反映する。48時間後にスナップショットを削除することにすれば、その期間内にバックアップを1回か2回実行できる。
スナップショットの種類
スナップショットのメカニズムの種類は2つある。コピーオンライト(Copy-on-Write)とリダイレクトオンライト(Redirect-on-Write)だ。
コピーオンライト
コピーオンライトは、ストレージブロックの変更が要求されると、そのブロックをコピーしてスナップショットに保持する。このようにしてそのスナップショットの全ての整合性を保つ。このスナップショットは、変更されていないブロックへのポインタとその後に変更されたブロックの変更前のコピーで構成される。
コピーオンライトのスナップショットは、変更されていないデータについてはオリジナルコピーを参照するため、全体の変更量がそれほど大きくならない限り空き容量が節約される。デメリットは、パフォーマンスに影響する恐れがある点だ。書き込み要求が発生するたびに、スナップショットに保持するブロックをコピーしなければならないためだ。
リダイレクトオンライト
リダイレクトオンライトは、新しいブロックの作成時に必要な書き込みを1回だけ実行し、その書き込み先がスナップショットになる。つまり、現在状態のデータを参照するとオリジナルとスナップショットが参照される。スナップショットを削除するときに差異を全て調整し、親データに反映する必要がある。
新しいデータはスナップショットにのみ存在する。こうしたスナップショットが複数に及ぶこともあり得る。そのため新しいデータへのアクセスが複雑になり、パフォーマンスが低下する恐れがある。ただし、必要なストレージ容量は少なくて済む。
スナップショットの種類は他にも幾つかある。
継続的データ保護
「継続的データ保護」(CDP:Continuous Data Protection)は、前述のようなスナップショットを作成することだ。ただし、そのストレージに変更が加えられるたびに作成する。変更とは、ファイルの作成、更新、削除など、少なくとも人間のユーザーが関係するレベルの変更を指す。つまりCDPによって任意の時点にロールバックできる。だがパフォーマンスに影響する時間が増えることも意味する。通常、スナップショットを実行するのは1時間に1回程度だろう。その程度の回数でもパフォーマンスのオーバーヘッドは幾分発生する。CDPでは何かが起きるたびに余分なI/Oが生じる。
ミラーリング、クローン、レプリケーション
スナップショットと関連があっても、メカニズムの点で全く異なるのが各種のクローンだ。最も単純なクローンは言葉通りの意味で、ストレージと同じコピーを作成する。これはオリジナルに更新部分のスナップショットを加えたものではなく、全体の複製になる。
クローンは、スナップショットユーティリティーを使ってドライブのクローンを1回だけ作成する形を取る場合もあれば、ボリュームやドライブなどのクローンを定期的に作成する場合もある。2つの物理的な場所に(ほぼ)同時にデータを書き込む同期ミラーリングや非同期ミラーリングの形式になる場合もある。他にレプリケーションがある。レプリケーションは技術とコストの点で最も高度な部類に入る。
レプリケーションは非常に効果が高いデータ保護方法だ。すぐに使えるフェイルオーバーコピーを用意できるため、トランザクションの扱いに注意を要するほとんどの業界で使われている。
ただし、レプリケーションはバックアップの代わりにはならない。レプリケーションとバックアップは連携させなければならない。レプリケーションではほぼリアルタイムのコピーが作成される。そのため破損したファイルやマルウェアに感染したファイルのレプリケーションが行われた場合、ロールバックするバージョンが必要になる。スナップショットをロールバックすることは可能だろう。だがスナップショットは有効期間が限られるため、基盤となるバックアップも必要になる。レプリケーションはコストが高くつくことがあるため、全データをバックアップしながら一部の特定のデータセットだけレプリケーションする方法もある。
後編(Computer Weekly日本語版 7月1日号掲載予定)では、レプリケーションとバックアップの違いや同期レプリケーションと非同期レプリケーションなどについて解説する。
Copyright © ITmedia, Inc. All Rights Reserved.