目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / 導入ガイド / SUSE Linux Enterpriseの更新とアップグレード / オンラインでのアップグレード
適用項目 SUSE Linux Enterprise Server 12 SP5

21 オンラインでのアップグレード

SUSEは、動作中のシステムを新しいサービスパックにアップグレードするための直感的なグラフィカルツールとシンプルなコマンドラインツールを提供します。これらのツールは、サービスパックのロールバックなどをサポートしています。この章では、これらのツールを使用してサービスパックのアップグレードを実行する方法を順を追って説明します。

21.1 概念の概要

システムをアップグレードする前に、19.3項 「システムの準備」をお読みください。

SUSEは、SUSE Linux Enterpriseファミリ用の新しいサービスパックを定期的にリリースしています。お客様が新しいサービスパックに容易にマイグレートしてダウンタイムを最小限に抑えることができるよう、SUSEはシステム実行中のオンラインマイグレーションをサポートしています。

SLE 12から、YaST WagonはYaSTマイグレーション(GUI)およびZypperマイグレーション(コマンドライン)に置き換えられました。次の機能がサポートされています。

  • 最初のRPMが更新されるまで、システムは常に定義済みの状態

  • 最初のRPMが更新されるまでは、キャンセルが可能

  • エラーが発生した場合、簡単に回復

  • システムツールによってロールバック、バックアップ/復元は不要

  • アクティブなすべてのリポジトリを使用

  • サービスパックをスキップ可能

重要
重要: SUSE Managerクライアントのアップグレード

アップグレードするシステムがSUSE Managerクライアントの場合は、YaSTオンラインマイグレーション、zypper migrationのいずれでもアップグレードできません。代わりに、「Client Migration」手順を使用してください。https://documentation.suse.com/suma/で入手可能な『SUSE Manager Upgrade Guide』で説明されています。

21.2 サービスパックのマイグレーションのワークフロー

サービスパックのマイグレーションは、YaST、zypper、またはAutoYaSTにより実行できます。

サービスパックのマイグレーションを開始する前に、SUSEカスタマーセンターまたはローカルSMTサーバでシステムを登録する必要があります。SUSE Managerも使用できます。

どの方法を使用する場合も、サービスパックのマイグレーションは次の手順で構成されます。

  1. 登録システムで、マイグレーションターゲットの候補を見つけます。

  2. マイグレーションターゲットを1つ選択します。

  3. 新しいリポジトリを要求して有効にします。

  4. マイグレーションを実行します。

マイグレーションターゲットのリストは、インストールおよび登録されている製品に応じて異なります。新しいSPがまだ利用可能になっていない拡張機能がインストールされている場合、マイグレーションターゲットが提供されない可能性があります。

ホストで使用可能なマイグレーションターゲットのリストは、常にSUSEカスタマーセンターから取得され、インストールされている製品または拡張機能に応じて異なります。

21.3 サービスパックのマイグレーションのキャンセル

