第1章 アップグレード方法

Red Hat Enterprise Linux 7.0 GA 時にサポート対象となっているパスは、最新バージョンの Red Hat Enterprise Linux 6 から最新バージョンの Red Hat Enterprise Linux 7 への 1 つだけです。

1.1. Red Hat Enterprise Linux 6 からのアップグレード方法

本章の手順に従って、Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 にアップグレードします。アップグレードプロセスは以下の手順で構成されます。
  1. Red Hat は、システムのアップグレードをサポートします。詳細は 「サポートステータスの確認」 を参照してください。
  2. システムでアップグレードの準備を行います。詳細は 「システムでアップグレードの準備」 を参照してください。
  3. アップグレードに影響する問題について、システムを確認します。詳細は 「システムアップグレードが適切であることを確認」 を参照してください。
  4. Red Hat Upgrade Tool を実行してアップグレードします。詳細は 「システムのアップグレード」 を参照してください。

1.1.1. サポートステータスの確認

Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 へのアップグレードは、システムが以下の基準を満たす場合のみサポートされます。
  • システムに、Intel 64 および AMD64 アーキテクチャー用 Red Hat Enterprise Linux 6 サーバーエディションの最新バージョンが適用されており、すべてのアッケージが最新の状態です。これを確認するには、以下のコマンドを実行します。
    # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 6.9 (Santiago)
    # arch
    x86_64
    # yum upgrade -y
  • システムが、RHN Classic ではなくサブスクリプション管理からアップデートを受け取るよう登録されています。
  • お使いのシステムには、以下のパッケージグループが含まれています。
    • 最小
    • ベース
    • Web サーバー
    • DHCP サーバー
    • NFS ファイルサーバー (@nfs-server)
    • プリントサーバー
    • CIFS ファイルサーバー
    アップグレードを行う前にその他のパッケージグループを削除し、アップグレードが完了したら再インストールしてください。
