ページの先頭です
UKAIは以下の3つの目的を実現すべく設計されています。
仮想ディスクの実データは各データセンターに分散配置されるストレージノードに格納します。仮想マシンを作成するとき、その仮想マシンに割り当てる仮想ディスクの実データは可能な限り仮想マシンが動作する場所の近くに配置したいでしょう。各データセンターにストレージノードを配置し、運用的に仮想ディスクの実データ位置を指定することで、仮想マシン本体と仮想ディスクの実データ間の遅延を短縮し、分散環境での性能劣化を防ぐ必要があります。しかし、前節で述べたとおり、仮想マシンが永久に同じハイパーバイザーに配置されるとは限りません。仮想基盤には複数の利用者が乗り入れて共同利用しています。サービスの利用状況によっては、やむなく別のハイパーバイザー、場合によっては別のデータセンターのハイパーバイザーで起動しなければならない場合もでてくるでしょう。このような状況でも、透過的に仮想ディスクへのアクセスを提供できることが大前提です。しかし、別のデータセンターのストレージ資源にアクセスすることは仮想マシンの性能を大きく落とすことになります。UKAIでは、仮想ディスクの管理と実データの管理を分離し、仮想ディスクの情報を固定したまま、実データの移動を実現します。これにより、仮想マシンを稼働させたまま、仮想ディスクを構成する実データの位置を、運用上の判断に応じて自由に変更することができるようになります。
分散環境ではネットワーク遅延への対応も重要な課題です。特に、仮想データセンターのような広域に分散した拠点にまたがってサービスを提供する場合は遅延が与える影響を見積もる必要があります。広域運用では大きく二種類の遅延が考えられます。1つはデータセンター内の通信遅延です。ストレージノードが複数運用されている状況で、かつそれらのノードが同じデータセンターに配置されている場合に相当します。この場合、遅延は小さく(ほぼ1ms以内)、ある程度均一であると想定できます。もう1つはデータセンター間の通信遅延です。こちらはデータセンター同士の位置関係によって変化し、データセンター内と比べて遅延の揺らぎも大きくなると想定できます。UKAIでは、実データの配置場所の選択を管理者に任せ、発生する遅延を予測した運用を実施します。仮想マシンが遠隔で起動してしまった場合でも、その仮想ディスクの実データとの間の遅延が定量的に分かっていれば、性能劣化の度合いが予測できます。それに応じて実データの移動計画を検討することになります。
最後の目的である冗長性については言わずもがなでしょう。ストレージノードが分散運用されている状況で、どこかのノードの障害によってサービス全体を停止するわけにはいきません。ネットワーク障害によってストレージノードへのアクセスが失われる場合も同様です。もちろん、あらゆる障害すべてに対応することはできませんから、ある程度障害を想定して、それに対応できる冗長性を確保することになります。UKAIで想定する障害はストレージノードのディスク及びネットワークハードウェア故障です。データセンター内の機器障害(スイッチ障害など)については、別途データセンター側の機材で冗長化されていることが前提です。UKAIでは仮想ディスクと実データの管理を分離しているため、ある仮想ディスクに対して複数の実データのコピーを持たせることが可能になっています。同一データセンター内に複数のコピーを置けばネットワーク的なミラーディスクとして運用できます。またコピーを他の拠点に持つことで、ストレージのアクセス性能は低下しますがディザスタリカバリの手段として運用できます。
ページの終わりです