CentOS 8のkernelをELRepoの最新版に入れ替え

 うちのRyzenマシンはCentOSでサーバとして使っていますが、長期運用におけるいきなりのハング問題が解決しておらずcronで1日1回、リブートをしてなんとか使えている状況です。intelのCPUではこういうことはなかったので残念なところですね。なにか解決方法はないものかとネットをうろうろして、AMDRyzen自体新しいのでkernelのバージョンを最新版にするのがよさそうとの結論になりました。
 CentOS 8を導入しててソースからkernelをビルドするのもありですが、ここは楽をしてパッケージ管理がしたい。ということでCentOSRedHat向けのオプションパッケージ集としてのELRepoで最新版のkernelを導入することにしました。
 公開鍵のインポートからリポジトリのインストールはELRepoのホームページにあるように、

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

と実行して、/etc/yum.repos.dに作成されたelrepo.repoを編集。具体的には[elrepo-kernel]をenabled=1にして、ほかはenabled=0するだけです。
 次にdnfでのelrepo-kernelのインストールですが、依存関係でswapが必要なパッケージもあるのでまずはswapが必要ないkernelパッケージから

# dnf install kernel-ml kernel-ml-core kernel-ml-devel kernel-ml-modules

と実行して、elrepoのkernel-mlを現状に追加インストール。そして、swapが必要なパッケージは以下のように

# dnf swap kernel-headers kernel-ml-headers
# dnf swap ----allowerasing kernel-tools kernel-ml-tools

を実行。toolsのswap時に依存関係でkernel-ml-tools-libsも同時にswapされました。
 最後に再起動して新しいkernelで問題ないことを確認してから純正の古いkernelを削除してdnf updateで以下のパッケージをアップデートして完了です。

  • bpftool.x86_64 5.8.8-1.el8.elrepo
  • perf.x86_64 5.8.8-1.el8.elrepo
  • python3-perf.x86_64 5.8.8-1.el8.elrepo

 kernel 5.8.8にして数日がたちますが、再起動なしで運用し続けてますし、他のサービスに影響もなく今のところだいじょうぶそうです。これで1ヶ月とか以上、連続運用できるようになればいいのですが。