システムダウンタイムなしでSLES 15 SP5からSP6に移行する方法

SLES 15 SP5 クラスタを SP6 に移行する際にアプリケーションを稼働させたままにすることは可能ですが、単一のオペレーティングシステムインスタンスを中断なくアップグレードして再起動することはできません。SUSE は SP5 から SP6 へのサービスパック移行をサポートしていますが、オンライン移行プロセスではシステムの再起動が必要です。サービスのダウンタイムを回避するには、サポートされている SUSE Linux Enterprise High Availability (SLE HA) クラスタでノードを 1 つずつアップグレードするか、代替の SP6 環境を構築してトラフィックをそちらに移行してください。各ホストが利用できない間も、サービスが正常に動作する場所が必要です。

この初心者向けガイドでは、SLE HAクラスタのローリングアップグレード手順に焦点を当てています。また、サーバーが1台しかない場合の対処方法、変更前に確認すべき事項、サービスが正常に動作しているかどうかを確認する方法についても解説しています。ワークロードを移動するための具体的なコマンドと順序は、クラスタのリソース、ストレージ、およびアプリケーションによって異なります。

「システムダウンタイムなし」とはどういう意味か

サービスパックの移行では、ソースシステムが稼働中にシステムパッケージが置き換えられます。SUSEではこれをオンライン移行と呼んでいます。インストールメディアからの起動の必要性は軽減されますが、公式の手順では移行が成功した後にシステムを再起動するよう指示されています。オンライン移行は、同じホストが継続的にリクエストを処理するライブアップグレードとは異なります。

クラスタ化されたサービスの場合、ローリングアップグレードとは、1つのノードをサービスから外し、移行と再起動を行い、クラスタに戻してから、次のノードで同じ手順を繰り返すことを意味します。フェイルオーバーが正常に機能し、残りの容量が十分であれば、アプリケーションは別のノードから引き続き利用可能です。フェイルオーバーによってアクティブなセッションが一時的に中断される可能性があるため、「高可用性」によってすべての接続が影響を受けずに維持されると想定するのではなく、ユーザー向けサービスの可用性を測定してください。

SUSE は、SLES 15 SP5 を SP6 のサポート対象ソースとして、オンラインとオフラインの両方でリストしています。サポート対象パスについては、SLES 15 SP6 アップグレードパスガイドに記載されています。SUSE HA のドキュメントでは、同じメジャーリリース内のサービスパック間でのクラスタのローリングアップグレードがサポートされています。SLE HA クラスタアップグレードガイドを参照してください。

何かを変える前に、適切なアプローチを選択してください。

  • スタンドアロンサーバーが1台の場合:ホストの移行と再起動のためにメンテナンス期間をスケジュールしてください。正常に動作する別のアプリケーションインスタンスがない場合、ロードバランサーを使用してもダウンタイムを解消することはできません。
  • 2つ以上のSLE HAノードの場合:クォーラム、フェンシング、リソース配置、ストレージアクセス、および予備容量を確認した後、文書化されたローリングアップグレード手順を検討してください。
  • SLE HA 外にレプリカを持つアプリケーションの場合:交換用の SP6 ホストまたはプールをアップグレードし、検証を行い、トラフィックを段階的に移行します。これはアプリケーション層におけるブルー/グリーン展開またはローリング展開であり、インプレース SLES 移行とは別個のものです。
  • SUSE Managerで管理されているホストの場合:zypper migration SUSE Managerのクライアント移行ワークフローに従ってください。SUSEは、YaSTオンライン移行をSUSE Managerクライアント上で直接使用しないよう推奨しています。

サービスがデータベースまたはその他のステートフルアプリケーションである場合は、アプリケーションの互換性とデータレプリケーションを別々の作業フローとして扱ってください。オペレーティングシステムの移行パスは、データベースを自動的にアップグレードしたり、そのレプリケーションおよびフェイルオーバー設計の安全性を証明したりするものではありません。

クラスターと変更計画を準備する

1. バージョン、登録状況、アップグレード資格を確認する

すべてのノードがSLES 15 SP5で、SLE HA拡張機能およびその他のモジュールまたは製品が正しく登録されていることを確認してください。移行対象リストは、インストールされている製品と拡張機能によって異なります。SP6ターゲットが表示されない場合は、登録、リポジトリ、または拡張機能の可用性に問題がある可能性があります。ターゲットを表示させるためだけに、リポジトリパスを強制的に変更しないでください。

登録済みのシステムの場合、以下の読み取り専用チェックによってその状態を把握することができます。

cat /etc/os-release
sudo SUSEConnect --status
sudo zypper lr -u

すべてのノードにインストールされているSLESおよびSLE HA製品、リポジトリ、アーキテクチャを比較します。ホストがSUSE Managerによって管理されている場合は、以下の手順を直接実行するのではなく、対応するクライアント移行手順を使用してください。

