Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 への移行方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 6.x から Red Hat Enterprise Linux 7 へ
製品バリエーション x86 アーキテクチャー x86_64 アーキテクチャー ppc64 アーキテクチャー s390x アーキテクチャー
Desktop エディション サポートなし サポートなし N/A サポートなし
Workstation エディション サポートなし サポートなし N/A サポートなし
Server エディション サポートなし サポートあり N/A サポートあり
IBM POWER /System z N/A N/A 今後のリリースで予定 N/A

Issue

  • Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 へのインプレースアップグレードを行う方法は?
  • preupgrade assistant と redhat-upgrade-tool を使って RHEL6 から RHEL7 へのアップグレードを実行するには?

Resolution

概要

Red Hat Enterprise Linux 7 (RHEL 7) は、以前の RHEL メジャーバージョン (RHEL 6) からのインプレースアップグレードを可能にする初の RHEL のメジャーリリースです。インプレースアップグレードは、既存のオペレーティングシステムを維持したままで Red Hat Enterprise Linux の新規のメジャーリリースにシステムをアップグレードする方法です。

この RHEL 6 から RHEL 7 へのアップグレード手順は、Red Hat Enterprise Linux システムが以下の基準を満たす場合に完全にサポートされます。

  • 最新の Red Hat Enterprise Linux 6: RHEL 7 にアップグレードする前に、RHEL 6 から開始し、最新の RHEL 6 パッケージがインストールされるようにシステムを更新する必要があります (以下の手順で説明します)。

  • S390X および X86_64 Server エディション: この手順に従ってアップグレードできるのは、Red Hat Enterprise Linux 6 の S390X および 64 ビット (X86_64) Server エディションのみです。RHEL Workstation および Desktop システムはサポートされません。POWER アーキテクチャーのアップグレードについては、今後のリリースで予定されています。32 ビットアーキテクチャーからのアップグレードはサポートされません。

  • パッケージグループの制限: このアップグレードプロセスで処理されるのは、以下のパッケージグループとパッケージのみです: Minimal (@minimal)、Base (@base)、Web Server (@web-server)、DHCP Server、File Server (@nfs-server)、および Print Server (@print-server)。その他のパッケージとグループのアップグレードはサポートされていませんが、パッケージを RHEL 6 システムからアンインストールしてから、アップグレードされた RHEL 7 システムにそれらを正常に再インストールできる場合があります。

詳細は、What are the supported use cases for upgrading RHEL 6 to RHEL 7? を参照してください。

アップグレード手順は以下の基本的なステップで構成されています。

  1. アップグレードの準備: アップグレード前のプロセスを開始する前にシステムがバックアップされており、最新の状態であることを確認します。
  2. Preupgrade Assistant のインストール: 必要なリポジトリーを有効にしてから preupgrade パッケージをインストールします。
  3. Preupgrade Assistant の実行: 実際のアップグレードを実行する前に、お使いのシステムにアップグレードの問題があるかどうかについてチェックします。これによりシステムに変更が加えられることはないため、すべての問題に対応するまでこのステップを繰り返すことができます。
  4. アップグレードの実行: 実際のアップグレードを実行します。
  5. フィードバックの提供: デバッグログを作成し、問題がある場合は Red Hat に送信します。

ステップ 1: アップグレードの準備

