Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos Node Slicing セットアップの準備

手記:

このセクションのトピックは、外部サーバーモデルを使用して設定されたJunosノードスライシングにのみ適用されます。シャーシ内Junosノードスライスについては、 シャーシ内モードで動作するMXシリーズルーターの設定に進みます。

Junosノードスライシング(外部サーバーモデル)を設定する前に、サーバーとルーターの接続、追加パッケージのインストール、x86サーバーのLinux GRUBの設定、x86サーバーCPUのBIOSのセットアップなど、いくつかの準備手順を実行する必要があります。

サーバーとルーターの接続

Junosノードスライシングを設定するには、外部x86サーバーのペアをMXシリーズルーターに直接接続する必要があります。各サーバーには、Linux ホストの管理ポートの他に、JDM および GNF VM の管理接続を提供するためにそれぞれ 2 つのポートと、MX シリーズ ルーターに接続するための 2 つのポートが必要です。

手記:
  • MXシリーズルーターでJunosノードスライシングが有効になっている場合は、ループバックケーブルを外部CBポートに接続しないでください。また、外部CBポートが他のCBの外部ポートに接続されていないことを確認します。

  • ホスト サーバーが SSH ブルート フォース攻撃を受けないようにするには、ホスト サーバーに IPtables ルールを追加することをお勧めします。次に例を示します。

    上記の例のルールは、着信SSH接続のレート制限に使用されます。これにより、特定の数のSSH試行が行われた一定期間、リモートIPからの接続をブロックできます。上記の例のように、10回試行すると、リモートIPからの接続は120秒間ブロックされます。

図1 は、MX2020ルーターがx86外部サーバーのペアに接続されている方法を示しています。

図1:MX2020ルーター—外部x86サーバー接続 MX2020 Router—External x86 Server Connectivity

図 1 の例によると、x86 サーバー上の em1em2、および em3 は、それぞれ Linux ホスト、JDM、および GNF の管理に使用されるポートです。 各サーバーの p3p1p3p2 は、MX シリーズ ルーターのコントロール ボードに接続された 2 つの 10 Gbps ポートです。

手記:

em1 などのサーバー上のインターフェースの名前p3p1、サーバーのハードウェア構成によって異なる場合があります。

図 1 に記載されている MX シリーズ ルーター CB(コントロール ボード)の XGE ポートの詳細については、次を参照してください。

  • SCBE2-MXの説明 (MX960およびMX480用)

    手記:

    XGE ポート番号は SCBE2 でラベル付けされていません。垂直方向の SCBE2 では、上のポートは XGE-0、下のポートは XGE-1 です。水平方向の SCBE2 では、左側のポートは XGE-0、右側のポートは XGE-1 です。

  • REMX2K-X8-64GおよびREMX2K-X8-64G-LT CB-REの説明 (MX2010およびMX2020用)

手記:

これらの XGE ポートを表示するには、 show chassis ethernet-switch コマンドを使用します。MX960のコマンド出力で、ポート番号 24 および 26 を参照して、SCBE2上のこれらのポートを表示します。MX2010およびMX2020のコマンド出力で、ポート番号 26 および 27 を参照して、コントロールボードルーティングエンジン(CB-RE)でこれらのポートを表示します。

x86 サーバー CPU BIOS 設定

Junos ノード スライシングの場合、x86 サーバー CPU の BIOS を以下のように設定する必要があります。

  • ハイパースレッディングは無効です。

  • CPUコアは常に定格周波数で動作します。

  • CPUコアは、Cステートの使用を制限することにより、ジッターを低減するように設定されています。

サーバー上の CPU コアの定格周波数を調べるには、Linux host コマンド lscpuを実行し、フィールド Model nameの値を確認します。次の例を参照してください。

CPUコアが現在実行されている頻度を確認するには、Linuxホストコマンド grep MHz /proc/cpuinfo を実行し、各CPUコアの値を確認します。

CPU コアを定格周波数で動作するように BIOS が設定されているサーバーでは、次の例に示すように、CPU コアの観測値はすべて定格周波数と一致します (またはそれに非常に近い値になります)。

CPU コアを定格周波数で動作するように BIOS が設定されていないサーバーでは、CPU コアの観測値が定格周波数と一致しず、値も時間とともに変化する可能性があります (コマンドを再実行することで確認できます)。

CPU コアを定格周波数で動作させ、ジッターを減らし、ハイパースレッディングを無効にするように x86 サーバーの BIOS システム プロファイルを設定するには、サーバーのモデルと BIOS のバージョンによって異なるため、サーバーの製造元に問い合わせてください。

