21 オンラインでのアップグレード #
SUSEは、動作中のシステムを新しいサービスパックにアップグレードするための直感的なグラフィカルツールとシンプルなコマンドラインツールを提供します。これらのツールは、サービスパックの「ロールバック」などをサポートしています。この章では、これらのツールを使用してサービスパックのアップグレードを実行する方法を順を追って説明します。
21.1 概念の概要 #
システムをアップグレードする前に、19.3項 「システムの準備」をお読みください。
SUSEは、SUSE Linux Enterpriseファミリ用の新しいサービスパックを定期的にリリースしています。お客様が新しいサービスパックに容易にマイグレートしてダウンタイムを最小限に抑えることができるよう、SUSEはシステム実行中のオンラインマイグレーションをサポートしています。
SLE 12から、YaST WagonはYaSTマイグレーション(GUI)およびZypperマイグレーション(コマンドライン)に置き換えられました。次の機能がサポートされています。
最初のRPMが更新されるまで、システムは常に定義済みの状態
最初のRPMが更新されるまでは、キャンセルが可能
エラーが発生した場合、簡単に回復
システムツールによって「ロールバック」、バックアップ/復元は不要
アクティブなすべてのリポジトリを使用
サービスパックをスキップ可能
アップグレードするシステムが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つ選択します。
新しいリポジトリを要求して有効にします。
マイグレーションを実行します。
マイグレーションターゲットのリストは、インストールおよび登録されている製品に応じて異なります。新しいSPがまだ利用可能になっていない拡張機能がインストールされている場合、マイグレーションターゲットが提供されない可能性があります。
ホストで使用可能なマイグレーションターゲットのリストは、常にSUSEカスタマーセンターから取得され、インストールされている製品または拡張機能に応じて異なります。
21.3 サービスパックのマイグレーションのキャンセル #
サービスパックのマイグレーションは、マイグレーションプロセスの特定の段階でのみキャンセルできます。
パッケージのアップグレードが開始されるまで、システムには、サービスやリポジトリなどの最小限の変更しか加えられません。以前の状態に戻すには、
/etc/zypp/repos.d/*
を復元します。パッケージのアップグレードが開始された後は、Snapperスナップショットを使用して以前の状態に戻すことができます(第7章 「Snapperを使用したシステムの回復とスナップショット管理」を参照してください)。
マイグレーションターゲットが選択された後、SUSEカスタマーセンターによってリポジトリデータが変更されます。この状態を手動で元に戻すには、
SUSEConnect
--rollback
を使用します。
21.4 オンラインマイグレーションツール(YaST)を使用したアップグレード #
YaSTを使用してサービスパックのマイグレーションを実行するには、
ツールを使用します。デフォルトでは、YaSTはサードパーティリポジトリからパッケージをインストールしません。パッケージがサードパーティリポジトリからインストールされている場合、YaSTは、SUSEから提供されている同じパッケージによってパッケージが置き換えられるのを防ぎます。SPのマイグレーションの実行時に、YaSTは推奨パッケージをすべてインストールします。特にカスタム最小インストールの場合、これによってシステムのインストールサイズが大幅に増加することがあります。
このデフォルトの動作を変更し、必要なパッケージのみを許可するには、/etc/zypp/zypp.conf
で、solver.onlyRequires
オプションを調整します。
solver.onlyRequires = true
また、ファイル/etc/zypp/zypper.conf
を編集して、installRecommends
オプションを変更します。
installRecommends=false
これにより、パッチや新しいパッケージのインストールなど、すべてのパッケージ操作の動作が変更されます。
サービスパックのマイグレーションを開始するには、次の手順を実行します。
登録サーバ上の未使用の拡張機能をすべて無効にして、将来、依存関係の競合が発生が発生するのを防ぎます。拡張機能を覚えていなくても、後でYaSTによって未使用の拡張機能リポジトリが検出され、無効にされます。
更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。
LTSS加入者である場合は、LTSSリポジトリを無効にする必要があります。これはYaSTでは実行できません。代わりに、インストール済みリポジトリのバージョン番号を使用して、次のコマンドを実行してください。
tux >
sudo
SUSEConnect -d -p SLES-LTSS/12.2/x86_64tux >
sudo
zypper ref -s詳細については、次のサポート報告書「zypper migration with LTSS repo results in "No migration available"」を参照してください。https://www.suse.com/support/kb/doc/?id=7022381
パッケージ yast2-migration およびその依存関係をインストールします(YaSTの › )。
YaSTを再起動します。再起動しないと、新しくインストールしたモジュールがコントロールセンターに表示されません。
YaSTで、SUSE Linux Enterprise Serverのバージョンによって、このモジュールは または の下にあります)。可能性のあるマイグレーションターゲットと概要がYaSTによって表示されます。システムで使用可能なマイグレーションターゲットが複数ある場合は、リストから1つを選択します。
を選択します(アップグレードするリストからマイグレーションターゲットを1つ選択し、
で続行します。マイグレーションツールによってアップデートリポジトリが提供される場合は、
で続行することをお勧めします。[Online Migration (オンラインマイグレーション)]ツールにより、DVDまたはローカルサーバから提供されている古いリポジトリが検出される場合は、それらを無効にすることを強くお勧めします。古いリポジトリは以前のSPのものです。SCCまたはSMTの古いリポジトリは自動的に削除されます。
概要を確認し、
をクリックしてマイグレーションを続行します。 を選択して確認します。マイグレーションが正常に完了したら、システムを再起動します。
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
をコマンドラインに追加します。
サービスパックのマイグレーションを開始するには、次の手順を実行します。
更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。
SUSE Linux Enterpriseマシンをまだ登録していない場合は登録します。
sudo
SUSEConnect
--regcode YOUR_REGISTRATION_CODELTSS加入者である場合は、LTSSリポジトリを無効にする必要があります。インストール済みのリポジトリのバージョン番号を使用して、次のコマンドを実行します。
tux >
sudo
SUSEConnect -d -p SLES-LTSS/12.2/x86_64tux >
sudo
zypper ref -s詳細については、次のサポート報告書「zypper migration with LTSS repo results in "No migration available"」を参照してください。https://www.suse.com/support/kb/doc/?id=7022381
最新のアップデートをインストールします。
sudo
zypper
patch次のようにして zypper-migration-plugin パッケージとその依存関係をインストールします。
sudo
zypper
in zypper-migration-pluginzypper
migration
を実行します。tux >
sudozypper
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リポジトリは自動的に削除されます。
すべての変更内容を確認します。特に、削除されるパッケージに注意してください。「
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):
シェルをスクロールするには、Shift–Page ↑ またはShift–Page ↓ キーを使用します。
マイグレーションが正常に完了したら、システムを再起動します。
21.6 プレーンZypperによるアップグレード #
YaSTマイグレーションまたはZypperマイグレーションを使用できない場合でも、プレーンZypperといくつかの手動操作でマイグレートできます。サービスパックのマイグレーションを開始するには、次の手順を実行します。
更新するマシンで実行されているGNOMEセッションにログインしている場合は、テキストコンソールに切り替えます。GNOMEセッション内からアップデートを実行することはお勧めしません。これは、リモートマシンからログインしている場合には該当しません(ただし、GNOMEでVNCセッションを実行している場合を除きます)。
SUSE Linux Enterpriseの古いリポジトリを使用してパッケージ管理ツールを更新します。
sudo
zypper
patch --updatestack-onlyシステムが登録済みの場合、登録を解除する必要があります。
sudo
SUSEConnect
--de-register古いインストールソースとリポジトリを削除して、サードパーティリポジトリを調整します。
新しいインストールソースを追加します。これはローカルソースまたはリモートソースです(プレースホルダREPOSITORYは、18.6項 「リポジトリモデル」を参照してください)。
sudo
zypper
addrepo REPOSITORYSUSEカスタマーセンターまたは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
マイグレーションを完了します。
sudo
zypper
ref -f -s sudozypper
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を使用したシステムの回復とスナップショット管理」を参照してください。
すべてのSnapperスナップショットのリストを取得します。
sudo snapper list
出力を確認して、サービスパックのマイグレーションの開始直前に作成されたスナップショットを見つけます。列
には対応するステートメントが含まれており、スナップショットには列 にimportant
というマークが付いています。列 のスナップショット番号と、列 の日付を覚えます。システムを再起動します。ブートメニューから
を選択して、前の手順で覚えた日付と番号が付いたスナップショットを選択します。2番目のブートメニュー(スナップショットのブートメニュー)がロードされます。SLES 12
で始まるエントリを選択して起動します。システムが以前の状態で起動し、システムパーティションは読み込み専用でマウントされます。
root
としてログインし、正しいスナップショットを選択しているかどうかを確認します。また、すべてが正常に機能することも確認します。ルートファイルシステムは読み込み専用でマウントされるため、機能の制限が適用される場合があることに注意してください。問題がある場合、または間違ったスナップショットをブートした場合は、再起動して、ブート元として別のスナップショットを選択します。この時点では、恒久的な変更は加えられていません。スナップショットが正しく、正常に機能する場合、次のコマンドを実行して変更を確定します。
snapper rollback
続いて再起動を行います。ブート画面で、デフォルトのブートエントリを選択して、復元されたシステムで再起動します。
リポジトリの設定が適切にリセットされているかどうかを確認します。さらに、すべての製品が適切に登録されているかどうかも確認します。いずれかが間違っていると、後でシステムを更新しようとしてもできなかったり、間違ったパッケージリポジトリを使用してシステムが更新されたりすることがあります。
次の手順を開始する前に、システムがインターネットにアクセスできることを確認してください。
次のコマンドを実行して、サービスとリポジトリを更新します。
sudo zypper ref -fs
次のコマンドを実行して、アクティブなリポジトリのリストを取得します。
sudo zypper lr
このコマンドの出力を入念に確認します。更新対象として追加したサービスとリポジトリが一覧にされていてはなりません。たとえば、SLES 12 SP1からSLES 12 SP2へのサービスパックマイグレーションをロールバックする場合、リポジトリ
SLES12-SP2-Pool
およびSLES12-SP2-Updates
「ではなく」、SP1
のバージョンが含まれている必要があります。間違ったリポジトリが一覧にされている場合は削除し、必要に応じて、製品またはサービスパックのバージョンに一致するバージョンに置き換えます。サポートされるマイグレーションパスのリポジトリのリストについては、18.6項 「リポジトリモデル」を参照してください。
最後に、次のコマンドを実行して、インストールされているすべての製品の登録状態を確認します。
SUSEConnect --status
すべての製品が「
登録されています
」とレポートされる必要があります。そうなっていない場合は、次のコマンドを実行して登録を修復します。SUSEConnect --rollback
以上で、システムは正常にサービスパックのマイグレーション開始直前にキャプチャされた状態に戻りました。