RHEL 6 から RHEL 8 へのアップグレード

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 8 へのインプレースアップグレードの手順

概要

このドキュメントでは、Red Hat Enterprise Linux (RHEL) 6 から RHEL 8 へのインプレースアップグレードを実行する方法を説明します。RHEL 8 へのアップグレードは 2 段階のプロセスです。RHEL 8 にアップグレードする前に、システムを RHEL 6 から RHEL 7 にアップグレードする必要があります。

はじめに

このドキュメントのガイドラインは、次の既存のドキュメントを頻繁に参照しています。

このドキュメントには、RHEL 6 から RHEL 8 へのアップグレードに固有の追加手順も含まれています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社 の CTO、Chris Wright のメッセージ を参照してください。

Red Hat ドキュメントへのフィードバック (英語のみ)

ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。改善点を報告する場合は、以下のように行います。

  • 特定の文章に簡単なコメントを記入する場合は、以下の手順を行います。

    1. ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上端に Feedback ボタンがあることを確認してください。
    2. マウスカーソルで、コメントを追加する部分を強調表示します。
    3. そのテキストの下に表示される Add Feedback ポップアップをクリックします。
    4. 表示される手順に従ってください。
  • より詳細なフィードバックを行う場合は、Bugzilla のチケットを作成します。

    1. Bugzilla の Web サイトにアクセスします。
    2. Component で Documentation を選択します。
    3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
    4. Submit Bug をクリックします。

主な移行の用語

以下の移行用語はソフトウェア業界で一般的に使用されますが、これらの定義は Red Hat Enterprise Linux (RHEL) に固有のものです。

Update

ソフトウェアパッチと呼ばれることもあります。更新は現行バージョン、オペレーティングシステム、または実行中のソフトウェアに追加されます。ソフトウェア更新は、問題またはバグに対応し、テクノロジーの操作が改善されます。RHEL では、更新は、RHEL 8.1 から 8.2 への更新といったマイナーリリースに関連します。

アップグレード

アップグレードは、現在実行しているアプリケーション、オペレーティングシステム、またはソフトウェアを置き換える場合です。通常、まず Red Hat の指示に従い、データをバックアップします。RHEL をアップグレードすると、以下の 2 つのオプションがあります。

  • In-place upgrade: インプレースアップグレードの場合は、以前のバージョンを削除せずに、以前のバージョンを新しいバージョンに置き換えます。設定や設定と共にインストールされたアプリケーションとユーティリティーは、新規バージョンに組み込まれています。
  • clean install: clean install は、以前にインストールされたオペレーティングシステム、システムデータ、設定、およびアプリケーションのすべてのトレースを削除し、最新バージョンのオペレーティングシステムをインストールします。システムに以前のデータまたはアプリケーションが必要ない場合や、以前のビルドに依存しない新規プロジェクトを開発する場合は、クリーンインストールに適しています。

オペレーティングシステムへの変換

変換は、オペレーティングシステムを別の Linux ディストリビューションから Red Hat Enterprise Linux に変換する際に使用されます。通常、まず Red Hat の指示に従い、データをバックアップします。

移行

通常、移行はプラットフォーム (ソフトウェアまたはハードウェア) の変更を示しています。Windows から Linux への移行は移行です。ユーザーをラップトップから別のサーバーに移動するか、あるサーバーから別のサーバーに会社を移行することは移行です。ただし、ほとんどの移行ではアップグレードが関係し、相互に意味のある用語が使用されることがあります。

  • RHEL への移行: 既存のオペレーティングシステムの RHEL への移行
  • RHEL 間での移行: RHEL のあるバージョンから別のバージョンへのアップグレード

第1章 アップグレードの計画

インプレースアップグレードは、システムを RHEL の新しいメジャーバージョンに移行するのに推奨される方法です。

重要

開始する前に、システムに特定の変更を行ったらアップグレードプロセスを続行できなくなる状況を防ぐために、リンク先のドキュメントを含むこの参考文献を読むことが推奨されます。特に、システムがこのドキュメントで説明されている要件を満たしていることと、お客様が既知の制限を把握しているようにしてください。

1.1. 要件

RHEL 6 から RHEL 8 へアップグレードするためにシステムが満たす必要のある一般的な基準は次のとおりです。

  • アーキテクチャーが Intel 64 または 64 ビット IBM Z である。
  • RHEL Server バリアントがインストールされている。
  • FIPS モードが無効になっている。
  • システムには LUKS で暗号化されたパーティションまたはボリュームが含まれていない。
  • RHEL 8 の最小 ハードウェア要件 が満たされている。
  • RHEL 6、RHEL 7、および RHEL 8 のコンテンツを含むリポジトリーへのアクセスが提供されます。

さらに要件と制限があることに注意してください。詳細は、次を参照してください。

