新しい会話を開始

未解決

この投稿は5年以上前のものです

Community Manager

 • 

3.1K メッセージ

2215

2013年12月10日 19:00

スナップショットって一体何をしているの?【Ranboシリーズ】

かなり乱暴に言うと。。。

Snapshot=小さな物置を駆使する(悪徳)仲介業者


LUN(ファイルシステム)が持っている情報をある特定の時間のままに保存しておくのがSnapshotなのですが、その動きは(悪徳)仲介業者のようです。

登場コンポーネントを以下のように定義すると、

①倉庫=Snapshot取得対象のデータ(LUN)

②物置=Snapshot取得後に変更されたデータを保存しておくスペース(Reserved LUN Pool[RLP]、SavVol等)

③台帳=必要なデータが倉庫か物置のどちらにあるのかが記録されている資料(Bitmap)

④偽りの倉庫=実は存在していないが仲介業者(Snapshot)により存在しているように見せている倉庫(LUN)

Snapshotは③台帳(Bitmap)を元に①倉庫(LUN)と②物置(RLP、SavVol等)の情報を駆使して④偽りの倉庫(LUN)をユーザーに見せています。

【具体例】

①倉庫(LUN)に「りんご」と「みかん」と「ぶどう」が入っているとします。そこにユーザーから「スナップショットを取ってくれ」と依頼がかかりました。

snap1.png

仲介業者(Snapshot)は②物置と③台帳だけ自分で準備します。仲介業者はユーザーから「スナップショットを取ってくれ」と言われた時の状態、「りんご」、「みかん」、「ぶどう」さえ常にユーザーに渡せるようになっていればOKと考えます。

snap2.png

誰かが①倉庫(LUN)に書き込みを行い倉庫の「ぶどう」が「マスカット」に変わりました。仲介業者はこのままでは「ぶどう」の情報がなくなってしまうので、「ぶどう」だけを準備していた②物置に避難させ、「ぶどう」は(倉庫ではなく)物置にあることを③台帳に記録します。

snap3.png

ユーザーから「スナップショットを取った時点のデータをくれ」と言われると、仲介業者は④偽りのLUNを作成しユーザーに提供します。

snap4.png

実際にはユーザーからのデータ要望が来るたびに、Snapshotは③台帳を確認して「リンゴは倉庫から、ぶどうは物置から。。」というようにデータを持ってきてはユーザーに提供しています。

snap5.png

※このような動作を行っているために、Snapshotには以下のようなメリットとデメリットがあります

  • メリット

倉庫(LUN)ほどの大きさを持たない物置(RLP、SavVol等)のスペース準備のみで過去のあるタイミングのデータを全て保存することが出来る

  • デメリット

データアクセス時には毎回台帳(Bitmap)確認を行うので、倉庫(LUN)へのアクセスに比べてパフォーマンスが悪い

倉庫(LUN)が壊れてしまうと、Snapshotも使えなくなってしまう(台帳に「倉庫にデータがある」と書かれていても肝心のデータを倉庫から持ってくることが出来なくなるため)

(おまけ)

誰かが倉庫(LUN)に再度書き込みを行い倉庫の「マスカット」が「キットカット」に変わったとします。しかし(怠惰な悪徳)仲介業者はそのまま別に何もしなくとも、スナップショットが取得された時点の「りんご」「みかん」「ぶどう」の情報をキープできているので何もしません。これが有名な(?)Copy On First Modifyで、スナップショットを取得した後の「最初の変更時にのみコピーを取っておく」という動作です。今回の例でいうと、「ぶどう」から「マスカット」に最初の変更(First Modify)があった時のみ「ブドウ」を物置にコピーし、「マスカット」が「キットカット」に変わった時には2度目の変更なので、何もしないということです。

レスポンスがありません。
イベントは見つかりませんでした!

Top