Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Calendar Server 管理ガイド 

第 9 章
カレンダー検索データベースプラグインの設定

この章では、カレンダーデータベースを複数のバックエンドサーバーに分散することを可能にするカレンダー検索データベース (CLD) プラグインについて説明します。

この章で説明する内容は次のとおりです。


CLD プラグインの概要

カレンダー検索データベース (CLD) プラグインは単一カレンダーインスタンス用の多数のバックエンドサーバーにユーザーカレンダーとリソースカレンダーを分散することによって、カレンダーデータベースの水平方向のスケーラビリティを提供します。複数のバックエンドサーバーにカレンダーデータベースを配布している場合、Calendar Server は CLD プラグインを使用してカレンダーが実際に格納されているサーバーを特定します。

Calendar Server は、ics.conf ファイルの caldb.cld.type パラメータの値に応じてプラグインをロードします。

Calendar Server は、DWP (データベースワイヤプロトコル) を使用してバックエンドサーバー上のカレンダーデータにアクセスします。DWP は csdwpd サービスとして実行される内部プロトコルで、カレンダーデータベースのネットワーク機能を提供します。


CLD プラグインのしくみ

Calendar Server は、バックエンドサーバー上のカレンダーデータに次のようにアクセスします。

  1. Calendar Express のエンドユーザーがカレンダーにアクセスすると、CLD プラグインはカレンダーの calid から userid を抽出し、LDAP ディレクトリデータベースでカレンダーの所有者を検索します。
  2. カレンダーの所有者が特定されると、プラグインはその icsDWPHost LDAP 属性の値を使用してカレンダーが存在するバックエンドサーバーのホスト名を決定します。このホスト名は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。
  3. Calendar Server は、ホスト名を使用して、DWP (データベースワイヤプロトコル) でバックエンドサーバー上のカレンダーデータにアクセスします。
  4. Calendar Server は、ユーザーがログインしているサーバーに DWP でカレンダーデータを送信するため、そのデータをユーザーインタフェースで表示できます。

  5. サイトで CLD プラグインを使用している場合、同じユーザー用に作成されたすべてのカレンダーが、LDAP ユーザーエントリの icsDWPHost LDAP 属性によって指定されているのと同じバックエンドサーバーに格納される必要があります。別のバックエンドサーバーにカレンダーを作成しようとすると、Calendar Server はエラーを返します。



CLD プラグインの設定

CLD プラグインは、次の Calendar Server 構成をサポートしています。

これらの設定において、フロントエンドとバックエンドの各サーバーは、次の条件を満たす必要があります。

複数のフロントエンドサーバーと複数のバックエンドサーバー

次の図は、1 つの Calendar Server インスタンスが稼動する 2 つのフロントエンドサーバーと 2 つのバックエンドサーバーを示しています。必要に応じて 3 つ以上のフロントエンドまたはバックエンドサーバーを導入することもできます。

この構成では、サーバーをファイアウォールで保護し、LDAP データベースとカレンダーデータベースへのアクセスを制限することができます。カレンダーデータベースは 2 つのバックエンドサーバーに分散されます。

フロントエンドサーバーは CPU を多用します。ほとんどの CPU 時間は、エンドユーザーへのカレンダーデータの表示に使用されます。バックエンドサーバーはディスクを多用します。ほとんどの CPU 時間は、カレンダーデータベースへのアクセスに使用されます。

図 9-1 複数のフロントエンドサーバーと複数のバックエンドサーバー

複数のフロントエンドサーバーと複数のバックエンドサーバーによる Calendar Server の構成

フロントエンドサーバーの設定

