ハイエンドHCIのアーキテクチャーとは?
ハイパーコンバージドインフラ(HCI)は将来のデータセンターのスタンダードアーキテクチャーとして徐々に浸透し始めています。サーバー、ネットワーク、ストレージの3層アーキテクチャーを垂直統合して管理ポイントを減らし、簡単に拡張できるクラウドライクな皇族を持ったHCIは、企業のハイブリッドクラウド化を促進するための良い手段だと考えられます。手始めとしては小規模で導入して、将来的には大規模に展開することを考えている方も多いようですが、ここで気にしなければならないことは、どこまで大規模に拡張できるかです。
今現在導入されているHCIはほとんど10ノード以下の構成であり、この環境であれば想定したパフォーマンスを得ることができますが、この先の拡張は慎重に検討が必要になります。
考慮事項としては、大きく4つあります。
1)システムの可用性がどれだけあるか:一般的なHCIは、複数のノードにデータを分散して、データの可用性を保証します。ただ、このアーキテクチャーの場合、お互いのノードにデータを持ち合うことになり、万が一ノードに障害が発生するとシステム全体が不安定になったり、復旧の際にダウンタイムの恐れがあります。これにより、計算ノードが利用できなくなった場合でも、そのノード上の任意のVMに関連付けられたデータが利用可能な状態になります。更にHCIの規模を拡張してノード数が数百を超えるような場合、障害ポイントも増えてきますので注意が必要です。
2)性能の向上がどこまでできるのか:一般的なHCIのアーキテクチャーは、各VMのデータを実行されている同じノードに搭載したSSDなどのフラッシュデバイスに保管することによって、VMにローカルなデータを保持して高速性を実現します。しかしながら、フラッシュデバイスのコストが安くなってきたとはいえ、VMのすべてのデータを保管するにはコスト高になってしまいますので、フラッシュはキャッシュとして利用することになります。その場合、キャッシュがヒットしている場合には高速ですが、キャッシュミスの際にはハードディスクにアクセスを行うため、パフォーマンスが安定しなくなる恐れがあります。また、ノード数が増えてくるにつれ、データ通信のトラフィックが増え、台数を増やしても性能が比例しないことが想定されます。
3)拡張性に柔軟性があるか:一般的なHCIアーキテクチャは、スモールスタートして簡単に拡張できます。要するに、パフォーマンスや容量がさらに必要な場合はノードを追加するだけです。ただ、HCIはCPUパワーとデータ容量を1つのノードに集約しているため、それぞれ個別に拡張することができません。容量は足りていて性能だけ拡張しようとしても必要のないSSDやハードディスクも追加しなければなりません。数百または数千のVMをサポートする際に細かいサイジングをしようとしても余計なインフラコストを支出することになります。
4)VMの隔離とQoSができているか:仮想環境ではしばしば懸念となるノイジーネイバー(うるさい隣人)問題を如何に起こさないようにするかを考えなければなりません。一般的なHCIはノード間でデータをやり取りするがために、モンスターVMが発生すると他のノードにて稼働するVMにも影響を及ぼす恐れがあるのです。HCIのリソース上にどのVMを配置するかをきちんと考えることが必要です。また、問題がが発生した場合に、どのVMが原因になっているかを短時間で把握できる管理インターフェースも必要となります。
これらの考慮事項があるため、大規模に拡張することが難しいのもHCIの現状です。HCIがミッションクリティカルな分野に踏み込めていないのも、上記の理由があるからです。将来的に大規模なシステムを想定している場合や、企業内のシステムをHCIにすべて統合しようと考えている場合は、一般的なHCIのアーキテクチャーで耐えうるかを吟味しましょう。そして、最近ではハイエンドなアーキテクチャーを持ったHCIも登場してきており、これらの課題を解決した製品も選べるようになってきました。拡張性に柔軟性があり大規模でも期待した性能が出せるようになってきています。詳しくはベンダーや販売代理店に相談してみてください。