Nutanixのメリット その 1: 動的に分散されたストレージ

  • 5 December 2022
  • 0 replies
  • 563 views

Userlevel 3

本記事はNutanixのSenior Technical Marketing EngineerのBhavik Desaiが2022年8月3日に投稿した記事の翻訳版です。

原文はこちら

 

 

我々はNutanix Cloud Platform(NCP)がAOS 6.5 LTSにて、ビジネスクリティカルアプリケーションとデータベースの要件を満たせるようになっているということを示すインフォクラッフィックスをリリースしました。このブログシリーズでは、それぞれの主張の技術的な背景を述べていき、皆様の重要なアプリケーションにとってNutanixのアーキテクチャがどのようなメリットをもたらすのかを解説していきます。

この最初の記事では、動的に分散されたストレージと、それが高性能なアプリケーション、レジリエンシー、そして拡張性にどのような意味を持つのかにフォーカスを当てます。

 

動的に分散されたストレージ

Nutanixにおいて最も重要で、そして解決すべきアーキテクチャ上の決断はNutanixのストレージオペレーティングシステムであるAOSのデータパスをリアルタイムに完全に分散させるというものです。広く利用されているRAIDを用いた、ディスクのサブシスシステムをスケールアップさせるという場合には典型的な静的にデータを配置するというアプローチは比較的簡単なやり方ですが、一方で完全な分散モデルではスケールアウトモデルとしては当たり前のネットワーク、コンポーネント、そしてノード障害状況を考慮する必要があります。

完全な分散モデルだけが、本当に必要なパフォーマンスを提供することが出来ます、つまり、一貫性した低遅延のパフォーマンスと、 障害児の高速な並行リビルドです。このアーキテクチャー上のデザインはGoogleやAmazonのようなソフトウェア・ディファインドのスケールアウトハイパースケーラーが切り開いた分散システムを作り上げたNutanixを創業したエンジニアが念頭に置いていたものです。

AOSはそれぞれのノード上で分散されたサービスを動作させるコントローラー仮想マシン(CVM)のコンセプトを導入しています。AOSのリアルタイムインテリジェンスはスケールアウトクラスタ全体に分離し、広がっており、このためこれらのサービスを構成する要素には何一つ単一障害点はなく、どのノードのどのサービスも必要になればそのリーダーシップをとって動作をすることが出来ます。

 

 

上ではAOSを構成しているうちの多くの分散かつ最適化されたサービスのうち、4つのみを表示しています。すべての分散サービスを詳細に掘り下げる場合、Nutanixバイブルを参照してください。続いて、AOS内でノードのどこにデータを配置するかという決定がどのように行われるかを見ていきます。

 

パフォーマンス最適化のためのデータ配置

AOSは常にリアルタイムのクラスタ全体のディスクのパフォーマンスと健全性アセスメントをベースにして最適なディスクに動的にWriteを行います。vDiskが作成された際や、最初にWriteを行った際には静的な(ディスクの)紐付けは行われません。AOSのストレージレイヤーは2つの領域oplogとExtend Storeに分割されています。AOSはシステムに流入するWriteを分類し、適切にそれらを配置します。Nutanixバイブルには以下に示すI/Oパスが詳細に解説されています。

 

 

Oplogはファイルシステムのジャーナルシステムのようなものです。OplogはランダムWriteのバーストを迅速に格納し、その複製を作成します。Oplogはストレージノードの最も性能の高いディスク上に動的に展開され、それぞれのノードの最も性能の高いディスクからのみ選択されたディスクがoplogを構成します。全てのノードのOplogは協調してデータの可用性を実現するために自分自身に対してWriteの複製を行います。Oplogはシステムのキャッシュレイヤーでは無いということは重要なので覚えておいてください。Oplogに書き込まれたWriteは永続的なものです。

Extent storeはAOSのストレージの大部分で、すべての階層のディスクにまたがっており、Writeを直接(永続的なランダムまたはシーケンシャル)またはoplogに取り込まれたwriteを吸い上げる形で受け取ります。

流入するデータがどのように分類されたかによって、AOSはデータを動的にパフォーマンスとキャパシティの観点から最も適切なストレージデバイスを割り当てます。加えて、AOS内のアルゴリズムがアプリケーションのアクセスパターンに応じて必要な場合、データをディスク階層間で移動させ、さらなる最適化を提供します。パフォーマンスはデータを動的に複数のデバイスに分散させることで単一デバイス上にボトルネックを作らないようにしながら最適化が行われます。

 

可用性ドメイン

可用性ドメインはデータコンポーネントがどこに配置されるかを決定します。Nutanixはほとんどのクラウドシステムと同様にクラスタ全体にまたがって複数のデータコピーを作成します。レプリケーションにかかるコストを解決するため、管理者はイレイジャーコーディングと分散パリティを選択し、データの冗長性を提供することも出来ます。

標準ではAOSはディスクとノードを考慮します。つまり、同じデータの2つまたは3つのコピーが同じディスクとノードに配置されないということです。それに加え、Nutanixはブロックとラックを考慮することも出来ます。これはデータのコピーが同じブロックトラックには配置されないことを保証し、ブロックやラックの障害に対しても保護を提供できるということです。このデータの分散はAOSによって動的に行われ、主導でのセットアップや管理者の介入は必要としません。可用性ドメインについての詳細はNutanixバイブルを参照してください。

 

なぜこれが重要なのか?

Nutanixの創業時のエンジニアは動的で、インテリジェント、かつレジリエンシーに優れたアーキテクチャを構築するという難しい判断を行いました。その結果、HCIの管理者はキャッシュ専用のディスクを性能のために利用するというような見積もりや、マニュアルでの静的な構成を行う必要はありません。AOSで動的にスケールするエンタープライズ向けのプラットフォームを構築することが出来ます。最も重要なことは、このアーキテクチャは障害が発生した状態でも一貫した低遅延を提供できるという点で、これがNutanixをパフォーマンスが必要なビジネスクリティカルアプリケーションに対して必要なパフォーマンスと可用性を提供できる稀有な存在にしています。

AOSにはマニュアルでのディスクグループの構成や専用のキャッシュドライブの管理は必要ありませんので、管理者はリソースを使い始める際に自動的にリソースを展開し、すぐに使い始めることが出来ます。更にAOSではオールフラッシュとハイブリッド(SSDとHDD)を同一クラスタに混在させて、管理者がパフォーマンスと大容量のバランスを取ることも出来ます。流入するI/Oを自動的に分類することで、それらを適切な階層に配置することができるため、AOShあアプリケーションにとって最適なパフォーマンスを保証することが出来ます。アプリケーションのデータに対するアクセスが変わっていくに連れて、AOSはそれに応じて自動的にデータを適切な階層に移動させることで、一貫したパフォーマンスを保証します。パフォーマンスのニーズを満たすことを保証するだけでなく、データはインテリジェントに適切な可用性ドメインに配置されこれによって、アプリケーションのデータの冗長性とデータの可用性も提供します。

次の記事では、動的に分散されたストレージがのようにして自動化されたアプリケーションも考慮したデータ管理を行っているかについて掘り下げていきたいと思います。Nutanix AOSが一貫したReadWriteのパフォーマンスを提供する一方で、簡単に、そして自動的に障害に対応し、自己治癒を提供するのかを学ぶことが出来ます。


0 replies

Be the first to reply!

Reply