仮想化によって明らかになった、3つのストレージの問題点とは?
仮想化によって様々なアプリケーションを単一のシステムに統合していくためにはバックアップや高可用性のための構成など、アプリケーションごとに異なる様々なストレージやデータの要件を、単一のストレージシステムだけでクリアしていく必要があります。
さらに、システムには日々変更が加わっていきます。社内の仮想化プロジェクトが次のフェーズを迎え、これまで仮想化されずに残されてきたアプリケーションが仮想化され、新たに仮想化システムの管理対象となることもあります。
また、すでに仮想化済みのアプリケーションであってもOSやバックエンドのデータベースのヴァージョンのアップグレードが必要となり、その結果システム上のリソースが増加したりと、システムは日々拡張されていきます。
コンピューティングレイヤ(CPUやメモリ)は仮想化ソフトウェアの恩恵を受けることができるため、物理サーバを追加もしくは拡張することで容易にこの変更に追従することができますが、ストレージシステムは以下に述べる様々な要因から、単純に拡張することが難しくなっているのです。
1. I/Oの多重化(IOブレンダー)
仮想化環境では、様々なアプリケーション(仮想マシン)からストレージに対し並行して同時にアクセスがかかります。これはランダムアクセスと呼ばれます。
従来型のディスク装置をベースとしたストレージは、回転するディスクにデータを記録しているため、連続した領域へのアクセス(シーケンシャルアクセス)については高いパフォーマンスを提供することができますが、ランダムアクセスを苦手としています。
仮想環境では、このランダムアクセスが仮想マシンが増えるごとに級数的に増大するため、ストレージシステムを頻繁にアップグレードしなくてはならなくなっているのです。この現象はIOブレンダーと呼ばれています。
2. SANネットワークの飽和
仮想環境ではシステムの高可用性を実現するため、データは共有ストレージに配置されています。ホストダウン時に別のホストからシステムを自動起動し、障害から復旧するためにこの構成は必須といえます。
しかし、ホストとストレージをつなぐネットワーク(SAN)ネットワークのスループットは有限です。このネットワークは8Gbpsや10Gbpsの帯域のものに徐々に置き換わりつつあり、20Gbps、40Gpbs、最新では100Gbpsのものも登場し始めていますが、システムを拡張し、ネットワークが飽和したタイミングで安易にネットワーク全体を置き換えられるというものでもありません。
3. ストレージコントローラーの性能の制限
また、もう一つ忘れてはいけないことはストレージシステムも1つのコンピューターであるということです。
ストレージシステムにはコントローラーと呼ばれるCPUを搭載したユニットが複数搭載されており、ストレージでのデータの格納以外にも、データロスを防ぐためのデータのコピー、ストレージ内のキャッシュシステムの管理やデータの階層管理、重複排除、圧縮、暗号化、バックアップのためのレプリケーションなど、様々なサービス(データサービス)に利用されています。
当然このコントローラーのCPUが限界を迎えてしまうと、それ以上のアクセスをさばくことができず、アクセスの順番待ちが発生した結果、アプリケーションの応答に遅延が生じることになります。
この問題はコントローラーを追加したとしても、問題の発生を先送りするだけですし、何よりストレージシステムの構成上コントローラーの数に上限が決まっていることも多いため、非常に解決が難しい問題として残されています。