VPS

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


より新しいソフト

バンドルされているソフトがより新しいバージョンになります。

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を即座に立ち上げれるようにしましょう。

その他関連記事

  1. CentOS後継のAlmaLinuxへの移行方法(RHEのforkとしてのCentOS8から移行)
  2. VPSの新OS更新対応速度順一覧