RHEL 8 へのアップグレード

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8 へのインプレースアップグレードのガイド

Red Hat Customer Content Services

概要

本書は、Leapp ユーティリティーを使用した、Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 へのインプレースアップグレードを実行する方法を説明します。既存の RHEL 7 オペレーティングシステムは、インプレースアップグレード時に RHEL 8 バージョンに置き換えられます。

第1章 要件および制限事項

1.1. 要件

RHEL 8 へのインプレースアップグレードは、現在、次の要件を満たすシステムでのみサポートされています。

1.2. 既知の制限

重要な既知の制限には、以下のようなものがあります。

  • Leapp ユーティリティーには、最後に確認されている正常な状態へのロールバックが実装されていませんが、システムパーティションの LVM スナップショットで起動できるように、BOOM ブートマネージャーを使用することはできます。詳細は「What is BOOM and how to install it?」および「How to create a BOOM boot entry」を参照してください。
  • Minimal (@minimal) または Base (@base) のパッケージグループに含まれていないパッケージにより、アップグレードが失敗する場合があります。その場合は、BOOM を使用することが推奨されます。
  • 現在、インプレースアップグレードの対象となるシステムでは、ディスク、LPM、またはファイルシステムの暗号化を使用できません。
  • マルチパスやネットワークストレージマウント (iSCSI、FCoE、NFS など) を、システムのパーティションとして使用することはできません。
  • Leapp ユーティリティーは、アップグレードプロセス時に SELinux モードを Permissive に設定し、ファイアウォールを無効にします。
  • OS、Red Hat Software Collections、Red Hat Developer Tools、またはアドオン (High Availability、Network Function Virtualization など) で実行しているその他の Red Hat 製品に対するサポートは、現在提供されていません。
  • システムに、ftype=0 (RHEL 7.2 以前のバージョンでのデフォルト) で XFS にフォーマットされた rootfs がある場合は、システムに多くのパッケージがインストールされていると、RPM アップグレートランザクションの計算が失敗します。ftype の値を確認するには、xfs_info コマンドを使用してください。
  • 別のパーティションにマウントした /var ディレクトリーを使用したインプレースアップグレードは対応していません。

「既知の問題」も併せて参照してください。

第2章 アップグレードに向けて RHEL 7 システムの準備

この手順では、Leapp ユーティリティーを使用して RHEL 8 へのインプレースアップグレードを実行する前に必要な手順を説明します。

前提条件

手順

  1. システムが、Red Hat Subscription Manager を使用して適切にサブスクライブされていることを確認します。
  2. Red Hat Enterprise Linux Server サーバーのサブスクリプションが割り当てられていることを確認します。

    1. Red Hat Enterprise Linux Server サブスクリプションをシステムに自動的に割り当てます。

      # subscription-manager attach --auto
    2. RHEL サーバーにサブスクリプションが割り当てられていることを確認します。

      # subscription-manager list --installed
      +-------------------------------------------+
          	  Installed Product Status
      +-------------------------------------------+
      Product Name:  	Red Hat Enterprise Linux Server
      Product ID:     69
      Version:        7.6
      Arch:           x86_64
      Status:         Subscribed
  3. アップグレードの出発点として、RHEL 7.6 のバージョンを設定します。

    # subscription-manager release --set 7.6
  4. yum-plugin-versionlock プラグインを使用して、パッケージを特定バージョンにロックする場合は、次のコマンドを実行してロックを解除します。

    # yum versionlock clear

    詳細は「指定したバージョンのパッケージ (または指定したバージョン以前のパッケージ) だけをインストールまたはアップグレードできるように yum の使用を制限する方法 」を参照してください。

  5. すべてのパッケージを最新バージョンに更新します。

    # yum update
  6. システムを再起動します。

    # reboot
  7. 依存関係が利用可能な Extras リポジトリーを有効にします。

    # subscription-manager repos --enable rhel-7-server-extras-rpms
  8. Leapp ユーティリティーをインストールします。

    # yum install leapp
  9. ナレッジベースの記事「Data required by the Leapp utility for an in-place upgrade from RHEL 7 to RHEL 8」に添付されている追加の必須データファイル (RPM パッケージの変更および RPM リポジトリーマッピング) をダウンロードして、/etc/leapp/files/ ディレクトリーに保存します。
  10. (SaltChefPuppetAnsible などの) 設定管理を無効にしているか、元の RHEL7 システムを復元しないように適切に再設定していることを確認します。
  11. システム全体のバックアップまたは仮想マシンのスナップショットが存在することを確認してください。これにより、ご利用の環境で、以下の標準の災害復旧手順に従って、システムをアップグレード前と同じ状態に戻せるようになります。

