HAクラスタでSafeKitによって保護されているアプリケーションをアップグレードする
SafeKitで保護された高可用性アプリケーションのアップグレード
ビジネスに不可欠なアプリケーションを最新の状態に保つことは、セキュリティ、パフォーマンス、および新機能へのアクセスにとって不可欠です。アプリケーションがSafeKitによって保護されている場合、アップグレード手順は使用されている高可用性アーキテクチャによって異なります。
一般的な導入モデルは2つあります。
- 仮想マシン高可用性では、アプリケーションはSafeKitによって管理される保護された仮想マシン内で実行されます。
- アプリケーションレベルの高可用性では、アプリケーションは 2 台のサーバーにインストールされます。
各モデルは、それぞれ異なるアップグレードメカニズムとロールバック戦略を提供します。
VMレベルの高可用性
SafeKitやkvm.safeなどのhyperv.safe VMフェイルオーバーソリューションでは、アプリケーションは仮想マシン内に一度だけインストールされます。
SafeKitアプリケーション自体ではなくVM全体を保護するため、メンテナンス作業が大幅に簡素化されます。
簡略化されたアップグレードプロセス
アプリケーションの単一のVMインスタンスを扱っているため、メンテナンスはアプリケーションレベルのフェイルオーバーではなく、仮想化レイヤーで処理されます。
アップグレード手順は簡単です。
- Hyper-VまたはKVM管理コンソールを使用して、仮想マシンのチェックポイントまたはスナップショットを作成します。
- 仮想マシン内でアプリケーションのアップグレードを実行します。
- アップグレードされたアプリケーションを検証してください。
- アップグレードが成功した場合は、スナップショットを削除して通常どおりの運用を続けてください。
- 問題が発生した場合は、スナップショットから仮想マシンを復元し、直ちに以前の正常な状態に戻してください。
サービスの中断期間は、アプリケーション自体のアップグレード手順で通常必要とされる期間に限定されます。
VMレベル保護のメリット
- 管理すべきアプリケーションインスタンスは1つだけです。
- クラスタ対応のアップグレード手順はありません。
- VMスナップショットによる高速ロールバック。
- 運用上の複雑さが軽減される。
- 保護対象アプリケーションの種類に関わらず、一貫したアップグレードプロセスを実現します。
このアプローチは、アプリケーションクラスタリングが利用できない、あるいは実装が困難なパッケージアプリケーションや市販の既製ソフトウェアにとって特に魅力的です。
アプリケーションレベルの高可用性
伝統的に SafeKit クラスターの場合、アプリケーションはノード1とノード2の2つのノードにインストールされます。 SafeKit これらのノード間でアプリケーションデータを同期し、必要に応じてフェイルオーバーを自動的に処理します。
マイナーアプリケーションアップグレード
マイナーアップグレードでは、アプリケーションのバイナリのみが変更され、レプリケートされたデータはバージョン間で完全に互換性が維持されます。レプリケートされたデータのフォーマットは変更されないため、 SafeKit最小限のダウンタイムでローリングアップグレードをサポートします。
- クラスターは当初、 **✅ PRIM (ノード 1) / ✅ SECOND (ノード 2)**構成で動作します。アプリケーションは PRIM ノードで実行され、複製されたデータは SECOND ノードに継続的に同期されます。
- 2 番目のノード ( ❌ STOP (ノード 2) ) 上のSafeKitモジュールを停止し、アプリケーションをアップグレードしてから、モジュールを再起動します。この操作中、アプリケーションは**✅ ALONE (ノード 1)**上で引き続き実行され、サービスの中断は発生しません。
- 再起動後、アップグレードされたノードは**✅ SECOND (ノード 2)**としてクラスタに再参加し、複製されたデータを再同期します。
- PRIMノードを停止します(❌ 停止(ノード 1)). SafeKit 自動的にフェイルオーバーが実行され、アップグレードされたノードが **✅ 単独(ノード2)**アプリケーションはこのノードで再起動されます。ダウンタイムは、フェイルオーバーとアプリケーションの再起動時間のみに限定されます。
- アップグレードされたアプリケーションがALONE状態で正しく動作する場合は、残りのノード(ノード1)をアップグレードし、そのSafeKitモジュールを再起動します。
- 再同期後、クラスタは通常の**✅ SECOND (ノード 1) / ✅ PRIM (ノード 2)**構成に戻ります。元の役割は、 SafeKit管理コンソールを使用して手動で復元することも、 SafeKit構成を通じて自動的に復元することもできます。
ロールバック手順
- ステップ 5 で、 **✅ ALONE (ノード 2)**ノードを停止します。
- 元のノード(ノード 1)を、以前のアプリケーション バージョンでプライマリ**ALONE(ノード 1)**として強制的に起動します。
- アップグレードしたノード(ノード2)に以前のバージョンを再インストールしてください。
- 通常の**✅ PRIM (ノード 1) / ✅ SECOND (ノード 2)**構成に戻ります。
完全なアップグレードは、 ✅ PRIM / ✅ SECONDから**❌ STOP / ✅ ALONE**への移行に限定されたダウンタイムで実行されます。
主要アプリケーションのアップグレード
メジャーアップグレードでは、複製データのフォーマットまたは構造が変更されます。新しいバージョンで生成されたデータは古いバージョンと互換性がなくなるため、ローリングアップグレードは実行できません。
- クラスターは最初は**✅ PRIM (ノード 1) / ✅ SECOND (ノード 2)**構成で動作します。
- SECOND ノードを停止してから PRIM ノードを停止します。クラスタは**❌ STOP (ノード 1) / ❌ STOP (ノード 2)**に移行します。
- 以前の PRIM ノードをアップグレードして再起動します。ノードは、新しいアプリケーション バージョンで**✅ ALONE (ノード 1)**として単独で起動します。
- アップグレードしたアプリケーションを検証し、正しく動作することを確認してください。
- 検証が成功した場合は、残りのノードをアップグレードし、そのSafeKitモジュールを再起動してください。
- アップグレードされたノードは**✅ SECOND (ノード 2)となり、アプリケーション データを再同期し、クラスタは通常の✅ PRIM (ノード 1) / ✅ SECOND (ノード 2)**構成に戻ります。
ロールバック手順
- ステップ 5 で、アップグレードされた**✅ ALONE (ノード 1)**ノードを停止します。
- アップグレードされていないノードをプライマリ**✅ ALONE (ノード 2)**として強制的に起動します。
- アップグレードしたノードに、以前のバージョンのアプリケーションを再インストールしてください。
- 元の**✅ SECOND (ノード 1) / ✅ PRIM (ノード 2)**構成を復元します。
複製されたデータは移行中に変更されるため、ダウンタイムは**❌ STOP / ❌ STOP状態から最初のアップグレードされたノードが✅ ALONE**として再起動するまでの期間に相当します。
SafeKitアプリケーションのアップグレードを簡素化する理由
SafeKit 、管理者が以下の操作を行えるようにすることで、運用リスクを最小限に抑えます。
- 一度に1つのノードずつアップグレードしてください。
- 可能な限りサービスの可用性を維持する。
- 本番環境へのトラフィックを切り替える前に、新しいバージョンを検証してください。
- 予期せぬ問題が検出された場合は、速やかに前のノードに戻してください。
適切なアップグレード戦略の選択
| デプロイメントモデル | アプリケーションインスタンス | レプリケートされたデータの影響 | アップグレード方法 |
|---|---|---|---|
| アプリケーションレベルのHA | 2ノード | アップグレードの種類による | フェイルオーバー付きローリングアップグレード |
| VMレベルのHA( hyperv.safe / kvm.safe ) | 1台のVM | VM内で管理 | 必要に応じてスナップショット、アップグレード、検証、ロールバック |
結論
SafeKit 、さまざまなアプリケーションの運用要件に合わせて柔軟に対応できる高可用性アーキテクチャを提供します。2つのノードにまたがるクラスタ化されたアプリケーションを保護する場合でも、仮想マシン上で動作する単一のアプリケーションインスタンスを保護する場合でも、 SafeKit制御されたアップグレードを可能にし、ダウンタイムを最小限に抑え、メンテナンス作業が必要な際にはいつでも信頼性の高い復旧オプションを提供します。
🔍 SafeKit を探索する
SafeKit の機能、アーキテクチャ、ビデオ、ドキュメント、無料トライアルに関する情報をご覧ください。
| リソース | 説明 | リンク |
|---|---|---|
| 主な機能 | SafeKit がシンプルで費用対効果の高い高可用性ソリューションである理由をご覧ください。 | 主な機能 |
| ユースケース | SafeKit が重要なアプリケーションとインフラストラクチャの可用性を維持する方法をご覧ください。 | ユースケースを探索する |
| デプロイメントモデル | SafeKit は、SAN や共有ストレージなしで高可用性を提供します。 | デプロイモデルを探索する |
| 高可用性戦略 | 仮想マシンの高可用性とアプリケーションの高可用性を比較します。 | 2 つの戦略を比較する |
| 技術仕様 | SafeKit クラスターの技術要件と制限事項を確認してください。 | 技術仕様書を読む |
| 動画 | SafeKit の構成と自動フェイルオーバーのデモンストレーションをご覧ください。 | テクニカルビデオを見る |
| アーキテクチャ | SafeKit mirror クラスターファイルをリアルタイムでレプリケートし、フェイルオーバーを処理する方法について説明します。 | Mirror アーキテクチャを探索する |
| アーキテクチャ | SafeKit farm クラスターネットワークトラフィックを分散し、フェイルオーバーを処理する方法について説明します。 | Farm アーキテクチャを探索する |
| 製品比較 | SafeKit と従来の高可用性クラスターを比較します。 | ソリューションを比較する |
| 技術リソース | 技術ドキュメントの検索、SafeKit のダウンロード、無料トライアルへのアクセスはこちらから。 | ドキュメントと無料トライアルにアクセス |
| アプリケーションモジュール | 事前に設定された SafeKit モジュールを使用して、アプリケーションの高可用性を設定します。 | アプリケーションモジュールを探索する |