CentOS7からCentOS8にアップグレードする方法
CentOS7からCentOS8にアップグレードする利点
性能アップ
CPU等環境によりますが、CentOS7からCentOS8にアップグレードする事で性能がアップすると言われています。
実際DigitalOceanのStandard Plan 1CPU/1GB RAMでCPUがIntel(R) Xeon(R) Gold 6140 CPU @ 2.30GHzを引いた場合
CentOS 7.6ではどれだけUnixbenchをとっても477-605の範囲という成績でしたが
初めてCentOS 8にアップグレードした時に602→801(34%性能UP)、2回目には605→860(42%性能UP)という成績が出ました。
少なくともDigitalOceanでは無視してそのままCentOS 7を使うには大き過ぎる差です。
ただ、ここら辺は、CentOS7の特に新しい版では持続的にIntelのセキュリティ問題対策が入って、それが遅くなる方向に働いてた可能性もありますが。
アプリ更新の迅速化
CentOS 7以前では、付属アプリとOSの配布は一体という事で、OSのサポート期間10年に引きづられて、アプリが古いものになりがちでしたが、CentOS 8からは、OSのサポートとアプリのサポートを分離し、OSのサポートは10年だが、アプリの方は2-5年のサポートで、新しい版についていける形になっています。
サポート期限がより未来に
サポート期限がより未来になります。
CentOS 7=2024-06-30
CentOS 8=2029-05
より新しいソフト
バンドルされているソフトがより新しいバージョンになります。
ソフト | CentOS7.6 | CentOS8.0 |
---|---|---|
apache | 2.4.6 | 2.4.37 |
berkeleydb | 5.3.21 | 5.3.28 |
gcc | 4.8.5 | 8.2.1 |
git | 1.8.3 | 2.18.1 |
kernel | 3.10.0-957.27.2.el7 | 4.18.0-80.11.2.el8 |
mariadb | 5.5.64 | 10.3.11 |
nginx | – | 1.14 |
node.js | – | 10.16 |
Perl | 5.16.3 | 5.26.3 |
PHP | 5.4.16 | 7.2 |
PostgreSQL | 9.2.24 | 10.6 |
Python | 3.6.8 | 3.6 |
Ruby | 2.0.0 | 2.5.3 |
幾つかのツールが差し替え
yum => dnf
といった差し替えが行われています。
結論: 新規サーバー立ち上げるのならCentOS 8にアップグレードしよう
上記のメリットを考えると、2020/03時点でまだCentOS8を提供していないVPSもまだありますが(参考資料: 各VPSのOS更新対応順一覧)、ゼロからインスタンスを立ち上げる場合、こうしたメリットを考えると性能等の比較の結果としてCentOS7迄しか提供していないVPSを使いとなった場合、CentOS8で始めたいという方も多いのではないでしょうか。
最初からCentOS8対応のVPSを使うのがまず第一には楽な方法でしょう。
しかし、まだCentOS8対応してないVPSを使いたい場合には、自分でインストールする必要がありますが、残念ながらCentOS公式は7から8にアップグレードするツールを提供していません。
なので、ここでは自力でCentOS7から8にコマンドだけでアップグレードする手順を公開します。
CentOS7からCentOS8へアップグレードする手順
注意
既に使っているサーバーで実行する事はお勧めしません。
壊れる可能性はそれなりにあります。
新たにこれから立ち上げるサーバーなど、失敗して壊れても良い新しいサーバーでやる事をお勧めします。
以下の手順はDigitalOceanのStandardプランのCentOS7.6のインスタンスを0から立ち上げた状態で検証してあります。
コマンド
以下のコマンドをrootで打っていきます。
yum -y update; yum -y install epel-release; yum -y install yum-utils; yum -y install rpmconf; rpmconf -a;
rpmconf -aを打って聞かれる問いにはひたすらリターンキー
またコピペでコマンドを実行
# 下のURLのダウンロード先が無くなっていたらググって他にダウンロード出来る所を探して差し替えて下さい # C8URL=https://download.cloudlinux.com/cloudlinux/migrate/release-files/centos/8/x86_64/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm; package-cleanup --leaves; package-cleanup --orphans; yum -y install dnf; dnf -y remove yum yum-metadata-parser; rm -Rf /etc/yum; dnf upgrade -y; dnf -y upgrade $C8URL; dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm; dnf clean all; rpm -e `rpm -q kernel`; rpm -e --nodeps sysvinit-tools; dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync; dnf -y install kernel-core; dnf -y groupupdate "Core" "Minimal Install" --allowerasing;
以下のコマンド
cat /etc/redhat-release;
を打つと
CentOS Linux release 8.0.1905 (Core)
とCentOS 8にアップグレードされたことが確認できる情報が出てきます。
現在のkernelを確認
uname -a;
そうすると
Linux dev.sakuhindb.com 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
といった値が表示される。
カーネル更新の反映の為サーバーを再起動
shutdown -r now;
起動したらログインして再度
uname -a;
と打って確認
Linux dev.sakuhindb.com 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
kernelが3.xから4.xと大幅更新されている事が確認できました。
CentOS8へのアップデートが成功したので、他にもCentOS8のインスタンスを作りたい場合、Snapshotを取れるのなら、ここあたりでとって、snapshotからCentOS8を即座に立ち上げれるようにしましょう。