仮想化=あとからどうにでもできるように。

VMwareによって仮想化がかなり一般化しましたが、IAサーバの仮想化であったからこそインパクトがあっただけで、それ以外のシステム機器でも一種の仮想化機能は次々に取り入れられています。(このフレーズを使うとメディアが注目してくれるので)昨今はなんでもかんでもそうした機能を仮想化なんちゃら、と言い出すようになりましたが…。
このエントリーではストレージの仮想化についてちょこっと。SANによって複数サーバで共有して使用するストレージ形式が一般化しましたが、データの配置される「場所」やデータが配置される「領域」などについて仮想化される機能が搭載されるようになってきています。
1つめの「場所」は実データの配置されるパス。最初RAID5で構成されていたSATAディスク(7200rpm)によって構成されていたLUNのパフォーマンスに問題があるような場合、サーバからは透過的にオンライン状態のままでデータの配置をRAID10のSASディスク(15000rpm)に移動させるような機能を持ったストレージもあります。EqualLogicなど、ストレージの拡張筐体をコントローラノードの下にぶら下げるタイプではなくすべての筐体がコントローラノードを搭載するようなタイプのストレージでは、筐体数を増やせば増やすほどコントローラにかかる負荷を減らすことができるため、データの再配置機能と合わせるとスモールスタートからシステムの大幅な拡張まで、シームレスかつオンラインでの拡張が可能となります。いくら厳密にサイジング設計を行ったとしても、どうせそのデータは現状のステータスでしかなく、将来についてはおおよその見込みを予測するしかないわけです。だったら、必要になったときに必要な性能を持ったストレージを導入していくことができるこうした仕組みはユーザにとってもメリットがあります。
2つめの「領域」はサーバから認識されるストレージ領域。要はサーバに対して仮想的な領域を見せることによって、実データの増加に合わせて実領域の割り当てを行っていくことができる仕組みです。この機能はシンプロビジョニングという名称で最近次第によく知られるものになってきています。データサイズが将来、どれだけ伸びていく(増えていく)かという設計はなかなか予定どおりに行くことはありません。であれば、サーバにはかなりの余裕を持ったサイズを認識させておき(当然、データの伸張を押させるためにクォータ制限などは必要ですが)、将来どれだけデータサイズが大きくなっても対応できる柔軟性を持たせようという発想です。この機能はそうした運用上のメリットだけでなく、最初から構成するストレージの実容量も抑えることができるため、初期投資を抑えることができるというメリットもあります。データの伸張に合わせてディスク領域を割り当てていくため、データの伸張には対応できても縮小できない場合が多いのですが、次第にそうした制約も解決されていくでしょう(NetAppなど、縮小に対応しているストレージもすでにあります)。
…ということで、こうした視点で見ると、仮想化とはシステムがどうなっても対応できる柔軟性を確保すること、といえるかもしれません。