CentOS 8の移行を考える


* 2023/05/22 RHELクローンのMIRACLE LINUXが今後AlmaLinuxと協業することが発表されました。AlmaLinux10からは同じバイナリになると思われます。
[Publickey:RHELクローンOSのAlmaLinuxにMiracle Linuxが合流を発表。国内でAlmaLinuxのサポートも提供開始](https://www.publickey1.jp/blog/23/rhelosalmalinuxmiracle_linuxalmalinux.html)

# 1. CentOS終了問題

2020/12/08の「CentOSはCentOS Streamにシフトする」という発表から、関連の記事をいくつか書いてきた。後継として有力なAlmaLinuxがリリースされたこともあり、今後の選択肢を考えてみたい。

* [CentOSからCentOS Streamへ。CentOS終了の衝撃](https://qiita.com/yamada-hakase/items/1629d511ab4199d253b4)
* [CentOS終了に対する大ブーイングでRHELが一部無償になるらしい](https://qiita.com/yamada-hakase/items/9d03c156ceac31fde6c4)
* [Red Hat Developer Programに登録して最大16台までRHELを使おう](https://qiita.com/yamada-hakase/items/dc39d29fda693238d113)
* [AlmaLinuxを使ってみた（前編）](https://qiita.com/yamada-hakase/items/245da3df19e9334d041c) [（後編）](https://qiita.com/yamada-hakase/items/17b41d33e30232b69fe2)
* [CentOSからOracle Linuxへスクリプトで簡単に移行する](https://qiita.com/yamada-hakase/items/22fef96e6fa61dea6104)

# 2. 移行先の選択肢
現在使用しているCentOS 8を今後どのようにするかは、それぞれの価値観やプライオリティによって異なるだろう。考えられる選択肢を挙げてみた。

* CentOS Stream
* AlmaLinux
* Rocky LinuxやMIRACLE LINUXなどのCentOS後継ディストリビューション
* Red Hat Enterprise Linux
* Oracle Linux
* Ubuntu
* その他のLinux
* 各ベンダーが提供する有償のCentOS 8延長サポートを利用する
* 移行しない。システム更改まで塩漬け

# 3. 移行先を検討するうえでの観点

移行を検討するときの観点をいくつか紹介したい。

1. 今後アップデートパッケージは必要か？　必要、すぐに必要ないが将来に備えて必要、不要
1. 移行にかかるコストはどのくらいまで許容できるか（費用面と工数面の両方で）
1. 使用しているアプリケーションの移行難易度
1. 商用パッケージソフトを使用している場合、サポート対象OSになっているか否か
1. 現在CentOS 8を使用しているシステムのEOL時期
1. 求められるOSの安定性（正直言って使ってみないと分からないのが悩ましい）
1. AlmaLinuxなどの新しいRHEL互換ディストリビューションに移行するときは今後の継続性
1. ベンダーによるテクニカルサポートの要否
1. クラウドで利用している場合は今後の対応

一つの考えとしては、エンタープライズであるか否かである。エンタープライズ系のシステムはアップデートに慎重なことが多く、それがDMZ以外のサーバーとなればなおさらである。多くのシステムは年に多くても1，2回程度。もしくはクリティカルなバグが報告されたときだけということが多いのではないだろうか。

筆者は、RHELのような安定性を目指したディストリビューションならば

**「バンバン上げてしまえ派（笑）」**

なのだが、商用パッケージソフトウエアや物理サーバー（HWベンダ提供のドライバがヤバイ）が絡むと、少しは慎重になる。

ほとんどアップデートしないならば、このまま塩漬けにして、必要になったときに「有償のCentOS 8延長サポート」を使う方法もあるだろう。

逆に、そこまでセンシティブに考えないシステムならば、CentOS Streamに乗り換えるのも有力な選択肢だ。少なくとも開発が止まることはないだろうし、そこそこの安定性は期待できるからだ。

とはいえ、CentOS Streamのポジショニングを十分に理解したうえで選択してほしい。世の中のブログや記事のなかには「あまり考えていないのでは？」と思うものもあるからだ。

また、AlimaLinuxやOracle Linuxなどの、無償で利用できるRHEL互換ディストリビューションを選択肢とする人もいるだろう。

CentOS 8のサポート期限は2021/12/31までだ。それまでにCentOS StreamやAlmaLinuxなどの動向を見て、総合的に最適な選択先を考えたい。少なくともエンジニアならば、結果として当たるかハズレるかは別にして、しっかり考えた根拠を用意したい。

# 4. 独断と偏見のコメント

独断と偏見で、それぞれの選択肢をエンタープライズの視点で比較してみた。個人利用や個人事業主利用は、自己責任で考えることなので考慮していない。「不安要素・マイナス点」は挙げると切りが無いので、それぞれで端的な一部を書いている。

| 選択肢 | サブスクリプション/ライセンス | 有償サポート | 移行方式 | 不安要素・マイナス点 |
|:-:|:-:|:-:|:-:|:-:|
| CentOS Stream  | 不要  | サードパーティによる有償サポートあり(推測) | リポジトリの差し替えだけで簡単  | 安定性は高いと思われるがウォッチは必要。商用パッケージはおそらくサポートされない。上司や顧客を納得させられるか |
| AlmaLinux  | 不要  | サードパーティによる有償サポートあり(推測) | 移行ツールあり(almalinux-deploy)  | 新しいディストリビューションなのでウォッチが必要  |
| AlmaLinux以外のCentOS後継ディストリビューション(Rocky LinuxやMIRACLE LINUXなど)  | 未定 | 未定   | 未定    | ― |
| Red Hat Enterprise Linux  | 必要 | サブスクリプションに含まれる  | 移行ツールあり(Convert2RHEL) | サブスクリプションが必要で、RHエンタープライズ契約に取り込まれる |
| Oracle Linux  | 不要だが、有償サポートユーザーだけが利用できる機能がある | Oracleによる有償サポートあり  | 移行ツールあり(centos2ol.sh) | Exadataにも使われているので安定性は高いはずが、あとは宗教の問題 |
| Ubuntu  | 不要  | 有償サポートあり | 完全なリプレイスが必要 | 少し慣れが必要。既存アプリや運用ドキュメントがある場合には動作検証や修正が必要。商用パッケージはあまり対応していない。LTSでもRHELと比べるとサポート期間が短い |
| その他のLinux  | 未定  | 未定 | 未定 | ― |
| 各ベンダーが提供する有償のCentOS 8延長サポートを利用する  | 不要  | 必要  | 移行不要  |  サポート費用次第 |
| 移行しない。システム更改まで塩漬け  | 不要  | 不要 | 移行不要 | クリティカルなバグが出たときには、何らかの方策が必要 |

# 5.商用ディストリビューションのメリットも理解しておこう
個人利用の場合、費用に敏感になるのは仕方ないとして、SIerが関わるエンタープライス系のシステムでは、以下の理由で商用ディストリビューションを使用することが多い。

* 技術サポートの提供（言葉は悪いが、誰か尻拭いしてくれる人がいる）
* 使用するパッケージソフトウェアのサポート対象環境になっているか（日本の大企業ではJP1やSystemwalker、WebSAMなどのミドルウェアを使うことが多く、サポート対象となるOSが限られる）

自身がエンドユーザーで、十分なサポート能力を持ち、さらに自身でリスクヘッジできるような企業（利用者）の場合には、この限りではないが、商用ディストリビューションに安心感があることは否めないだろう。

また、機能的にも便利な機能がいくつかある。Linuxディストリビューションによって異なるが、いくつか紹介しよう。いろいろなことを理解したうえで総合的に判断したい。

**必要最小限のアップデートパッケージを適用できる**

安定稼働を目指しているシステムでは、パッチは適用しないか、適用しても最小限にしたい。そのようなときに便利なのが、レベル指定可能なパッチ適用機能だ。この機能は、非商用ディストリビューションでは使えないことが多い。

```shell-session:重要度に応じたパッチ適用
yum update --security
yum update-minimal --sec-severity=critical,important --bugfix -y
```

この機能が使えるかどうかは、以下のコマンドで判断できる。最新パッケージを適用済み環境では表示されないが、このように表示されるときにはアップデート情報が提供されている。

```shell-session
$ yum updateinfo list
ALBA-2021:1099 bugfix         NetworkManager-1:1.26.0-14.el8_3.x86_64
ALBA-2021:1099 bugfix         NetworkManager-libnm-1:1.26.0-14.el8_3.x86_64
ALBA-2021:1099 bugfix         NetworkManager-team-1:1.26.0-14.el8_3.x86_64
ALBA-2021:1099 bugfix         NetworkManager-tui-1:1.26.0-14.el8_3.x86_64
ALSA-2021:1093 Important/Sec. bpftool-4.18.0-240.22.1.el8_3.x86_64
```

**ナレッジベースの提供**
技術サポートが便利なのは当然として、有償サポートユーザー向けのナレッジベースには有用な情報が多い。利用者が多いほど蓄積が多く、参考になることが多い。

またネットの野良情報と比べて当然信頼性は高い。また、内容に疑念があれば問い合わせて真偽を確認すればよい。

**便利ツールの提供**
各Linuxディストリビューションベンダーが、さまざまなツールを提供している。代表的なものをいくつか紹介する。

RHELを使っているならばRed Hat Insightsは知っておきたい。いままで別途有償で提供されていたものだが、現在はサブスクリプションで使えるようになっている。また、アップデートパッケージを集中管理できるRed Hat Satelliteも便利だ。

近頃少なくなったが

**企業のサーバーはインターネットに接続できないことが多いのでyum/dnfは使えない**

などという、トンでも発言に出会うことがある。Red Hat Satelliteでローカルリポジトリを構築できるので、そのような環境にも対応できる。

Oracle LinuxにもRed Hat SatelliteのクローンであるSpacewalkが利用できる。Oracle Linuxで特徴的なのは再起動不要のダイナミックパッチングシステムのOracle Kspliceだろう。RHELにもkpatchはあるが、Kspliceほど簡単ではない。


**ベンダー情報**

* [Red Hat Enterprise Linux](https://www.redhat.com/ja/technologies/linux-platforms/enterprise-linux)
* [Oracle Linux](https://www.oracle.com/jp/linux/)
* [Ubuntu Advantageエンタープライズ向けサポート](https://jp.ubuntu.com/enterprise-support)