LTN Blog 〜 Lenovo Technology Network 〜

レノボのソリューション・サーバー製品に関する技術情報、お役立ち情報をお届けします

Nutanixがパフォーマンスを必要とするエンタープライズアプリケーションに最適なソリューションである理由

皆さん、こんにちは レノボ・エンタープライズ・ソリューションズ 小宮です。

今回はNutanixがパフォーマンスを必要とするエンタープライズアプリケーションに最適なソリューションである理由と題して、Nutanixのテクノロジーとしてともにその理由をお話したいと思います。

 

f:id:t_komiya:20180610014032p:plain

アプリケーションパフォーマンス高速化するために、ローカルデータ処理に関して最適な処理を行っているのがNutanixの特徴です。Nutanixをご存知な方であれば良く耳にするのが「階層化」「データローカリティ」です。また、オールフラッシュについてNutanixに限ったことではありませんが、IO性能で最適化された技術を利用することで、既存環境においても数倍のパフォーマンスを上げることが期待できます。その中身について触れたいと思います。

f:id:t_komiya:20180610020343p:plain

パフォーマンス向上させる機能で階層化があります。Nutanixはホットデータをパフォーマンスの良いデバイスで配置し、コールドデータを遅いデバイスに移動させます。この機能はユーザが介在することはなくすべて自動で行われます。よくNutanixを構成する際にSASを選べないのですか?と聞かれますが、この機能が働いていればコールドデータを配置する場合には一番遅いディスクでも問題ないことが分かります。

f:id:t_komiya:20180610171158p:plain

f:id:t_komiya:20180610171217p:plain

次にデータローカリティになります。Writeの動作のところで見ていただければ分かると思いますが、ローカルのデータを(CVM経由で)他のノードに複製します。他のハイパーコンバージドではネットワーク経由で流れてしまうものもありますが、Nutanixはローカルのホストで処理することでいち早くレスポンスを返すことができ、またデータを複製することで冗長化を図ります。

Readに関してもローカルで処理できます、ホスト内のCVMがダウンしても他のホストでデータが残っていれば、そのホストのCVMを通信することでデータのアクセスが可能になります。

また、このような方式にすることで、他のホストにvMotionで移動する際に移動するデータ量を削減する効果もありますので、非常に効果的です。

f:id:t_komiya:20180610225517p:plain

RDMAサポートについては4月のブログにも掲載しましたが、RDMA(Remote Direct Memory Access)を使用すると、ユーザー空間で動作しているVMがNICに直接アクセスできるようにすることで、ノードがリモートノードのメモリにリモートで書き込むことができます。このアプローチにより、TCPとカーネルのオーバーヘッドが回避され、CPUの節約とパフォーマンスの向上が実現します。現時点では、AOS RDMAサポートはCVM間通信用に予約されており、データセンターブリッジ(DCB)がサポートされた適切に設定されたスイッチに接続されたRoCE対応NICで構成されたシステムでは、標準のRDMA over Converged Ethernet(RoCEv2)プロトコルを使用します。

RDMAサポート、データローカリティ、およびAHV Turboは、現在の世代にとって重要なパフォーマンス革新であるだけでなく、AHVおよびNutanixプラットフォームを、ネットワークファブリックのアップグレードを必要とせずに急速に進歩するフラッシュおよびメモリテクノロジをフルに活用できるように位置付けます。

f:id:t_komiya:20180610225030p:plain

RDMAを図式化するとこのようになります。CPUとカーネルのオーバーヘッドの削減がこれで見ると一目瞭然になると思います。少し先の技術になると思いますが導入することにメリットは大きいです。NutanixのNXシリーズですと、対応機種はまだ1機種ですが、Lenovo ThinkAgile HXシリーズではほぼ全機種(Mellanox Connect X-4:25GbE)で対応しております。

f:id:t_komiya:20180610225647p:plain

