一般的なアーキテクチャ
NetScaler BLXはNetScalerのソフトウェアフォームファクターであり、他のフォームファクターと同じ機能を提供します。Linuxホスト上でユーザースペースアプリケーションとして動作します。
NetScaler BLXは、パケットの送受信およびNICポートの管理にLinuxドライバーを使用します。起動フェーズ中に作成される仮想イーサネット (veths) インターフェース
blx0 および blx1 は、LinuxホストとNetScaler BLX間の通信に使用されます。例えば、NetScaler BLXはvethsを使用して、Linuxホスト上のsyslogデーモンにログ情報を送信します。
NetScaler BLXでは、
/etc/blx/blx.conf (NetScaler BLXの起動設定ファイル) ファイルで指定されたLinuxホストのNICポートは、NetScaler BLX専用です。これらのNICポートは、ホスト上で実行されている他のアプリケーションと共有されません。専用のNICポートはNetScaler BLXのみが認識できます。
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ホストのハードウェア要件」を参照してください。
DPDKは、ネットワークパフォーマンスを向上させるために使用されるオープンソースのLinuxライブラリとネットワークインターフェースコントローラーのセットです。DPDKの詳細については、公式DPDKウェブサイト https://www.dpdk.org/ を参照してください。
DPDKは、カーネルメモリをバイパスし、パケットを処理のためにユーザースペースメモリに直接配信するのに役立ちます。DPDKはLinux UIOモジュールと組み合わせることで、NetScaler BLXがカーネルメモリからユーザースペースメモリへのパケットコピーというLinuxカーネルのオーバーヘッドを伴わずにパケットを送受信できるようにします。メモリが割り当てられると、DPDKはバッファを管理してパフォーマンスを向上させます。
注:
以下のいずれかの条件が満たされた場合、NetScaler BLXはDPDKサポートなしで起動する場合があります。
-
NetScaler BLXが専用のDPDK互換NICポートをサポートしていない。
-
DPDKが専用のNICポートをサポートしていない。