> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# クラスターのインストールと設定

export const companyNameLower = "cdata";

export const siteNameShortLower = "sync";

export const siteNameShort = "Sync";

export const siteName = "CData Sync";

<Note>このページには、{siteNameShort} セルフホスト環境にのみ適用されるコンテンツが含まれています。{siteNameShort} Cloud はクラスタリングがすでに有効になっています。</Note>

*クラスタリング*は複数の{siteName} が連携し、同一の設定で共通のジョブを実行可能にします。ワークロードはクラスター化した{siteNameShort} インストール機器に均等に分散し、スケーラビリティを向上させ可用性を確保します。

<Note>{siteNameShort} はスケジュールされたジョブを均等に分散します。ジョブは、その時点で接続している{siteNameShort} のインスタンスに応じて、**管理**コンソールまたはREST API のいずれかを通じて実行されます。</Note>

## クラスタリングについて

{siteNameShort} でサポートされているフェイルオーバー機能を利用するには、同じサーバーファーム（同じクラスター）内の複数のシステムにアプリケーションをインストールする必要があります。クラスタリングを行うように設定した場合、**サーバーファームの各{siteNameShort} インストール機器は同じアプリケーション設定を使用し、各サーバー間でジョブの実行を分散させます**。

その結果、アプリケーションの複数のインスタンスが1つのインスタンスのように動作し、特定のインスタンスが落ちてもクラスターのパフォーマンスを低下させることはありません。

クラスタリングを設定する全体の手順は以下のとおりです：

1. [アプリケーションディレクトリ](#アプリケーションディレクトリの設定)を設定します。
2. [アプリケーションデータベース](#アプリケーションデータベースの設定)を設定します。
3. {siteNameShort} の**設定 -> 高度な設定**で、**クラスターモードを有効化**オプションを**True** に設定します。
4. {siteNameShort} を再起動します。

## クラスタリングのための{siteName} の設定

クラスターの各ノードに{siteNameShort} をインストールしたのち、**アプリケーションディレクトリ**および**アプリケーションデータベース**を設定する必要があります。次に、各インストールが同じアプリケーションディレクトリおよびアプリケーションデータベースを使用するように設定します。

<Note>ジョブがノード間で適切に分散されるようにするには、すべてのノードが同じタイムゾーンにあり、ノードのクロックが少なくとも秒単位の精度で同期されていることを確認してください。</Note>

### アプリケーションディレクトリの設定

{siteNameShort} は、すべての設定データおよびアプリケーションデータをディスク上のデータディレクトリ（フォルダ）に保存します。クラスタリングする場合、{siteNameShort} の各インスタンスは同じアプリケーションディレクトリを使用するように設定する必要があります。この設定により、アプリケーションのすべてのインスタンスが同じファイルを実行し、同じ設定を使用することが保証されます。

アプリケーションディレクトリを設定するには：

1. 使用するサーバーに応じて、アプリケーションディレクトリを次のように設定します。

   **Jetty サーバー組み込みのクロスプラットフォーム版：**

   1. *`InstallationDirectory`* にあるsync.properties ファイルを開きます。このファイルの生成方法について詳しくは、[sync.properties ファイルの生成](./configuring-the-server#syncproperties-ファイルの生成)を参照してください。
   2. `AppDirectory` 環境変数を、以下の例のように使用したいディレクトリのパスに設定します：

      ```bash theme={null}
      cdata.app.directory=/mnt/shared/sync
      ```

      {siteNameShort} がパスを特定でき、その場所に読み取りと書き込みの適切なアクセス許可がある場合、指定されたディレクトリ内にデータフォルダを作成します。

   **外部サーバーを使用したクロスプラットフォーム版：**

   クロスプラットフォーム版を外部のサーブレットで使用する場合、アプリケーションディレクトリの構成は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用して、`AppDirectory` 環境変数を希望するディレクトリのパスに設定する必要があります。

   {siteNameShort} がパスを特定でき、その場所に読み取りと書き込みの適切なアクセス許可がある場合、指定されたディレクトリ内にデータフォルダを作成します。

2. 各{siteNameShort} インストールが同じアプリケーションディレクトリを使用するように設定します。

### アプリケーションデータベースの設定

{siteNameShort} は、アプリケーションデータ（ジョブ、接続など）とログ情報を保存するためにデータベースを使用します。{siteNameShort} の各インスタンスは同じアプリケーションデータベースを使用するように設定する必要があります。そうすることで、各インスタンスがすべてのジョブ情報にアクセスできるようになります。

アプリケーションデータディレクトリを設定するには：

1. 使用するサーバーに応じて、アプリケーションデータベースを次のように設定します。

   **Jetty サーバー組み込みのクロスプラットフォーム版：**

   1. *`InstallationDirectory`* にあるsync.properties ファイルを開きます。このファイルの生成方法について詳しくは、[sync.properties ファイルの生成](./configuring-the-server#syncproperties-ファイルの生成)を参照してください。
   2. `APP_DB` 環境変数に、使用したいデータベースの適切な接続パラメータを含むJava Database Connectivity（JDBC）接続文字列を次の例のように設定します：

      **MySQL**

      ```
      cdata.app.db=jdbc:cdata:mysql:server=localhost;port=3306;database=mysql;user=MyUserName;password=MyPassword;useconnectionpooling=true
      ```

      **PostgreSQL**

      ```
      cdata.app.db=jdbc:cdata:postgresql:server=localhost;port=5432;database=postgresql;user=MyUserName;password=MyPassword;useconnectionpooling=true
      ```

      **SQL Server**

      ```
      cdata.app.db=jdbc:cdata:sql:server=localhost;database=sqlserver;user=MyUserName;password=MyPassword;useconnectionpooling=true
      ```

      {siteNameShort} が`cdata.app.db` 接続文字列で正常に接続を確立できる場合、そのデータベースをアプリケーションデータベースとして使用します。

   **外部サーバーを使用したクロスプラットフォーム版：**

   クロスプラットフォーム版を外部のサーブレットで使用する場合、アプリケーションデータベースの構成は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用して、サーバーを設定する際のアプローチを次のいずれかから選択します：

   * ターゲットデータベースの接続プロパティを含むJava Naming and Directory Interface（JNDI）データソースを定義。
   * `APP_DB` 環境変数をJDBC 接続文字列に設定。

   {siteNameShort} がJNDI データソースまたは`APP_DB` 接続文字列を使用してデータベースに接続できる場合、そのデータベースをアプリケーションデータベースとして使用します。

2. 各{siteNameShort} インストールが同じアプリケーションデータベースを使用するように設定します。