VMおよびVG機能のフラッシュモードでは、レイテンシに敏感なミッションクリティカルなアプリケーションを実行している可能性のある仮想マシンまたはボリュームグループに対して、ストレージ層の優先順位(SSDティア)を設定できます。たとえば、SQLデータベースなどのミッションクリティカルなアプリケーションを実行しているワークロードが、他のワークロードとともに大きなワーキングセットとともにSSD層(ホット層)に収まりきらず、HDD層(コールド層)に移行する可能性があります。

非常にレイテンシに敏感な作業負荷の場合、このHDD層への移行は、ワークロードの読み書き性能に重大な影響を及ぼす可能性があります。

デフォルトでは、クラスタ全体のSSDティア25%をVMまたはVGのフラッシュモードとして使用できます。この機能を有効にすると、SSD層に存在するデータはフラッシュされ、SSD層に配置され、フラッシュモードが無効なVMの使用量やデータのホット性に関係なく、マイグレーションは行われません。フラッシュされるデータがSSD使用量の25%を超えると、システムはフラッシュモードVMのデータもダウンマイグレーションする可能性があります。このマイグレーションを実行する前に、フラッシュモード機能はSSD層の余分なデータを一定の時間保存して、クラスタで是正措置を取ることができ、安定した状態に戻します。したがって、VM上でこの機能を有効にすると、VMに接続されているすべての仮想ディスクが自動的にSSD層にフラッシュされます。また、後でこのVMに追加された仮想ディスクは自動的にフラッシュされます。ただし、仮想ディスクからフラッシュモードを削除するようにVM設定を更新することはできます。

f:id:t_komiya:20180610230400p:plain

f:id:t_komiya:20180616235805p:plain

AHVターボは、コアKVMソースコードの基礎よりもAHV内のデータパスへの大きな進歩を表しています。AHVターボは簡単に利用できるようになっております。

コアのKVMコードでは、特定のVMからのすべてのI/Oが、ホストされたVMモニタ、QEMUを介して流れます。このアーキテクチャーは優れたパフォーマンスを達成できますが、一部のアプリケーション・ワークロードではさらに高い機能が必要になります。AHV Turboは、QEMUとサービスストレージI/O要求をバイパスする新しいI/Oパスを提供します。このアプローチは、CPU使用率を下げ、VMが利用できるストレージI/Oの量を増やします。

QEMUを使用すると、すべてのI/Oが単一のキューを通過するため、パフォーマンスに影響を与える可能性があります。新しいAHV Turboデザインでは、VMからストレージにデータを流すための多彩なアプローチが導入され、I/O容量が大幅に増加しました。ストレージキューは、特定のVM用に構成されたvCPUの数に合わせて自動的にスケールアウトされるため、ワークロードが拡大するにつれてより高いパフォーマンスが可能になります。

これらの改善は即時のメリットを示していますが、NVMeなどの将来のテクノロジや、レイテンシを短くしてI/O機能を大幅に向上させる永続メモリの進化に備えてAHVを準備します。

特にNVMeを導入する際には10GbEではなく、25GbE以上のネットワークを利用することをオススメします。参考URL:http://blog.lenovojp.com/entry/2018/04/08/011456

AHV Turboについては今回はもう少し詳細に説明しようと思います。

 

AHVターボモード(FRODO)

ストレージ技術の進化と効率化が進展するにつれて、ストレージ技術もそれを維持しなければなりません。AHV Turboは、AHV用に高度に最適化されたI/Oパスであり、より高いスループット、低い待ち時間、およびCPUオーバーヘッドの削減を可能にします。

VMがI/O操作を実行するときは、以下の手順に従います

(わかりやすくするためにいくつかの手順は除外されています)

1.VMのOSはSCSIコマンドを仮想デバイスに送信

2.Virtio-scsiはこれらの要求をゲストのメモリに格納

3.AHVターボがリクエストを処理

4.カスタムlibiscsiはiSCSIヘッダーを追加し、要求を転送

5.ネットワーク層は、要求をローカルCVM(またはローカルCVMが利用できない場合は外部CVM)に転送

6.Stargateは要求を処理

f:id:t_komiya:20180610231159p:plain

このパスは、従来のI/Oパスと似ていますが、いくつかの重要な違いがあります。

