Fedora/CentOS Stream/CentOS/RHELの関係性

(注) 本記事は、Software Design 2020年6月号に掲載された「月刊Fedora Journal」初出の記事に修正を加えたものです。

Red Hat ソリューションアーキテクトの小島です。

Fedora系列の主要なLinux Distributionとしてよく名前が挙げられる、Fedora, CentOS, RHELに加えて、2019年9月に発表された新しいDistributionであるCentOS Streamの特徴や関係性をご紹介します。

Fedora系列の主要なLinux Distribution

Fedora、CentOSはRed HatがスポンサーをしているOSSコミュニティのプロジェクトで開発されている非商用のLinux Distributionであり、Red Hat Enterprise Linux (RHEL, 通称れる)はRed Hatが開発している商用のLinux Distributionです。さらに2019年9月には、RHEL 8.1などのRHELのマイナーリリースのローリングリリースに相当するCentOS Streamを提供開始することが、Red HatとCentOS Projectから発表されています。これら4つのLinux Distributionの開発プロセスは密接な関係性があり、下記がそのイメージです。

f:id:h-kojima:20200723174247p:plain

これらのLinux DistributionはUpstreamとして開発されている数多のOSSプロジェクトの成果物を直接的または間接的に取り込んでいるのと同時に、OSSのユーザや開発者の修正リクエストの受け皿ともなっています。このうち、Red Hatが開発に関わっているFedora/CentOS Stream/RHELについては、修正リクエストをもとにUpstreamとなるOSSプロジェクトで適宜開発を行い、それらの成果物をDownstreamとなるOSSまたはDistributionに取り込んでいくといった開発サイクルを回しています。これらのDistrubitionは用途がそれぞれ異なるので、ユーザや開発者は自身のユースケースに応じて、どれを利用するか選択することになります。以降は、各Linux Distributionの特徴を紹介していきます。

Fedora

FedoraはRHELのベースとして開発されている非商用のLInux Distributionであり、Red Hatが開発支援をしているFedora Projectによって開発・提供されています。元々Red HatがRed Hat Linux(リリース当初はRed Hat Software LinuxやRed Hat Commercial Linuxといった名前が付いていたこともあります)という名前で無料でダウンロード・利用可能なOSとして提供していたものを、商用のLinux DistributionとしてRHELをリリースする際に、当時大学生で元Red Hat社員でもあるWarren Togamiが設立したFedora Linux Projectと、Red Hat Linux ProjectをマージしてできたものがFedora Projectとなります。

Fedora Projectは、Upstreamで開発されている先進的な機能を開発・テストするためのプロジェクトとして位置づけられています。そのため、FedoraはRHELよりもソフトウェアのライフサイクルが短くなっています。例えば、Fedora 28はRHEL 8のベースとなっていますが、RHEL 8のkernelは4.18系を使っているのに対し、Fedora 28はFedora 29がリリースされるまでの間に4.16から4.18に、その次のFedora 29に至ってはFedora 30がリリースされるまでに4.18から5.0にバージョンアップしています。まさに開発者のためのLinux Distributionとも言えます。

Fedora Projectで開発・提供しているFedoraについては、ユースケースごとに用意された様々なEditionがあります。その中でも、FedoraのOfficial Editionとして位置づけられているものが、WorkstationとServerになります。

  • Workstation: ノートPCやデスクトップ用途に提供しているEditionです。GNOME、Libreoffice、開発ツールなど業務に利用するためのソフトウェアがデフォルトで組み込まれています。Live ISOファイルを提供しているためUSBデバイスなどを利用したインストールが比較的容易です。
  • Server: サーバー用途に提供しているEditionです。Webブラウザによるサーバ管理を可能にするCockpitやドメイン管理に利用するFreeipaなどのソフトウェアを提供しています。

WorkstationとServerについてですが、よく利用されるであろうx86_64版については、実は同じソフトウェアを利用できます。Fedora WorkstationではCockpitなどのサーバ管理ツールを利用できますし、Fedora ServerでもLibreofficeなどのオフィス製品を利用できます。実際にFedora Workstationをインストールした後に、OSの種類やバージョンを確認するためのファイルの中身を表示すると、WorkstationやServerといったEditionの情報は記載されていないことが分かります。

$ cat /etc/redhat-release
Fedora release 31 (Thirty One)

便宜上WorkstationやServer用途と定義されたソフトウェアの導入をインストール時にカスタマイズしたい場合は、Fedora Everythingと呼ばれる全部盛りのEditionを利用するのもオススメです。Everythingでは、ネットワークインストール用に最小化されたサイズのISOファイルを提供しています。また、WorkstationとServerはARMv8(aarch64)版のソフトウェアも提供しているので、Raspberry Pi 3へのインストールも可能です。

