ダウンタイムなしで Confluence クラスタを手動アップグレード

このドキュメントでは、自動化がほとんどまたはまったく行われないデプロイでローリング アップグレードを実行する方法のステップバイステップの手順について説明します。その手順は、Azure テンプレートに基づくデプロイにも適しています。 

ローリング アップグレードの概要 (計画および準備情報を含む) については、ダウンタイムなしで Confluence をアップグレードを参照してください。 

ステップ 1: アップグレード ファイルをダウンロードする

アップグレードを開始する前に、適切な Confluence バージョンをダウンロードする必要があります。各ノードにこのバージョンをインストールしていただきます。新しいバグ修正バージョン (たとえば Confluence 7.9.0 から 7.9.4) または次の機能バージョン (たとえば Confluence 7.14.2 から 7.15.0) にのみアップグレードできます。 

Confluence をダウンロードする

また、[管理] > [一般設定] > [アップグレードを計画] に移動して、アップグレード前チェックを実行し、互換性のあるバグ修正バージョンをダウンロードすることもできます。

ステップ 2 - アップグレード モードの有効化

これを実行するには、システム管理者グローバル権限が必要です。 

アップグレード モードを有効化するには、次の手順を実行します。

  1. [管理] > [一般設定] > [ローリング アップグレード] に移動します。
  2. アップグレード モード トグル (1) を選択します。 

スクリーンショット: ローリング アップグレード画面。

クラスタの概要は、最初にアップグレードするノードを選択する際に役立ちます。タスク実行中 (2) 列ではそのノードで長時間実行されているタスクの数が、[アクティブなユーザー] ではログイン済みのユーザー数が表示されます。最初にアップグレードするノードを選択する際は、実行中のタスク数とアクティブ ユーザーが最も少ないノードから始めましょう。

アップグレード モードでは、クラスタは異なる Confluence バージョンを実行しているノードを一時的に受け入れられます。これによって、1 つのノードをアップグレードして (アップグレードされていない他のノードと併せて) クラスタに再度追加できます。アップグレード済みとアップグレードされていないアクティブ ノードの両方が連携することで、すべてのユーザーが Confluence を使用できます。まだノードをアップグレードしていない場合は、アップグレード モードを無効化できます。

ステップ 3: 1 つ目のノードをアップグレードする

アップグレード モードを有効にすると、1 つ目のノードをアップグレードできるようになります。

最も負荷のノードから開始する

実行中のタスクとアクティブ ユーザーの数が最も少ないノードのアップグレードを開始することをお勧めします。これは、ローリング アップグレードのページで確認できます。

まず、ノードで Confluence をグレースフル シャットダウンします。

  1. コマンド ラインまたは SSH からノードにアクセスします。

  2. ノードで Confluence をグレースフル シャットダウンします。これを行うには、オペレーティング システムと設定に対応する停止スクリプトを実行します。たとえば、Linux 上のサービスとして Confluence をインストールした場合、次のコマンドを実行してください。
    $ sudo /etc/init.d/confluence stop
    グレースフル Confluence シャットダウンの詳細をご確認ください
    グレースフル シャットダウンによって、Confluence ノードがオフラインになる前にすべてのタスクを終了できるようになります。シャットダウン中、ノードのステータスは終了になり、ノードに送信されたユーザー リクエストはロード バランサーによって他のアクティブ ノードにリダイレクトされます。

    tip/resting Created with Sketch.

    Linux または Docker で実行中のノードの場合、kill コマンドでグレースフル シャットダウンをトリガーすることもできます (これは、Confluence プロセスに直接 SIGTERM 信号を送信します)。

  3. ノードがオフラインになるまで待ちます。[ローリング アップグレード] ページの [クラスタ概要] セクションの [ノード ステータス] 列でステータスを監視できます。 


ノードのステータスがオフラインになったら、ノードのアップグレードを開始できます。そのノードのローカル ファイル システムにダウンロードされた Confluence インストール ファイルをコピーします。

1 つ目のノードをアップグレードするには:

  1. ディレクトリ(新しいインストールディレクトリ。既存のインストール ディレクトリとは異なる必要があります)にファイルを抽出(解凍)する
  2. ファイル <Installation-Directory>\confluence\WEB-INF\classes\confluence-init.properties に移動し、そのノード上の既存のローカル ホーム ディレクトリをポイントするように行 confluence.home を更新します。
  3. でプリで MySQL データベースを利用している場合、既存の Confluence インストール ディレクトリから新しいインストール ディレクトリの confluence/WEB-INF/lib に jdbc ドライバーの jar ファイルをコピーします。
    jdbc ドライバーは <Install-Directory>/common/lib または <Installation-Directory>/confluence/WEB-INF/lib ディレクトリにあります。詳細については、MySQL データベース セットアップを参照してください。
  4. Confluence をサービスとして実行している場合、
    • <install-directory>/bin/service.bat 実行して、既存のサービスを削除してサービスを再インストールします 
    • Linux で、サービスを更新して新しいインストール ディレクトリを指定します (または、シンボリック リンクを使用して指定します)。
  5. その他の必要なカスタマイズを旧バージョンから新バージョンに直ちにコピーします (Confluence をデフォルトのポートで実行していない場合、または外部でユーザーを管理している場合、関連ファイルをアップデートおよびコピーする必要があります - 詳細は Confluence を手動でアップグレードするを参照してください)。

    Confluence が Windows または Linux サービスとして実行されるように設定している場合、必ずサービス設定も更新してください。関連情報については、Confluence をサービスとして Windows 上で自動的に開始または Linux で systemd サービスとして Conluence を実行を参照してください。

  6. Confluence を起動し、次のステップに進む前に、ログインできるか、ページを閲覧できるか、確認してください。
      