FRODO(vhost-user-scsi)は、QEMUのメインループを置き換え、複数の仮想キュー(VQ)をゲストに公開します(vCPUごとに1つ)

これらは複数のスレッドを使用して処理を行います。

Libiscsiを独自のバージョンに置き換えました。これははるかに軽量です。

AHVターボパスでは、ゲストはディスクデバイスに複数のキューを持つことに気付きます(これは、AHV VMに使用されるディスクの数がESXiベースのVMより少なくなる理由です)。それ以外の場合は、パフォーマンスの向上だけが見ることができます。場合によっては、I/Oを実行した場合のCPUオーバーヘッドを25%削減し、QEMUの3倍のパフォーマンスを達成したことがあります。

f:id:t_komiya:20180616235902p:plain

次にABSロードバランシングでのAHV Turbo機能について説明します。

AHVを使用してVMにボリュームグループを直接接続すると、仮想ディスクは仮想SCSIコントローラを介してゲストOSに提供されます。仮想SCSIコントローラは、AHV TurboとiSCSIを利用してNutanix Distributed Storage Fabricに接続します。デフォルトでは、VMに直接接続されたボリュームグループの仮想ディスクは、ローカルNutanix CVMによってホストされます。

VMが別のAHVホストにライブマイグレーションされると、ボリュームグループのファイルも移行され、ローカルCVMによって再度ホストされます。

VMのファイルが常にVMの実行場所にローカルに移動すると、データローカリティを維持し、不要なネットワークの通信を防ぐことができます。ただし、複数のCVMに並行して同時にアクセスすることで、VMのストレージワークロードに恩恵を受ける場合もあります。これが新しいボリュームグループのロードバランサ機能が有効になる場所です。

f:id:t_komiya:20180617000352p:plain

AHVのユニークなところは、各仮想ディスクが独自のiSCSI接続であることです。これらの接続は、VMがストレージIOの発生している場所にローカルでホストされるのが好ましい一方で、クラスタ内の任意のCVMによってリダイレクトおよびホストされます。たとえば、CVMが再起動されるローリングアップグレードを例にとります。そのアップグレードCVMによってホストされている各仮想ディスクは、クラスタ内の任意のノードを介して一時的にリダイレクトされます。仮想ディスクセッションを透過的にリダイレクトするこのコア機能は、ABSとボリュームグループのロードバランサのビルディングブロックです。

ボリュームグループを有効にすると、ロードバランサは仮想ディスクの所有権をクラスタ内のすべてのCVMに分散します。 

AHV Turboスレッドは、仮想ディスクiSCSI接続と連携して、クラスタ全体でストレージワークロードを駆動します。ロードバランスされたセッションを持つVMがクラスタ内の別のノードに移行すると、新しいノードのAHV TurboスレッドはiSCSI接続の所有権を取得します。仮想ディスクは、ロードバランシングアルゴリズムに基づいて優先CVMによって引き続きホストされます。

必要に応じて、特定のCVMを負荷分散の対象から除外できます。これは、他のワークロード向けのノードでのセッションのホストを避けるために役立ちます。Acropolis Dynamic Sc​​heduler(ADS)は、CVMの競合が検出された場合に仮想ディスクセッションを移動するのにも役立ちます。特定のCVMがストレージトラフィック(Nutanix Stargateプロセスで測定)に85%以上のCPUを使用する場合、ADSは特定のiSCSIセッションをクラスタ内の他のCVMに自動的に移動します。

f:id:t_komiya:20180610231538p:plain

Intelサーバーアーキテクチャは、特定のCPUソケットにメモリバンクを割り当てます。この設計では、サーバー内のメモリバンクの1つが各CPUに対してローカルなので、異なるメモリバンクからリモートにアクセスするのではなく、ローカルでメモリにアクセスするときに最高のパフォーマンスが得られます。各CPUとメモリのペアはNUMAノードです。vNUMAは、VMのアーキテクチャーが基盤となる物理ホストのNUMAアーキテクチャーを反映できるようにする機能です。