フロントエンドサーバーを設定するには、各フロントエンドサーバーで ics.conf ファイルの次のパラメータを設定します。

  1. カレンダーデータベースの検索プラグインを有効にします。
  2. csapi.plugin.calendarlookup = "y"

  3. Calendar Server がすべてのプラグインをロードするように指定します。
  4. csapi.plugin.calendarlookup.name = "*"

  5. カレンダー検索プラグインの種類に CLD プラグインを指定します。
  6. caldb.cld.type = "directory"

  7. DWP サービスのポート番号 (csdwpd) を設定します。
  8. service.dwp.port = "59779"

    デフォルトは 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。

  9. 各バックエンドサーバーのサーバー名を指定します。
  10. caldb.dwp.server.backend-server-1.ip = "backend-server-1"
    caldb.dwp.server.backend-server-2.ip = "
    backend-server-2"
    ...
    caldb.dwp.server.
    backend-server-n.ip = "backend-server-n"

    サーバー名は完全修飾名で指定します。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。パラメータの各部で同じサーバー名を完全修飾名で指定します。
    例 :

    caldb.dwp.server.calendar.sesta.com.ip = "calendar.sesta.com"

    また、サーバー名はカレンダー所有者の icsDWPHost LDAP 属性で使用される名前と一致している必要があります。

  11. デフォルトの DWP サーバー名を設定します。
  12. caldb.dwp.server.default = "server-name"

    server-name は、LDAP サーバーデータベース 内のユーザーエントリまたはリソースエントリが icsDWPHost 属性を持たない場合に使用されるデフォルトサーバーの完全修飾名です。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決できる必要があります。
    例 :

    caldb.dwp.server.default = "calendar.sesta.com"

  13. 変更を適用するために Calendar Server を再起動します。

フロントエンドサーバーの設定パラメータの例

次の例は、calendar.sesta.comcalendar.siroe.com という 2 つのバックエンドサーバーを持つフロントエンドサーバーの設定パラメータを示しています。デフォルトの DWP サーバーは calendar.sesta.com です。

コード例 9-1 フロントエンドサーバーの LDAP CLD 設定パラメータ

service.dwp.port = "59779"

csapi.plugin.calendarlookup = "y"

csapi.plugin.calendarlookup.name = "*"

caldb.cld.type = "directory"

! Default DWP server
caldb.dwp.server.default = "calendar.sesta.com"

! Back-end servers
caldb.dwp.server.sesta.com.ip = "calendar.sesta.com"
caldb.dwp.server.siroe.com.ip = "calendar.siroe.com"

バックエンドサーバーの設定

バックエンドサーバーを設定するには、各バックエンドサーバーで ics.conf ファイルの次のパラメータを設定します。

  1. DWP サービスを有効化し (csdwpd)、DWP ポート番号を設定します。
  2. service.dwp.enable = "yes"
    service.dwp.port = "59779"

    デフォルトのポート番号は 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。

  3. バックエンドサーバーでは必要ないので、HTTP サービスを無効にします (管理サービスにはデフォルト値の yes を設定する必要がある)。
  4. service.http.enable = "no"
    service.admin.enable = "yes"

  5. カレンダー検索プラグインの種類に LDAP CLD プラグインを指定します。
  6. caldb.cld.type = "local"

  7. バックエンドサーバーはカレンダーデータの検索を行わないので、csapi.plugin.calendarlookupn に設定します。

  8. csapi.plugin.calendarlookup = "n"

  9. 変更を適用するために Calendar Server を再起動します。

バックエンドサーバーの設定パラメータの例

次の例は、バックエンドサーバーの設定パラメータを示しています。

コード例 9-2 バックエンドサーバーの LDAP CLD 設定パラメータ

service.dwp.enable = "yes"

service.dwp.port = "59779"

service.http.enable = "no"

service.admin.enable = "yes"
caldb.cld.type = "local"
csapi.plugin.calendarlookup = "n"

複数のフロントエンド / バックエンドサーバーによる構成

図 9-2 は、それぞれが 1 つのカレンダーデータベースに接続された 3 つのフロントエンド / バックエンドサーバーを示しています。この構成では、カレンダーを物理的に分散することができます。各サーバーにはカレンダーが配置され、その所有者が Calendar Server にログインします。

図 9-2 複数のフロントエンド / バックエンドサーバーによる構成

複数のフロントエンド / バックエンドサーバーによる Calendar Server の構成

フロントエンド / バックエンドサーバーの設定