その他のEditionでは、Red Hatが提供するコンテナプラットフォームであるOpenShiftの専用OSとなる、RHEL CoreOSのベースとして開発されるFedora CoreOS、flatpakやrpm-ostreeという技術を用いてデスクトップ上でイミュータブルなインフラストラクチャを構築するためのFedora Silverblue、同じくrpm-ostreeを用いてAI/ML/IOT用途に特化したソフトウェア構成を提供するFedora IoTがあります。これらのEditionのうち、Fedora CoreOSとFedora Silverblueについては、2020年7月時点においてSoftware Designに連載中の「月刊Fedora Journal」の中で随時紹介していく予定です。

Fedora ProjectによるFedoraのコミュニティサポートについてですが、Fedoraのメジャーリリースが提供されてからおよそ13ヶ月の間メンテナンスを実施すると定義しています。より正確に表現すると、Fedoraのメジャーリリースが出てから2つ後のメジャーリリースが出て1ヶ月経つと(例えば31の場合だと、33が出てから1ヶ月後)、ソフトウェアのアップデートを提供を止めてEnd of Life(EOL)を迎えます。ちなみに、Fedoraのメジャーリリースはおよそ半年に1回の頻度で提供される予定となります。メンテナンスが実施されている間は、Fedora Projectで情報取得やディスカッションをしたりRed Hat Bugzillaでソフトウェアの修正リクエストをしたり、パッチのプルリクエストを行ったりすることで、Fedora Projectのコミュニティに参加することができます。

CentOS Stream

CentOS Streamは、RHELの将来のマイナーリリース*1を想定した、RHELの開発ブランチのSnapshotとして提供されます。2020年7月時点ではRHEL8のみが対象となっています。これによりRHELのPublic Betaがリリースされるより先に、将来のマイナーリリースに対してコミュニティのユーザや開発者が無料でアクセスできるようになります。これは、Red HatによるIndependent Software Vendor (ISV)やIndependent Hardware Vendor (IHV)などに対してのソフトウェア/ハードウェア認定を取得しやすくなるような開発支援の1つとなります。CentOS StreamはFedoraやRHELと同様にRed Hat Bugzillaによりバグ追跡や修正リクエストを管理しますので、ISVやIHVがCentOS Streamを使って開発や自動テストを行った結果のフィードバックをBugzillaに登録し、Red Hatがそのフィードバックを適宜RHELに取り込んでRHELの最新のマイナーリリースとして提供する、といったエコシステムな開発モデルを構築しやすくなります。

CentOS Streamが誕生する前は、CentOS Projectを介してRHELに直接修正リクエストを投げる方法がなかったため、RHELのDownstreamであるCentOSで問題が見つかった場合、UpstreamであるOSSプロジェクトに修正依頼し、それを取り込んだRHELの修正が提供され、さらにそれをベースとしたCentOSの修正がリリースされるまで待たなくてはいけませんでした。CentOS Streamによって直接RHELに対して修正リクエストを投げるパスが増えたため、問題の修正対応が早くなるというメリットも生まれています。

CentOS Streamは、下記からダウンロードして利用できるようになっています。

www.centos.org

CentOS

CentOSについては従来どおりCentOS Projectによって開発・提供される、GA版のRHELのソースコードをベースとしたLinux Distributionとなります。CentOSは2004年に誕生して以来、CentOS Projectが独自に開発・提供してきましたが、OpenStackやKubernetes/OpenShiftなどのOSSコミュニティにRed Hatが提供する技術要素を利用してもらい、OSSコミュニティのイノベーションや開発速度を加速させることなどを目的として、2014年以降Red HatがCentOS Projectのスポンサーとなっています。なお、Red Hat BugzillaはCentOS用には利用できず、CentOS ProjectのメーリングリストCentOS Bug Trackerなどを介して開発コミュニティに参加することになります。また、CentOS StreamとCentOS、及び、CentOS StreamとCentOSのパッケージについては、Red Hatのサポートを提供していません。このうちCentOSについては、ベースとなるRHELのメジャーリリースの標準サポート期間とほぼ同等の期間、CentOS Projectがコミュニティサポートを提供しています。RHELのメジャーリリース及びマイナーリリースの延長サポートに相当するアップデートの提供は行っていません。

Red Hat Enterprise Linux (RHEL)

RHELはRed Hatが開発・提供している商用のLinux Distributionです。基本的には有償のRed Hatのサブスクリプションサービスを購入して、商用環境のOSとして利用することになります。RHELは1999年にリリースされたRed Hat Linux (RHL) 6.1を利用した、企業向けサポートプログラムの発表から始まり、RHL 7.2をベースとしたRHEL 2.1という名前で商用のLinuxとしてリリースしたのが起源になります。RHLはこの後もRHL 9までRed Hatが開発・提供していましたが、前述の通りFedora Linux Projectとマージされ、以降はRHELのUpstreamとしてFedoraという名前で開発*2されるようになりました。なお、Fedora ProjectやCentOS Projectが提供する無償のコミュニティサポートと違う点は次の通りです。

  • SLAに基づく、最大24時間365日対応のRHELサポートを提供
  • 特定のマイナー/メジャーリリースに対する延長サポートをオプションで提供
  • Red Hatのパートナー企業による認定ハードウェア/ソフトウェアのサポート

