VM単位でリソースを自動的に割り当て、仮想化環境におけるパフォーマンスを担保
Tintri OSではQoSのための仕組みとして、VMごとのワークロードに合わせて自動的にストレージのリソースを割り当てる「QoSの自動化」機能を提供している。
具体的には、すべてのVMについて、IOPS(*4)やレイテンシー(*5)といったパフォーマンス値、およびコントローラCPUやメモリ、ネットワーク帯域といった仮想化ストレージの各種リソースの消費状況をモニターし、それに基づいて定期的にリソースの割り当て直しを行っている。突発的にリソースを必要とするVMは、別途リザーブされているリソースが割り当てられるようになっている。
こうしたVM単位でリソースを自動的に割り当てる仕組みによって、仮想化環境においてパフォーマンスを担保するとともに、オーバープロビジョニングを回避して多数のVMを集約できることから管理の効率性を向上させている。
個別のIOPSに下限と上限のしきい値を設定し遅延を減らす
このように、VMごとのワークロードに合わせて自動的にストレージのリソースを割り当てるQoSの自動化機能を提供しているTintri OS 3.2においてQoS機能のVMパフォーマンス保証として、新たにユーザー自身で利用できるストレージリソース(IOPS性能)の下限値(MIN)と上限値(MAX)を個別に設定することができるようになった。
上限値が設定されたVMでは、IOPSが上限値を超えないように、該当するVMのパフォーマンスが制限され、一方で下限値が設定されたVMでは、他のVMのパフォーマンスを制限することで、設定されたIOPSの値が必ず確保されるようになる。
QoSによるディスク性能における下限および上限のしきい値の設定については、他のストレージでも可能だとしている製品があるが、それらはLUNを単位としたものだ。したがって、LUN内にある複数のVMに異なるレベルのパフォーマンス管理が必要な場合には、オーバープロビジョニングを行うことでパフォーマンスにある程度余裕を持たせるか、あるいはLUNをVMごとに細かく再構成しなければならない。
従来のストレージでは、LUNやボリュームに仮想マシンを配置し、仮想環境に対してストレージ領域を提供していた。しかし、LUNやボリュームは仮想環境のパフォーマンスを管理する単位としては適切ではない。それに対しTintriOSでは、VM単位の見える化によって、個別のVMに対して上限および下限のIOPS値を設定することができるところが、他の製品と大きく異なっている。
また、QoSによるしきい値の設定を行う際には、他の製品では数値の入力が必要となるが、Tintri OSでは管理GUI上で稼働状況を確認しながら、適したしきい値をマウスでドラッグすることによって簡単に設定を行うことができる。
Tintri OSはこれまでもVMごとのワークロードに合わせて自動的にストレージのリソースを割り当てることができたが、バージョン3.2ではさらに個別のIOPSに下限値と上限値を設定できるようにしたことにより、優先させるべきVMの遅延を減らし、パフォーマンス保証を実現している。この点が、TintriOS 3.2の大きな特長となっている。
では、その特長について実際の管理GUI上の表示はどのようなものになっているのだろうか。
【図2-2】は、想定以上の高い負荷が発生したVMに対してIOPSの上限値を設定した場合を表している。上限値を許容できるレベルまでに引き下げるにはマウスでドラッグするだけでよい。もちろん、すぐにスロットル(過負荷制御)による遅延が発生するが、他のVMは過負荷から保護され、安定稼働を続けることができる。
高いパフォーマンスを求められ、遅延することが許されないミッションクリティカルなVMに対してIOPS性能を常に保証する場合は【図2-3】のように操作する。下限値をドラッグして引き上げることで、VMには常に要求に見合うIOPS性能を、いつでもすぐに利用できるストレージリソースとして確保できる。IOPS性能が保証されたVMは、コンテンション(リソース競合)による遅延が発生しなくなり、安定したパフォーマンスが約束される。
【図2-4】は、サービスレベルを分けて運用する場合の画面表示だ。クラウドにおいてサービスレベルのガイドラインを定義するような場合、ストレージインフラとしてティントリを利用すれば、サービスレベルをマウス操作だけで階層化し、それに応じたチャージバックを設定することができる。
ただ、こうした個別のIOPSに下限と上限のしきい値を設定することについては、これが必要な場合に限られ、基本的には、これまでのVMごとのワークロードに合わせてストレージのリソースを自動的に割り当てる「QoSの自動化」で十分だといえるだろう。
Tintri OS 3.2で搭載したしきい値の設定機能は、例えば、あくまで上限値の処理能力を超えた場合にどのVMを優先させるのかという指定であり、現実的にはそうした能力を超える処理のリクエストがあるケースは少なく、限界に達していないのであれば、上限値を設定してあえて制限を加えるべきではないからだ。
その意味では、必要に応じて使用する機能ではあるが、逆に言えば、ここまできめ細かくQoSとしてのVMパフォーマンス保証を実現しているのは、ティントリだけだといえるだろう。
注釈〉
(*1)LUN(Logical Unit Number):複数のドライブを持つ装置に個別にアクセスできるようにするための論理的な識別番号。
(*2)ボリューム:ストレージ記憶領域ひとかたまりの単位。
(*3)QoS (Quality of Service):アプリケーションの要求するパフォーマンスを、いかに満足できるように提供(サービス)できるかの尺度、およびそれを実現する技術・機能。
(*4)IOPS(Input Output Per Second):記憶装置の性能指標の一つで、1秒間に読み込み・書き込みできる回数のこと。
(*5)レイテンシー:データを要求してから、そのデータが返ってくるまでにかかる遅延時間のこと。
[PR]提供:Tintri