Jira Data Center クラスタのセットアップ

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Jira Data Center では複数の Jira ノードのクラスタを実行して、高可用性、拡張のためのキャパシティ、および大規模環境でのパフォーマンスを実現できます。このガイドでは、お客様自身のインフラストラクチャで Data Center クラスタを構成するプロセスについて説明します。 

クラスタ化が自社に適しているかわからない場合、詳細な概要について「クラスタでの Jira Data Center の実行」を参照してください。

はじめる前に

Data Center をセットアップするにあたり、次の情報をご確認ください。

サポート対象プラットフォーム

使用可能なデータベース、Java、およびオペレーティング システムの詳細については、「サポート対象のプラットフォーム」を参照してください。Server と Data Center デプロイメントで要件は同じです。

要件

Jira Data Center を使用するには、次の条件を満たしている必要があります。

Jira をクラスタで実行するには、次の条件も満たす必要があります。

  • Jira クラスタの手前に、セッション アフィニティと WebSocket サポートを提供するロード バランサを使用する。ロード バランサの例
  • 同じパスですべてのクラスタ ノードにアクセス可能な共有ディレクトリ (共有ホーム ディレクトリになります) が存在する。ローカル ホームまたはインストール ディレクトリ内ではない、別のディレクトリである必要があります。
アプリの互換性

アプリは、アトラシアン アプリケーションでチームが実現できる内容を拡張します。Data Center に移行した後もチームで引き続きアプリを使用できるかどうかを確認しておくことが重要です。Data Center に切り替える際に、アプリの Data Center 互換バージョンが利用可能な場合はそれに切り替える必要があります。 

詳細については、「Data Center への移行に向けてアプリを評価する」を参照してください。 

用語

このガイドでは以下の用語について説明します:

  • インストール ディレクトリ: Jira をインストールしたディレクトリ。

  • ローカルのホーム ディレクトリ: 各クラスタ ノードにローカルで保存されるホームまたはデータ ディレクトリ (Jira がクラスタで実行されていない場合は単に "ホーム ディレクトリ")。

  • 共有ホーム ディレクトリ: 同一パスを経由してクラスタのすべてのノードにアクセス可能な、ユーザーが作成したディレクトリ。

クラスタのセットアップと構成

1. Jira インスタンスのインストールまたはアップグレード

Jira Data Center は Jira 7.0 以降で使用できます。これよりも前のバージョンを使用している場合、Jira インスタンスをインストールまたはアップグレードしてください。 

Jira インストールおよびアップグレード ガイド

2. 共有ディレクトリのセットアップ