vNUMAはほとんどのワークロードには適用されませんが、1つのCPUソケットに使用可能な物理コアより多くのvCPUで構成された非常に大きなVMには、非常に有益です。これらのシナリオでは、vNUMAノードを定義して、CPUごとにローカルメモリアクセスを効率的に使用し、最高のパフォーマンス結果を達成します。

AHVホストで仮想マシン上のVirtual Non-uniform Memory Access(vNUMA)をサポートメモリのパフォーマンスを最適化するためにVMを作成または変更するときに、VM上でvNUMAを有効にすることができます。

ここで一度NUMAとvNUMAの説明を記載しておきます。

Non-uniform Memory Access (NUMA)

NUMAトポロジでは、VMのメモリアクセス時間は、プロセッサに関連するメモリの場所に依存します。VMは非ローカルメモリよりも速くプロセッサのローカルメモリにアクセスします。同じ物理NUMAノードのCPUとメモリの両方が使用されている場合は、最適なリソース使用率を達成できます。1つのNUMAノード(たとえばノード0)上でCPUを実行し、VMが別のノード(ノード1)からメモリにアクセスする場合、メモリ待ち時間が導入されます。VMの仮想ハードウェアトポロジが物理ハードウェアトポロジと一致していることを確認して、メモリのレイテンシを最小限に抑えます。

 

Virtual Non-uniform Memory Access (vNUMA)

vNUMAは単一の物理NUMAノードの容量よりも多くのvCPUまたはメモリを必要とする仮想マシンのメモリパフォーマンスを最適化します。vNUMAトポロジーでは、vNUMAノードごとにvCPUと仮想RAMが含まれる複数のvNUMAノードを作成できます。vNUMAノードを物理NUMAノードに割り当てると、vCPUはメモリレイテンシ(高または低)をインテリジェントに判断できます。vNUMAノード内のメモリのレイテンシが小さいため、物理NUMAノード内のレイテンシが小さくなります。

f:id:t_komiya:20180610232519p:plain

Shadow Cloneを説明する際に、CitrixのMCSの交えて説明いたします。

MCSはリンククローンのテクノロジーで動作しています。MCSのセットアッププロセスはマスターイメージとスナップショットを作成することから始まります。その後、ユーザーはマシンカタログを作成しスナップショットを選択します。MCSはスナップショットの完全コピーと、すべてのVM用の差分ディスクとIDディスクを作成します(ユーザは、ユーザのファイル、設定、およびその他のデータを保存する専用の仮想ディスクであるパー​​ソナル仮想ディスクを選択することもできます)。

従来のシステムでは、この構造によってI/Oの非効率性が発生し、ネットワークの待ち時間が長くなり、ユーザーの満足度を下げる結果になっていました。MCSではすべてのVM読み取りがスナップショットの完全コピーに戻ります。したがって、8台のホストがそれぞれ100台のVMを実行している環境では、単一のVMDKに戻ってくるVMは800台あり、読み込み用のVHDがあります。すべての書き込みは差分ディスクに戻されるため、ローカルにとどまります。

Nutanix DSFは、これらの非効率性をシャドウクローンと呼ばれる機能で解決します。シャドウクローンを使用すると、マスタイメージで発生するマルチレイダシナリオでの仮想ディスクまたはVMデータの分散キャッシングが可能になります。すべての読み取りはマスターイメージから行われ、すべての書き込みは差分ディスクに行われます。

シャドウクローンを使用すると、DSFはデータの局所性と同様に仮想ディスクのアクセス傾向を監視します。3つ以上のリモートCVM(ローカルCVMと同様)から要求が発生し、すべての要求が読み取りI / Oである場合、DSFはvdiskを不変としてマークします。これが起こると、各CVMは仮想ディスクをローカルにキャッシュすることができるため、基本仮想ディスクのシャドウクローンを作成できます。これらのシャドウクローンにより、クラスタ内のVMはベースVMの仮想ディスクをローカルで読み取ることができます。VDIでは、各ノードがレプリカディスクをキャッシュし、すべての基本読み取り要求をローカルで処理することを意味します。データは、ネットワークのフラッディングを回避し、キャッシュの効率的な使用を可能にするために、読み取り時にのみマイグレーションされます。基本VMが変更されると、シャドウクローンが破棄され、プロセスが開始されます。