2. パッチを適用し、バックアップを取り、テストする

SUSEでは、アップグレード前にソースシステムが最新のパッチレベルになっていることを要求しています。最新のSP5メンテナンスアップデートを適用し、SP6リリースノートでパッケージ、モジュール、およびアプリケーションの変更点を確認してください。SUSEのアップグレード準備手順では、最新のバックアップとリリースノートの確認も求められています。

システム構成とアプリケーションデータをバックアップし、バックアップが復元できることを確認します。ネットワークインターフェイス、ストレージ、クラスタリソース、サードパーティリポジトリ、アプリケーションの健全性チェックなど、本番環境と一致するステージングクラスタで手順全体をテストします。各ノードでの移行と再起動にかかる時間を記録し、変更ウィンドウを推定できるようにします。

3. 残りのノードがワークロードを処理できることを証明する

ノードを削除する前に、クラスターが正常であり、未解決のリソース障害がないことを確認してください。別のノードがサービスを実行でき、必要なストレージをマウントまたはアクセスでき、想定されるトラフィックを処理できることを確認してください。ノードが1つ失われるとCPU、メモリ、ネットワーク、またはストレージに過負荷がかかる場合は、ダウンタイムがないと主張するのではなく、容量を追加するか、負荷を軽減するか、メンテナンス期間をスケジュールしてください。

クラスタフェンシングが、確立されたHA設計に従って構成され、正常に機能していることを確認してください。フェンシングは、信頼できないノードを隔離することで共有リソースを保護します。アップグレードを容易にするためにフェンシングを無効にすると、スプリットブレインのリスクが生じる可能性があります。ノードが再起動後に復旧しない場合に備えて、コンソールまたは帯域外アクセスを利用できるようにしておいてください。

ローリングアップグレードを、ノードごとに1つずつ実行する。

以下の手順を計画の概要として活用してください。ご使用のSLE HAバージョンとリソース設定に合わせて、必ず手順に従ってください。リソース管理手順をそのまま本番環境にコピーしないでください。

  1. クラスタの状態を確認します。現在の状態を取得し、すべてのノードとリソースが正常であることを確認します。SLE HA では、crm statusクラスタの状態を検査する 1 つの方法が文書化されています。
  2. ノードからサービスを移動または削除します。クラスタで承認された手順に従って、アプリケーションリソースを別の正常なノードに配置します。作業を進める前に、アプリケーションのエンドポイントと依存ストレージを確認してください。
  3. アップグレード中のノードでクラスタスタックを停止します。SUSEのローリングアップグレード手順では、ソフトウェアアップグレード中にクラスタリソースマネージャをアクティブにしたままにしておくと、アクティブなノードがフェンシングされるなどの問題が発生する可能性があると警告しています。ドキュメントに記載されているノードレベルのコマンドは ですcrm cluster stop。
  4. SLES サービス パックの移行を実行します。登録済みの SUSE Manager 管理対象外のホストで、 を使用しますsudo zypper migration。提示された SP6 ターゲットとリポジトリの変更を確認します。確認する前に、提案されたパッケージ アクション、特に削除またはダウングレードするパッケージをよく読んでください。このコマンドライン パスについては、SLES の公式オンライン移行手順書に記載されています。
  5. ノードを再起動して検証します。移行が完了したら、SUSE の指示に従ってホストを再起動します。SLES 15 SP6 が起動し、必要な製品が登録され、リポジトリが対象のサービスパックと一致し、ノードに重大なシステムエラーがないことを確認してください。
  6. ノードをクラスタに戻します。承認された手順に従ってクラスタスタックを起動します。SLE HA ガイドを参照してくださいcrm cluster start。crm statusまたは Hawk2 をチェックし、ノードがリソース障害なく再参加することを確認します。
  7. クラスターが安定してから、この手順を繰り返してください。次のノードのワークロードを移動し、そのノードをクラスターから切り離し、移行、再起動、検証を行い、クラスターに再参加させます。残りのクラスターが劣化している場合や、安全に処理できる以上のワークロードを抱えている場合は、次のノードを開始しないでください。

SUSEは、異なるバージョンが混在するクラスタノードはローリングアップグレード期間中のみ一時的にサポートされ、アップグレードは1週間以内に完了する必要があると述べています。異なるバージョンが混在するクラスタを無期限に放置するのではなく、短期間で計画的にアップグレードを進めてください。最後に、すべてのノードがSP6を実行していることを確認し、クラスタとアプリケーションの健全性をチェックし、ログとリポジトリの登録状況を確認してください。