メジャーなオペレーティングシステムのアップグレードは慎重に行う必要があります。お客様にとって重要なシステム上でのアップグレード手順を開始する前に、以下の点を考慮してください。

  1. まずテストを行う: 本番システムでアップグレードを試行しないでください。最初にシステムのクローンを作成し、安全な環境でアップグレード手順をテストしてください。データの損失を防ぐために、Red Hat Upgrade Tool を使用する前に必ずすべてのデータのバックアップを行なってください。

  2. サブスクリプション管理に変換する: Red Hat Enterprise Linux 7 では、RHN Classic ツール (rhn_register など) ではなく、サブスクリプション管理ツール (subscription-manager など) が必要です。ご使用の Red Hat Enterprise Linux 6 システムが現在 RHN Classic ツールを使って登録されている場合、システムの登録解除を行ってから (How to Unregister a System from RHN Classic or a Satellite を参照)、subscription-manager コマンドを使ってそのシステムを登録することができます (Get Started with Red Hat Subscription Management を参照)。さらに自動化された方法を希望される場合は、組み込まれている 移行スクリプト を使用してください。

  3. 最新パッケージを取得する: お持ちのパッケージが最新であることを確認するため、以下を入力してください。

    # yum update -y
    # reboot
    
  4. 他のリポジトリーについて検討する: アップグレードが正常に機能するには、RHEL 7 DVD の基本パッケージで提供されている内容以外のソフトウェアリポジトリーへのアクセスが必要になる場合があります。とくに、RHEL 7 の Extras リポジトリーには、RHEL 6 ベースシステムに含まれているパッケージもありますが (それらのほとんどはソフトウェア開発に関連するもの)、それらのパッケージは DVD には含まれていません。

    アップグレードに RHEL 7 ベースリポジトリーにないパッケージを (依存関係を満たすために) 必要とする場合、FTP または HTTP 経由で必要なパッケージを提供する yum リポジトリーとして機能させるように別の RHEL 7 システムをインストールすることができます。yum リポジトリーシステムで Extrass リポジトリーを有効にする方法は How can I subscribe to the new Extras channel/repo? を、アップグレード時に使用できるリポジトリーをセットアップする方法は アップデート用のローカルリポジトリを作成するために createrepo または reposync を使用する方法 を参照してください。アップグレードを実行するためのコマンドライン (この手順の終わり近くで使用) は次のようになります: redhat-upgrade-tool --device /dev/sdb --addrepo optional=http://host/repo

ステップ 2: Preupgrade Assistant のインストール

Preupgrade Assistant (preupg コマンド) を使うと、システムへの変更が加えることなく、Red Hat Enterprise Linux 6 から Red Hat Enterprise Linux 7 へのアップグレード時に直面する可能性のある問題の有無をチェックすることができます。これにより、実際のアップグレードプロセスの開始前に、Red Hat Enterprise Linux 7 へのアップグレードが成功する可能性を評価することができます。

注記: 実際のアップグレードの前に問題を発生させる可能性のあるすべての要素に対応するために Preupgrade Assistant を複数回実行することが可能であり、その実行が必要です。Preupgrade Assistant がインストール済みのシステムに悪影響を与えることはありません。しかし、システム上でのインプレースアップグレードの実行後には、直前に動作していたシステムを元に戻すことはできません。

Preupgrade Assistant は以下を実行します。

  • パッケージの削除や互換性のない古い機能、名前の変更、設定ファイルの互換性欠如など、システムにインプレースアップグレードを行った場合に考えられる制限を評価します。

  • 分析結果を含むレポートを提供します。

  • インプレースアップグレードが適切でない場合の、システムの「クローン作成」に使用できるデータを提供します。

  • インプレースアップグレード後により複雑な問題を完了するために使用するアップグレード後のスクリプトを提供します。

  • お使いのシステムを変更されない状態に維持します (情報またはログの保存を除き、評価対象のシステムを変更することはありません)。

Preupgrade Assistant はモジュールシステムをベースとしているため、新たなチェックおよびアップグレード操作を比較的簡単に追加できます。そのため、ツールは徐々に改善されていくことを期待できます。

アップグレードする Red Hat Enterprise Linux 6.x システムから Preupgrade Assistant のインストール、設定、および実行を行うには、以下のステップを実行します。

  1. preupgrade リポジトリーを有効にする: preupgrade-assistantpreupgrade-assistant-ui、および preupgrade-assistant-contents パッケージが含まれるリポジトリーを有効にします。リポジトリーは Red Hat Satellite Server に接続するか、または Red Hat ポータルからサブスクリプション管理に接続するかどうかによって異なります。

    RHN Classic (Satellite):

    # rhn-channel --add --channel rhel-x86_64-server-extras-6 
    # rhn-channel --add --channel rhel-x86_64-server-optional-6 

    Red Hat サブスクリプション管理

    # subscription-manager repos --enable rhel-6-server-extras-rpms 
    # subscription-manager repos --enable rhel-6-server-optional-rpms 
  2. preupgrade パッケージをインストールする: Preupgrade パッケージには、preupgrade-assistant (cpreupg コマンドを含む)、preupgrade-assistant-ui (オプションの web ベースインターフェースを含む)、および preupgrade-assistant-contents (複数の異なるテストが入っているモジュールを含む) が含まれます。これらをインストールするには、以下を入力します。

    # yum -y install preupgrade-assistant preupgrade-assistant-ui preupgrade-assistant-contents
    