サービスパックのマイグレーションは、マイグレーションプロセスの特定の段階でのみキャンセルできます。

  1. パッケージのアップグレードが開始されるまで、システムには、サービスやリポジトリなどの最小限の変更しか加えられません。以前の状態に戻すには、/etc/zypp/repos.d/*を復元します。

  2. パッケージのアップグレードが開始された後は、Snapperスナップショットを使用して以前の状態に戻すことができます(第7章 「Snapperを使用したシステムの回復とスナップショット管理を参照してください)。

  3. マイグレーションターゲットが選択された後、SUSEカスタマーセンターによってリポジトリデータが変更されます。この状態を手動で元に戻すには、SUSEConnect --rollbackを使用します。

21.4 オンラインマイグレーションツール(YaST)を使用したアップグレード

YaSTを使用してサービスパックのマイグレーションを実行するには、Online Migration (オンラインマイグレーション)ツールを使用します。デフォルトでは、YaSTはサードパーティリポジトリからパッケージをインストールしません。パッケージがサードパーティリポジトリからインストールされている場合、YaSTは、SUSEから提供されている同じパッケージによってパッケージが置き換えられるのを防ぎます。

注記
注記: インストールサイズの削減

SPのマイグレーションの実行時に、YaSTは推奨パッケージをすべてインストールします。特にカスタム最小インストールの場合、これによってシステムのインストールサイズが大幅に増加することがあります。

このデフォルトの動作を変更し、必要なパッケージのみを許可するには、/etc/zypp/zypp.confで、solver.onlyRequiresオプションを調整します。

solver.onlyRequires = true

また、ファイル/etc/zypp/zypper.confを編集して、installRecommendsオプションを変更します。

installRecommends=false

これにより、パッチや新しいパッケージのインストールなど、すべてのパッケージ操作の動作が変更されます。

サービスパックのマイグレーションを開始するには、次の手順を実行します。

  1. 登録サーバ上の未使用の拡張機能をすべて無効にして、将来、依存関係の競合が発生が発生するのを防ぎます。拡張機能を覚えていなくても、後でYaSTによって未使用の拡張機能リポジトリが検出され、無効にされます。

  2. 更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。

  3. LTSS加入者である場合は、LTSSリポジトリを無効にする必要があります。これはYaSTでは実行できません。代わりに、インストール済みリポジトリのバージョン番号を使用して、次のコマンドを実行してください。

    tux > sudo SUSEConnect -d -p SLES-LTSS/12.2/x86_64
    tux > sudo zypper ref -s

    詳細については、次のサポート報告書「zypper migration with LTSS repo results in "No migration available"」を参照してください。https://www.suse.com/support/kb/doc/?id=7022381

  4. パッケージ yast2-migration およびその依存関係をインストールします(YaSTの ソフトウェア ›  ソフトウェア管理 )。

  5. YaSTを再起動します。再起動しないと、新しくインストールしたモジュールがコントロールセンターに表示されません。

  6. YaSTで、Online Migration (オンラインマイグレーション)を選択します(アップグレードするSUSE Linux Enterprise Serverのバージョンによって、このモジュールはシステムまたはソフトウェアの下にあります)。可能性のあるマイグレーションターゲットと概要がYaSTによって表示されます。システムで使用可能なマイグレーションターゲットが複数ある場合は、リストから1つを選択します。

  7. リストからマイグレーションターゲットを1つ選択し、次へで続行します。

  8. マイグレーションツールによってアップデートリポジトリが提供される場合は、はいで続行することをお勧めします。

  9. [Online Migration (オンラインマイグレーション)]ツールにより、DVDまたはローカルサーバから提供されている古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。古いリポジトリは以前のSPのものです。SCCまたはSMTの古いリポジトリは自動的に削除されます。

  10. 概要を確認し、次へをクリックしてマイグレーションを続行します。更新開始を選択して確認します。

  11. マイグレーションが正常に完了したら、システムを再起動します。

21.5 Zypperによるアップグレード

Zypperを使用してサービスパックのマイグレーションを実行するには、コマンドラインツールzypper migrationをパッケージ zypper-migration-pluginから使用します。

注記
注記: インストールサイズの削減

SPのマイグレーションの実行時に、YaSTは推奨パッケージをすべてインストールします。特にカスタム最小インストールの場合、これによってシステムのインストールサイズが大幅に増加することがあります。

このデフォルトの動作を変更し、必要なパッケージのみを許可するには、/etc/zypp/zypp.confで、solver.onlyRequiresオプションを調整します。

solver.onlyRequires = true

また、ファイル/etc/zypp/zypper.confを編集して、installRecommendsオプションを変更します。

installRecommends=false

これにより、パッチや新しいパッケージのインストールなど、すべてのパッケージ操作の動作が変更されます。1回の起動に対してのみZypperの動作を変更するには、パラメータ--no-recommendsをコマンドラインに追加します。

サービスパックのマイグレーションを開始するには、次の手順を実行します。

  1. 更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。

  2. SUSE Linux Enterpriseマシンをまだ登録していない場合は登録します。

    sudo SUSEConnect --regcode YOUR_REGISTRATION_CODE
  3. LTSS加入者である場合は、LTSSリポジトリを無効にする必要があります。インストール済みのリポジトリのバージョン番号を使用して、次のコマンドを実行します。

    tux > sudo SUSEConnect -d -p SLES-LTSS/12.2/x86_64
    tux > sudo zypper ref -s

    詳細については、次のサポート報告書「zypper migration with LTSS repo results in "No migration available"」を参照してください。https://www.suse.com/support/kb/doc/?id=7022381

  4. 最新のアップデートをインストールします。

    sudo zypper patch
  5. 次のようにして zypper-migration-plugin パッケージとその依存関係をインストールします。

    sudo zypper in zypper-migration-plugin
  6. zypper migrationを実行します。

    tux > sudo zypper migration
    Executing 'zypper  patch-check'
    
    Refreshing service 'SUSE_Linux_Enterprise_Server_12_x86_64'.
    Loading repository data...
    Reading installed packages...
    0 patches needed (0 security patches)
    
    Available migrations:
    
        1 | SUSE Linux Enterprise Server 12 SP1 x86_64
        2 | SUSE Linux Enterprise Server 12 SP2 x86_64

    マイグレーションプロセスに関する注記

    • システムで使用可能なマイグレーションターゲットが複数ある場合は、Zypperでリストから1つを選択できます。これはSPを1つまたは複数スキップするのと同じことです。基本製品(SLES、SLED)のオンラインマイグレーションを使用できるのは、メジャーバージョンのSP間のみであることに注意してください。

    • デフォルトでは、Zypperは、zypper dupに渡されるオプション--no-allow-vendor-changeを使用します。パッケージがサードパーティリポジトリからインストールされている場合、このオプションにより、SUSEから提供されている同じパッケージによって該当するパッケージが置き換えられるのを防ぎます。

    • Zypperにより、DVDまたはローカルサーバから提供されている古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。古いSCCまたはSMTリポジトリは自動的に削除されます。

  7. すべての変更内容を確認します。特に、削除されるパッケージに注意してください。「y」と入力して続行します(アップグレードするパッケージの正確な数はシステムによって異なる可能性があります)。

    266 packages to upgrade, 54 to downgrade, 17 new, 8 to reinstall, 5 to remove, 1 to change arch.
    Overall download size: 285.1 MiB. Already cached: 0 B  After the operation, additional 139.8 MiB will be used.
    Continue? [y/n/? shows all options] (y):

    シェルをスクロールするには、ShiftPage ↑ またはShiftPage ↓ キーを使用します。

  8. マイグレーションが正常に完了したら、システムを再起動します。

21.6 プレーンZypperによるアップグレード

YaSTマイグレーションまたはZypperマイグレーションを使用できない場合でも、プレーンZypperといくつかの手動操作でマイグレートできます。サービスパックのマイグレーションを開始するには、次の手順を実行します。

  1. 更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。

  2. SUSE Linux Enterpriseの古いリポジトリを使用してパッケージ管理ツールを更新します。

    sudo zypper patch --updatestack-only
  3. システムが登録済みの場合、登録を解除する必要があります。

    sudo SUSEConnect --de-register
  4. 古いインストールソースとリポジトリを削除して、サードパーティリポジトリを調整します。

  5. 新しいインストールソースを追加します。これはローカルソースまたはリモートソースです(プレースホルダREPOSITORYは、18.6項 「リポジトリモデル」を参照してください)。

    sudo zypper addrepo REPOSITORY

    SUSEカスタマーセンターまたはSubscription Management Toolを使用することもできます。x86-64では、SUSE Linux Enterprise 12 SP1のコマンドは次のとおりです。

    sudo SUSEConnect -p SLES/12.2/x86_64 OPTIONS

    クロスアーキテクチャアップグレードはサポートされていません。

    Zypperによって古いカーネルと新しいカーネルの競合が表示されます。[Solution 1]を選択して続行します。

    Problem: product:SLES-12.2-0.x86_64 conflicts with kernel < 4.4 provided by kernel-default-VERSION
     Solution 1: Following actions will be done:
      replacement of kernel-default-VERSION with kernel-default-VERSION
      deinstallation of kernel-default-VERSION
     Solution 2: do not install product:SLES-12.2-0.x86_64
  6. マイグレーションを完了します。

    sudo zypper ref -f -s
    sudo zypper dup --no-allow-vendor-change --no-recommends

    最初のコマンドは、すべてのサービスとリポジトリを更新します。2番目のコマンドは、ディストリビューションのアップグレードを実行します。ここでは最後の2つのオプションが重要です。-no-allow-vendor-changeは、サードパーティRPMによって基本システムのRPMが上書きされないようにします。--no-recommendsオプションは、初期インストール時に選択解除したパッケージが再び追加されないようにします。

21.7 サービスパックのロールバック

サービスパックの有効性が認められない場合は、SUSE Linux Enterpriseシステムをサービスパックのマイグレーションが開始される前の状態に戻すことができます。このためには、スナップショットが有効なBtrfsルートパーティションであることが前提条件です(これはSLES 12のインストール時のデフォルトです)。詳細については、第7章 「Snapperを使用したシステムの回復とスナップショット管理を参照してください。

  1. すべてのSnapperスナップショットのリストを取得します。

    sudo snapper list

    出力を確認して、サービスパックのマイグレーションの開始直前に作成されたスナップショットを見つけます。列Descriptionには対応するステートメントが含まれており、スナップショットには列Userdataimportantというマークが付いています。列#のスナップショット番号と、列Dateの日付を覚えます。

  2. システムを再起動します。ブートメニューからStart boot loader from a read-only snapshot (読み込み専用スナップショットからブートローダを起動)を選択して、前の手順で覚えた日付と番号が付いたスナップショットを選択します。2番目のブートメニュー(スナップショットのブートメニュー)がロードされます。SLES 12で始まるエントリを選択して起動します。

  3. システムが以前の状態で起動し、システムパーティションは読み込み専用でマウントされます。rootとしてログインし、正しいスナップショットを選択しているかどうかを確認します。また、すべてが正常に機能することも確認します。ルートファイルシステムは読み込み専用でマウントされるため、機能の制限が適用される場合があることに注意してください。

    問題がある場合、または間違ったスナップショットをブートした場合は、再起動して、ブート元として別のスナップショットを選択します。この時点では、恒久的な変更は加えられていません。スナップショットが正しく、正常に機能する場合、次のコマンドを実行して変更を確定します。

    snapper rollback

    続いて再起動を行います。ブート画面で、デフォルトのブートエントリを選択して、復元されたシステムで再起動します。

  4. リポジトリの設定が適切にリセットされているかどうかを確認します。さらに、すべての製品が適切に登録されているかどうかも確認します。いずれかが間違っていると、後でシステムを更新しようとしてもできなかったり、間違ったパッケージリポジトリを使用してシステムが更新されたりすることがあります。

    次の手順を開始する前に、システムがインターネットにアクセスできることを確認してください。

    1. 次のコマンドを実行して、サービスとリポジトリを更新します。

      sudo zypper ref -fs
    2. 次のコマンドを実行して、アクティブなリポジトリのリストを取得します。

      sudo zypper lr

      このコマンドの出力を入念に確認します。更新対象として追加したサービスとリポジトリが一覧にされていてはなりません。たとえば、SLES 12 SP1からSLES 12 SP2へのサービスパックマイグレーションをロールバックする場合、リポジトリSLES12-SP2-PoolおよびSLES12-SP2-Updates「ではなく」、SP1のバージョンが含まれている必要があります。

      間違ったリポジトリが一覧にされている場合は削除し、必要に応じて、製品またはサービスパックのバージョンに一致するバージョンに置き換えます。サポートされるマイグレーションパスのリポジトリのリストについては、18.6項 「リポジトリモデル」を参照してください。

    3. 最後に、次のコマンドを実行して、インストールされているすべての製品の登録状態を確認します。

      SUSEConnect --status

      すべての製品が「登録されています」とレポートされる必要があります。そうなっていない場合は、次のコマンドを実行して登録を修復します。

      SUSEConnect --rollback

以上で、システムは正常にサービスパックのマイグレーション開始直前にキャプチャされた状態に戻りました。