詳細については、ナレッジベースソリューション (https://access.redhat.com/solutions/799813) を確認してください。

1.1.2. システムでアップグレードの準備

Red Hat Enterprise Linux 7 は、以前のメジャーバージョンからのインプレースアップグレードを可能にする最初のメジャーリリースです。この規模のアップグレードは複雑で、エラーが発生することがよくあります。アップグレードをできるだけ円滑に行うには、準備が必要です。
すべてのデータをバックアップ
最初に、システム全体をバックアップしてデータ損失の可能性を防ぎ、バックアップが動作することをテストします。
最初にテスト
本番稼働システムをアップグレードする前に、システムのクローンを作成し、クローンでアップグレード手順をテストする必要があります。これにより、本番稼働システムに影響を及ぼさずに、アップグレードを準備することが可能になります。
Red Hat サブスクリプション管理に変更
Red Hat Enterprise Linux 7 は、rhn_register のような RHN Classic ツールではなくサブスクリプション管理ツール (subscription-manager) で登録する必要があります。サブスクリプション管理を初めて使用する場合は、https://access.redhat.com/articles/433903 を参照してください。
yum upgrade コマンドは、パッケージのアップグレードを開始する前に、このシステムがアップグレードを受け取る方法に関する情報を出力します。ここでは、subscription-manager が示され、RHN が示されていないことを確認してください。
# yum upgrade
Loaded plug-ins: product-id, security, subscription-manager
...
現在、Red Hat Enterprise Linux 6 システムが RHN Classic に登録されている場合は、最初に https://access.redhat.com/solutions/11272 に示された手順に従って、RHN Classic から登録を解除する必要があります。
サポート対象のパッケージグループがインストールされていることを確認
このアップグレードプロセスは、次のパッケージグループのみをサポートします。
  • 最小
  • ベース
  • Web サーバー
  • DHCP サーバー
  • NFS ファイルサーバー (@nfs-server)
  • プリントサーバー
  • CIFS ファイルサーバー
yum grouplist コマンドを使用して、インストールされているパッケージグループを確認します。アップグレード行う前にその他のパッケージグループを削除し、アップグレードが完了したら再インストールします。
すべてのパッケージを更新する
サブスクリプション管理でシステムを登録したら、以下のコマンドを実行して、システムにインストールされているすべてのパッケージが最新の状態であることを確認します。
# yum update -y
# reboot

1.1.3. システムアップグレードが適切であることを確認

Preupgrade Assistant は、Red Hat Enterprise Linux 6 システムのアップグレード時に悪い影響を与える可能性がある問題をチェックします。

1.1.3.1. Preupgrade Assistant のインストール

  1. Extras リポジトリーを有効にする

    root で次のコマンドを実行して、Preupgrade Assistant を含むリポジトリーにシステムをサブスクライブします。
    システムが Red Hat サブスクリプション管理からアップデートを受け取る場合は、以下のようになります。
    # subscription-manager repos --enable rhel-6-server-extras-rpms
  2. ツールをインストールする

    root で次のコマンドを実行して、Preupgrade Assistant パッケージをすべてインストールします。
    # yum -y install preupgrade-assistant preupgrade-assistant-el6toel7

1.1.3.2. Preupgrade Assistant の実行

Preupgrade Assistant を実行するには、root として以下のコマンドを実行します。
# preupg -v
この処理が完了するには数分かかります。
このシステムがアクセスできる Preupgrade Assistant Web UI をすでに設定している場合は、代わりに以下のコマンドを実行することもできます (hostnameport は Preupgrade Assistant Web UI の適切な値に置き換えます)。
# preupg -v -u http://hostname:port/submit
Web UI のセットアップの手順については、「Preupgrade Assistant Web UI の設定」 を参照してください。
1.1.3.2.1. Preupgrade Assistant Web UI の設定
Preupgrade Assistant Web UI を使用すると、ブラウザーベースのインターフェースで更新前の結果をアップロードおよび表示できます。これは、アップグレードする予定のシステムがヘッドレスである、またはグラフィカルユーザー環境を持っていない場合に役に立ちます。

警告

Preupgrade Assistant Web UI では、Apache Web Server (httpd) のインスタンスを実行し、/etc/httpd/conf.d ディレクトリーに多数の変更を加える必要があります。システムに関するデータをネットワークに公開することに懸念がある場合、またはアップグレードするシステムにパッケージを追加したくない場合は、この手順ではなく、グラフィカルユーザーインターフェースで /root/preupgrade/result.html ファイルをマシンにコピーし、web ブラウザーで表示します。
  1. 必要なパッケージをインストールする

    # yum -y install httpd preupgrade-assistant-ui
  2. アップロード設定を変更する

    デフォルトのプライベートなアップグレード前の設定の使用から、パブリックな設定の使用に切り替えます。
    # cd /etc/httpd/conf.d
    # cp 99-preup-httpd.conf.public 99-preup-httpd.conf
    これにより、Preupgrade Assistant Web UI は、ローカルシステムのすべてのネットワークインターフェースから、デフォルトで TCP ポート 8099 を介して利用できるようになります。
    また、IP アドレス (192.168.99.1:8099 など) の代わりに、ホスト名 (preupg-ui.example.com:8099 など) を使用して Preupgrade Assistant Web UI にアクセスする場合は、新しい /etc/httpd/conf.d/99-preup-httpd.confNameVirtualHost を編集することもできます。
  3. ファイアーウォールおよび SELinux 設定を変更する

    SELinux を一時的に Permissive モードに切り替え、TCP ポート 8099 経由のトラフィックを許可します。
    # setenforce 0
    # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
  4. Web サーバーを再起動する

    # service httpd restart
  5. 認証を設定または無効化する

    web ブラウザーで http://192.168.99.1:8099/ (または、手順 2 でホスト名を指定した場合はホスト名) に移動します。詳細情報を入力して新しい管理ユーザーを作成するか、認証を無効にするように求められます。
この時点で、アップグレードするシステムで preupg コマンドを -u http://hostname:port/submit オプションとともに実行して、アップグレード前のテスト結果をシステムからアップロードできます。

1.1.3.3. 結果の表示とエラーの修正

preupg を実行する場合は、結果の概要が標準出力に出力され、その詳細は、デフォルトでは /root/preupgrade ディレクトリーに result.html という名前で保存されます。また、移行の問題を修正する場合は、結果を Preupgrade Assistant Web UI にアップロードして、preupg コマンドの実行結果をそれぞれ比較することもできます。
いずれかの評価結果を元に、アップグレード前に各アイテムに必要な修正を確認する必要があります。各アイテムには、表1.1「終了コード」 で示すように、アイテムがインプレースアップグレードに適切であるかを示す終了コードが表示されます。

表1.1 終了コード

終了コード
定義
PASS
すべて問題ありません。このアイテムはアップグレードできます。
FAIL
重大なアップグレードリスクがあります。アップグレードを行うことはできません。
NEEDS_ACTION
アップグレードリスクが高いものがあります。アップグレードする前に何らかの管理者のアクションが必要です。
NEEDS_INSPECTION
リスクが中程度または低いものがあります。アップグレードは成功するかもしれませんが、システムが完全に機能しなくなることがあります。
FIXED
アップグレードに必要な変更が自動的に行われました。
INFORMATIONAL
このアイテムに関する、有用でり、重大ではない情報は、レポートで利用できます。
NOT_APPLICABLE
Preupgrade Assistant がチェックしたアイテムが、システムにインストールされていません。
ERROR
アップグレード前ツールで何らかの問題が発生した可能性があります。この種の問題は Red Hat サポートに報告してください。
Preupgrade Assistant が示す、アップグレード後タスクをすべてメモしてください。これらのタスクは、Red Hat Upgrade Tool の実行後に実行する必要があります。
また、リリースノート、技術ノート、および移行計画ガイドを参照して、Preupgrade Assistant が検出できないアイテムを確認する必要があります。

1.1.4. システムのアップグレード

Preupgrade Assistant が報告するすべての問題を修正したら、Red Hat Upgrade Tool を使用してシステムをアップグレードできます。

重要

Red Hat Upgrade Tool を実行する前に、Preupgrade Assistant ツールを実行することが必要になります。Preupgrade Assistant を実行せずに Red Hat Upgrade Tool を実行しようとすると、以下のエラーが発生して終了します。
preupgrade-assistant has not been run

警告

このプロセスは、非本番稼働システムでテストしてから、本番稼働システムで実行してください。
  1. ツールをインストールする

    # yum -y install redhat-upgrade-tool
  2. アクティブなリポジトリーを無効する

    # yum -y install yum-utils
    # yum-config-manager --disable \*
  3. アップグレードを実行する

    アップグレードプロセスでは、Red Hat Enterprise Linux  7 パッケージへのアクセスが必要になります。以下に示されるように、ネットワーク上、またはマウントされたデバイス、もしくは ISO イメージのリポジトリーの場所を指定できます。
    # redhat-upgrade-tool --network <latest_RHEL_7> --instrepo repo_location
    # redhat-upgrade-tool --device device_path
    # redhat-upgrade-tool --iso iso_path
    Red Hat Enterprise Linux 6 で Base パッケージグループに含まれていた一部のパッケージは、Red Hat Enterprise Linux 7 では同グループに含まれなくなりました。このようなパッケージを正しくアップグレードするには、追加リポジトリーの設定が必要になる場合があります。
    yum リポジトリーシステムで Extras リポジトリーを有効にするには、https://access.redhat.com/site/solutions/912213 を参照してください。次に https://access.redhat.com/site/solutions/9892 を参照して、アップグレード時に使用するリポジトリーを設定します。このユースケースで使用するアップグレードコマンドは以下のようになります。
    # redhat-upgrade-tool --addrepo optional=http://host name/path/to/repo
    一部のパッケージは、同等の機能が Red Hat Enterprise Linux 7 に含まれていないので、アップグレードプロセス時に再インストールされません。このようなパッケージは Red Hat サポートの対象外となります。アップグレードプロセスの最後でこのようなパッケージを削除するには、以下のコマンドを実行します。
    # redhat-upgrade-tool --cleanup-post
  4. 再起動する

    要求されたら、システムを再起動します。
  5. アップグレードが完了するまで待つ

    システムの再起動後のアップグレードは、インストールするパッケージの数に応じて数分または数時間かかることがあります。
  6. アップグレード後タスクを実行する

    Preupgrade Assistant の評価結果で指定されたアップグレード後のタスクを手動で実行します。詳細は「結果の表示とエラーの修正」を参照してください。

    重要

    アップグレードしたホストに Samba がインストールされている場合は、testparm ユーティリティーを実行して、/etc/samba/smb.conf ファイルを確認します。testparm が設定エラーを報告した場合は、そのエラーを修正してから Samba を開始する必要があります。
  7. システムステータスを確認する

    アップグレードプロセス時に、システムのサブスクリプション詳細が更新されたことを確認します。
    # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.4
    # yum repolist
    Loaded plug-ins: product-id, subscription-manager
    repo id        repo name                                    status
    rhel-7-rpms    Red Hat Enterprise Linux 7 Server (RPMs)     4,323
    レポジトリー一覧の更新が正しく行われない場合は、以下のコマンドを実行します。
    # subscription-manager remove --all
    # subscription-manager unregister
    # subscription-manager register
    # subscription-manager attach --pool=poolID
    # subscription-manager repos --enable=repoID
  8. すべてのパッケージを更新する

    以下のコマンドを実行して、すべてのパッケージが最新であることを確認します。
    # yum upgrade -y
    # reboot