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 ルールを追加することをお勧めします。次に例を示します。
iptables -N SSH_CONNECTIONS_LIMIT iptables -A INPUT -i jmgmt0 -p tcp -m tcp --dport 22 -m state --state NEW -j SSH_CONNECTIONS_LIMIT iptables -A SSH_CONNECTIONS_LIMIT -m recent --set --name SSH --rsource iptables -A SSH_CONNECTIONS_LIMIT -m recent --update --seconds 120 --hitcount 10 --name SSH --rsource -j DROP iptables -A SSH_CONNECTIONS_LIMIT -j ACCEPT
上記の例のルールは、着信SSH接続のレート制限に使用されます。これにより、特定の数のSSH試行が行われた一定期間、リモートIPからの接続をブロックできます。上記の例のように、10回試行すると、リモートIPからの接続は120秒間ブロックされます。
図1 は、MX2020ルーターがx86外部サーバーのペアに接続されている方法を示しています。

図 1 の例によると、x86 サーバー上の em1
、em2
、および em3
は、それぞれ Linux ホスト、JDM、および GNF の管理に使用されるポートです。 各サーバーの p3p1
と p3p2
は、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
の値を確認します。次の例を参照してください。
Linux server0:~# lscpu
..
Model name: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
..
CPUコアが現在実行されている頻度を確認するには、Linuxホストコマンド grep MHz /proc/cpuinfo
を実行し、各CPUコアの値を確認します。
CPU コアを定格周波数で動作するように BIOS が設定されているサーバーでは、次の例に示すように、CPU コアの観測値はすべて定格周波数と一致します (またはそれに非常に近い値になります)。
Linux server0:~# grep MHz /proc/cpuinfo
…
cpu MHz : 2499.902
cpu MHz : 2500.000
cpu MHz : 2500.000
cpu MHz : 2499.902
…
CPU コアを定格周波数で動作するように BIOS が設定されていないサーバーでは、CPU コアの観測値が定格周波数と一致しず、値も時間とともに変化する可能性があります (コマンドを再実行することで確認できます)。
Linux server0:~# grep MHz /proc/cpuinfo
…
cpu MHz : 1200.562
cpu MHz : 1245.468
cpu MHz : 1217.625
cpu MHz : 1214.156
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 サーバーの場合、以下のステップを実行します。
x86 サーバー上の CPU コアの数を決定します。 「x86 サーバー CPU BIOS 設定」の説明に従って、ハイパースレッディングが既に無効になっていることを確認します。次の例に示すように、Linux コマンド
lscpu
を使用して、CPU コアの合計数を確認できます。Linux server0:~#
lscpu
… Cores per socket: 12 Sockets: 2 …ここでは、24コア(12 x 2)があります。CPU コアには、コア 0 からコア 23 の番号が付けられます。
この例のように、
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 ドキュメントに記載されています。手順の概要は次のとおりです。
次の例に示すように、Linux GRUB ファイル /etc/default/grub を編集して、
isolcpus
パラメータを変数GRUB_CMDLINE_LINUXに追加します。GRUB_CMDLINE_LINUX= "crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
isolcpus=4-23
”以下に示すように、Linuxシェルコマンド
grub2-mkconfig
を実行して、更新されたGRUBファイルを生成します。レガシーBIOSを使用している場合は、次のコマンドを発行します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI を使用している場合は、次のコマンドを発行します。
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
RHEL 9.3 以降では、レガシ BIOS または UEFI システムに対して次のコマンドを発行します。
# grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
x86 サーバーを再起動します。
次の例に示すように、Linux コマンド
cat /proc/cmdline
の出力を確認して、isolcpus
パラメーターが設定されていることを確認します。#
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.36.3.el7.x86_64 … quiet isolcpus=4-23
Ubuntu 20.04 を実行している x86 サーバーの場合は、次の手順を実行します。
x86 サーバー上の CPU コアの数を決定します。「x86 サーバー CPU BIOS 設定」の説明に従って、ハイパースレッディングが既に無効になっていることを確認します。Linuxコマンド
lscpu
を使用して、CPUコアの総数を確認できます。次の例に示すように、/etc/default/grub ファイルを編集して、isolcpus パラメーターを変数 GRUB_CMDLINE_LINUX_DEFAULTに追加します。
GRUB_CMDLINE_LINUX_DEFAULT= "intel_pstate=disable processor.ignore_ppc=1
isolcpus=4-23
"変更を更新するには、
update-grub
を実行します。サーバーを再起動します。
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
を実行します。次の例を参照してください。
root@Linux server0# ethtool -i p3p1
driver: i40e
version: 2.4.10
firmware-version: 5.05 0x80002899 18.5.17
...
ドライバーの更新手順については、 インテルのサポートページ を参照してください。
ホストOSを更新すると、Intel X710 NICドライバーが置き換えられる場合があります。したがって、Intel X710 NICドライバを更新する前に、ホストOSが最新であることを確認してください。
ドライバーをビルドするには、次のパッケージが必要です。
RedHat の場合:
kernel-devel
開発ツール
Ubuntuの場合:
作る
ティッカー
RedHat を使用している場合は、次のコマンドを実行してパッケージをインストールします。
root@Linux server0#yum install kernel-devel
root@Linux server0#yum group install "Development Tools"
Ubuntuを使用している場合は、次のコマンドを実行してパッケージをインストールします。
root@Linux server0#apt-get install make
root@Linux server0#apt-get install gcc
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-psutil
、python-psutil
パッケージの最新バージョンをインストールします。 -
コマンドは
apt-get install libstdc++6:i386
libstdc++6
パッケージの最新バージョンをインストールします (拡張機能:i386
は、インストールするパッケージが 32 ビット バージョンであることを示します)。
-
サーバーとルーター間の接続の完了
JDM のインストールを開始する前に、次の手順を実行します。
サーバーとルーターの接続の説明に従って、MX シリーズ ルーターが x86 サーバーに接続されていることを確認します。
MX シリーズ ルーターで、2 つの x86 サーバーと両方のルーティング エンジンの電源を入れます。
両方の x86 サーバーの Linux ホスト管理ポートを特定します。たとえば、
em1
。JDM および GNF 管理ポートに割り当てるポートを識別します。たとえば、
em2
やem3
などです。MXシリーズルーターのコントロールボードに接続されている2つの10Gbpsポートを特定します。たとえば、
p3p1
やp3p2
などです。