最初にアップグレードされたノードがクラスタに参加するとすぐに、クラスタのステータスは Mixed に移行します。つまり、すべてのノードで同じバージョンが実行されるまで、アップグレード モードを無効にすることはできません。

Synchrony のアップグレード (オプション)

Confluence で Synchrony を管理している場合 (推奨)、操作は不要です。Synchrony は Confluence によって自動的にアップグレードされます。 

自分の Synchrony クラスタを実行している場合、アップグレードされた Confluence ノードの <local-home> ディレクトリから新しい synchrony-standalone.jar を入手します。その後、各 Synchrony ノードで次の手順を実行します。

  1. Synchrony ホーム ディレクトリから start-synchrony.sh(Linux の場合) または start-synchrony.bat(Windows の場合) を使用して、ノード上の Synchrony を停止します。  
  2. Synchrony ホーム ディレクトリに新しい synchrony-standalone.jar をコピーします。
  3. Synchrony を通常どおり起動します。

関連情報については、「Confluence Data Center 用に Synchrony クラスタをセットアップする」を参照してください。

ステップ 4: 残りのノードを個別にアップグレードする

アップグレードしたノードを起動したら、クラスターの概要でステータスが「アクティブ」に変わるのを待ちます。この時点で、そのノードのアプリケーション ログを確認した上で、そのノードで Confluence にログインしてすべてが機能していることをご確認ください。この時点ではアップグレードをまだロール バックできるため、テストすることをお勧めします。 

最初のノードをテストしたら、同じ手順に従って別のノードのアップグレードを開始できます。これを他の各ノードにも行います – 通常どおり、毎回、実行するタスクの数が最も少ないノードをアップグレードすることをお勧めします。

ステップ 5. アップグレードを完了する

アップグレードを確定するステップは、バグ修正バージョンにアップグレードするか、新しい機能バージョンにアップグレードするかによって若干異なります。新しい機能バージョンは、アップグレード タスクを実行する必要がある場合があります。クラスタがアップグレード モードである間は一部のタスクが保留されるため、この操作はできるだけ早く行ってください。 

バグ修正バージョンへのアップグレードを完了する

アップグレードを完了するには、次の手順に従います。

  1. クラスタのステータスが [完了する準備ができました] に変わるのを待ちます。これは、すべてのノードがアクティブとなり、同じアップグレード バージョンを実行するまで発生しません。 
  2. [アップグレードを完了] を選択します。
  3. アップグレードの完了が確認されるのを待ちます。クラスターのステータスが [安定] に変わります。 

これでアップグレードは完了です。 

機能バージョンへのアップグレードを完了する

アップグレードを完了するには、次の手順に従います。

  1. クラスターのステータスが [アップグレード タスクを実行する準備が完了しました] に変わるまで待ちます。すべてのノードがアクティブになって同じアップグレード バージョンを実行するようになるまで、このステータスにはなりません。 
  2. [アップグレード タスクを実行してアップグレードを完了 (Run upgrade tasks and finalize upgrade)] ボタンを選択します。
  3. 1 つのノードでアップグレード タスクの実行が開始されます。プロセスを監視する場合は、このノードのログを確認します。 
  4. アップグレードの完了が確認されるのを待ちます。クラスターのステータスが [安定] に変わります。 

これでアップグレードは完了です。 

スクリーンショット: クラスタ全体のアップグレード タスクを実行している 1 つのクラスタ ノード。 

アップグレード タスクの詳細...

アップグレード タスクは、データベースとファイル システムに必要な変更を加えます。たとえば、データベース スキーマや、ローカル ホーム ディレクトリにインデックス ファイルを格納する方法が変更されます。 

アップグレード タスクについて知っておくべきことがいくつかあります。

  • 1 つのクラスター ノードが、データベースとその他のノードのアップグレード タスクを実行します。問題が生じると、このノードのアプリ ログに記録されます。 
  • クラスター内の他のノードのステータスは [アップグレード タスクの実行中] に一時的に変わることがあります。これは、アップグレード タスクがそのノードのファイル システムに変更を加えようとしていることを示します。アップグレード タスクを実際に実行しているノードは変わりません。 
  • データのサイズや複雑さによっては、一部のアップグレード タスクが完了するまでに数時間かかる場合があります。通常、アップグレード タスクにかなりの時間がかかる可能性がある場合は、該当するバージョンのアップグレード ノートに警告を記載します。
  • アップグレード タスクを実行しているノードからトラフィックは隔離不要ですが、アップグレード タスクが重要と思われる場合は、パフォーマンスへの影響を避けるためにトラフィックを隔離することをお勧めします。 