ここで言及している「サポート」は大きくまとめると、ライフサイクル期間が終了していないRHELのインストール/設定/利用中に何か問題が起こった場合のワークアラウンドやソフトウェア修正を、電話/チャット/サポートケース/カスタマーポータルを介して提供することを意味します。なお、Red Hatがサポート対象外と定義しているいくつかのソフトウェアや構成、Technology Preview機能の利用、及び、ソフトウェアの改変/設計/開発についてはサポート対象外となります。

Red Hatはパートナー企業とエコシステムを構築しており、RHELの動作認定を取得しているハードウェア、または、RHELの上で動作認定を取得しているソフトウェアについては、提供元のパートナー企業がサポートを提供することが可能です。また、24時間365日対応の「Premium」サブスクリプションを購入すると、特定のマイナーリリースに対する延長サポート(Extended Update Support, EUS)が無償で提供される他に、深夜にRHELのkernelをアップデートするので不測の事態に備えておいてほしいといったリクエストをするための、プロアクティブチケット(英語での対応のみ)を作成できるようになります。サポート内容についての詳細は、Red Hatのカスタマーポータルに記載されているサポート範囲やサポートポリシーなどのページをぜひ一度参照ください。

続けて、RHELに関連する主要なサービスをいくつかご紹介します。

Red Hat Insights

RHELの有償サブスクリプションを持っていると無料で利用できる、Red Hat InsightsというSaaS形態のサービスがあります。Red Hat InsightsはRHELを始めとするRed Hat製品の問題(RPMパッケージの脆弱性情報や設定情報の不備など)を未然に検知し、Red HatのWebサイト上で下記のようなHTMLベースのレポートを表示するサービスです。この問題を修正するためのAnsible PlaybookをInsights上で作ることもでき、Ansible Towerなどと連携して修正適応を自動化することもできます。Red Hat Insightsについては、概要の紹介ページや下記のブログ記事などもご参照ください。

f:id:h-kojima:20200723182441p:plain
Red Hat Insightsにより表示されるHTMLレポートのイメージ

www.redhat.com

Red Hat Developer

1ユーザ(共用不可)、1台のみ、ソフトウェア開発用途のみと用途は限定されますが、RHELの有償サブスクリプションの有無に関わらず、無償で提供しているRed Hat Developer Subscriptionという開発者用サブスクリプションもあります。Red Hat Developerに登録してRed Hat Developer Subscriptionを入手することで、RHELを始めとした様々なソフトウェアを無料で入手して利用したり、Red Hatのカスタマーポータルのナレッジベースにアクセスして製品導入に関するノウハウを習得できるようになります。

developers.redhat.com

Red Hat Universal Base Images (UBI)

RHELをベースにしたコンテナイメージであるUniversal Base Images (UBI)を、RHELの有償サブスクリプションの有無に関わらず、無償で提供しています。UBIはRHEL7とRHEL8をベースとしたコンテナイメージとして提供しており、UBIに関するEULAのもとに、UBIに独自ソフトウェアを追加して第3者へ配布できるため、Red HatがISVなどを支援する仕組みの1つとなっています。UBIを再配布する際には、Red Hat関連のソフトウェアについては、UBI専用のリポジトリによって提供されるソフトウェアだけをUBIに追加できるなどの制約がありますのでご注意ください。UBIは任意の環境で実行できますが、RHELやOpenShift環境の場合だと、コンテナの実行基盤からUBIの部分までRed Hatのサポート対象になります。そのため、UBIとRed Hat Developerの制度を利用すると、RHELを使った開発もしやすくなります。

UBIを始めとしたRHELの修正リクエストについては、Fedoraと同様にRed Hat Bugzillaで対応しています。有償のサブスクリプションを持っている場合、Red Hatのサポートチームを介してBugzillaにリクエストを登録できます。UBIの利用方法やQ&Aについては、以下の製品ドキュメントやRed Hat DeveloperのWebページを参照ください。

access.redhat.com

developers.redhat.com

まとめ

Red Hatが開発または開発支援をしている4つのLinux Distributionの特徴を紹介してきました。これらのLinux Distributionのうち、Fedora/CentOS Stream/RHELについてはRed Hatの「Upstream First」という開発ポリシーに準拠しているので、ユーザはRed Hatだけでなく世界中のOSSエンジニアの開発の恩恵を得ることができます。これらの特徴を考慮しながら、自身のユースケースに応じたLinux Distributionの利用をご検討ください。

*1:RHEL8.xなどを意味します。2020年7月時点では、RHEL8.2を最新のマイナーリリースとして提供しているため、現時点で「x」に入る数字は少なくとも「3」以上の数字になります。

*2:Fedora 6まではFedora Core, Fedora Extrasという2つのリポジトリがありましたが、7以降に統合されました。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。