クラスター内のすべてのノードで読み取り/書き込み可能なリモート ディレクトリを作成する必要があります。これを行うには複数の方法がありますが、もっとも簡単な方法は、NFS 共有を使用することです。

  1. クラスタ内のすべてのノードがアクセス可能なリモート ディレクトリを作成し、名前を設定します (例: sharedhome
  2. Jira インスタンスを停止します。
  3. 次のディレクトリを Jira のローカル ホーム ディレクトリから新しい sharedhome ディレクトリにコピーします (一部は空の場合があります)。

    • data
    • plugins
    • logos
    • import
    • export
    • caches
    • keys
推奨されるマウント オプション

後でアプリケーション クラスタ ノードをプロビジョニングするときはJira Data Center を AWS にデプロイするために使用する次の NFS マウント オプションを使用することをお勧めします。

rw,nfsvers=4.1,lookupcache=pos,noatime,intr,rsize=32768,wsize=32768,_netdev

詳細については、「AWS で Jira Data Center の使用を開始する」を参照してください。

推奨されるマウント オプションの詳細を学び、Jira DC AWS CloudFormation テンプレートで利用できる他のオプションを検討してください。

  • rw (読み取り/書き込み) では、ファイル共有を読み取り/書き込みでマウントするように指定します。これは、ファイル共有のコンテンツを変更する必要がある場合に便利です。
  • hard または soft では、NFS サーバーが使用不能になった場合のマウントの動作を指定します。 hard は、サーバーが再び使用可能になるまでマウントの再試行が継続されることを意味します。それに対し、soft は、最終的にマウントの動作が停止され、エラーが返されることを意味します。
  • intr または nointr で、NFS サーバーが使用不要になった場合にマウントがプロセスを中断できるようにするかどうかを指定します。intr はプロセスの中断を許可し、nointr は許可しません。
  • noatime は、ファイル共有上のファイルのアクセス時間が、ファイルにアクセスされるたびに更新されないように指定します。これにより、パフォーマンスを向上させることができます。
  • async または sync で、ファイル システムを非同期モードでマウントするか、同期モードでマウントするかを指定します。
    • 非同期モード (async) では、データはバックグラウンドでファイル システムに書き込まれます。これによりパフォーマンスは向上しますが、システムがクラッシュするとデータが失われる可能性があります。
    • 同期モード (sync) では、データは直ちにファイル システムに書き込まれます。これは安全ですが、パフォーマンスが低下する可能性があります。

3. Jira インスタンスをクラスタ内で動作するように設定する

  1. Jira のローカル ホーム ディレクトリで、次のコンテンツを含む cluster.properties ファイルを作成します。 

    cluster.properties ファイルの例:

    # この ID はクラスタ間で一意である必要があります
    jira.node.id = node1
    # すべての Jira ノードの共有ホーム ディレクトリの場所
    jira.shared.home = /data/jira/sharedhome

    詳細や追加パラメーターについては、「Cluster.properties ファイルのパラメーター」を参照してください。

  2. Linux 接続の場合: オープンなファイルの最大数を増やすことをおすすめします。これを行うには、次の行を <jira-install>/bin/setenv.sh に追加します。

    ulimit -n 16384


  3. インスタンスを起動して、Data Center ライセンスを適用します。


4. 最初のノードをロード バランサに追加する

ロード バランサはノード間のトラフィックを分散させます。ノードが動作を停止すると、残りのノードがワークロードを引き継ぐため、ユーザーは気付くこともありません。

  1. 最初のノードをロード バランサに追加します。 
  2. ノードを再起動し、Jira で別のページを開きます。ロード バランサが正常に動作している場合、Jira に問題なくアクセスできます。 

5. 残りのノードをクラスターに追加します。

残りのノードをクラスタに追加する方法は、最初のノードに Jira をインストールする際に使用した方法によって異なります (.zip または .tar.gz アーカイブから手動でインストールしたか、.bin または .exe インストーラーを使用したか)。元のインストール方法に対応するステップに従います。

Jira が.zip または .tar.gz アーカイブから最初のノードに手動でインストールされた場合...
  1. Jira インストール ディレクトリとホーム ディレクトリを、既存のノードから新しいノードにコピーします。

  2. 新しいノードが共有ホーム ディレクトリの読み取り/書き込みを行えることを確認します。

  3. 一意のノード ID と IP アドレス (指定されている場合) を指定して、新しいノードで <home-directory>/cluster.properties を編集します。

  4. Jira を起動します。共有ホーム ディレクトリから設定が読み取られて、追加ステップなしで起動されます。

  5. 新しい Jira インスタンスで、課題の作成、検索、ファイル添付、およびカスタマイズが期待どおりに動作することを確認します。

  6. すべて問題なければ、トラフィックを新しいノードにルーティングし始めるようにロード バランサを設定できます。これを行うと、1 つの Jira インスタンスにいくつかの変更を加えて、他のインスタンスにも表示されるかどうかを確認できます。同じ方法を使用して、同じバージョンの Jira をクラスタ内の別のノードにインストールします。インストール中に、Jira のインストールの場所とホーム ディレクトリのパスをメモします。

Jira が.bin または .exeインストーラーを使用して最初のノードにインストールされた場合...
  1. 新しいノードが共有ホーム ディレクトリの読み取り/書き込みを行えることを確認します。

  2. Jira を起動して、アプリケーションがホーム ディレクトリに書き込めるようにします。

  3. ブラウザで Jira を開いて、セットアップ ページが表示されていることを確認します。ページが表示されたらインストールは成功しているので、ブラウザを閉じられます。

  4. Jira を停止します。

  5. 既存のノードの Jira ホーム ディレクトリから新しいノードの Jira ホーム ディレクトリに dbconfig.xmlcluster.properties をコピーします。

  6. 既存のノードの <installation-directory>/conf から server.xml を新しいノードの <installation-directory>/conf にコピーします。

  7. 一意のノード ID と IP アドレス (指定されている場合) を指定して、新しいノードで <home-directory>/cluster.properties を編集します。

  8. 既存のノードで重要なディレクトリやファイルを変更した場合 (たとえば、<installation-directory>/bin/setenv.sh<installation-directory>/conf/web.xml)、変更したファイルを新しいノードの同じ場所にコピーします。

  9. Jira が SSL 上で実行されている場合は、SSL 証明書を新しいノードのローカル Java トラストストアにインポートして、Jira がベース URL を介して自身と通信できるようにします。

  10. Jira を起動します。共有ホーム ディレクトリから設定が読み取られて、追加ステップなしで起動されます。

  11. 新しい Jira インスタンスで、課題の作成、検索、ファイル添付、およびカスタマイズが期待どおりに動作することを確認します。

  12. すべて問題なければ、新しいノードへのトラフィックのルーティングを開始するようにロード バランサを構成できます。この構成を行ったら、1 つの Jira インスタンスで複数の変更を行い、ほかのインスタンスに反映されることを確認します。

クラスターにノードを追加する際に、次のようにステータスを確認できます。

  1. 画面右上で [管理] > [システム] の順に選択します。
  2. [システム サポート] で、[システム情報] を選択します。ノードは [クラスター ノード] セクションに表示されます。

Cluster.properties ファイルのパラメーター

必須パラメーターに加えて、cluster.properties ファイルで一部の追加オプション (ほとんどは EhCache に関するもの) を設定できます。

詳細を読む...
パラメーター必須説明/値
jira.node.id はいこの固有 ID は、Apache 構成のユーザー名および BalancerMember エントリと一致する必要があります。
jira.shared.homeはいすべての Jira ノードの共有ホーム ディレクトリの場所。
ehcache.peer.discoveryいいえ

ノードがお互いを見つける方法を示します。

default - Jira は自動的にノードを検出します (推奨)。
automatic - Jira は EhCache のマルチキャスト検出を使用します。これは EhCache が使用する従来の方法ですが、設定が難しい場合があるため、アトラシアンでは推奨していません。

自動を選択した場合...

ehcache.peer.discovery = automatic を設定する場合、次のパラメーターを設定する必要があります。

  • ehcache.multicast.address

  • ehcache.multicast.port

  • ehcache.multicast.timeToLive

  • ehcache.multicast.hostName

これらのパラメーターの詳細については、Ehcache ドキュメントを参照してください。

ehcache.listener.hostNameいいえ

キャッシュ通信のための現行ノードのホスト名。パラメーターが設定されていない場合、Jira Data Center はこれを内部的に解決します。
ネットワークのホスト名の解決に問題がある場合、このパラメーターを設定できます。名前解決の問題に直面している場合は、ノードの IP アドレスを使用することもできます。

ehcache.listener.portいいえ

ノードがリッスンすることになるポート (既定 = 40001)。

複数のノードが同じホスト上にあるか、このポートが利用できない場合、手動でこれを設定することが必要な場合もあります。

ehcache.object.portいいえ

レジストリでバインドされているリモート オブジェクトが呼び出しを受信するポート (既定は 40011)。このポートはファイアウォールでも開放する必要があります。

複数のノードが同じホスト上にあるか、このポートが利用できない場合、手動でこれを設定することが必要な場合もあります。

ehcache.listener.socketTimeoutMillisいいえ既定では、これは Ehcache の既定に設定されます。

最終更新日: 2021 年 10 月 6 日

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

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