Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

注:

このセクションのトピックは、外部サーバーモデルを使用してセットアップされたJunos Node Slicingにのみ適用されます。シャーシ内 Junos Node Slicingについては、 シャーシ内モードで動作するようにMXシリーズルーターを設定するに進んでください。

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

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

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

注:
  • MXシリーズルーターでJunos Node Slicingが有効になっている場合は、ループバックケーブルを外部CBポートに接続しないでください。また、外部 CB ポートがもう一方の CB の外部ポートに接続されていないことを確認します。

  • ホストサーバーをSSHブルートフォース攻撃から守るには、ホストサーバーにIPtablesルールを追加することをお勧めします。以下に例を示します。

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

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

図1:MX2020ルーター - 外部x86サーバー接続 Network diagram of MX 2020 system management setup with two servers, Server 0 and Server 1, connected to management interfaces and control boards CB0 and CB1. Connections include IPMI, Linux Host Management, JDM Management, GNF-1-n Management, em1, em2, em3, p3p1, p3p2, XGE-0, XGE-1, routing engines RE0 and RE1, and console serial ports, all linked to a management network for remote user access.

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

注:

Junos Node SlicingのコントロールボードでXGEポートを有効にするには、 set chassis network-slices または set chassis network-slices guest-network-functionsを設定する必要があります。

注:

サーバー上のインターフェイス名( 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のコマンド出力で、ポート番号 2426 を参照して、SCBE2でこれらのポートを表示します。MX2010とMX2020のコマンド出力で、ポート番号 2627 を参照して、コントロールボード-ルーティングエンジン(CB-RE)でこれらのポートを表示します。

x86サーバーCPUのBIOS設定

Junos Node Slicingでは、x86サーバーCPUのBIOSを次のように設定する必要があります。

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

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

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

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

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

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

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

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

これを実現するための一般的な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 Node Slicingでは、各GNF VMに専用のCPUコアが割り当てられます。この割り当ては、ジュニパーデバイスマネージャー(JDM)によって管理されます。各x86サーバーでJDMでは、CPUコア0と1以外のすべてのCPUコアをJunos Node Slicing用に予約する必要があり、事実上、これらのコアを他のアプリケーションから分離する必要があります。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' に設定されている理由は次のとおりです。

    • 各x86サーバーで、JDMでは、CPUコア0と1以外のすべてのCPUコアをJunos Node Slicing用に予約する必要があります。

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

    注:

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

    Linux GRUB 設定ファイルで isolcpus パラメーターを設定するには、ホスト OS バージョンに固有の手順に従います。RHEL 7 の場合、手順については、この Red Hat ドキュメントIsolating CPU from the process scheduler のセクションで説明されています。RHEL 9 の場合、カーネルコマンドラインの変更に関する情報は、この Red Hat ドキュメントで説明されています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

x86サーバー用Intel x710 NICドライバーのアップデート

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

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

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

ドライバーのアップデート手順については、 Intelサポートページ を参照してください。

注:

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

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

  • RedHatの場合:

    • カーネル開発

    • 開発ツール

  • Ubuntuの場合:

    • メーカー

    • GCC

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.4、またはUbuntu 24.04 LTSがインストールされている必要があります。

注:

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

RHEL 9.4 の場合は、podman および containernetworking-plugins がインストールされていることを確認します。そうでない場合は、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.4 パッチで利用可能になる場合があります。

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

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

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

  • python-psutil

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

  • libstdc++6:i386

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

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

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

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

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

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

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

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

  • JDMおよびGNF管理ポートに割り当てるポートを特定します。例えば、 em2em3です。

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