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

1.1.2. アップグレードのためにシステムを準備

Red Hat Enterprise Linux 7 は、以前のメジャーバージョンからのインプレースアップグレードを許可する最初のメジャーリリースです。この規模のアップグレードは複雑であり、エラーが発生することがよくあります。アップグレードをできるだけ円滑に行うには、準備が必要です。
すべてのデータのバックアップ
Red Hat Upgrade Tool である redhat-upgrade-tool を使用する前に、システム全体をバックアップしてデータ損失の可能性を防ぎ、バックアップが動作することをテストします。
最初にテスト
本番稼働システムをアップグレードする前に、システムをクローンし、クローンでアップグレード手順をテストする必要があります。これにより、本番稼働システムを犠牲にせずにアップグレードを準備することが可能になります。
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 plugins: product-id, security, subscription-manager
...
Red Hat Enterprise Linux 6 システムが現在 RHN Classic に登録されている場合は、https://access.redhat.com/solutions/11272 に示された手順に従って最初に RHN Classic から登録を解除する必要があります。
サポート対象のパッケージグループがインストールされていることを確認
このアップグレードプロセスでは、Minimal、Base、Web Server、DHCP Server、NFS File Server (@nfs-server)、および Print Server のパッケージグループのみがサポートされます。yum grouplist コマンドを使用して、インストールされているパッケージグループを確認します。アップグレードの前に他のパッケージグループを削除し、アップグレードが完了したときにこれらを再インストールします。
すべてのパッケージの更新
サブスクリプション管理でシステムが登録されたら、以下のコマンドを実行してシステム上のすべてのパッケージが最新の状態にあることを確認します。
# yum update -y
# reboot
追加リポジトリーを有効にする (必要な場合)
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 --device /dev/sdb --addrepo optional=http://hostname/path/to/repo

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

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

1.1.3.1. Preupgrade Assistant のインストール

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

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

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

1.1.3.2. Preupgrade Assistant の実行

Preupgrade Assistant を実行するには、root として以下のコマンドを実行します。
# preupg -y
この処理が完了するには数分かかります。
代わりに、このシステムがアクセスできる Preupgrade Assistant Web UI をすでに設定した場合は、以下のコマンドを実行することもできます (hostnameport は Preupgrade Assistant Web UI の適切な値に置き換えます)。
# preupg -y -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 の結果をアップロードおよび表示できます。これは、アップグレードする予定のシステムがヘッドレスである、またはグラフィカルユーザー環境を持っていない場合に役に立ちます。

警告

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

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

    デフォルトのプライベートな preupgrade 設定の使用からパブリックな設定の使用に切り替えます。
    # cd /etc/httpd/conf.d
    # mv 99-preup-httpd.conf 99-preup-httpd.conf.private
    # cp 99-preup-httpd.conf.public 99-preup-httpd.conf
    この結果、Preupgrade Assistant Web UI は、デフォルトで TCP ポート 8099 を介してローカルシステムのすべてのネットワークインターフェースから利用できるようになります。
    また、192.168.99.1:8099 のような IP アドレスの代わりに 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 オプションとともに実行することにより、システムから preupgrade のテスト結果をアップロードできます。

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

preupg を実行する場合は、結果の概要が標準出力に出力されます。詳細な結果は、デフォルトで /root/preupgrade ディレクトリーに results.html として保存されます。また、移行の問題を修正する場合に、Preupgrade Assistant Web UI に結果をアップロードして複数の preupg の実行を比較することもできます。
評価結果をどのように理解するかに関係なく、アップグレードの前に各アイテムに対して行う必要がある修正をチェックする必要があります。各アイテムは、表1.1「終了コード」 で説明されたように、アイテムがインプレースアップグレードに適切であることを示す終了コードとともに出力されます。理想的には、すべてのアイテムが PASS または FIXED でマークされるまでアップグレードしないでください。

表1.1 終了コード

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

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

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

警告

このプロセスは、本番稼働システムで実行する前に非本番稼働システムでテストしてください。
  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 7.0 --instrepo repo_location
    # redhat-upgrade-tool --device device_path
    # redhat-upgrade-tool --iso iso_path
  4. 再起動する

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

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

    Preupgrade Assistant の結果で特定されたすべてのアップグレード後タスクを実行します。FIXED と示されたアイテムに対して Preupgrade Assistant により作成されたスクリプトは、アップグレードの完了後に自動的に実行されます。
  7. システムステータスを確認する

    アップグレードプロセスの一部として、システムのサブスクリプション詳細が更新されたことを確認します。
    # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.0 (Maipo)
    # yum repolist
    Loaded plugins: product-id, subscription-manager
    repo id        repo name                                    status
    rhel-7-rpms    Red Hat Enterprise Linux 7 Server (RPMs)     4,323
    repolist が正しく更新されなかった場合は、以下のコマンドを実行します。
    # 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