トラブルシューティング 

ローリング アップグレード中のノード エラー

ノードのステータスが Error になった場合、アップグレード中に問題が発生しています。いずれかのノードが Error ステータスの場合、ローリング アップグレードを完了できません。ただし、クラスタ ステータスが Ready to upgrade である場合、アップグレード モードを無効化できます。

対処方法はいくつかあります。

  • ノードで Confluence をグレースフル シャットダウンします。これにより、ノードがクラスタから切断され、ノードが Offline ステータスにトランジションできるようになります。

  • Confluence を正常にシャットダウンできない場合は、ノードを完全にシャットダウンしてください。

すべてのアクティブ ノードがアップグレードされたら、ローリング アップグレードを完了できます。問題のあるノードの問題を後で調査し、エラーに対処したら、クラスタに再接続できます。

アップグレード タスク失敗のエラー

クラスタのステータスが "アップグレード タスクが失敗しました" に変わった場合は、1 つ以上のアップグレード タスクが正常に完了せず、アップグレードが完了していないことを意味します。次のことを行う必要があります。
  1. アップグレード タスクを実行しているノードのアプリケーション ログで、エラーがないかどうかを確認します。ノード識別子はクラスター ステータス メッセージに含まれています。 
  2. 明らかな問題 (ファイル システムの権限やネットワーク接続の問題など) を解決します
  3. [アップグレード タスクを再実行してアップグレードを完了する (Re-run upgrade tasks and finalize upgrade)] を選択してしてもう一度お試しください。 

アップグレード タスクがまだ失敗して原因を特定できない場合は、サポート チームに相談する必要があります。この時点でアップグレードをロール バックすることもお勧めします。Confluence を長期間アップグレード モードのままにしておくことはお勧めしません。 

ノードを元のバージョンにロールバックする

ロールバックする方法は、その時点のアップグレード ステージによって異なります。詳細については「ローリング アップグレードをロールバックする」をご参照ください。 

アップグレード モードが無効になっている Mixed ステータス

アップグレード モードが無効のノードが Error 状態の場合、アップグレード モードを有効にすることはできません。問題を修正するか、クラスタからノードを削除して、アップグレード モードを有効にします。

ロード バランサーを使用してクラスタからノードを切断する

ノード エラーによって Confluence をグレースフル シャットダウンできない場合は、ロード バランサーを使用してクラスタからノードを切断してみてください。次の表に、一般的なロード バランサーでこれを行う方法を示します。

NGINX

NGINX は、アップストリーム ディレクティブを介してクラスタ ノードのグループを定義します。ロード バランサーがノードに接続できないようにするには、対応するアップストリーム グループからノードのエントリを削除します。ngx_http_upstream_module モジュールのアップストリーム ディレクティブの詳細をご確認ください。

HAProxy

HAProxy で、ノードへのトラフィックをすべて無効にするには、maint 状態にします。

set server <node IP or hostname> state maint

サーバーの管理状態の強制の詳細をご確認ください。

Apache

ノード (または「ワーカー)」 を無効にするには、そのアクティブ化メンバー属性を disabled に設定します。Apache における高度なロード バランサー ワーカー プロパティの詳細をご確認ください。

Azure アプリケーション ゲートウェイAzure の Confluence Data Center 用のデプロイ テンプレートを提供しています。このテンプレートは、ロード バランサーとして Azure Application Gateway を使用しています。Azure Application Gateway は、各ノードをバックエンド プール内のターゲットとして定義しています。ノードの対応するエントリを削除するには、バックエンド プール編集インターフェイスを使用します。バックエンド プールからのターゲットの追加 (および削除) の詳細をご確認ください

アップグレード中またはアップグレード後にトラフィックが不均一に分散しています

ロード バランサーによっては、新しくアップグレードされたノードに、不均一な数のアクティブ ユーザーを送信する方法が採用される場合があります。この場合、ノードが過負荷になり、ノードにログインしているすべてのユーザーの Confluence が遅くなる可能性があります。

この問題に対処するには、ノードをクラスタから一時的に切断することもできます。これにより、ロード バランサーは、他のすべての利用可能なノード間でアクティブなユーザーを再分配します。その後、クラスタにノードを再度追加できます。

ノードが起動しません 

ノードの Offline または Starting 状態が長すぎる場合は、ノード上で Confluence を直接トラブルシューティングする必要があります。関連情報については、Confluence の起動の問題のトラブルシューティング を参照してください。

最終更新日 2022 年 7 月 29 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.