一般的なアーキテクチャ
NetScaler BLXはNetScalerのソフトウェアフォームファクターであり、他のフォームファクターと同じ機能を提供します。Linuxホスト上でユーザースペースアプリケーションとして動作します。
NetScaler BLXは、パケットの送受信およびNICポートの管理にLinuxドライバーを使用します。起動フェーズ中に作成される仮想イーサネット(veth)インターフェイス
blx0およびblx1は、LinuxホストとNetScaler BLX間の通信に使用されます。たとえば、NetScaler BLXはvethを使用して、Linuxホスト上のsyslogデーモンにログ情報を送信します。
NetScaler BLXでは、
/etc/blx/blx.conf(NetScaler BLXの起動設定ファイル)ファイルで指定されたLinuxホストのNICポートは、NetScaler BLX専用です。これらのNICポートは、ホスト上で実行されている他のアプリケーションと共有されません。NetScaler BLXのみが専用NICポートを認識できます。
IPアドレス指定スキームは、従来のNetScalerと同様です。NetScaler BLXは、NetScaler IP(NSIP)、仮想サーバーIP(VIP)、およびサブネットIP(SNIP)に異なるIPアドレスを持つことができます。
NetScaler BLXは、外部ネットワークからパケットを受信し、受信したパケットを処理し、構成された専用Linux NICポートを介して直接応答します。LinuxカーネルのTCP/IPスタックをバイパスしてパケットを処理するための本格的なTCP/IPスタックを備えています。NetScaler BLXは、Linuxカーネルドライバーと直接対話して、NICポートから生パケットを取得します。
NetScaler BLXはLinuxカーネルのネットワークスタックをバイパスしますが、Linuxカーネルメモリとユーザースペースメモリ間でパケットを転送する際のオーバーヘッドは依然として存在します。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響を与えます。高いパケット処理性能を実現するには、Data Plane Development Kit (DPDK) 互換のNICを使用することをお勧めします。NetScaler BLXでサポートされているDPDK互換NICのリストについては、「Linuxホストのハードウェア要件」(/ja-jp/blx/13-1/about-netscaler-blx/system-requirements.html#hardware-requirements-of-linux-host)を参照してください。
DPDKは、ネットワークパフォーマンスを向上させるために使用されるオープンソースのLinuxライブラリとネットワークインターフェイスコントローラーのセットです。DPDKの詳細については、公式DPDK Webサイトhttps://www.dpdk.org/を参照してください。
DPDKは、カーネルメモリをバイパスし、パケットを処理のためにユーザースペースメモリに直接配信するのに役立ちます。DPDKとLinux UIOモジュールを組み合わせることで、NetScaler BLXは、カーネルメモリからユーザースペースメモリへのパケットコピーというLinuxカーネルのオーバーヘッドを伴わずに、パケットを送受信できます。メモリが割り当てられると、DPDKはバッファを管理してパフォーマンスを向上させます。
注:
以下のいずれかの条件が満たされた場合、NetScaler BLXはDPDKサポートなしで起動する可能性があります。
-
NetScaler BLXが専用のDPDK互換NICポートをサポートしていない。
-
DPDKが専用NICポートをサポートしていない。