ステップ 3: Preupgrade Assistant の実行

preupgrade パッケージがインストールされると、Preupgrade Assistant の実行にあたり、結果をローカルに表示するか、または (ローカルの httpd サーバー) からネットワーク経由で結果を送信するかを選択することができます。これらの 2 つの選択肢について以下で説明します。

選択肢 1: ローカルに表示するよう Preupgrade Assistant を実行する

出力を画面に表示し、かつアップグレードするシステム上のローカルファイルに出力できるように preupg コマンドを実行するには、以下の手順に従います。

  1. preupg コマンドを実行します。: preupg コマンドを実行し、以下のように Preupgrade Assistant を起動します。

    # preupg    With no options, produces result.html and tar.gz results files
    Preupg tool doesn't do the actual upgrade.
    Please ensure you have backed up your system and/or data in the event of a failed upgrade
     that would require a full re-install of the system from installation media.
    Do you want to continue? y/n  
      y
    Gathering logs used by preupgrade assistant:
    All installed packages : 01/10 ...finished (time 00:01s)
       ...
    |Removed rpms                                                                       |needs_inspection  |
    |Content for enabling and disabling services based on RHEL 6 system                 |needs_inspection  |
    |Python 2.7.5                                                                       |needs_inspection  |
    |Check for usage of dangerous range of UID/GIDs                                     |needs_inspection  |
    |Packages not signed by Red Hat                                                     |needs_action      |
    --------------------------------------------------------------------------------------------------------
    Tarball with results is stored here /root/preupgrade-results/preupg_results-140528114006.tar.gz .
    The latest assessment is stored in directory /root/preupgrade .
    Summary information:
    We found some potential in-place upgrade risks.
    Read the file /root/preupgrade/result.html for more details.
    Upload results to UI by command:
    e.g. preupg -u http://127.0.0.1:8099/submit/ -r /root/preupgrade-results/preupg_results-*.tar.gz .
    

    preupg プロセスが終了すると、プロセスの結果を表示するための複数の選択肢が用意されます。

  2. preupg 結果の表示: preupg がシステムをスキャンする際に、画面には preupg が実行する各テストが一覧表示され、その後にテストの結果を説明する終了コードが続きます。さらに、以下のように確認できる結果ファイルが生成されます。

    preupg コマンドライン: 終了コードと結果が画面上に表示されます。それらの結果をスクロールして、それぞれのテストがどのように成功したかを確認することができます。ただし、これは終了コードのみを提供し、それぞれの問題の詳細情報は提供しません。

    result.html: /root/preupgrade/result.html ファイルはすべての Web ブラウザーで開くことができます。GUI がない場合、このファイルは links コマンドで開くか、またはファイルの表示に使うグラフィカルブラウザーを持つ別のシステムにファイルをコピーすることができます。

  3. 終了コードのチェック: 各テストについて表示される結果には、終了コードが含まれます。preupg で使用される複数の異なるプラグインの終了コードには以下が含まれることがあります。

    PASS
    すべてが正常であることを意味します。すべての終了コードが PASS として一覧表示される場合は、アップグレードに進むことができます。

    FAIL
    アップグレードに重大なリスクが想定されます。インプレースアップグレードを行うことはできません。

    NEEDS_ACTION
    アップグレードに高いリスクが想定されます。Red Hat Upgrade を実行する前に、管理者によるアクションが必要です。

    NEEDS_INSPECTION
    中程度または低いリスクが想定されます。この終了コードは、必ずしもアップグレードが失敗することを意味している訳ではありませんが、システムが完全に機能しない状態になる可能性があります。チェックの必要な部分があり、管理者による問題の解決が必要になる場合があります。

    FIXED
    自動的に解決された部分があることを示しています。これ以上確認の必要はありません。

    INFORMATIONAL
    必須情報ではないものの、役に立つ情報です。

    NOT_APPLICABLE
    テスト対象として指定したパッケージはシステムにありません。

    ERROR
    通常、これはツール自体のエラーを示します。このタイプの問題は、Red Hat サポートに報告してください。

  4. 結果の表示: 前述のように、preupg の結果レポートが含まれる HTML ファイルはローカルシステムに保存されます。このファイルは任意の Web ブラウザーを使用して表示することができます。デスクトップがインストールされていない場合、links コマンド (links /root/preupgrade/result.html) を使用するか、または利用可能なグラフィカル Web ブラウザー (Firefox など) を持つシステムにファイルをコピーすることができます。以下に、firefox を使用してファイルを表示する方法を示す例を示します。

    # firefox file:///root/preupgrade/result.html
    

    以下の図は、レポートのサンプルを示しています。

    RHEL 7 Preupgrade Report

    それぞれのタイトルについて、「Rusult」列のエントリーをクリックします。生じている問題の説明や、その問題の解決方法についての説明を確認できます。

  5. README ファイルの表示: 出力ディレクトリーには README ファイルも含まれます。preupg ツールに関連する目的、使用方法、ディレクトリー構造、終了コード、およびリスクの説明の詳細については、このファイルを参照します。

  6. 修正の実行: preupg コマンドによって生じたエラーを修正し、preupg を再度実行します。生じたすべての問題に対応したことが確認できたら、ステップ 4 のアップグレードに進むことができます。