フロントエンド / バックエンドサーバーを設定するには、各サーバーで ics.conf ファイルの次のパラメータを設定します。

  1. DWP サービスを有効化します (csdwpd)。
  2. service.dwp.enable = "yes"

  3. DWP サービスのポート番号 (csdwpd) を設定します。
  4. service.dwp.port = "59779"

    デフォルトは 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。

  5. カレンダー検索プラグインを有効にします。
  6. csapi.plugin.calendarlookup = "y"

  7. Calendar Server がすべてのプラグインをロードするように指定します。
  8. csapi.plugin.calendarlookup.name = "*"

  9. Calendar Server が使用するカレンダー検索プラグインの種類を指定します。
  10. caldb.cld.type = "directory"

  11. デフォルトの DWP サーバー名を設定します。
  12. caldb.dwp.server.default = "server-name"

    server-name は、LDAP サーバーデータベース内のユーザーエントリまたはリソースエントリが icsDWPHost 属性を持たない場合に使用されるデフォルトサーバーの完全修飾名です。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決できる必要がある。
    例 :

    caldb.dwp.server.default = "calendar.sesta.com"

  13. ローカルサーバーを含め、構成に含まれるすべてのフロントエンド / バックエンドサーバーのサーバー名を設定します。
  14. caldb.dwp.server.server-1.ip = "server-1"
    caldb.dwp.server.
    server-2.ip = "server-2"
    ...
    caldb.dwp.server.
    server-n.ip = "server-n"

    サーバー名は完全修飾名で指定します。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。パラメータの各部で同じサーバー名を完全修飾名で指定します。
    例 :

    caldb.dwp.server.calendar.sesta.com.ip = "calendar.sesta.com"

    また、サーバー名はカレンダー所有者の icsDWPHost LDAP 属性で使用される名前と一致している必要があります。

  15. 変更を適用するために Calendar Server を再起動します。

各フロントエンド / バックエンドサーバーの設定パラメータの例

次の例は、フロントエンド / バックエンドサーバーの設定パラメータを示しています。サーバーは sesta.comsiroe.comvarrius.com です。デフォルトの DWP サーバーは sesta.com です。

コード例 9-3 各フロントエンド / バックエンドサーバーの LDAP CLD 設定パラメータ

service.dwp.enable = "yes"

service.dwp.port = "59779"

csapi.plugin.calendarlookup = "y"

csapi.plugin.calendarlookup.name = "*"

caldb.cld.type = "directory"

! Default DWP server

caldb.dwp.server.default = "calendar.sesta.com"

! Back-end servers

caldb.dwp.server.calendar.sesta.com.ip = "calendar.sesta.com"

caldb.dwp.server.calendar.siroe.com.ip = "calendar.siroe.com"

caldb.dwp.server.calendar.varrius.com.ip = "calendar.varrius.com"

 


フロントエンドサーバーとバックエンドサーバーの間のセキュリティの管理

フロントエンドサーバーは DWP (データベースワイヤプロトコル) を使用してバックエンドサーバーと通信します。DWP は転送メカニズムとして HTTP を使用するため、Calendar Server は表 9-1表 9-2 に示す設定パラメータを使用して、フロントエンドサーバーとバックエンドサーバーの間の DWP 接続を認証します。

これらのパラメータは省略可能で、デフォルトでは ics.conf 2ファイルに設定されていません。DWP 接続の認証を行う場合は、フロントエンドサーバーとバックエンドサーバーのそれぞれの ics.conf ファイルに必要なパラメータを追加する必要があります。

表 9-1 DWP 接続を認証するためのバックエンド設定パラメータ

パラメータ

説明

service.dwp.admin.userid

バックエンドサーバーで、DWP 接続の認証に使用するユーザー ID を指定する。バックエンドサーバーがユーザー ID を指定しない場合、認証は行われない

service.dwp.admin.cred

バックエンドサーバーで、DWP 接続の認証に使用するパスワードを指定する。バックエンドサーバーがパスワードを指定しない場合、認証は行われない

表 9-2 DWP 接続を認証するためのフロントエンド設定パラメータ

パラメータ

説明

caldb.dwp.server.back-end-server.admin

フロントエンドサーバーで、バックエンドサーバーとの DWP 接続に使用されるユーザー ID を指定する。back-end-server はサーバー名

caldb.dwp.server.back-end-server.cred

フロントエンドサーバーで、バックエンドサーバーとの DWP 接続に使用されるパスワードを指定する。back-end-server はサーバー名

DWP 接続のための認証の設定

フロントエンドサーバーとバックエンドサーバーの間の DWP 接続の認証を設定するには、次の手順を実行します。

  1. 各フロントエンドサーバーの ics.conf ファイルに次のパラメータを追加します。
  2. caldb.dwp.server.back-end-server.admin = "userid"
    caldb.dwp.server.back-end-server.cred = "password"

    back-end-server はバックエンドサーバーの名前、useridpassword は Calendar Server が接続の認証に使用するユーザー ID とパスワードです。

  3. back-end-server によって指定されるバックエンドサーバーの ics.conf ファイルに次のパラメータを追加します。
  4. service.dwp.admin.userid = "userid"
    service.dwp.admin.cred = "
    password"

    useridpassword は、フロントエンドサーバーで指定したものと同じユーザー ID とパスワードです。

