ストレージの機能

ストレージ装置に備わる機能について、前回はレプリケーションについて説明しました。今回はスナップショットについて説明します。

スナップショット

スナップショットが必要な理由

この連載の以前の回でテレビに接続された外付けストレージが壊れて録画データが消失したという話を掲載しました。この回では、RAIDという技術を使用して、ディスク装置で障害が発生しても、データの消失を抑止することができるという説明をしました。残念ながら、RAIDという技術を使用しても、データの消失を完全に防ぐことはできません。重要なデータの消失に備えるためには、やはり、バックアップを採取しておくことが大事です。

一般的にバックアップを採取するためには時間がかかります。バックアップ対象のデータ容量はそれほど大きくなくても、多くのファイルが存在する場合は、ファイルのオープン、データの読み取り、ファイルのクローズという処理をしなければならないからです。また、整合性のあるバックアップを採取するためには、バックアップ対象のファイルをだれも使用していないこと、というのが重要な要件になります。しかし、バックアップ対象のデータに誰もアクセスしていない状態を実現しようとするなら、バックアップを採取している間は業務を停止しなければならないということを意味します。現在のようにオンラインで買い物をしたりするのが一般的になってきた今日では、これは大きな問題です。何とかして、業務への影響を最小限としながら、整合性のあるバックアップを採取できないか。利用者の要望に応えるのがスナップショットという技術です。

スナップショットとは

写真は被写体のある一瞬を画像として固定するので、スナップ写真と呼ばれることもあります。スナップショットはこのスナップ写真を語源としており、対象となるデータに対し、ある時点(瞬間)のイメージを固定することを指します。

一般的にスナップショットは、アプリケーションなどによって書き換えられようとしているデータブロックのみを残しておき、書き換えられていないデータブロックと組み合わせることで、スナップショットが開始した時点のデータを保持することを目的としています。

つまり、スナップショット自体はデータを持っておらず、スナップショットには開始した時点のデータブロックを参照する情報が含まれます。このため、バックアップしておきたいデータ領域と同じサイズを用意する必要がないというメリットがあります。

スナップショットはバックアップの目的で使用されるため、対象となるデータ領域は書き込みが発生しない、いわゆる静止点を作る必要があります。しかし、スナップショットの開始にはごくわずかな時間しかかかりませんので、業務への影響をほとんど与えることなく、整合性のあるバックアップを取得することができるようになるのです。

業務への影響も少なく、バックアップ対象のデータ領域と同じ容量を準備する必要のないスナップショットですが、弱点もあります。スナップショット自体はデータを保有せず、データブロックへのポインタのみを保持するため、バックアップ対象のデータ領域がディスク障害などにより消失すると、スナップショットもなくなってしまうのです。つまり、スナップショットは恒久的なバックアップではなく、別のバックアップメディアへデータを退避させるための一時的なものと考える必要がありますね。

  • 図 1 :スナップショットイメージ

メリット
・スナップショットの生成にはほとんど時間がかからないため、静止点を作るために業務へ与える影響が極めて小さい
・バックアップ対象のデータ領域よりも少ない容量で運用できる

デメリット

・実データを保持しないため、バックアップ対象の領域が消失するとスナップショットも消失する

スナップショットはWindowsにおけるVolume Shadow Copy Service(VSS)やVMware ESXiの機能としても提供されますが、ここではストレージ装置によるスナップショットについて解説することにします。

業務への影響の違い

スナップショットを使用しない場合、バックアップ中のデータの整合性を確保するために、I/O停止などにより、業務が影響を受ける時間は長くなります。これに対してスナップショットを併用する場合、静止点確保のためのI/O停止はスナップショットが生成されるまでの極めて短い時間で済みます。

また、スナップショットを併用する場合は、外部メディアなどへのデータ退避はスナップショットが生成された後であれば、いつでも実行できるというメリットがあります。

  • 図 2 :業務への影響の違い

スナップショットの違い

コピー・オン・ライト(Copy on Write)

                                                                            コピー・オン・ライト方式では、スナップショットのための専用領域を用意し、書き込みのあったデータブロックのみをこの領域に移動させることにより、スナップショットが開始された時点のデータのイメージを保持する方法です。
  • 図 3 :コピー・オン・ライト(Copy on Write)

上の図の例では、バックアップ対象領域上のデータブロックD1がD2に書き換えられようとしています。このとき、元のデータブロックD1はスナップショットのための退避領域にコピーされた後(①)、D2に書き換えられます。(②)スナップショットは書き換えられていないデータブロック(A1、B1、C1)と退避領域にコピーされたデータブロック(D1)を組み合わせることで、スナップショット開始時点のバックアップ対象の状態を維持します。

リダイレクト・オン・ライト(Redirect on Write)

                                                                            リダイレクト・オン・ライト方式では、スナップショットのための専用領域は不要で、書き込みのあったデータブロックのみを、バックアップ対象内のデータブロックを上書きせずに追加する方式です。データブロックの移動がないため、コピー・オン・ライト方式よりもスナップショットのためのストレージ装置への負荷は低くなりますが、バックアップ対象領域内に変更前のデータブロックを残すため、書き換えによる差分を見越してLUNやファイルシステムをサイジングする必要があります。
  • 図 4 :リダイレクト・オン・ライト(Redirect on Write)

上の図の例では、バックアップ対象領域上のデータブロックD1がD2に書き換えられようとしています。このとき、元のデータブロックD1は残して、新たにD2というデータブロックを追加します。スナップショットは書き換えられていないデータブロックと変更前のデータブロックを組み合わせることで、スナップショット開始時点のバックアップ対象の状態を維持します。

まとめ

今回取り扱った内容は以下の通りです。

・スナップショットはある一時点のデータをブロック単位でイメージを固定し参照先ブロック情報を保持するため、少ない容量でバックアップすることが可能。
→バックアップデータのある時点のイメージを取得するため、バックアップ時間も早い。
・スナップショットには、書込みがあったブロックを専用領域にイメージを保持する”コピー・オン・ライト方式”と、書込みがあったブロックを保持する専用領域が不要な”リダイレクト・オン・ライト方式”がある。

次回予告

次回は重複除外・圧縮について説明します。

それではまた次回、地味でディープなストレージの世界でお目にかかりましょう。

[ 著者紹介 ]
矢澤 会璃子
デル・テクノロジーズ株式会社 プロフェッショナル・サービス事業本部 ソリューションズアーキテクト

OSやエンタープライズシステムに関連するソフトウェアのサポート経験後、EMCジャパン(現デル・テクノロジーズ)でストレージやDRソリューションの設計、構築を担当