これを実現するための一般的なBIOSシステムプロファイル設定は次のとおりです。

  • Logical processor: [無効] に設定します。

  • CPU power management: [最大パフォーマンス] に設定します。

  • Memory frequency: [最大パフォーマンス] に設定します。

  • Turbo boost: [無効] に設定します。

  • C-states and C1E state: [無効] に設定します。

  • Energy efficient policy: [パフォーマンス] に設定します。

  • Monitor/Mwait: [無効] に設定します。

これらの値を設定するには、カスタム BIOS システム プロファイルが必要になる場合があります。

x86 サーバー Linux GRUB 設定

Junos ノード スライシングでは、各 GNF VM に専用の CPU コアが割り当てられます。この割り当ては、ジュニパーデバイスマネージャー(JDM)によって管理されます。JDMでは、各x86サーバーにおいて、CPUコア0と1以外のすべてのCPUコアをJunosノードスライシング用に予約し、事実上、これらのコアを他のアプリケーションから分離する必要があります。CPU コア 2 と 3 は GNF 仮想ディスクとネットワーク I/O 専用です。CPU コア 4 以上は GNF VM に割り当てることができます。これらの CPU コアを予約するには、次の手順で説明するように、Linux GRUB 構成で isolcpus パラメーターを設定する必要があります。

Red Hat Enterprise Linux (RHEL) 7.3 を実行している x86 サーバーの場合、以下のステップを実行します。

  1. x86 サーバー上の CPU コアの数を決定します。 「x86 サーバー CPU BIOS 設定」の説明に従って、ハイパースレッディングが既に無効になっていることを確認します。次の例に示すように、Linux コマンド lscpu を使用して、CPU コアの合計数を確認できます。

    ここでは、24コア(12 x 2)があります。CPU コアには、コア 0 からコア 23 の番号が付けられます。

  2. この例のように、 isolcpus パラメーターを 'isolcpus=4-23' に設定する必要があります (GNF VM で使用するために、コア 0、1、2、および 3 以外のすべての CPU コアを分離します)。次の理由により、 isolcpus パラメーターが 'isolcpus=4-23' に設定されます。

    • JDM では、各 x86 サーバーで、CPU コア 0 と 1 以外のすべての CPU コアを Junos ノード スライシング用に予約する必要があります。

    • CPU コア 2 と 3 は、GNF 仮想ディスクとネットワーク I/O 専用です。

    手記:

    以前は、 isolcpus パラメータ 'isolcpus=2-23' が使用されていました。これは 'isolcpus=4-23' に更新されました。詳細については、「 KB35301」を参照してください。

    Linux GRUB 構成ファイルで isolcpus パラメーターを設定するには、ホスト OS のバージョンに固有の手順に従います。RHEL 7 の場合、この Red Hat ドキュメントの「プロセススケジューラから CPU を分離する」セクションで手順を説明します。RHEL 9 の場合、カーネルコマンドラインの変更に関する情報は、この Red Hat ドキュメントに記載されています。

    手順の概要は次のとおりです。

    1. 次の例に示すように、Linux GRUB ファイル /etc/default/grub を編集して、 isolcpus パラメータを変数GRUB_CMDLINE_LINUXに追加します。

    2. 以下に示すように、Linuxシェルコマンド grub2-mkconfig を実行して、更新されたGRUBファイルを生成します。

      レガシーBIOSを使用している場合は、次のコマンドを発行します。

      UEFI を使用している場合は、次のコマンドを発行します。

      RHEL 9.3 以降では、レガシ BIOS または UEFI システムに対して次のコマンドを発行します。

    3. x86 サーバーを再起動します。

    4. 次の例に示すように、Linux コマンド cat /proc/cmdlineの出力を確認して、isolcpus パラメーターが設定されていることを確認します。

Ubuntu 20.04 を実行している x86 サーバーの場合は、次の手順を実行します。

  1. x86 サーバー上の CPU コアの数を決定します。「x86 サーバー CPU BIOS 設定」の説明に従って、ハイパースレッディングが既に無効になっていることを確認します。Linuxコマンド lscpu を使用して、CPUコアの総数を確認できます。

  2. 次の例に示すように、/etc/default/grub ファイルを編集して、isolcpus パラメーターを変数 GRUB_CMDLINE_LINUX_DEFAULTに追加します。

  3. 変更を更新するには、 update-grub を実行します。

  4. サーバーを再起動します。

  5. Linux コマンド cat /proc/cmdlineの出力を確認して、isolcpus パラメーターが設定されていることを確認します。

x86サーバー用のインテルX710 NICドライバーの更新

