未解決
この投稿は5年以上前のものです
Community Manager
•
3.1K メッセージ
0
2215
スナップショットって一体何をしているの?【Ranboシリーズ】
かなり乱暴に言うと。。。
Snapshot=小さな物置を駆使する(悪徳)仲介業者
LUN(ファイルシステム)が持っている情報をある特定の時間のままに保存しておくのがSnapshotなのですが、その動きは(悪徳)仲介業者のようです。
登場コンポーネントを以下のように定義すると、
①倉庫=Snapshot取得対象のデータ(LUN)
②物置=Snapshot取得後に変更されたデータを保存しておくスペース(Reserved LUN Pool[RLP]、SavVol等)
③台帳=必要なデータが倉庫か物置のどちらにあるのかが記録されている資料(Bitmap)
④偽りの倉庫=実は存在していないが仲介業者(Snapshot)により存在しているように見せている倉庫(LUN)
Snapshotは③台帳(Bitmap)を元に①倉庫(LUN)と②物置(RLP、SavVol等)の情報を駆使して④偽りの倉庫(LUN)をユーザーに見せています。
【具体例】
①倉庫(LUN)に「りんご」と「みかん」と「ぶどう」が入っているとします。そこにユーザーから「スナップショットを取ってくれ」と依頼がかかりました。
仲介業者(Snapshot)は②物置と③台帳だけ自分で準備します。仲介業者はユーザーから「スナップショットを取ってくれ」と言われた時の状態、「りんご」、「みかん」、「ぶどう」さえ常にユーザーに渡せるようになっていればOKと考えます。
誰かが①倉庫(LUN)に書き込みを行い倉庫の「ぶどう」が「マスカット」に変わりました。仲介業者はこのままでは「ぶどう」の情報がなくなってしまうので、「ぶどう」だけを準備していた②物置に避難させ、「ぶどう」は(倉庫ではなく)物置にあることを③台帳に記録します。
ユーザーから「スナップショットを取った時点のデータをくれ」と言われると、仲介業者は④偽りのLUNを作成しユーザーに提供します。
実際にはユーザーからのデータ要望が来るたびに、Snapshotは③台帳を確認して「リンゴは倉庫から、ぶどうは物置から。。」というようにデータを持ってきてはユーザーに提供しています。
※このような動作を行っているために、Snapshotには以下のようなメリットとデメリットがあります
- メリット
倉庫(LUN)ほどの大きさを持たない物置(RLP、SavVol等)のスペース準備のみで過去のあるタイミングのデータを全て保存することが出来る
- デメリット
データアクセス時には毎回台帳(Bitmap)確認を行うので、倉庫(LUN)へのアクセスに比べてパフォーマンスが悪い
倉庫(LUN)が壊れてしまうと、Snapshotも使えなくなってしまう(台帳に「倉庫にデータがある」と書かれていても肝心のデータを倉庫から持ってくることが出来なくなるため)
(おまけ)
誰かが倉庫(LUN)に再度書き込みを行い倉庫の「マスカット」が「キットカット」に変わったとします。しかし(怠惰な悪徳)仲介業者はそのまま別に何もしなくとも、スナップショットが取得された時点の「りんご」「みかん」「ぶどう」の情報をキープできているので何もしません。これが有名な(?)Copy On First Modifyで、スナップショットを取得した後の「最初の変更時にのみコピーを取っておく」という動作です。今回の例でいうと、「ぶどう」から「マスカット」に最初の変更(First Modify)があった時のみ「ブドウ」を物置にコピーし、「マスカット」が「キットカット」に変わった時には2度目の変更なので、何もしないということです。