選択肢 2: リモートで表示するよう Preupgrade Assistant を実行する

preupgrade-assistant-ui パッケージをインストールすると、Preupgrade Assistant のブラウザーベースのインターフェースと対話することができ、これにより結果の検索とフィルターを簡単に行うことが可能になります。このアップグレード手順は GNOME デスクトップの更新に対応しないため、この手順ではリモートグラフィカルデスクトップ上に Preupgrade Assistant からの結果を表示する方法を示します。

警告: Preupgrade Assistant Web UI を使用する場合、preupg コマンドを使用する他の方法とは異なり、ファイルの /etc/httpd/conf.d ディレクトリーへの追加や、コンテンツを提供するためのシステム上での httpd サービスの実行により、アップグレードするシステムのコンテンツが変更されます。システムに関するデータをネットワークに公開することに懸念があるか、またはアップグレードするシステムにコンテンツを追加することを避ける必要のある環境では、この手順を使用しないでください。preupg 出力をリモートシステム上でグラフィカルに表示するより簡単な方法として、result.html ファイルをシステムにコピーし、そのファイルを Web ブラウザーで開く方法があります。

Preupgrade Assistant Web UI を使用して、ネットワーク経由でブラウザーから preupgrade 情報にアクセスする場合には以下の手順を実行します。

  1. httpd のインストール: アップグレードする RHEL 6 システムにまだインストールされていない場合は、httpd パッケージをインストールします。

    # yum -y install httpd
    
  2. conf.d ファイルの設定: デフォルトで、preupgrade UI サービスはローカルシステム (127.0.0.1) でのみ利用できます。ローカルシステムのすべてのネットワークインターフェースで利用可能にするには (デフォルト: TCP ポート 8099)、以下を入力します。

    # 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
    
  3. 新規 .conf ファイルの編集: 上記のようなコピーしたばかりの 99-preup-httpd.conf は、ホストの IP アドレスから preupgrade UI を利用可能にします。IP アドレスではなくホスト名を使用してこのサービスにアクセスする場合には、このファイルの "NameVirtualHost" 行を変更することもできます。たとえば NameVirtualHost preupg-ui.example.com:8099 の行は、名前の preupg-ui.example.com をアップグレードするシステムにポイントする DNS CNAME レコードがある場合にこのサービスにアクセスするために使用できます。

  4. ファイアウォールのオープンおよび SELinux: ファイアウォールが実行されており、かつ SELinux が enforcing モードにされている場合、以下のコマンドを使用して、preupgrade UI サービスで必要とされるポートへのアクセスを許可することができます。

    # setsebool httpd_run_preupgrade on
    # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
    
  5. httpd サービスの再起動: 以下を入力して、新規の設定情報と共に httpd サービスを起動します。

    # service httpd restart
    
  6. Web ブラウザーから preupgrade にアクセス: 別のシステムの Web ブラウザー (最新バージョンの Firefox または Chrome の使用をお勧めします) から、IP アドレス (例: http://192.168.99.1:8099) またはホスト名 (例: http://preupg-ui.example.com:8099) のいずれかを使用して preupgrade Web UI サービスにアクセスします。

  7. 認証情報の追加: 認証するユーザーを追加するか、または Web UI への認証を無効にするかのいずれかを実行することができます。

    • 認証: preupgrade Web UI への初回アクセス時に、サービスへのアクセスを得るか、または認証機能を無効にするために使用できるユーザー、メールアドレスおよびパスワードを追加する機会があります (後にユーザーを管理する必要がある場合は、UI の「User Management」タブにナビゲートします。そこでユーザーロールを作成し、編集し、削除することができます)。「Submit」を選択して新規ユーザーを作成する場合には、認証システムがそれまでに無効にされている場合は認証が自動的に有効にされます。
    • 認証なし: 認証が不要な場合は、「Disable Authentication」をクリックするだけで、グラフィカルインターフェースの使用を開始することができます。
      preupgrade Web UI にアクセスできることが確認できたら、preupgrade データの収集とロードを行うためにアップグレードするシステムに戻ります。
  8. preupg コマンドの実行: 結果が preupgrade Web UI にロードされるように preupgrade を実行するには、アップグレードを実行するシステムで以下を入力します。

    # preupg -u http://localhost:8099/submit/
    Preup tool doesn't do the actual upgrade.
    Please ensure you have backed up your system ...
    Do you want to continue? y/n y
    Gathering logs used by preupgrade assistant:
    All installed packages : 01/10 ...finished ...
      ...
    Report submitted successfully. You can inspect it at http://localhost:8099/1/detail/
    
  9. preupgrade レポートの表示: preupg がいったん実行され、Web UI にレポートが送信されたら、リモートシステムの Web ブラウザーに戻り、Web UI に再びアクセスします (またはページを再読み込みします。preupgrade が実行された日付を選択し、preupgrade の結果を表示します。それぞれの項目をクリックして確認し、問題を解決するのに必要な修正を行います。以下は、実行された preupg を表示する preupgrade Web UI のサンプルです。

    View preupgrade runs in Web ui

  10. 修正の実行: preupg コマンドの実行によって生じたエラーを修正し、preupg を再度実行してデータを送信します。生じた問題すべてに対応したことを確認できたら、ステップ 4 の実際のアップグレードに進むことができます。

ステップ 4: アップグレードの実行

Preupgrade Assistant が完了し、すべての問題が対応済みになると、次のステップとして、以下に示すようにアップグレードするシステムに移動し、redhat-upgrade-tool パッケージを実行して、アップグレードと再起動を実行します。

重要: Red Hat Upgrade ツールの実行には、前提条件として Preupgrade Assistant ツールを実行することが必要になります。システムに対して Red Hat Upgrade を直接実行しようとすると、以下のエラーを出して終了します: preupgrade-assistant has not been run

  1. redhat-upgrade-tool のインストール: 以下のコマンドを実行して redhat-upgrade-tool パッケージをインストールします。

    # yum install redhat-upgrade-tool
    
  2. リポジトリーの無効化 (Satellite のみ): システムを Red Hat Satellite にサブスクライブさせている場合、Red Hat Network yum プラグイン (rhnplugin) は、redhat-upgrade-tool コマンドを実行する前にオフにする必要のある一部のリポジトリーを有効にします。このプラグインを無効にするには、/etc/yum/pluginconf.d/rhnplugin.conf ファイル内の enabled 行を以下のように編集します。

    enabled = 0
    
  3. redhat-upgrade-tool の実行: Red Hat Enterprise Linux 7 にアップグレードするために必要なパッケージをダウンロードし、パッケージのインストールを準備する際に、複数の異なるオプションを使用してインストールパッケージの場所を指定することができます。

    • Red Hat Enterprise Linux 7 パッケージを保持するリポジトリーの場所を指定するには、--instrepo オプションを使用します (Red Hat ではこのリポジトリーを提供しないため、ご自身で作成する必要があります)。以下の例では FTP サイトを使用しています。ここでは RHEL7 DVD のコンテンツが、利用可能な FTP サーバー上の rhel7 というディレクトリーにコピーされます。さらに、RHEL7 パッケージが含まれる http または https サイトを使用することもできます。
    # redhat-upgrade-tool --network 7.0 --instrepo ftp://ftp.example.com/pub/rhel7/
    

    バージョンは、システムの現在のバージョンよりも大きな番号にすることができます。無効なバージョンが指定される場合、存在しないリポジトリーへの接続を試行した後にアップグレードが失敗します。

    • システム上にマウントされたインストールメディア (たとえば、/dev/sdb デバイスから利用できる DVD または USB ドライブ) を使ってシステムをアップグレードするには、root として以下のコマンドを実行します。
    # redhat-upgrade-tool --device /dev/sdb
    

    デバイスを指定せずにこのオプションが指定される場合、ツールは現在マウントされているすべてのリムーバブルデバイスをスキャンします。

    • ISO イメージを使用してシステムをアップグレードするには、--iso オプションの後に ISO イメージへのパスを指定します。たとえば、RHEL 7 インストール DVD がローカルシステム上の /var/isos/rhel7dvd.iso にある場合、コマンドは以下のようになります。
    # redhat-upgrade-tool --iso /var/isos/rhel7dvd.iso
    
  4. 再起動: インストールを完了するには、システムを再起動する必要があります。再起動の後は、アップグレードされるパッケージの数によりますが、完了までに 数分から 1 時間以上 の時間がかかる場合があります。すべてが正常に実行された場合、システムは Red Hat Enterprise Linux 7 に対して再起動し、システムが正常に起動しているかことを確認できます。

  5. アップグレード後のタスクの実行: Preupgrade Assistant が「FIXED」項目について作成したスクリプトは、アップグレード後に自動的に実行されます。管理者が手動で実行する必要のあるその他すべてのアップグレード後のタスクは Preupgrade Assistant の結果から特定できます。

  6. システムのチェック: システムが RHEL 6 の場合に正常に登録され、サブスクライブされている場合、このアップグレードプロセスによりシステムが RHEL 7 に対して自動的に再登録されます。システムが RHEL 7 システムとして適切にアップグレードされ、サブスクライブされていることを確認するには、以下を入力します。

    # 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
    # cat /etc/redhat-release
    Red Hat Enterprise Linux Server release 7.0 (Maipo)
    
  7. リポジトリーリストの修正 (必要な場合): リポジトリーリストが RHEL 7 に適切にアップグレードされていない場合、システムのサブスクライブを取り消してからこれを RHEL 7 システムとして再度サブスクライブし、必要なリポジトリーを追加します (利用可能なすべてのリポジトリーは /etc/yum.repos.d/redhat.repo ファイルに一覧表示されるはずです)。

    # subscription-manager remove --all
    # subscription-manager unregister
    # subscription-manager register
    # subscription-manager attach --pool=poolID
    # subscription-manager repos --enable=repoID
    
  8. yum update の実行: アップグレードが成功しているようであれば、以下のようにすべての新規 RHEL 7 パッケージをそれぞれのパッケージの最新バージョンにアップグレードします。

    # yum update -y
    # reboot
    

ステップ 5: フィードバックの提供

アップグレードプロセス時に直面した問題に関連するフィードバックを Red Hat に提供してください。お客様に バグレポートサポートケース を作成していただき、弊社がお客様が直面された問題に対応できるようにご協力いただいていることに感謝いたします。

デバッグログはアップグレードされたシステムの以下のファイルにあります。このデバッグログをご自由に送信してください。

/var/log/upgrade.log

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.