1.2. 考慮事項

アップグレードする前に、以下を検討する必要があります。

  • RHEL メジャーリリース間の重要な変更

    詳細は、次を参照してください。

  • Red Hat が配布していないアプリケーション

    Red Hat が提供していない、アップグレードするシステムでアプリケーションを実行する場合は、次の点を考慮してください。

    • RPM ベースのアプリケーションの場合:

      • 特定のターゲットバージョンと互換性のあるパッケージが必要です。
      • すべての依存関係を含むパッケージは、アクセス可能なリポジトリーで利用できます。
    • 非 RPM ベースのアプリケーションの場合:

      • この 2 つのメジャーバージョンのアップグレード中に、依存関係とライブラリーが変更された可能性があります。特定のターゲットバージョンで依存関係とライブラリーが使用可能であることを確認してください。
      • アプリケーションが Python や Ruby などのインタープリター型言語で記述されている場合は、ターゲットバージョンですべてのライブラリが使用可能かどうかを確認します。

1.3. アップグレードプロセスの概要

RHEL 6 から RHEL 8 へのインプレースアップグレードには、次の主要な手順が必要です。

  1. RHEL 6 システムをアップグレードする準備を行い、RHEL 6 システムを RHEL 6.10 の最新バージョンに更新します。
  2. RHEL 6 システムのアップグレード前の評価を実行し、報告された問題を解決します。
  3. RHEL 7.9 へのインプレースアップグレードを実行します。
  4. RHEL 7 システムを RHEL 8 にアップグレードする準備を行い、RHEL 7 システムを RHEL 7.9 の最新バージョンに更新します。
  5. RHEL 7 システムのアップグレード前の評価を実行し、このフェーズで特定された問題を解決します。
  6. RHEL 8.4 へのインプレースアップグレードを実行します。
  7. アップグレードされたシステムの状態を確認します。

詳細な手順は、以下の章を参照してください。

第2章 RHEL 7 へのアップグレード用に RHEL 6 システムの準備

このセクションでは、RHEL 6 システムを RHEL 7 にアップグレードするための準備に必要な手順の概要を説明します。

RHEL 6 システムから RHEL 7 へインプレースアップグレードを行うための準備は、次の手順で行います。

  1. RHEL 6 システムをバックアップし、バックアップがリカバリー可能であることを確認します。

    環境でバックアップを作成する方法は、バックアップソフトウェアのドキュメントを参照してください。次の一覧に、バックアップと復元に関する追加リソースを示します。

  2. RHEL 6 システムを RHEL 6.10 に更新し、ホストを再起動します。

    # yum update
    # reboot
  3. RHEL 6 の Extras リポジトリーを有効にし、RHEL 7 へのインプレースアップグレードに必要なユーティリティーをインストールします。詳細は、『RHEL 6 から RHEL 7 へのアップグレード』の「アップグレードに向けた RHEL 6 システムの準備」セクションを参照してください。

第3章 RHEL 6.10 から RHEL 7.9 へのアップグレード

このセクションでは、RHEL 6 から RHEL 7 へのインプレースアップグレードの主な手順を説明します。

インプレースアップグレードは、主に、システムのアップグレード前の評価と、実際のインプレースアップグレードの 2 段階で構成されます。

  • アップグレード前のフェーズでは、Preupgrade Assistant がシステムから情報を収集して分析し、考えられる修正措置を提案します。Preupgrade Assistant はシステムに変更を加えません。
  • インプレースアップグレードフェーズでは、Red Hat アップグレードツールが RHEL 7 パッケージをインストールし、可能な場合は基本構成を調整します。

RHEL 6 から RHEL 7 へのインプレースアップグレードを実行するには、以下を行います。

  1. Preupgrade Assistant を使用してシステムのアップグレードの可能性を評価し、アップグレードを続行する前にレポートで特定された問題を修正します。詳細な手順は、『RHEL 6 から RHEL 7 へのアップグレード』ドキュメントの「アップグレードの適合性」セクションを参照してください。
  2. Red Hat アップグレードツールを使用して RHEL 7.9 にアップグレードします。詳細な手順は、『RHEL 6 から RHEL 7 へのアップグレード』の「システムを RHEL 6 から RHEL 7 にアップグレード」を参照してください。

第4章 RHEL 8 へのアップグレードのための RHEL 7 システムの準備

このセクションでは、RHEL 8 へのアップグレードを続行する前に、RHEL 7 システムで実行する必要があるアクションを説明します。

