CentOS Stream はどのような利用・運用ができるか?
CentOS Streamとは何か?
2020年12月、CentOS Project が、 Red Hat Enterprise Linux 8 をリビルドした CentOS Linux 8 の開発を停止し、今後は CentOS Stream の開発にフォーカスすると発表しました。この時、CentOS Linux 8 の EoL (End-Of-Life) 後の選択肢として、 CentOS Stream 8 へのマイグレーションを推奨したこともあり、注目されています。
CentOS Stream は2019年9月に CentOS Linux 8 がリリースされた際に同時にリリースされた、ローリングリリースモデルを採用した従来とは違った目標を持つディストリビューションです。
CentOS Linux 8 との違いなどについては、当ブログの過去記事でも解説しています。
CentOS 8 EoL 変更と CentOS 8 Stream との違い、影響について - みらくるブログ
この記事では、CentOS Stream と従来の CentOS Linux の違いを、とりわけ使い方の面から改めて整理・解説し、どのような利用法・運用では CentOS Stream がマッチするのかというユーザー像の考察とQ&Aを載せます。
Streamではない CentOS との違いは何があるか?
いくつかの観点で特徴的な違いがあります。
- リリースモデル
- CentOS Stream は Red Hat Enterprise Linux(RHEL) のアップストリームのディストリビューションとしてリリースされます。
- ローリングリリースモデルを採用しています。
- サポート期間
- CentOS Stream は Red Hat Enterprise Linux の フルサポート期間(Full-support term) と同じ期間まで更新されます、例えば CentOS Stream 8 のサポート期間は2024年5月31日です。CentOS Stream 8 のサポート終了後(RHEL 8 のメンテナンスサポート期間突入後)、CentOS Stream 8 へのパッケージの更新は行われません。
- RHELとコミュニティのコラボレーション
- 2004年に最初のCentOS Linux がリリースされてから、CentOS Streamがリリースされるまで、 CentOS Project は 開発コミュニティによって RHEL から(主に)商標の除去・置き換え処理などを行ったパッケージをリビルドしたディストリビューションをリリースするプロジェクトでした。RHELにほぼ完全に合わせてリビルドする場合、ダウンストリーム側に立つディストリビューションは独自に機能変更をする余地はあまりありません。CentOS Stream はリリースモデルを変更し上流(アップストリーム)側になったため、ユーザーからのバグ報告やパッチ投稿を受け付けたり、開発の方向性について意見を取り入れることが容易になったという点で異なります。そのため RHEL の開発プロセスが一部オープン化し、外部のユーザーが開発に参加できるようになっています。
- リリース物の可用性
- ミラーリポジトリを調査する限り、CentOS StreamではパッケージやISOは最新のリリースのみが利用できます。もし古いバージョンのパッケージが必要になったとき、リポジトリからダウンロード可能とは限らないため、必要なら定期的にリポジトリのスナップショットを作成するなど、ユーザー自身が保全をする必要があるでしょう。
どのような運用に向いているか?
以下のような利用目的で使う・運用できるユーザーは CentOS Stream に向いています
- 日常的に最新パッケージへ更新できるユーザー
- ローリングリリースされるディストリビューションを使用することを楽しめるユーザー
- CentOS Stream を 開発するソフトウェアの CI 環境として用いるユーザー
- プロダクション環境の CI/CD が整っており、問題が起きたときにロールバックできるユーザー
- RHEL の次期バージョンの機能を試したり、存在するかもしれないバグを予め踏んでおきたいユーザー
- RHEL の開発に外部から参加したり、リリースが行われる前にフィードバックやQA(品質保証)を自ら行いたいユーザー
どのような運用は向いていないか?
以下のような運用をしたいユーザーは CentOS Stream に向いていません
- RHEL と完全にバージョンが一致する(対応する)パッケージが必要なユーザー
- 以前インストールした環境を後から完全に再現したいユーザー
- 2024年以降も運用する場合、CentOS Stream 8 からの CentOS Stream 9への移行計画を予定していないユーザー
- 事前に個々のRHELのマイナーバージョン相当向けに動作検証を行ってからデプロイを行いたいユーザー
- ISOやYUM(DNF)リポジトリに何らかのQAが必要で、ローリングリリースでは困るユーザー
- ローリングリリースで日々行われる変更に、わずかながら不安定な要素が含まれるリスクを許容できないユーザー
Q&A
- CentOS StreamはRHELのリビルドとして利用できますか?
- いいえ、リリースモデルが違うためリビルドとしては利用できません。クローンでもありません。
- CentOS StreamはRHELのマイナーバージョンリリースに合わせてインストール ISO や 仮想マシン・コンテナイメージがリリースされていますか?
- いいえ、CentOS Stream はローリングリリースになっているため、RHEL のマイナーリリースとは関係なく、月によっては高い頻度でこれらのファイルがリリースされています。[1]
- CentOS Stream は RHELと同等のサポート期間がありますか?
- ありません。フルサポート期間の終了後、パッケージのアップデートは提供されないでしょう。CentOS Stream 8 なら、パッケージの更新がされるのは 2024年5月31日までです。
- CentOS Stream は Red Hat社からの商用の技術サポートを受けられますか?
- 知る限り、そのようなサービスは提供されておらず、今後も提供されないでしょう。これは今までのCentOS Linux でも同様でした。
- CentOS Stream は RHEL と 1対1(1:1) でバージョンが対応するパッケージがリリースされていますか?
- いいえ、されていません。なぜならCentOS Streamでリリースされたのと同じバージョンのパッケージがRHELでもリリースされる保証はなく、特にセキュリティアップデートでは通常とは異なるフローで修正をパッチングしたパッケージがリリースされているからです。結果として、偶然対応することはあっても、常に一致する保証はありません。
- CentOS Streamをプロダクション環境で採用している例はすでにありますか?
- 大手SNSを運営する Facebook 社 は CentOS Stream から派生したOSをすでに数百万台のサーバーで動かしているとのことです。[2]
- CentOS Stream は バグ報告やパッチ投稿をどのように受け付けていますか?
- バグ報告は https://bugzilla.redhat.com/ で、パッチ投稿は https://gitlab.com/redhat/centos-stream から受け付けています。
- https://wiki.centos.org/Contribute/CentOSStream
- CentOS Streamでソフトウェアをビルドして、ビルドしたバイナリをRHELや他の派生ディストリビューションで動作させることはできますか?
- 動作する可能性もありますが、一般的に言って、このようなビルド方法はお勧めできません。技術的には互換性が問題にならないように機能させれば、他のディストリビューションでビルドしたバイナリも動作可能ですが、CentOS Stream は RHELよりも先にパッケージが更新されます。その更新には互換性[3]が切り替わるようなアップデートも含まれ、アップデートはしばらくの間 CentOS Streamでのみ利用可能になるでしょう。他にもカーネルモジュールのような特定バージョンのカーネルの中で動くことを前提とするソフトウェアは非互換性の影響を強く受けやすいなどの問題があります。
- 結局のところ CentOS Stream は CentOS Linux とまったく異なるということですか?
- 著者の見解ですが、はい、そうです。リリースモデルがまったく異なるため、ディストリビューションとしても異なります。運用方法にもよりますが、いままでと同じ運用はできないと考えてよいです。一方、ローリングリリースのディストリビューションを採用することにより、素早くアップデートを適用したり、開発に外部から参加できることをメリットとして享受できるユーザーにはお勧めできます。
注釈及び参考資料
[1]:
Wiki: https://wiki.centos.org/FAQ/CentOSStream#What_artifacts_are_built.3F
ISO: http://ftp.riken.jp/Linux/centos/8-stream/isos/x86_64/
https://mirrors.oit.uci.edu/centos/8-stream/isos/x86_64/
仮想マシンイメージ: https://cloud.centos.org/centos/8-stream/x86_64/images/
コンテナレジストリ: https://quay.io/repository/centos/centos?tag=stream8&tab=tags
[2]:
CentOS Stream: Building an innovative future for enterprise Linux https://www.redhat.com/en/blog/centos-stream-building-innovative-future-enterprise-linux
CentOS Stream at Facebook - DevConf.CZ 2021 https://www.youtube.com/watch?v=K8x4CIetnCc
Hyperscalers SIG introduction -- Davide Cavalca https://www.youtube.com/watch?v=Kg7FqVGaZxs
[3]: 例えば 広義のABI(Application Binary Interface)互換性などです。共有ライブラリのアップデートの中には、sonameのバージョンが上がりバイナリレベルでのインターフェイスが切り替わるケースが存在します。
その他
FAQ: CentOS Streamアップデートについて https://www.redhat.com/ja/blog/faq-centos-stream-updates
Software Design 2021年3月号 月間Fedoraジャーナル 第10回 https://gihyo.jp/magazine/SD/archive/2021/202103
「Linux」は、Linus Torvalds氏の米国及びその他の国における、登録商標または商標です。
その他会社名及びロゴ、製品名などは該当する会社の登録商標または商標です。
また記事の内容やQ&A は著者が執筆時点で一般に公開された資料を調査した限りの見解であり、一部 引用を除いて Red Hat社やCentOS Project の公式見解ではなく、文責は著者にあります。
Author: サイバートラスト株式会社 OSS・IoT事業部 Linuxエバンジェリスト・シニアエンジニア 弦本 春樹(Haruki TSURUMOTO)
関連記事
変更履歴
本記事に関連するリンク
CentOS 8 が 2021 年末メンテナンス終了!対策は大丈夫? ~ CentOS 8 メンテナンス終了救済サービス ~