フロントエンドサーバーが最初にバックエンドサーバーに接続したときに、パラメータに指定されたユーザー ID とパスワードが送信されます。バックエンドサーバーはパラメータを調べ、両方のパラメータが一致した場合に接続が認証されます。バックエンドサーバーは、次にセッション ID をフロントエンドサーバーに返します。フロントエンドサーバーは、バックエンドサーバーへの以後の DWP コマンドの送信時にこのセッション ID を使用します。

同じフロントエンドサーバーからの以後の接続では、次の場合を除いて認証の必要はありません。

フロントエンドサーバーとバックエンドサーバーが複数ある場合は、それぞれで同じユーザー ID とパスワードを使用できます。

バックエンドサーバーがパスワードを指定しない場合、認証は行われません。


CLD プラグインのパフォーマンスの向上

CLD プラグインを使用する Calendar Server のパフォーマンスを向上するには、次の設定パラメータを yes (各パラメータのデフォルト値) に設定します。

パフォーマンス向上の詳細については、第 19 章「Calendar Server のパフォーマンスの調整」を参照してください。


CLD キャッシュのクリア

CLD キャッシュオプションを使用している場合、ics.conf パラメータでサーバー名を変更したり、カレンダーを別のバックエンドサーバーに移動したりしたときは、CLD キャッシュをクリアしてサーバー名を消去する必要があります。CLD キャッシュに古いエントリが残されていると、フロントエンドサーバーが正しいバックエンドサーバーに接続できなくなったり、Calendar Server が移動後のカレンダーを見つけられなくなります。

CLD キャッシュをクリアするには、次の手順を実行します。

  1. Calendar Server を停止します。
  2. cal_svr_base/var/opt/SUNWics5/csdb/cld_cache ディレクトリ内のすべてのファイルを消去します。ただし、cld_cache ディレクトリ自体は消去しません。
  3. Calendar Server を再起動します。


別のバックエンドサーバーへのカレンダーの移動

あるバックエンドサーバーから別のバックエンドサーバーにユーザーカレンダーまたはリソースカレンダーを移動するには、次の手順を実行します。

  1. 元のサーバーで、ユーザーカレンダーの場合は csuser ユーティリティ、リソースカレンダーの場合は csresource ユーティリティを実行してカレンダーユーザーを無効にします。たとえば、ユーザー ID と calid が bkamdar のユーザーを無効にするには、次のように実行します。
  2. csuser disable bkamdar

  3. csexport 元のサーバーで、csexport ユーティリティを実行してカレンダーデータベースからファイルにカレンダーをエクスポートします。
    例 :
  4. csexport -c bkamdar calendar bkamdar.ics

    ユーザーが複数のカレンダーを持っている場合は、カレンダーごとにこの手順を実行します。

  5. エクスポートしたカレンダーファイル (*.ics) を元のサーバーから新しいサーバーにコピーします。
  6. 新しいサーバーで、csimport ユーティリティを実行してファイルからカレンダーデータベースにカレンダーをインポートします。
    例 :
  7. csimport -c bkamdar calendar bkamdar.ics

    エクスポートしたそれぞれのカレンダーについてこの手順を繰り返します。

  8. LDAP ディレクトリサーバーで csattribute ユーティリティを実行し、カレンダー所有者の icsDWPHost LDAP 属性が新しいバックエンドサーバーをポイントするように変更します。属性を変更するには、まず属性を削除し、新しい値を持つ属性を追加します。たとえば、新しいサーバー名を sesta.com に設定するには、次のように実行します。
  9. csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar

  10. 新しいサーバーで、ユーザーカレンダーの場合は csuser ユーティリティ、リソースカレンダーの場合は csresource ユーティリティを実行してカレンダーユーザーを有効にします。
    例 :
  11. csuser enable bkamdar

  12. 新しいサーバーで、次のコマンドを実行して属性が正しく、各カレンダーが正常に移動されていることを確認します。
    例 :
  13. cscal -v -o bkamdar list bkamdar
    ...
    csattribute -v list bkamdar

  14. 元のサーバーで、移動した各カレンダーを削除します。
    例 :
  15. cscal -o bkamdar delete bkamdar

    -o オプションを指定することで、一次所有者が bkamdar であるすべてのカレンダーが削除されます。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.