よくある問題とその対処法

  • SP6移行ターゲットが表示されません。登録状況、アクティブなリポジトリ、およびインストールされている各モジュールまたは拡張機能にサポートされているSP6ターゲットがあるかどうかを確認してください。開始する前に、リポジトリまたはライセンスの問題を解決してください。
  • ソルバーが予期しない削除を提案した場合、停止してパッケージの出所、サードパーティのリポジトリ、および依存関係を調査してください。SUSEは、移行中は古いローカルリポジトリまたはDVDリポジトリを無効にする必要があると指摘しています。説明できないパッケージプランは受け入れないでください。
  • アップグレードされたノードは再参加しません。アプリケーションを正常なノードで実行し続け、クラスタおよびシステムログを検査し、再試行する前にノードのネットワーク、製品登録、リポジトリ構成、およびSLE HAパッケージを確認してください。
  • サービスにはアクセスできるものの、ユーザーからエラーが報告されている。ホストの可用性だけでなく、アプリケーションのトランザクションもテストしてください。データベース接続、共有ストレージ、認証、スケジュールされたジョブ、およびロードバランサーの健全性チェックを検証してください。
  • シングルサーバーシステムはオンライン状態を維持する必要があります。同じホスト上での再起動を回避するような、SLESサービスパックの移行手順は存在しません。2つ目のアプリケーションインスタンスを追加するか、メンテナンス期間を計画してください。

ダウンタイムが回避されたかどうかを判断する方法

変更前に、測定可能な成功条件を定義します。例えば、各ノードのメンテナンス中、サービスの外部ヘルスチェックが継続的に合格し、エラー率が合意されたしきい値内に収まり、1つのノードが利用不能な状態でも代表的なユーザー トランザクションが成功する、といった条件です。フェイルオーバーのギャップ、セッションのドロップ、キューイングされた作業、パフォーマンスの低下などを記録します。エンドポイントは稼働状態を維持していたものの、重要なワークフローが失敗した場合は、移行はサービス レベルの目標を達成していません。

ローリングアップグレードは、適切に設計されたサービスであれば、個々のサーバーが再起動している間も利用可能に維持できます。ただし、セッションの中断を保証したり、容量不足のクラスタを補ったり、移行された各ホストの再起動をなくしたりすることはできません。シングルノード構成、テスト済みのレプリケーションがないステートフルアプリケーション、またはサポートされていない拡張機能を持つクラスタの場合は、計画的なメンテナンス期間を使用するか、本番トラフィックを移行する前に代替環境を構築して検証してください。

公式資料

コメントを残す

失われたパーティションとハードディスクデータを安全に復元する方法

失われたパーティションとハードディスクデータを安全に復元する方法

TestDiskとPhotoRecを使って、失われたパーティションやファイルを復元する方法を学びましょう。ソースドライブを保護し、安全にスキャンを行い、復元したデータを別のディスクに保存します。

LinuxデスクトップでQRコードをスキャンする方法

LinuxデスクトップでQRコードをスキャンする方法

CoBangを使えば、Webカメラまたは画像ファイルでLinux上でQRコードをスキャンできます。インストールオプション、セットアップ手順、Flatpakカメラへのアクセスに関する修正方法については、こちらをご覧ください。

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使用してLinux上でウェブカメラの設定を変更しましょう。露出、色、フリッカー低減などのサポートされているコントロールを調整し、互換性のあるビデオモードを確認できます。

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールするには、JetBrains Toolboxを使用するか、スタンドアロンのtar.gzアーカイブを使用するか、SnapおよびArch AURオプションを選択してください。Javaは既にバンドルされています。

LinuxにCisco Packet Tracerをインストールする方法

LinuxにCisco Packet Tracerをインストールする方法

Cisco Packet Tracer 9.0.1 を Ubuntu 64 ビット版にダウンロードし、APT を使用して DEB パッケージをインストールし、ターミナルでライセンスに同意してサインインすると、ラボを開始できます。

LinuxでCD-ROMをISOイメージとしてバックアップする方法

LinuxでCD-ROMをISOイメージとしてバックアップする方法

Linux上でGNOME Disksまたはddコマンドを使用してCD-ROM ISOイメージを作成します。光学ドライブを識別し、コピーを監視し、イメージを検証し、破損したディスクやオーディオディスクに別のツールが必要な場合を把握できます。

XFCE 4でデュアルパネルを設定する方法

XFCE 4でデュアルパネルを設定する方法

各ディスプレイごとに個別のXFCE 4パネルを作成し、2番目のパネルを右側の出力に割り当て、位置とサイズを調整し、必要なランチャーとステータス項目を追加します。

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って写真の背景を削除する方法:被写体をトレースし、選択した背景を削除し、透明度を保持して、再利用可能なPNG形式でエクスポートします。

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearは公式サイトから無料でダウンロードできます。Windows、macOS、Linuxの各パッケージを比較し、データファイルをインストールして、最初のフライトを開始しましょう。

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSamplerはMP3クリップをキーボードのキーにマッピングし、音声をループ再生できます。この旧型フリーウェアの機能、旧機能が失われた箇所、ダウンロード前に確認すべき点について解説します。