HPCシステムズではエンジニアを募集しています。詳しくはこちらをご覧ください。
HPCシステムズのエンジニア達による技術ブログ

Tech Blog

HPCシステムズのSIP OSをアップデートする方法

高性能なAIの普及に伴い、これまで以上に高いセキュリティ対応が求められる場面が増えてきました。しかしHPC環境では、性能を最大限引き出すために攻めたチューニングを施すため、修正モジュールやパッチがアプリケーションの性能や動作に悪影響を及ぼす恐れが十分にあります。加えて、単にアップデートを実行しただけでは、ドライバ更新などで失敗することも珍しくありません。安易に当てることも、当てずに放置することもできない、HPCシステムを運用していくにあたり、非常に頭の痛い問題です。

弊社ではアプリケーションを環境に合わせて最適化してビルドしているため、納品後にOSやドライバへ修正モジュールを適用された場合、その更新が当初の精度・パフォーマンスにどのような影響を及ぼすかを弊社で事前に保証することは原理的に困難です。そのため、セキュリティ対応につきましてはOSセキュリティ保守ガイドラインに沿ってご対応をお願いしておりますが、弊社としても対策と性能を両立できる方法を引き続き模索してまいります。

先月、深刻な脆弱性が立て続けに報告され、その対応として暫定対処策を弊社HP上でご案内いたしました。これらの暫定対処策は、問題が見つかったモジュールを無効化するという方法です。いずれもHPC環境にとってクリティカルではないモジュールであったため、この暫定対処策のまま運用を継続いただいて差し支えないと考えております。

ただ今後、HPC環境にとってクリティカルな部分に脆弱性が発覚する可能性はゼロではなく、更新せざるを得ないケースが出てくることも考えられます。そこで今回、通常はOS更新を「非推奨」としてご提供している弊社のシステムインテグレーションパックOS(SIP OS)について、カーネルの更新手順を整備し、主要なソフトウェアで数値ズレが生じないこと、および極端なパフォーマンス劣化が起きないことを確認いたしました。あくまで自己責任のもとで実施いただく際の参考としてお考えください。

なお、OS更新作業自体も有償にて承っておりますので、必要な際はお気軽にお問い合わせください。

AlmaLinux8.x / RHEL8.x SIPカーネル更新手順

    ※実行コマンドは root ユーザーで実行してください。
  実行前に、弊社マニュアルに記載してある方法でバックアップの実施をお願いします。

1. Mellanox OFED アンインストール

ofed_uninstall.sh

「 Do you want to continue?[y/N]: 」と表示されるので「 y 」を入力してください

2. /boot/grub2/grubenv 再作成

cd /boot/grub2
rm -f grubenv
(AlmaLinuxの場合)
ln -s ../efi/EFI/almalinux/grubenv . (RedHatの場合) ln -s ../efi/EFI/redhat/grubenv .

3. カーネル更新と再起動

(AlmaLinuxの場合)
dnf -y --enablerepo=baseos,appstream update 'kernel*' 
(RedHatの場合)
dnf -y update 'kernel*'
reboot

4. NVIDIA DOCA(Mellanox OFED 後継) インストール
 DOCA リポジトリ用ファイル /etc/yum.repos.d/doca.repo を作成して下記を記載してください。

[doca]
name=DOCA Online Repo
baseurl=https://linux.mellanox.com/public/repo/doca/3.4.0/rhel8/x86_64/
enabled=1
gpgcheck=0

5. DOCA インストール (Infinibandを使用しない場合は不要なケースもあります)

dnf clean all 
dnf -y install doca-all

インストール後、ソフトウェアの動作確認をお願いします。
問題が発覚した場合、弊社マニュアルに記載があるように、バックアップディスクから立ち上げることで設定前の状態に戻すことが出来ます。

AlmaLinux9.x / RHEL9.x SIPカーネル更新手順

1. Mellanox OFED アンインストール

ofed_uninstall.sh

「 Do you want to continue?[y/N]: 」と表示されるので「 y 」を入力してください 

cmdlineを削除して新カーネル用のgrubファイルを作成させるため下記を実行してください

rm -f /etc/kernel/cmdline

2. カーネル更新と再起動

dnf --enablerepo=baseos,appstream install kernel-5.14.0-687.15.1.el9_8.x86_64\
 kernel-core-5.14.0-687.15.1.el9_8.x86_64\
 kernel-devel-5.14.0-687.15.1.el9_8.x86_64\
 kernel-devel-matched-5.14.0-687.15.1.el9_8.x86_64\
 kernel-headers-5.14.0-687.15.1.el9_8.x86_64\
 kernel-modules-5.14.0-687.15.1.el9_8.x86_64\
 kernel-modules-core-5.14.0-687.15.1.el9_8.x86_64\
 kernel-modules-extra-5.14.0-687.15.1.el9_8.x86_64\
 kernel-tools-5.14.0-687.15.1.el9_8.x86_64\
 kernel-tools-libs-5.14.0-687.15.1.el9_8.x86_64

*検証日時点で最新のカーネルに更新をするとDOCAのインストールに失敗したため、
   上記カーネルバージョンに固定して実行しました。これは6月25日時点の結果であり、更新を実行する際には適宜検証が必要です。

reboot

3. NVIDIA DOCA(Mellanox OFED 後継) インストール
 DOCA リポジトリ用ファイル /etc/yum.repos.d/doca.repo を作成して下記を記載してください

[doca]
name=DOCA Online Repo
baseurl=https://linux.mellanox.com/public/repo/doca/3.4.0/rhel9/x86_64/
enabled=1
gpgcheck=0

4 DOCA インストール (Infinibandを使用しない場合は不要なケースもあります)

dnf clean all 
dnf -y --enablerepo=baseos,appstream install doca-all