RHEL 6 から RHEL 8 へのアップグレード
Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 8 へのインプレースアップグレードの手順
概要
はじめに
このドキュメントのガイドラインは、次の既存のドキュメントを頻繁に参照しています。
SAP HANA を使用している場合は、代わりに How do I upgrade from RHEL 6 to RHEL 7 with SAP HANA に従ってください。SAP HANA のアップグレードパスは、RHEL 6.10 から RHEL 7.9 へであることに注意してください。
- RHEL 7 から RHEL 8 へのアップグレード
このドキュメントには、RHEL 6 から RHEL 8 へのアップグレードに固有の追加手順も含まれています。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
主な移行の用語
以下の移行用語はソフトウェア業界で一般的に使用されますが、これらの定義は Red Hat Enterprise Linux (RHEL) に固有のものです。
更新
ソフトウェアパッチと呼ばれることもあります。更新は現行バージョン、オペレーティングシステム、または実行中のソフトウェアに追加されます。ソフトウェア更新は、問題またはバグに対応し、テクノロジーの操作が改善されます。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 への移行はマイグレーションです。ユーザーがあるラップトップから別のラップトップに移動したり、企業があるサーバーから別のサーバーに移動することもマイグレーションです。ただし、ほとんどのマイグレーションにはアップグレードも含まれており、この2つの用語が同様の意味で使用されることがあります。
- 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 のコンテンツを含むリポジトリーへのアクセスが提供されます。
さらに要件と制限があることに注意してください。詳細は、次を参照してください。
- RHEL 6 から RHEL 7 へのアップグレードドキュメントの アップグレードのプランニング セクション
- RHEL 7 から RHEL 8 へのアップグレードドキュメントのアップグレードのプランニングセクション
1.2. 考慮事項
アップグレードする前に、以下を検討する必要があります。
RHEL メジャーリリース間の重要な変更
詳細は、次を参照してください。
-
RHEL 7 移行ガイド
の主な変更点と移行で考慮すべき点の章 - RHEL 8 の導入における検討事項
-
Red Hat が配布していないアプリケーション
Red Hat が提供していない、アップグレードするシステムでアプリケーションを実行する場合は、次の点を考慮してください。
RPM ベースのアプリケーションの場合:
- 特定のターゲットバージョンと互換性のあるパッケージが必要です。
- すべての依存関係を含むパッケージは、アクセス可能なリポジトリーで利用できます。
非 RPM ベースのアプリケーションの場合:
- この 2 つのメジャーバージョンのアップグレード中に、依存関係とライブラリーが変更された可能性があります。特定のターゲットバージョンで依存関係とライブラリーが使用可能であることを確認してください。
- アプリケーションが Python や Ruby などのインタープリター型言語で記述されている場合は、ターゲットバージョンですべてのライブラリーが使用可能かどうかを確認します。
1.3. アップグレードプロセスの概要
RHEL 6 から RHEL 8 へのインプレースアップグレードには、次の主要な手順が必要です。
- RHEL 6 システムをアップグレードする準備を行い、RHEL 6 システムを RHEL 6.10 の最新バージョンに更新します。
- RHEL 6 システムのアップグレード前の評価を実行し、報告された問題を解決します。
- RHEL 7.9 へのインプレースアップグレードを実行します。
- RHEL 7 システムを RHEL 8 にアップグレードする準備を行い、RHEL 7 システムを RHEL 7.9 の最新バージョンに更新します。
- RHEL 7 システムのアップグレード前の評価を実行し、このフェーズで特定された問題を解決します。
- RHEL 8 へのインプレースアップグレードを実行します。
- アップグレードされたシステムの状態を確認します。
詳細な手順は、以下の章を参照してください。
第2章 RHEL 7 へのアップグレード用に RHEL 6 システムの準備
RHEL 6 システムから RHEL 7 へインプレースアップグレードを行うための準備は、次の手順で行います。
RHEL 6 システムをバックアップし、バックアップがリカバリー可能であることを確認します。
環境でバックアップを作成する方法は、バックアップソフトウェアのドキュメントを参照してください。次のリストに、バックアップと復元に関する追加リソースを示します。
- Relax and Recover (ReaR) とは何ですか ? 障害回復にどのように使用できますか ?
- アップグレードするシステムが仮想マシンで実行している場合は、仮想マシンスナップショットを検討してください。仮想マシンスナップショットの詳細は、virtualizor のドキュメントを参照してください。
- LVM スナップショットの詳細は、スナップショット論理ボリューム を参照してください。
- ReaR (Relax-and-Recover)
RHEL 6 システムを RHEL 6.10 に更新し、ホストを再起動します。
# yum update # reboot
-
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 へのインプレースアップグレードを実行するには、以下を行います。
-
Preupgrade Assistant を使用してシステムのアップグレードの可能性を評価し、アップグレードを続行する前にレポートで特定された問題を修正します。詳細な手順は、
RHEL 6 から RHEL 7 へのアップグレード
ドキュメントのアップグレードの適合性セクションを参照してください。 -
Red Hat アップグレードツールを使用して RHEL 7.9 にアップグレードします。詳細な手順は、
RHEL 6 から RHEL 7 へのアップグレード
のシステムを RHEL 6 から RHEL 7 にアップグレードを参照してください。
第4章 RHEL 8 へのアップグレードのための RHEL 7 システムの準備
RHEL 8 へのアップグレードのために RHEL 7 システムを準備するには、アップグレードを続行する前に、次の手順に従います。
GRUB Legacy ブートローダーを GRUB2 に移行します
アップグレード後も、RHEL 7 は GRUB Legacy ブートローダーを使用します。ただし、GRUB Legacy は RHEL 7 以降のバージョンでは対応していません。したがって、ブートローダーを手動で GRUB2 に移行する必要があります。詳細は、
RHEL 7 システム管理者のガイド
のGRUB Legacy から GRUB 2 へのアップグレードセクションを参照してください。- インストールされたパッケージの潜在的な問題を解決します。詳細は、「インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認」 を参照してください。
カスタムスクリプト
System V
およびUpstart
を、systemd
サービスに合わせて調整します。RHEL 7 システムでは、
systemd
がUpstart
を init システムとして置き換えます。システムの起動時のシステムサービスの並列起動など、systemd
が提供する機能を使用するには、レガシースクリプトのSystem V
およびUpstart
を、手動でsystemd
サービスに変換します。詳細は、Converting traditional sysV init scripts to Red Hat Enterprise Linux 7 systemd unit files を参照してください。スクリプトのシステムディレクトリーへのパスを更新します。
RHEL 7 システムでは、
/bin
ディレクトリー、/sbin
ディレクトリー、/lib
ディレクトリー、および/lib64
ディレクトリーは、/usr
内の対応するディレクトリーへのシンボリックリンクに置き換えられました。たとえば、RHEL 8 では、/bin
は、/usr/bin/
ディレクトリーへのシンボリックリンクです。/bin
、/sbin
、/lib
、および/lib64
が実際のディレクトリーにあることを期待するスクリプトまたはアプリケーションを使用する場合は、それに応じて調整してください。たとえば、スクリプトおよびアプリケーションを次のように更新できます。-
/usr/bin/
などの/usr
内のパスを使用します -
/bin
、/sbin
、/lib
、および/lib64
がディレクトリーではなくシンボリックリンクであることを受け入れます。
-
YUM 4 API を使用するように YUM スクリプトとプラグインを更新します。
RHEL 8 は、YUM 3 の Python API に対応しなくなりました。レガシー API を使用するスクリプトまたは YUM プラグインを使用する場合は、それを YUM 4 API に移行します。詳細は YUM スタックへの主な変更 を参照してください。
-
アップグレード後に特定のパッケージが見つからない場合は、
トラブルシューティング
の章の「RHEL 7 へのアップグレード後に不足しているパッケージをインストール」セクションを参照してください。 - RHEL 8 の導入における検討事項 を確認し、必要に応じてシステムに追加の変更を加えます。
システムを最新の RHEL 7.9 バージョンに更新し、ホストを再起動します。
# yum update # reboot
- すべてのアプリケーションとサービスが設定され、期待どおりに機能することを確認します。たとえば、ホストで DNS サーバーを実行している場合は、アップグレード後も設定が有効であること、およびサービスがアップグレード前と同じように機能することを確認します。
-
RHEL 7 から RHEL 8 へのアップグレード
のアップグレードに向けて RHEL 7 システムの準備に記載されている準備手順に従います。
第5章 RHEL 7.9 から RHEL 8 へのアップグレード
RHEL 6 から RHEL 7 へのインプレースアップグレードと同様、RHEL 7 から RHEL 8 へのイインプレースアップグレードは主に 2 つの段階で設定されます。1 つ目は、システムが変更されていないシステムのアップグレード前の評価、もう 1 つは実際のインプレースアップグレードです。RHEL 7 から RHEL 8 へのアップグレードの場合は、両フェーズが Leapp ユーティリティーにより処理されます。RHEL バージョン 7.9 は、RHEL 8 にアップグレードするための前提条件であることに注意してください。
RHEL 7.9 から RHEL 8 へのインプレースアップグレードを実行するには、以下を行います。
-
RHEL 7 から RHEL 8 へのアップグレード
のアップグレード前レポートの確認で説明されているように、システムのアップグレード可能性を評価し、報告された問題を修正します。 -
RHEL 7 から RHEL 8 へのアップグレード
のRHEL 7 から RHEL 8 へのアップグレードの実行の指示に従って、RHEL 7 システムを RHEL 8 にアップグレードします。
関連情報
-
RHEL 7 から RHEL 8 へのアップグレード
のトラブルシューティングを参照してください。
第6章 アップグレード後のタスクの実行
具体的には、システムを RHEL 8 にアップグレードしたら、以下のタスクを実行します。
-
アップグレードされたシステムの状態を確認します。推奨手順のリストは、
RHEL 7 から RHEL 8 へのアップグレード
ドキュメントのRHEL 8 システムのアップグレード後の状態の確認の章を参照してください。 -
主要な推奨タスクを実行して、システムがサポートされていることを確認します。推奨される手順のリストは、
RHEL 7 から RHEL 8 へのアップグレード
のアップグレード後のタスクの実行の章を参照してください。 -
セキュリティーポリシーを再評価して再適用します。詳細な手順は、
RHEL 7 から RHEL 8 へのアップグレード
ドキュメントの セキュリティーポリシーの適用 セクションを参照してください。 ファイルシステム上でデフォルトの SELinux セキュリティーコンテキストを復元します。
# restorecon -Rv /
SELinux セキュリティーコンテキストを復元すると、大きなファイルシステムで時間がかかる可能性があることに注意してください。必要に応じて、
-e directory
パラメーターを使用して、大規模なファイルシステムまたはリモートファイルシステムを除外できます。詳細は、man ページのrestorecon(8)
を参照してください。アップグレード中に処理されなかったアプリケーションを手動で移行します。これは、ベース RHEL から入手できるアプリケーションと、Red Hat Software Collections、Red Hat Developer Toolset、または Red Hat Developer Tools から提供されるおよびアプリケーションの両方に適用できます。
RHEL 8 ホストでは、いくつかのユーザー空間コンポーネントがアプリケーションストリームとして配布されます。アプリケーションストリームの使用は、ユーザー空間コンポーネントのインストール、管理、および削除 ドキュメントを参照してください。
移行の手順は、各コンポーネントについて、Red Hat カスタマーポータルの RHEL 8 のドキュメント を参照してください。たとえば、データベースの場合は、
さまざまな種類のサーバーのデプロイメント
ドキュメントのデータベースサーバーの章を参照してください。- インストールされたパッケージの潜在的な問題を解決します。詳細は、「インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認」 を参照してください。
第7章 トラブルシューティング
RHEL 6 から RHEL 7 へ、および RHEL 7 から RHEL 8 へのインプレースアップグレードの後、パッケージ関連の問題が発生する場合があります。以下の手順を使用して、これらの問題の多くをトラブルシューティングして解決できます。
7.1. インストールされたパッケージが現在の RHEL メジャーバージョンと一致することを確認
現在インストールされている RHEL のメジャーバージョン用に構築されたパッケージのみがインストールされていることを確認します。
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
前の手順で報告されたパッケージには対応していないため、削除または交換します。詳細は RHEL バージョンが異なるパッケージをインストールすることはできますか ? を参照してください。
前の手順のコマンドで出力が表示されなかった場合、インストールされているすべてのパッケージは、インストールされている RHEL メジャーバージョン用に構築されており、それ以上のアクションは必要ありません。
RHEL 8 へのインプレースアップグレードを実行した後に、
kernel-workaround
パッケージを削除します。# yum -y remove kernel-workaround
7.2. 依存関係エラーの修正
インプレースアップグレードの後、パッケージの依存関係の一部がアップグレードツールによって削除されている間にパッケージがインストールされる可能性があります。この問題を解決するためには、以下を行います。
依存関係エラーを特定します。
# yum check dependencies
コマンドが出力を表示しない場合、それ以上のアクションは必要ありません。
-
依存関係エラーを修正するには、影響を受けるパッケージを再インストールします。この操作中に、
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. 既知の問題
アップグレード時の既知の問題: