CentOS 8は、2021年12月31日でサポートが終了します。
サーバーの運用を継続する場合は、移行先のOSディストリビューションを検討する必要があります。CentOS 8 移行先候補を実際に検討してみて最有力候補にマイグレーションを試してみた結果をお知らせします。
CentOS 8 移行先の有力な候補
- CentOS Stream
- Alma Linux
- Rocky Linux
CentOS Stream
AlmaLinux OS - Forever-Free Enterprise-Grade Operating System
https://rockylinux.org/ja/
CentOS 8 移行先候補の解説
- CentOS Stream
- オープンソース・コミュニティのメンバーが Red Hat の開発者と連携して Red Hat Enterprise Linux の開発プラットフォームです
- RHELのアップストリーム(Upstream)
- 従来のCentOS Linuxとは異なり RHELのダウンストリームではありません
- 商用環境としては、適切ではありません
- Alma Linux
- RHELのダウンストリーム(Downstream)
- CentOS Linux安定版リリースの廃止によって残されたギャップを埋める、オープンソースのコミュニティ主導のLinuxオペレーティングシステムです
- Rocky Linux
- RHELのダウンストリーム(Downstream)
- CentOSの創設者であるGregory Kurtzer氏が立ち上げたプロジェクトによる無償のRHELクローンです
従って、移行先の候補として、Alma LinuxあるいはRocky Linuxを選択することになります。
CentOS 8からの移行先として、最有力候補(筆者の私見?)であるRocky Linux 8 へのマイグレーションを試してみます。
公式の手順
公式の手順を参考にします。
- How to Migrate to Rocky Linux from CentOS Stream, CentOS, Alma Linux, RHEL, or Oracle Linux
Migrating To Rocky Linux - Documentation
事前確認
作業前に、OS情報(リリース・カーネル)を確認します。
# cat /etc/redhat-release
CentOS Linux release 8.4.2105
CentOS Linux release 8.4.2105
# uname -r
4.18.0-305.19.1.el8_4.x86_64
4.18.0-305.19.1.el8_4.x86_64
マイグレーション
それでは、マイグレーションを実施します。
- マイグレーションツールの取得
- マイグレーションツールの実行
マイグレーションツールの取得
ここでは、gitを利用したマイグレーションツールの取得をしています。
git clone https://github.com/rocky-linux/rocky-tools.git
取得したら、ツール「migrate2rocky.sh」に実行権限を付与します。
cd rocky-tools/migrate2rocky
chmod +x migrate2rocky.sh
chmod +x migrate2rocky.sh
以上で準備ができました。
マイグレーションツールの実行
では、マイグレーションツールをroot権限で実行します。
ここでは、sudoコマンドを利用します。
sudo ./migrate2rocky.sh -r
あとは、正常終了するのを待つだけです。
終了すると再起動を要求されますので、再起動します。
sudo shutdown -r now
マイグレーションツールの挙動解説
マイグレーションルールの実行中に出力されるメッセージから挙動を解説します。
Removing dnf cache
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.
Preparing to migrate CentOS Linux 8 to Rocky Linux 8.
- dnfキャッシュを削除
Determining repository names for CentOS Linux 8…..
Found the following repositories which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8 Rocky Linux 8
appstream appstream
baseos baseos
extras extras
CentOS Linux 8 Rocky Linux 8
appstream appstream
baseos baseos
extras extras
- CentOS 8のレポジトリーからRocky Linux 8のリポジトリーをマップ
Getting system package names for CentOS Linux 8……….
Found the following system packages which map from CentOS Linux 8 to Rocky Linux 8:
CentOS Linux 8 Rocky Linux 8
centos-logos-ipa rocky-logos-ipa
centos-backgrounds rocky-backgrounds
centos-gpg-keys rocky-gpg-keys
centos-logos rocky-logos
centos-indexhtml rocky-indexhtml
centos-linux-release rocky-release
centos-logos-httpd rocky-logos-httpd
centos-linux-repos rocky-repos
CentOS Linux 8 Rocky Linux 8
centos-logos-ipa rocky-logos-ipa
centos-backgrounds rocky-backgrounds
centos-gpg-keys rocky-gpg-keys
centos-logos rocky-logos
centos-indexhtml rocky-indexhtml
centos-linux-release rocky-release
centos-logos-httpd rocky-logos-httpd
centos-linux-repos rocky-repos
- マップされるシステムパッケージ名
Getting list of installed system packages.
We will replace the following CentOS Linux 8 packages with their Rocky Linux 8 equivalents
Packages to be Removed Packages to be Installed
centos-gpg-keys rocky-gpg-keys
centos-linux-release rocky-release
centos-linux-repos rocky-repos
Packages to be Removed Packages to be Installed
centos-gpg-keys rocky-gpg-keys
centos-linux-release rocky-release
centos-linux-repos rocky-repos
- CentOSLinux8パッケージを同等のRockyLinux8パッケージに置き換えます
In addition to the above the following system packages will be removed:
centos-linux-release
centos-linux-release
centos-linux-release
centos-linux-release
- 削除されるシステムパッケージ
Getting a list of enabled modules for the system repositories.
Excluding modules:
libselinux-python:2.8
Excluding modules:
libselinux-python:2.8
Found the following modules to re-enable at completion:
perl-IO-Socket-SSL:2.066
perl-libwww-perl:6.34
perl:5.26
perl-IO-Socket-SSL:2.066
perl-libwww-perl:6.34
perl:5.26
・完了時に再度有効にするモジュールの検出
Running dnf update before we attempt the migration.
- Rocky Linux 8にマイグレーションする前に、まずCentOS 8のアップデートが実施される
ここは注意が必要ですね。最新化したくない場合には、マイグレーションツールは使用できないことになります。しかし、Rocky Linux 8は、RHEL 8.4のダウンストリームなので、8.4よりも低いパッケージはありません。従って、マイグレーションツールを利用する場合も、Rocky Linux 8を新規導入しても、RHEL 8.4がベースとなることを認識しておく必要があります。
CentOS 8のアップデートのメッセージは省略します。
Complete!
- CentOS 8のアップデートが完了です
Added rockyappstream repo from https://dl.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/
Added rockybaseos repo from https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
Added rockybaseos repo from https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/
- ここからRocky Linux 8のレポジトリー関連の処理です
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
rocky-gpg-keys noarch 8.4-34.el8 rockybaseos 11 k
rocky-release noarch 8.4-34.el8 rockybaseos 20 k
rocky-repos noarch 8.4-34.el8 rockybaseos 13 k
Removing:
centos-gpg-keys noarch 1:8-3.el8 @baseos 3.3 k
centos-linux-release noarch 8.4-1.2105.el8 @anaconda 25 k
centos-linux-repos noarch 8-3.el8 @baseos 26 k
Package Arch Version Repository Size
================================================================================
Installing:
rocky-gpg-keys noarch 8.4-34.el8 rockybaseos 11 k
rocky-release noarch 8.4-34.el8 rockybaseos 20 k
rocky-repos noarch 8.4-34.el8 rockybaseos 13 k
Removing:
centos-gpg-keys noarch 1:8-3.el8 @baseos 3.3 k
centos-linux-release noarch 8.4-1.2105.el8 @anaconda 25 k
centos-linux-repos noarch 8-3.el8 @baseos 26 k
Transaction Summary
================================================================================
Install 3 Packages
Remove 3 Packages
================================================================================
Install 3 Packages
Remove 3 Packages
Complete!
- Rocky Linux 8のレポジトリーが導入され、CentOS 8のレポジトリ―が削除されました
Syncing packages
- CentOS 8で導入されていたパッケージについて、Rocky Linux 8のパッケージに同期されます
- その際、upgrade/reinstall/downgradeのパッケージに分類されて処理されます
Complete!
- パッケージ関連は完了です。
Generating grub configuration file …
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
Adding boot menu entry for EFI firmware configuration
done
BootCurrent: 0003
BootOrder: 0005,0003,0000,0001,0002,0004
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* EFI Internal Shell (Unsupported option)
Boot0005* Rocky Linux
Done, please reboot your system.
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 87564: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 3 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 4 (/dev/pts/0) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
File descriptor 5 (/var/log/migrate2rocky.log) leaked on vgs invocation. Parent PID 90515: /usr/sbin/grub2-probe
Adding boot menu entry for EFI firmware configuration
done
BootCurrent: 0003
BootOrder: 0005,0003,0000,0001,0002,0004
Boot0000* EFI Virtual disk (0.0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
Boot0002* EFI Network
Boot0003* CentOS Linux
Boot0004* EFI Internal Shell (Unsupported option)
Boot0005* Rocky Linux
Done, please reboot your system.
- grub関連とboot関連の処理も完了です
- 再起動を要求されます
A log of this installation can be found at /var/log/migrate2rocky.log
- マイグレーションツールのログファイルです
事後確認
再起動後に、OS情報(リリース・カーネル)を確認します。
cat /etc/redhat-release
Rocky Linux release 8.4 (Green Obsidian)
Rocky Linux release 8.4 (Green Obsidian)
uname -r
4.18.0-305.19.1.el8_4.x86_64
4.18.0-305.19.1.el8_4.x86_64
更にRocky Linux 8のレポジトリを確認しておきます。
ls -l /etc/yum.repos.d/
-rw-r–r–. 1 root root 700 11月 2 05:53 Rocky-AppStream.repo
-rw-r–r–. 1 root root 685 11月 2 05:53 Rocky-BaseOS.repo
-rw-r–r–. 1 root root 1753 9月 13 18:31 Rocky-Debuginfo.repo
-rw-r–r–. 1 root root 350 9月 13 18:31 Rocky-Devel.repo
-rw-r–r–. 1 root root 685 11月 2 05:53 Rocky-Extras.repo
-rw-r–r–. 1 root root 721 9月 13 18:31 Rocky-HighAvailability.repo
-rw-r–r–. 1 root root 680 9月 13 18:31 Rocky-Media.repo
-rw-r–r–. 1 root root 670 9月 13 18:31 Rocky-NFV.repo
-rw-r–r–. 1 root root 680 9月 13 18:31 Rocky-Plus.repo
-rw-r–r–. 1 root root 705 9月 13 18:31 Rocky-PowerTools.repo
-rw-r–r–. 1 root root 671 9月 13 18:31 Rocky-RT.repo
-rw-r–r–. 1 root root 736 9月 13 18:31 Rocky-ResilientStorage.repo
-rw-r–r–. 1 root root 2335 9月 13 18:31 Rocky-Sources.repo
-rw-r–r–. 1 root root 685 11月 2 05:53 Rocky-BaseOS.repo
-rw-r–r–. 1 root root 1753 9月 13 18:31 Rocky-Debuginfo.repo
-rw-r–r–. 1 root root 350 9月 13 18:31 Rocky-Devel.repo
-rw-r–r–. 1 root root 685 11月 2 05:53 Rocky-Extras.repo
-rw-r–r–. 1 root root 721 9月 13 18:31 Rocky-HighAvailability.repo
-rw-r–r–. 1 root root 680 9月 13 18:31 Rocky-Media.repo
-rw-r–r–. 1 root root 670 9月 13 18:31 Rocky-NFV.repo
-rw-r–r–. 1 root root 680 9月 13 18:31 Rocky-Plus.repo
-rw-r–r–. 1 root root 705 9月 13 18:31 Rocky-PowerTools.repo
-rw-r–r–. 1 root root 671 9月 13 18:31 Rocky-RT.repo
-rw-r–r–. 1 root root 736 9月 13 18:31 Rocky-ResilientStorage.repo
-rw-r–r–. 1 root root 2335 9月 13 18:31 Rocky-Sources.repo
まとめ
マイグレーション作業は、公式のマイグレーションツールが用意されており簡単ですね。
しかし、以下の点は注意が必要です。
dnf以外で導入しているソフトウェアには対応していないこと。