第3章 RHEL 7 から RHEL 8 へのアップグレードの実行

この手順は、Leapp ユーティリティーを使用して RHEL 8 へアップグレードする方法を説明します。

前提条件

手順

  1. RHEL 7 システムで、アップグレードプロセスを開始します。

    # leapp upgrade

    このフェーズでは、Leapp ユーティリティーが、システムに関するデータを収集し、アップグレードの可能性を調べ、アップグレード前レポートを /var/log/leapp/leapp-report.txt ファイルに生成します。

    システムをアップグレードできる場合は、Leapp が必要なデータをダウンロードし、アップグレード用の RPM トランザクションを作成します。

    システムで、信頼できるアップグレードの設定要因が満たされていない場合は、Leapp がアップグレードプロセスを中止し、問題を説明する記録と、推奨される解決策を /var/log/leapp/leapp-report.txt ファイルに出力します。詳細は5章トラブルシューティングを参照してください。

  2. システムを手動で再起動します。

    # reboot

    このフェーズでは、RHEL 8 ベースの初期 RAM ディスクイメージ initramfs にシステムを起動します。Leapp がパッケージをすべてアップグレードして、自動的に RHEL 8 システムを再起動します。

    失敗した場合は、5章トラブルシューティング の説明に従ってログを調べてください。

  3. 以下のアップグレード後タスクを実行します。

    1. RHEL 8 システムにログインします。
    2. SELinux モードを Enforcing に変更します。

      • たとえば、ausearch ユーティリティーを使用して Permissive モードから切り替える前に、SELinux による拒否がないことを確認してください。詳細は5章トラブルシューティングを参照してください。
      • SELinux を Enforcing モードで有効にします。

        # setenforce 1
    3. ファイアウォールを有効にします。

      # systemctl start firewalld
      # systemctl enable firewalld

      詳細はUsing and configuring firewallsを参照してください。

    4. 4章RHEL 8 システムのアップグレード後の状態の確認に従って、システムの状態を確認します。

第4章 RHEL 8 システムのアップグレード後の状態の確認

この手順は、RHEL 8 へのインプレースアップグレード後に実行が推奨される手順を紹介します。

前提条件

手順

アップグレードが完了したら、システムが必要な状態になっていることを確認します。少なくとも以下の確認を行います。

  • 現在のオペレーティングシステムのバージョンが Red Hat Enterprise Linux 8 であることを確認します。

    # cat /etc/redhat-release
    Red Hat Enterprise Linux release 8.0 (Ootpa)
  • オペレーティングシステムのカーネルバージョンを確認します。

    # uname -r
    4.18.0-80.el8.x86_64

    .el8 が重要です。

  • 正しい製品がインストールされていることを確認します。

    # subscription-manager list --installed
    +-----------------------------------------+
        	  Installed Product Status
    +-----------------------------------------+
    Product Name: Red Hat Enterprise Linux for x86_64
    Product ID:   479
    Version:      8.0
    Arch:         x86_64
    Status:       Subscribed
  • ネットワークサービスが機能していることを確認します。たとえば、SSH を使用してサーバーに接続します。

第5章 トラブルシューティング

本章では、トラブルシューティングに使用するリソースおよびヒントを紹介します。

5.1. トラブルシューティングのリソース

コンソールの出力

デフォルトでは、エラーおよび重要なログレベルメッセージだけが Leapp ユーティリティーによりコンソールに出力されます。ログレベルを変更するには、leapp upgrade コマンドで --verbose オプションまたは --debug オプションを使用してください。

  • Leapp は、verbose モードでは情報、警告、エラー、および重要なメッセージを出力します。
  • Leapp は、debug モードではデバッグ、情報、警告、エラー、および重要なメッセージを出力します。

ログ

  • /var/log/leapp/dnf-debugdata/ ディレクトリーには、トランザクションのデバッグデータが含まれます。このディレクトリーは、Leapp--debug オプションを使用して実行した場合に限り表示されます。
  • /var/log/leapp/leapp-upgrade.log ファイルには、initramfs フェーズで見つかった問題が記載されます。
  • journalctl ユーティリティーで、完全なログが提供されます。

レポート

  • /var/log/leapp/leapp-report.txt ファイルには、アップグレード前のフェーズで見つかった問題が記載されます。