RHEL 7 システムを RHEL8 システムへアップグレードするための準備は、次の手順で行います。

  1. GRUB Legacy ブートローダーを GRUB2 に移行します

    アップグレード後も、RHEL 7 は GRUB Legacy ブートローダーを使用します。ただし、GRUB Legacy は RHEL 7 以降のバージョンでは対応していません。したがって、ブートローダーを手動で GRUB2 に移行する必要があります。詳細は、『RHEL 7 システム管理者のガイド』「GRUB Legacy から GRUB 2 へのアップグレード」セクションを参照してください。

  2. インストールされたパッケージの潜在的な問題を解決します。詳細は、「インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認」 を参照してください。
  3. カスタムスクリプト System V および Upstart を、systemd サービスに合わせて調整します。

    RHEL 7システムでは、systemdUpstart を init システムとして置き換えます。システムの起動時のシステムサービスの並列起動など、systemd が提供する機能を使用するには、レガシースクリプトの System V および Upstart を、手動で systemd サービスに変換します。詳細は、「Converting traditional sysV init scripts to Red Hat Enterprise Linux 7 systemd unit files」を参照してください。

  4. スクリプトのシステムディレクトリーへのパスを更新します。

    RHEL 7 システムでは、/bin ディレクトリー、/sbin ディレクトリー、/lib ディレクトリー、および /lib64 ディレクトリーは、/usr 内の対応するディレクトリーへのシンボリックリンクに置き換えられました。たとえば、RHEL 8では、/bin は、/usr/bin/ ディレクトリーへのシンボリックリンクです。

    /bin/sbin/lib、および /lib64 が実際のディレクトリーにあることを期待するスクリプトまたはアプリケーションを使用する場合は、それに応じて調整してください。たとえば、スクリプトおよびアプリケーションを次のように更新できます。

    • /usr/bin/ などの /usr 内のパスを使用します
    • /bin/sbin/lib、および /lib64 がディレクトリーではなくシンボリックリンクであることを受け入れます。
  5. YUM 4 API を使用するように YUM スクリプトとプラグインを更新します。

    RHEL 8 は、YUM 3 の Python API に対応しなくなりました。レガシー API を使用するスクリプトまたは YUM プラグインを使用する場合は、それを YUM 4 API に移行します。詳細は「YUM スタックへの主な変更」を参照してください。

  6. アップグレード後に特定のパッケージが見つからない場合は、「トラブルシューティング」の章の「RHEL 7 へのアップグレード後に不足しているパッケージをインストール」セクションを参照してください。
  7. RHEL 8 の導入における検討事項』を確認し、必要に応じてシステムに追加の変更を加えます。
  8. システムを最新の RHEL 7.9 バージョンに更新し、ホストを再起動します。

    # yum update
    # reboot
  9. すべてのアプリケーションとサービスが構成され、期待どおりに機能することを確認します。たとえば、ホストで DNS サーバーを実行している場合は、アップグレード後も構成が有効であること、およびサービスがアップグレード前と同じように機能することを確認します。
  10. 『RHEL 7 から RHEL 8 へのアップグレード』「アップグレードに向けて RHEL 7 システムの準備」に記載されている準備手順に従います。

第5章 RHEL 7.9 から RHEL 8 へのアップグレード

このセクションでは、RHEL 7 ホストを RHEL 8 に更新する方法を説明します。RHEL 8.4 にアップグレードするには、最低限、RHEL バージョン 7.9 が必要であることに注意してください。

RHEL 6 から RHEL 7 へのインプレースアップグレードと同様、インプレースアップグレードは主に 2 つの段階で構成されます。1 つ目は、システムが変更されていないシステムのアップグレード前の評価、もう 1 つは実際のインプレースアップグレードです。RHEL 7 から RHEL 8 へのアップグレードの場合は、両フェーズが Leapp ユーティリティーにより処理されます。

RHEL 7.9 から RHEL 8.4 へのインプレースアップグレードを実行するには、以下を行います。

  1. 『RHEL 7 から RHEL 8 へのアップグレード』「アップグレード前レポートの確認」で説明されているように、システムのアップグレード可能性を評価し、報告された問題を修正します。
  2. 『RHEL 7 から RHEL 8 へのアップグレード』「RHEL 7 から RHEL 8 へのアップグレードの実行」の指示に従って、RHEL 7 システムを RHEL 8 にアップグレードします。

関連情報

第6章 アップグレード後のタスクの実行

このセクションでは、システムを RHEL 8 にアップグレードした後に実行する必要がある主なアクションを提案します。

