SVMとは(1) ~連載第7回~
連載目次へ
SVMの機能紹介
前回はSVMの特徴であるマルチベンダ対応についてご紹介しましたが、今回はいよいよ機能詳細をご紹介します。
SVMのコンポーネントは、以下の6つからなります。
- SVM & Volume Manager
SVMの基本機能。
ストレージプール(仮想化したストレージの集合)から仮想ボリュームを作成したり、もう使用しない仮想ボリュームを解放して仮想プールに戻したりといったストレージ管理の基本操作を行う。 - multiView
仮想ボリュームのスナップショットを取得する機能。 - multiMigrate
ストレージのリプレースをシステム無停止で行う機能。 - multiCopy
仮想ボリュームの複製を作成する機能。 - multiMirror
仮想ボリュームのバックアップを取得する機能。
完全同期バックアップと非同期バックアップの2種類のバックアップ取得方法がある。 - Dynamic Thin Provisioning
サーバに見せる容量と、実際に使用する容量を別々に管理し、実使用容量分のみストレージから容量を割り当てる機能。
SVMはどういった概念で動いているの?
SVMの基本的な機能で、PiT(Point in Time)という概念があります。

SVM
PiTとは、簡単にいえば「更新差分情報を保持する領域」です。
まず、仮想ボリュームをソースボリュームとしてサーバにマウントします。
この時点では、通常のストレージと何ら変わりはありません。
書き込みも読み込みもソースボリュームに行います。
次に、ある時点でスナップショットを取得した場合を考えます。
スナップショットを取得すると、ソースボリュームを上書き禁止にしてしまい、更新があればPiTと呼ばれる更新領域に保存します。
このとき、読み込みはソースボリュームから、書き込みは1stPiTへ行います。
上図は、この状態のときのものです。
次に、もう一度スナップショットを取得するとどうなるでしょうか。

上図のように、1st PiT が上書き禁止になり、新たに 2nd PiT が作成されます。
このとき、読み込みはソースボリュームと 1st PiT から、書き込みは 2nd PiT へ行います。
さて、この状態で、運用を継続しつつ 1st PiT の状態を復元したい(例えば、削除したファイルを復元したい等)場合、どうすればいいでしょうか?
上図のように、VIEWという機能を使って、1st PiT に対して、2nd PiT とは別のPiTを作成するのです。
仮にこれを「2nd PiT ②」と名付けます。
2nd PiT ② の中には、1st PiT へのポインタと、2nd PiT ② の更新情報を保存する領域があります。
このPiTをVIEW機能を通してサーバBにマウントすることが可能です。
サーバBにマウントされたボリュームに対してはもちろん更新も可能で、その更新情報は 2nd PiT ② の更新領域に保存されます。
サーバA側の 2nd PiT とは全く別のものとして扱われることになります。
このように、PiTを増やしていくことで世代管理を行うことができます。
バックアップを遠隔地や別のストレージに複製する場合、上書き禁止にされている部分を遠隔地や別のストレージに複製します。
(バックアップを取得する場合は、それまでactiveだったPiTを必ず上書き禁止にしなければなりません)
そのため、バックアップ取得において、現在更新されている領域(上図では2ndPiT)は関係なく、システム停止の必要がありません。
以上が、SVMにおけるストレージ仮想化技術の中でコアとなるPiTの考え方です。
コンポーネントで示された各種機能はこれを応用することで実現しています。
次回は、各種コンポーネントの技術紹介を行いたいと思います。
(つづく)