5.2. トラブルシューティングのヒント

アップグレード前のフェーズ

  • システムが、1章要件および制限事項に記載される条件をすべて満たしていることを確認してください。たとえば、/boot パーティションに十分な空き領域があるかどうかを確認するには、df -h コマンドを使用します。
  • /var/log/leapp/leapp-report.txt ファイルのアップグレード前のレポートを調べて、問題と、推奨される解決策を特定します。
  • RPM パッケージのダウンロード中に問題が発生した場合は、/var/log/leapp/dnf-debugdata/ ディレクトリーにあるトランザクションデバッグデータを調べてください。

initramfs フェーズ

  • このフェーズでは、潜在的な失敗により dracut シェルにリダイレクトされます。ジャーナルを確認してください。

    # journalctl

    あるいは、reboot コマンドを実行して、dracut シェルからシステムを再起動し、/var/log/leapp/leapp-upgrade.log ファイルを確認します。

アップグレード後のフェーズ

  • 一見、システムが正常にアップグレードしていても、古い RHEL 7 カーネルでシステムが起動する場合は、システムを再起動して、GRUB でデフォルトエントリーのカーネルバージョンを確認します。
  • 4章RHEL 8 システムのアップグレード後の状態の確認で推奨される手順に従ってください。
  • SELinux を Enforcing モードに切り替えてから、アプリケーションやサービスが停止したり、適切に動作しなかったりした場合は、ausearchjournalctldmesg のいずれかのユーティリティーで、サービスの拒否を検索します。

    # ausearch -m AVC,USER_AVC -ts recent
    # journalctl -t setroubleshoot
    # dmesg | grep -i -e selinux -e type=1400

    最も一般的な問題は、ラベルが間違っていることにより発生します。詳細は「Troubleshooting problems related to SELinux」を参照してください。

5.3. 既知の問題

  • 特定の状況下では、次のようなトレースバックメッセージが表示されることがあります。

    2019-02-11T08:00:38Z CRITICAL Traceback (most recent call last):
      File "/usr/lib/python2.7/site-packages/dnf/yum/rpmtrans.py", line 272, in callback
      File "/usr/lib/python2.7/site-packages/dnf/yum/rpmtrans.py", line 356, in _uninst_progress
      File "/usr/lib/python2.7/site-packages/dnf/yum/rpmtrans.py", line 244, in _extract_cbkey
    RuntimeError: TransactionItem not found for key: lz4

    このようなメッセージで、アップグレードプロセスが中断することも、影響を受けることもないため、無視しても問題ありません。

  • 現在、ネットワークチーミングは、Network Manager を無効にしてインプレースアップグレードを実行している場合は動作しません。
  • 現在、Supplementary チャンネルのマッピングサポートがないため、Leapp ユーティリティーは、このチャンネルから virtio-win などのパッケージをアップグレードすることができません。(BZ#1621775)
  • RPM の豊富な依存関係を使用する RHEL 8 パッケージは、アップグレードのトランザクションのチェック時に不具合が発生します。これまでのところ、依存関係を持つ redhat-rpm-configtpm2-abrmd で、この問題が発生することが確認されています。このようなパッケージは、アップグレードプロセス時に、Leapp により削除されます。
  • 多くの環境で HTTP プロキシーが使用されています。このような場合は、Red Hat Subscription Manager では、このようなプロキシーを使用するように設定する必要があり、--proxy <hostname> オプションで subscription-manager コマンドを実行する必要がありますが、そうでない場合は、subscription-manager コマンドの実行に失敗します。設定変更の代わりに --proxy オプションを使用する場合は、Leapp がプロキシーを検出できないため、アップグレードプロセスが失敗します。この問題が発生しないようにするには、「Red Hat Subscription Management に HTTP プロキシを設定する」 の説明に従って rhsm.conf ファイルを手動で編集してください。(BZ#1689294)

5.4. サポートの利用

サポートケースを作成するには、製品で RHEL 8 を選択し、システムの sosreport を添付します。システムで sosreport を生成するには、次のコマンドを実行します。

# sosreport

ケース ID は空のままにできます。

sosreport を生成する方法は、ナレッジベースのソリューション「Red Hat Enterprise Linux 4.6 以降における sosreport の役割と取得方法」を参照してください。

カスタマーポータルでサポートケースを作成し、管理する方法は、ナレッジベースのアーティクル「カスタマーポータルでサポートケースを開いたり管理したりする」を参照してください。

法律上の通知

Copyright © 2019 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.