Intel X710 NIC を使用している場合は、x86 サーバーに最新のドライバー (2.4.10 以降) がインストールされていること、および X710 NIC ファームウェアのバージョンが 18.5.17 以降であることを確認します。

まず、サーバー上の X710 NIC インターフェイスを特定する必要があります。たとえば、これは p3p1である可能性があります。

NICドライバーのバージョンを確認するには、Linuxコマンド ethtool -i interfaceを実行します。次の例を参照してください。

ドライバーの更新手順については、 インテルのサポートページ を参照してください。

手記:

ホストOSを更新すると、Intel X710 NICドライバーが置き換えられる場合があります。したがって、Intel X710 NICドライバを更新する前に、ホストOSが最新であることを確認してください。

ドライバーをビルドするには、次のパッケージが必要です。

  • RedHat の場合:

    • kernel-devel

    • 開発ツール

  • Ubuntuの場合:

    • 作る

    • ティッカー

RedHat を使用している場合は、次のコマンドを実行してパッケージをインストールします。

Ubuntuを使用している場合は、次のコマンドを実行してパッケージをインストールします。

手記:

Intel X710 NICドライバーを更新すると、ホストOSログに次のメッセージが表示されることがあります。

"i40e: module verification failed: signature and/or required key missing - tainting kernel"

このメッセージは無視してください。これは、更新されたNICドライバーモジュールが、ホストOSにパッケージ化されたドライバーの基本バージョンを置き換えたために表示されます。

JDM の追加パッケージのインストール

x86 サーバーには、Red Hat Enterprise Linux (RHEL) 7.3、(RHEL) 9、または Ubuntu 20.04 LTS がインストールされている必要があります。

手記:

x86 サーバーには、仮想化パッケージがインストールされている必要があります。

RHEL 9 の場合は、podman プラグインとコンテナネットワークプラグインがインストールされていることを確認します。そうでない場合は、DNF ユーティリティを使用して、 Red Hat カスタマーポータルからダウンロードできる次の追加パッケージをインストールします。

  • ポッドマン

  • コンテナネットワーキングプラグイン

RHEL 7.3 の場合Red Hat カスタマーポータルからダウンロードできる次の追加パッケージをインストールします。

  • python-psutil-1.2.1-1.el7.x86_64.rpm

  • net-snmp-5.7.2-24.el7.x86_64.rpm

  • net-snmp-libs-5.7.2-24.el7.x86_64.rpm

  • libvirt-snmp-0.0.3-5.el7.x86_64.rpm

Junos OS リリース 17.4R1 以前、および 18.1R1 の場合のみ、RHEL 7.3 を実行している場合は、次の追加パッケージもインストールします。

  • libstdc++-4.8.5-11.el7.i686.rpm

手記:
  • 表示されているパッケージのバージョン番号は、最小バージョンです。新しいバージョンは、最新の RHEL 7.3 および RHEL 9 パッチで利用できる場合があります。

  • libstdc++ パッケージ拡張機能 .i686 、それが 32 ビット パッケージであることを示します。

  • RHEL の場合は、 yum または dnf コマンドを使用してパッケージをインストールすることをお勧めします。

For Ubuntu 20.04で、次のパッケージをインストールします。

  • python-psutil

Junos OSリリース17.4R1以前、および18.1R1の場合のみ、Ubuntuを実行している場合は、次の追加パッケージもインストールします。

  • libstdc++6:i386

手記:
  • Ubuntuの場合、 apt-get コマンドを使用して、これらのパッケージの最新バージョンをインストールできます。たとえば、次を使用します。

    • コマンド apt-get install python-psutilpython-psutil パッケージの最新バージョンをインストールします。

    • コマンドはapt-get install libstdc++6:i386libstdc++6パッケージの最新バージョンをインストールします (拡張機能:i386は、インストールするパッケージが 32 ビット バージョンであることを示します)。

サーバーとルーター間の接続の完了

JDM のインストールを開始する前に、次の手順を実行します。

  • サーバーとルーターの接続の説明に従って、MX シリーズ ルーターが x86 サーバーに接続されていることを確認します。

  • MX シリーズ ルーターで、2 つの x86 サーバーと両方のルーティング エンジンの電源を入れます。

  • 両方の x86 サーバーの Linux ホスト管理ポートを特定します。たとえば、 em1

  • JDM および GNF 管理ポートに割り当てるポートを識別します。たとえば、 em2em3 などです。

  • MXシリーズルーターのコントロールボードに接続されている2つの10Gbpsポートを特定します。たとえば、 p3p1p3p2 などです。