![]() | |
Sun Java System Calendar Server 6 2005Q1 管理ガイド |
第 6 章
複数のマシンへのカレンダーデータベースの分散の設定この章では、カレンダーデータベースを複数のバックエンドサーバーに分散させることを可能にするカレンダー検索データベース (CLD) プラグインの使用方法について説明します。
この章で説明する内容は次のとおりです。
CLD プラグインのパフォーマンスを向上させる方法については、第 21 章「Calendar Server のパフォーマンスの調整」を参照してください。
CLD プラグインの概要カレンダー検索データベース (CLD) プラグインは単一カレンダーインスタンス用の多数のバックエンドサーバーにユーザーカレンダーとリソースカレンダーを分散することによって、カレンダーデータベースの水平方向のスケーラビリティを提供します。複数のバックエンドサーバーにカレンダーデータベースを配布している場合、Calendar Server は CLD プラグインを使用してカレンダーが実際に格納されているサーバーを特定します。
Calendar Server は、DWP (データベースワイヤプロトコル) を使用してバックエンドサーバー上のカレンダーデータにアクセスします。DWP は csdwpd サービスとして実行される内部プロトコルで、カレンダーデータベースのネットワーク機能を提供します。
CLD プラグインのしくみCalendar Server は、バックエンドサーバー上のカレンダーデータに次のようにアクセスします。
- エンドユーザーが Communications Express (または Calendar Express) を使用してカレンダーにアクセスすると、CLD プラグインはカレンダーの calid から userid を取り出し、LDAP ディレクトリデータベースまたは CLD データキャッシュ (有効な場合) でカレンダーの所有者を検索します。CLD データキャッシュを有効にする方法については、「CLD プラグインの有効化」を参照してください。
- カレンダーの所有者が特定されると、プラグインはその icsDWPHost LDAP 属性の値を使用してカレンダーが存在するバックエンドサーバーのホスト名を決定します。このホスト名は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。
- Calendar Server は、ホスト名を使用して、DWP (データベースワイヤプロトコル) でバックエンドサーバー上のカレンダーデータにアクセスします。
- Calendar Server は、ユーザーがログインしているサーバーに DWP でカレンダーデータを送信するため、そのデータをユーザーインタフェースで表示できます。
CLD プラグインでサポートされる構成CLD プラグインは、次の Calendar Server 構成をサポートしています。
複数のフロントエンドサーバーと複数のバックエンドサーバー
図 6-1 は、1 つの Calendar Server インスタンスが稼動する 2 つのフロントエンドサーバーと 2 つのバックエンドサーバーを示しています。必要に応じて 3 つ以上のフロントエンドまたはバックエンドサーバーを導入することもできます。
この構成では、サーバーをファイアウォールで保護し、LDAP データベースとカレンダーデータベースへのアクセスを制限することができます。カレンダーデータベースは 2 つのバックエンドサーバーに分散されます。
フロントエンドサーバーは CPU を多用します。ほとんどの CPU 時間は、エンドユーザーへのカレンダーデータの表示に使用されます。バックエンドサーバーはディスクを多用します。ほとんどの CPU 時間は、カレンダーデータベースへのアクセスに使用されます。
構成の詳細については、「CLD および DWP 用のサーバーの設定」を参照してください。
図 6-1 複数のフロントエンドサーバーと複数のバックエンドサーバー
フロントエンドサーバーとバックエンドサーバーの両方の機能を持つ複数のマシン
図 6-2 は、フロントエンドサーバーとバックエンドサーバーの両方の機能を持つ 3 つのマシンを示しています。各マシンは、1 台のカレンダーデータベースに接続されています。この構成では、カレンダーを物理的に分散することができます。カレンダーの所有者 (エンドユーザー) は、所有しているカレンダーが格納されているマシンにログインします。構成の詳細については、「フロントエンドサーバーとバックエンドサーバーを同じマシンで設定するには」を参照してください。
図 6-2 複数のフロントエンド/バックエンドサーバーによる構成
CLD プラグインの有効化CLD プラグインを有効にして使用するためには、各フロントエンドサーバーでいくつかの ics.conf パラメータを設定する必要があります。
Calendar Server でプラグインがどのように機能するかについては、『Sun Java System Calendar Server 6 2005Q1 Developer's Guide』の第 1 章「Calendar Server API (CSAPI) Overview」を参照してください。
注
Calendar Server 5.1.1 以降のリリースでは、CLD プラグインのメジャーバージョン番号は 1 から 2 に変わりました。マイナーバージョン番号は 0 で変わりません。独自の CLD プラグインを記述した場合は、プラグインのバージョン番号が 2.0 以上であることを確認する必要があります。
csapi.plugin.loadall
このパラメータを "y" に設定すると、cal_svr_base/SUNWics5/cal/bin/plugins ディレクトリに含まれている、接頭辞 cs_ で始まるすべての共有オブジェクトをロードするようにパラメータがシステムに指示します。"n" に設定すると、次の 2 つのパラメータ (csapi.plugin.calendarlookup および csapi.plugin.calendarlookup.name) を使用して、どのプラグインをロードするかをシステムに明確に通知する必要があります。
たとえば、特定のプラグインをロードする場合は、フロントエンドサーバーごとに、ics.conf ファイルでこのパラメータを次のように設定します。
csapi.plugin.loadall = "n"
csapi.plugin.calendarlookup
このパラメータを "y" に設定すると、特定のプラグインをロードするようにパラメータがシステムに指示します。このプラグインをロードしないようにシステムに通知するには、このパラメータを "n" に設定します。
たとえば、csapi.plugin.loadall を "n" に設定し、calendarlookup プラグインをロードする場合は、このパラメータを次のように設定します。
csapi.plugin.calendarlookup = "y"
このパラメータは、このあとの csapi.plugin.calendarlookup.name パラメータと組み合わせて使用します。
csapi.plugin.calendarlookup.name
calendarlookup プラグインをロードする場合は、このパラメータを次のように指定する必要があります。
csapi.plugin.calendarlookup.name = "calendarlookup"
このパラメータは、csapi.plugin.calendarplugin パラメータと組み合わせて使用します。
プラグインがどのように機能するかについては、次のサイトから入手できる『Sun Java System Calendar Server Developer's Guide』を参照してください。
http://docs.sun.com/db/coll/CalendarServer_05q1
caldb.cld.type
システムでは、ics.conf ファイルに含まれる caldb.cld.type パラメータの値に基づいて CLD プラグインをロードするかどうかを決めます。次の 2 つの値が考えられます。
たとえば、すべてのフロントエンドサーバーで、CLD プラグインをロードするようにカレンダーシステムに通知するには、ics.conf パラメータを次のように設定します。
caldb.cld.type="directory"
CLD および DWP 用のサーバーの設定ここでは、サーバーの設定方法について説明します。ここで説明する内容は次のとおりです。
CLD および DWP 用にフロントエンドサーバーを設定するには
フロントエンドサーバーで、次の ics.conf パラメータを設定します。
- DWP サービス (csdwpd) を有効にします。
service.dwp.enable="yes"
- 次のように CLD タイプを設定します。
caldb.cld.type="directory"
- DWP サービス (csdwpd) のポート番号を設定します。
service.dwp.port = "59779"
デフォルトは 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
- 各バックエンドサーバーのサーバー名を指定します。
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 属性で使用される名前と一致している必要があります。
- デフォルトの DWP サーバー名を設定します。
caldb.dwp.server.default = "server-name"
server-name は、LDAP サーバーデータベース内のユーザーエントリまたはリソースエントリが icsDWPHost 属性を持たない場合に使用されるデフォルトサーバーの完全修飾名です。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決できる必要があります。次に例を示します。
caldb.dwp.server.default = "calendar.sesta.com"
- 認証用の LDAP ホストを設定します。
デフォルトは "localhost" ですが、LDAP ディレクトリがこのフロントエンドサーバーと同じマシンにインストールされていない場合は、このパラメータを LDAP ディレクトリがインストールされている (Directory Server がインストールされている) ホスト名に設定します。
local.authldaphost=ldaphost
ldaphost は、LDAP ディレクトリがインストールされているホスト名です。
- ユーザー設定用の LDAP ホストを設定します。
ユーザー設定用の LDAP ディレクトリを個別に用意している場合は、このパラメータをそのホスト名に設定します。そうでない場合は、この設定を local.authldaphost と同じにします。デフォルトは "localhost" です。
local.ugladaphost="ldaphost"
"ldaphost" は、LDAP ディレクトリがインストールされているホスト名です。
- ENS (予定通知サービス) (enpd) を無効にします。
service.ens.enable="no"
- カレンダーデータベースサーバーアラームを無効にします。
caldb.serveralarms="0"
caaldb.serveralarms.dispatch="no"- 通知サービスを無効にします。
service.notify.enable="no"
- 自動バックアップサービスを無効にします。
caldb.berkeleydb.archive.enable="no"
caldb.berkeleydb.hotbackup.enable="no"- 変更を適用するために Calendar Server を再起動します。
cal_svr_base/SUNWics5/cal/sbin/start-cal
CLD および DWP 用にバックエンドサーバーを設定するには
バックエンドサーバーで、次の ics.conf パラメータを設定します。
バックエンドサーバーを設定するには、各バックエンドサーバーで ics.conf ファイルの次のパラメータを設定します。
- DWP サービス (csdwpd) を有効にします。
デフォルトは "no" (無効) です。
service.dwp.enable = "yes"
- DWP ポート番号を設定します。
デフォルトのポート番号は 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
service.dwp.port = "59779"
- HTTP サービスはバックエンドサーバーでは必要ないので、無効にします。
service.http.enable = "no"
- service.admin.enable がデフォルト値 ("yes") に設定されていることを確認します。
service.admin.enable = "yes"
- プラグインを使用するカレンダー検索タイプを設定します。
デフォルトは "local" (CLD 以外) です。
caldb.cld.type = "directory"
- バックエンドサーバーはカレンダーデータの検索を行わないので、csapi.plugin.calendarlookup を "n" に設定します。
csapi.plugin.calendarlookup = "n"
- 認証用の LDAP ホストを設定します。
デフォルトは "localhost" ですが、LDAP ディレクトリがこのバックエンドサーバーと同じマシンにインストールされていない場合は、このパラメータを LDAP ディレクトリがインストールされている (Directory Server がインストールされている) ホスト名に設定します。
local.authldaphost=ldaphost
ldaphost は、LDAP ディレクトリがインストールされているホスト名です。
- ユーザー設定用の LDAP ホストを設定します。
ユーザー設定用の LDAP ディレクトリを個別に用意している場合は、このパラメータをそのホスト名に設定します。そうでない場合は、この設定を local.authldaphost と同じにします。デフォルトは "localhost" です。
local.ugladaphost="ldaphost"
"ldaphost" は、LDAP ディレクトリがインストールされているホスト名です。
- 変更を適用するために Calendar Server を再起動します。
フロントエンドサーバーとバックエンドサーバーを同じマシンで設定するには
各マシンで、次のように ics.conf ファイルを編集します。
- DWP サービス (csdwpd) を有効にします。
service.dwp.enable = "yes"
- DWP サービス (csdwpd) のポート番号を設定します。
service.dwp.port = "59779"
デフォルトは 59779 です。設定するすべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
- カレンダー検索プラグインを有効にします。
csapi.plugin.calendarlookup = "y"
- Calendar Server がすべてのプラグインをロードするように指定します。
csapi.plugin.calendarlookup.name = "*"
これによって、プラグインディレクトリ内のすべてのプラグインがロードされます。
- Calendar Server が使用するカレンダー検索プラグインの種類を指定します。
caldb.cld.type = "directory"
- デフォルトの DWP サーバー名を設定します。
caldb.dwp.server.default = "server-name"
server-name は、LDAP サーバーデータベース内のユーザーエントリまたはリソースエントリが icsDWPHost 属性を持たない場合に使用されるデフォルトサーバーの完全修飾名です。この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決できる必要があります。次に例を示します。
caldb.dwp.server.default = "calendar.sesta.com"
- ローカルサーバーを含め、構成に含まれるすべてのフロントエンド/バックエンドサーバーのサーバー名を設定します。
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 属性で使用される名前と一致している必要があります。
- ENS (予定通知サービス) (enpd) を有効にします。
service.ens.enable="yes"
- カレンダーデータベースサーバーアラームを有効にします。
caldb.serveralarms="1"
caaldb.serveralarms.dispatch="yes"- 認証用の LDAP ホストを設定します。
デフォルトは "localhost" ですが、LDAP ディレクトリがこのフロントエンドサーバーと同じマシンにインストールされていない場合は、このパラメータを LDAP ディレクトリがインストールされている (Directory Server がインストールされている) ホスト名に設定します。
local.authldaphost=ldaphost
ldaphost は、LDAP ディレクトリがインストールされているホスト名です。
- ユーザー設定用の LDAP ホストを設定します。
ユーザー設定用の LDAP ディレクトリを個別に用意している場合は、このパラメータをそのホスト名に設定します。そうでない場合は、この設定を local.authldaphost と同じにします。デフォルトは "localhost" です。
local.ugladaphost="ldaphost"
"ldaphost" は、LDAP ディレクトリがインストールされているホスト名です。
- 変更を適用するために Calendar Server を再起動します。
フロントエンドサーバーとバックエンドサーバーの間のセキュリティの管理フロントエンドサーバーとバックエンドサーバーの間でパスワード認証を設定できます。ここでは、両サーバー間のセキュリティ保護された通信の設定方法と、それがどのように機能するかについて説明します。説明する内容は次のとおりです。
認証の行われ方
フロントエンドサーバーは DWP (データベースワイヤプロトコル) を使用してバックエンドサーバーと通信します。DWP は転送メカニズムとして HTTP を使用するため、Calendar Server は表 6-1 と表 6-2 に示す設定パラメータを使用して、フロントエンドサーバーとバックエンドサーバーの間の DWP 接続を認証します。
これらのパラメータは省略可能で、デフォルトでは ics.conf ファイルに設定されていません。DWP 接続の認証を行う場合は、フロントエンドサーバーとバックエンドサーバーのそれぞれの ics.conf ファイルに必要なパラメータを追加する必要があります。
まず、フロントエンドサーバーがバックエンドサーバーに接続すると、上記のパラメータによって指定されたユーザー ID とパスワードを送信します。バックエンドサーバーはそれらのパラメータを確認します。両方のパラメータが一致すると、認証は成功します。バックエンドサーバーは、次にセッション ID をフロントエンドサーバーに返します。フロントエンドサーバーは、バックエンドサーバーへの以後の DWP コマンドの送信時にこのセッション ID を使用します。
同じフロントエンドサーバーからの以後の接続では認証は必要ありません。ただし、バックエンドサーバーを再起動したり、2 つのサーバー間でアクティビティがないためにセッションがタイムアウトしたりした場合には認証が必要となります。
フロントエンドサーバーとバックエンドサーバーが複数ある場合は、それぞれで同じユーザー ID とパスワードを使用できます。
バックエンドサーバーがパスワードを指定しない場合、認証は行われません。
DWP 接続の認証を設定するには
フロントエンドサーバーとバックエンドサーバーの間の DWP 接続の認証を設定するには、次の手順を実行します。
- 各フロントエンドサーバーの ics.conf ファイルに次のパラメータを追加します。
caldb.dwp.server.back-end-server.admin = "userid"
caldb.dwp.server.back-end-server.cred = "password"back-end-server はバックエンドサーバーの名前、userid と password は Calendar Server が接続の認証に使用するユーザー ID とパスワードです。
- back-end-server によって指定される各バックエンドサーバーの ics.conf ファイルに次のパラメータを追加します。
service.dwp.admin.userid = "userid"
service.dwp.admin.cred = "password"userid と password は、フロントエンドサーバーで指定したものと同じユーザー ID とパスワードです。