具体的には、システムを RHEL 8 にアップグレードしたら、以下のタスクを実行します。

  1. アップグレードされたシステムの状態を確認します。推奨手順の一覧は、『RHEL 7 から RHEL 8 へのアップグレード』ドキュメントの「RHEL 8 システムのアップグレード後の状態の確認」の章を参照してください。
  2. 主要な推奨タスクを実行して、システムがサポートされていることを確認します。推奨される手順の一覧は、『RHEL 7 から RHEL 8 へのアップグレード』の「アップグレード後のタスクの実行」の章を参照してください。
  3. セキュリティポリシーを再評価して再適用します。詳細な手順は、『RHEL 7 から RHEL 8 へのアップグレード』ドキュメントの「セキュリティーポリシーの適用」セクションを参照してください。
  4. ファイルシステム上でデフォルトの SELinux セキュリティーコンテキストを復元します。

    # restorecon -Rv /

    SELinux セキュリティーコンテキストを復元すると、大きなファイルシステムで時間がかかる可能性があることに注意してください。必要に応じて、-e directory パラメーターを使用して、大規模なファイルシステムまたはリモートファイルシステムを除外できます。詳細は、man ページの restorecon(8) を参照してください。

  5. アップグレード中に処理されなかったアプリケーションを手動で移行します。これは、ベース RHEL から入手できるアプリケーションと、Red Hat Software CollectionsRed Hat Developer Toolset、または Red Hat Developer Tools から提供されるおよびアプリケーションの両方に適用できます。

    RHEL 8 ホストでは、いくつかのユーザー空間コンポーネントがアプリケーションストリームとして配布されます。アプリケーションストリームの使用は、『ユーザー空間コンポーネントのインストール、管理、および削除』ドキュメントを参照してください。

    移行の手順は、各コンポーネントについて、Red Hat カスタマーポータルの RHEL 8 のドキュメント を参照してください。たとえば、データベースの場合は、『さまざまな種類のサーバーのデプロイメント』ドキュメントの「データベースサーバー」の章を参照してください。

  6. インストールされたパッケージの潜在的な問題を解決します。詳細は、「インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認」 を参照してください。

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

このセクションでは、RHEL 6 から RHEL 7 へ、および RHEL 7 から RHEL 8 へのインプレースアップグレード後に、パッケージ関連の問題をトラブルシューティングして解決する方法を説明します。

7.1. インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認

現在インストールされている RHEL のメジャーバージョン用に構築されたパッケージのみがインストールされていることを確認します。

  1. RHEL のメジャーバージョンが異なるインストール済みパッケージを表示するには、次のコマンドを実行します。

    • RHEL 7 では、次のように入力します。

      # rpm -qa | grep -e '\.el6' | grep -vE '^(gpg-pubkey|katello-ca-consumer)' | sort
    • RHEL 8 では、次のように入力します。

      # rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort
  2. 前の手順で報告されたパッケージには対応していないため、削除または交換します。詳細は「RHEL バージョンが異なるパッケージをインストールすることはできますか?」を参照してください。

    前の手順のコマンドで出力が表示されなかった場合、インストールされているすべてのパッケージは、インストールされている RHEL メジャーバージョン用に構築されており、それ以上のアクションは必要ありません。

  3. RHEL 8 へのインプレースアップグレードを実行した後に、kernel-workaround パッケージを削除します。

    # yum -y remove kernel-workaround

7.2. 依存関係エラーの修正

インプレースアップグレードの後、パッケージの依存関係の一部がアップグレードツールによって削除されている間にパッケージがインストールされる可能性があります。この問題を解決するためには、以下を行います。

  1. 依存関係エラーを特定します。

    # yum check dependencies

    コマンドが出力を表示しない場合、それ以上のアクションは必要ありません。

  2. 依存関係エラーを修正するには、影響を受けるパッケージを再インストールします。この操作中に、yum ユーティリティーは不足している依存関係を自動的にインストールします。必要な依存関係がリポジトリーで利用できない場合は、そのパッケージを手動でインストールします。

7.3. RHEL 7 へのアップグレード後に不足しているパッケージをインストール

RHEL 6 から RHEL 7 へのアップグレード後に特定のパッケージが見つからない場合は、そのパッケージを含む Red Hat Upgrade Tool にリポジトリーが提供されていない可能性があります。アップグレード後にそのようなパッケージをインストールするには、たとえば次のコマンドを使用できます。

# cd /root/preupgrade
# bash noauto_postupgrade.d/install_rpmlist.sh kickstart/RHRHEL7rpmlist_kept

さまざまな問題が RPM のインストールを妨げる可能性があることに注意してください。この場合は、問題を解決してください。アップグレードされたシステムにインストールする必要があるパッケージの一覧を含む他のファイルの詳細は、/root/preupgrade/kickstart/README ファイルおよびアップグレード前のレポートを参照してください。

7.4. 既知の問題

アップグレード時の既知の問題:

  • RHEL 6 から RHEL 7 の場合は、『RHEL 6 から RHEL 7 へのアップグレード』「既知の問題」セクションを参照してください。
  • RHEL 7 から RHEL 8 の場合は、『RHEL 7 から RHEL 8 へのアップグレード』「既知の問題」セクションを参照してください。

第8章 関連情報