f:id:t_komiya:20180610233340p:plain

NUTANIXORACLEを実行する理由

デジタル化は、ITが基本サービスを提供することを超えて進化し、より機敏になり、生産時間を短縮し、規模を拡大することを要求しています。さらに、Oracleデータベースなどのビジネスクリティカルなアプリケーションでは、オペレーティングシステムのバニラプロビジョニングを超えて考える必要があります。ライセンスのような理由により物理的なOracle DBインスタンスが依然として必要な環境でも、これらの新しい要求を満たすために、企業は仮想化に取り掛かりつつあります。

仮想化はこれらのニーズに対応していますが、仮想化がライセンスや組織上の理由で適していない場合でも、実際のOracle Databaseインスタンスを使用する必要がある場合があります。Nutanix Enterprise Cloud Platformは、これら両方の状況をサポートし、Oracle Databaseの仮想化およびベアメタルの両方のデプロイメントにWebスケールのメリットをもたらします。

任意のアプリケーションを実行するように設計されたNutanix Enterprise Cloud Platformは、同じアプライアンス内でストレージを集約して計算するため、独立したスタンドアロンストレージソリューションの複雑さを排除します。Nutanixは、VMware vSphere、Hyper-Vを搭載したMicrosoft Windows Server 2012 R2、Nutanix AHVをサポートしており、お客様が必要とするハイパーバイザーを適切に選択することができます。

管理者は、アクロス・ブロック・サービス(ABS)を通じてベア・メタルにOracle Databaseをデプロイできます.ABSは、単一のOracleインスタンスまたは物理サーバー上で動作するOracle RACインスタンスにiSCSIボリュームをエクスポートします。Nutanix ABSは、Nutanixボリュームグループを介して同じNutanixクラスタ上で実行されているVMにボリュームを直接エクスポートすることもできます。ABSを使用すると、仮想化されていないワークロードは、バックアップやリカバリ、ディザスタリカバリ、スナップショット、クローンなどの超コンバージョン環境のすべての利点を得るだけでなく、Nutanixクラスタ内で実際に優れたパフォーマンスを発揮します。

Nutanix Enterprise Cloud Platform上でのOracleの実行には、次のような利点があります。

・遅延時間が短く、予測可能なパフォーマンスが得られるため、DBAは、必要に応じてパフォーマンスを向上させ、容量を小さくすることができます。

・トランザクショナル、分析、または同じプラットフォーム上の2つのミックスを含む広範囲のデータベースワークロードタイプを処理する能力。

・数時間以内にデータセンターのインフラストラクチャを展開することで、生産にかかる時間を短縮できます。

・高可用性とデータ冗長性により、基盤となるハードウェアに問題があっても、Oracleデータベースとサポート・アプリケーションの起動と実行が可能になります。

・Oracleのネイティブ・データ保護機能に加えて、データベースを保護するためのスナップショット、リモート・レプリケーション、およびメトロ・レベルの可用性機能を統合しました。

・マルチパス、ゾーニング、マスキングなどのストレージ関連の管理タスクを処理することなく、管理を簡素化できます。

・警告や制限なしでOracle自動ストレージ管理(ASM)をサポートします。

f:id:t_komiya:20180610233848p:plain

こちらはコピーデータマネージメント(Copy Data Management)の内容になります。

本番用のデータをテスト用に利用したいケースなどにバックアップデータを利用するケースがありますが、その際に余剰に設備を持たずイメージをそのまま利用して有効活用するソリューションです。

一例として記載しますが、3年分の新規プロジェクトをサポートするためのライセンスを解放しました。データベースライセンスはだけで数億円程度になり、環境全体のリフレッシュは2週間から3日間になり、完全に自動化されています。

新しいサーバーを立ち上げるには、2週間ではなくわずか2分間で終わります。

 

エンタープライズアプリケーションに最適な環境であることをご理解いただけましたでしょうか。

宜しくお願い致します。