第 6 章 複数のマシンへのカレンダデータベースの分散の設定
この章では、カレンダデータベースを複数のバックエンドサーバーに分散させることを可能にするカレンダ検索データベース (CLD) プラグインの使用方法について説明します。CLD プラグインの有効化と設定の両方を行う必要があります。
注意 –
フロントエンドとバックエンドのマシン間で機能を分けている Calendar Server のインストールでは、それぞれのハードウェアプラットフォームを同じにする必要があります。
つまり、ビッグエンディアンとスモールエンディアンとの間に互換性がないため、フロントエンドとバックエンドのマシンを含む 同じ Calendar Server で、x86 プラットフォームマシンと SPARC プラットフォームマシンの両方を使用することはできません。
この章で説明する内容は次のとおりです。
ヒント – CLD プラグインのパフォーマンスを向上させる方法については、第 21 章「Calendar Server のパフォーマンスの調整」を参照してください。
基礎的な情報
この節では、CLD プラグインを実際に有効化および設定する前に理解しておく必要がある、概要および基礎的な情報を提供します。ここで説明する内容は次のとおりです。
CLD プラグインの概要
カレンダ検索データベース (CLD) プラグインは単一カレンダインスタンス用の多数のバックエンドサーバーにユーザーカレンダとリソースカレンダを分散することによって、カレンダデータベースの水平方向のスケーラビリティーを提供します。複数のバックエンドサーバーにカレンダデータベースを配布している場合、Calendar Server は CLD プラグインを使用してカレンダが実際に格納されているサーバーを特定します。
Calendar Server は、DWP (データベースワイヤプロトコル) を使用してバックエンドサーバー上のカレンダデータにアクセスします。DWP は csdwpd サービスとして実行される内部プロトコルで、カレンダデータベースのネットワーク機能を提供します。
CLD プラグインのしくみ
Calendar Server は、バックエンドサーバー上のカレンダデータに次のようにアクセスします。
-
エンドユーザーが Communications Express を使用してカレンダにアクセスすると、CLD プラグインはカレンダの calid から userid を取り出し、LDAP ディレクトリデータベースまたは CLD データキャッシュ (有効な場合) でカレンダの所有者を検索します。フロントエンドのマシンを設定する方法については、「CLD 用にフロントエンドサーバーを設定するには」を参照してください。
-
カレンダの所有者が特定されると、プラグインはその icsDWPHost LDAP 属性の値を使用してカレンダが存在するバックエンドサーバーのホスト名を決定します。このホスト名は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。
-
Calendar Server は、ホスト名を使用して、DWP (データベースワイヤプロトコル) でバックエンドサーバー上のカレンダデータにアクセスします。
-
Calendar Server は、ユーザーがログインしているサーバーに DWP でカレンダデータを送信するため、そのデータをユーザーインタフェースで表示できます。
ヒント – サイトで CLD プラグインを使用している場合、同じユーザー用に作成されたすべてのカレンダが、LDAP ユーザーエントリの icsDWPHost LDAP 属性によって指定されているのと同じバックエンドサーバーに格納される必要があります。別のバックエンドサーバーにカレンダを作成しようとすると、Calendar Server はエラーを返します。
CLD プラグインでサポートされる構成
CLD プラグインは、次の Calendar Server 構成をサポートしています。
ヒント – すべての設定において、フロントエンドとバックエンドの各サーバーは、次の条件を満たす必要があります。
複数のフロントエンドサーバーと複数のバックエンドサーバー
図 6–1 は、1 つの Calendar Server インスタンスが稼動する 2 つのフロントエンドサーバーと 2 つのバックエンドサーバーを示しています。必要に応じて 3 つ以上のフロントエンドまたはバックエンドサーバーを導入することもできます。
この構成では、サーバーをファイアウォールで保護し、LDAP データベースとカレンダデータベースへのアクセスを制限することができます。カレンダデータベースは 2 つのバックエンドサーバーに分散されます。
フロントエンドサーバーは CPU を多用します。 ほとんどの CPU 時間は、エンドユーザーへのカレンダデータの表示に使用されます。バックエンドサーバーはディスクを多用します。 ほとんどの CPU 時間は、カレンダデータベースへのアクセスに使用されます。
構成の詳細については、「CLD および DWP 用の Calendar Server の設定」を参照してください。
図 6–1 複数のフロントエンドサーバーと複数のバックエンドサーバー
フロントエンドサーバーとバックエンドサーバーの両方の機能を持つ複数のマシン
図 6–2 は、フロントエンドサーバーとバックエンドサーバーの両方の機能を持つ 3 つのマシンを示しています。各マシンは、1 台のカレンダデータベースに接続されています。この構成では、カレンダを物理的に分散することができます。カレンダの所有者 (エンドユーザー) は、所有しているカレンダが格納されているマシンにログインします。構成の詳細については、「フロントエンドサーバーとバックエンドサーバーを同じマシンに設定するには」を参照してください。
図 6–2 フロントエンドサーバーとバックエンドサーバーの両方の機能を持つ複数のマシン
簡単なサイジング式
次に、メディア使用状況プロファイルに基づいて、必要なバックエンドサーバー数とフロントエンドサーバー数、およびストレージの容量を算出するための簡単な数式を示します。
メディア使用状況プロファイルの定義
ここでは大まかに、次のような状況を想定します。
-
すべてのクライアントは Web クライアントである。
したがって、入力として使用されるのは、ユーザー総数と同時並行の割合のみです。
-
平均的なサイズのカレンダの予定のサイズは 2K である。
-
各ユーザーが、1 週間につき 5 つの予定または仕事を作成する。
-
CPU 利用率は 80%。
-
900 MHz の CPU
-
各 CPU に 1G バイトの RAM を搭載
-
2 年分のカレンダデータがシステムに保存されている。
フロントエンド CPU の数
数式は次のとおりです。
CPU 数 = 並行ユーザー数 / 4800
バックエンド CPU の数
数式は次のとおりです。
CPU 数 = 設定済みの 500,000 ユーザーにつき 4 CPU
必要なストレージの容量
数式は次のとおりです。
ストレージの容量 = 電子メール 5 件 / 週 × 52 週 / 年 × 2K / メール (5*52*2K)
= 520K バイト / ユーザー / 年
カレンダデータ約 2 年分で、1 M バイト / ユーザー
CLD および DWP 用の Calendar Server の設定
ここでは、サーバーの設定方法について説明します。 ここで説明する内容は次のとおりです。
CLD 用にフロントエンドサーバーを設定するには
手順
-
すべてのフロントエンドサーバーで、設定を変更する権限を持つ管理者としてログインします。
-
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
-
古い ics.conf ファイルをコピーして名前を変更し、保存します。
-
次の表に示すように、ics.conf パラメータを編集します。
パラメータ
|
説明
|
csapi.plugin.loadall
|
cs_ で始まるすべてのプラグインを cal_svr_base/SUNWics5/cal/bin/plugins ディレクトリにロードする場合は、すべてのフロントエンドサーバーでこの値を “y” に設定します。
csapi.plugin.calendarlookup.name に名前が含まれる特定のプラグインのみをロードする場合は、“n” に設定します。
|
csapi.plugin.calendarlookup
|
このパラメータを "yes" に設定します。
|
csapi.plugin.calendarlookup.name
|
プラグインの名前 "calendarlookup" に設定します。すべてのプラグインをロードする場合は、"*" に設定します。
|
caldb.cld.type
|
カレンダを複数のバックエンドに分散させるか (“directory” に設定)、またはカレンダを Calendar Server のインストール先と同じサーバーに格納するか (デフォルト値 “local” に設定) を指定します。
|
service.dwp.enable
|
フロントエンドマシンがバックエンドとしても機能しない場合、DWP サービスを無効にします。次に例を示します。service.dwp.enable="no"
|
service.dwp.port
|
デフォルトのポートは “59979” です。すべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
|
service.store.enable
|
csstored は、カレンダデータベースをバックアップするという設定なので、フロントエンドマシンには不要です。ただし、このプロセスを無効にする必要はありません。
このパラメータを "no" に設定すると、フロントエンドマシンで csstored プロセスを無効にするように選択できます。これにより、設定されていない日単位のレポート出力のプロセスが停止します。
|
caldb.dwp.server.backend-server-n .ip
|
これは多値パラメータです。Calendar Server 配備内のバックエンドサーバーごとに 1 つの ics.conf パラメータを作成します。このパラメータの値は、バックエンドサーバーのホスト名です。サーバー名は完全修飾名で指定します。 この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。サーバー名は、パラメータの名前と値の両方で同一であり、完全修飾名である必要があります。
次に例を示します。
caldb.dwp.server.calendar1.sesta.com=
"calendar1.sesta.com"
caldb.dwp.server.calendar2.sesta.com=
"calendar2.sesta.com"
|
caldb.dwp.server.default
|
ユーザーまたはリソースの LDAP エントリが icsDWPHost 属性を持たない場合、システムが使用するデフォルトの DWP サーバー名を設定します。サーバー名は完全修飾名であり、DNS によって解決可能でなければなりません。
次に例を示します。
caldb.dwp.sever.default=
"calendar1.sesta.com"
|
local.authldaphost
|
Directory Server がインストールされているホストの名前。デフォルトは "localhost" です。
|
local.ugldaphost
|
LDAP ユーザー設定が格納されているホストの名前。 ユーザー設定を別の LDAP ホストに格納しない場合は、このパラメータを local.authldaphost と同じ値に設定してください。
|
service.ens.enable
|
このパラメータを "no" に設定して、このフロントエンドサーバーの ENS (予定通知サービス) (enpd) を無効にします。
ENS は、バックエンドサーバーでのみ有効にしてください。
|
caldb.serveralarms
|
"0" に設定して、フロントエンドのサーバーアラームを無効にします。
サーバーアラームは、バックエンドサーバーでのみ有効 ("1") にしてください。
|
caldb.serveralarms.dispatch
|
このパラメータを "no" に設定して、アラームディスパッチャーを無効にします。
アラームディスパッチャーは、バックエンドサーバーでのみ有効 ("yes") にしてください。
|
service.notify.enable
|
このパラメータを "no" に設定して、通知サービスを無効にします。
通知サービスは、バックエンドサーバーでのみ有効 ("yes") にしてください。
|
caldb.berkeleydb.archive.enable
|
このパラメータを "no" に設定して、自動アーカイブバックアップサービスを無効にします。フロントエンドマシンでアーカイブを設定する必要はありません。
|
caldb.berkeleydb.hotbackup.enable
|
自動ホットバックアップサービスは無効に ( "no" に設定) してください。フロントエンドマシンでホットバックアップを行う必要はありません。
|
-
ファイルを ics.conf として保存します。
-
Calendar Server を再起動します。
cal_svr_base /SUNWics5/cal/sbin/start-cal
CLD および DWP 用にバックエンドサーバーを設定するには
手順
-
すべてのバックエンドサーバーで、設定を変更する権限を持つ管理者としてログインします。
-
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
-
古い ics.conf ファイルをコピーして名前を変更し、保存します。
-
次の表に示すように、ics.conf パラメータを編集します。
パラメータ
|
説明
|
service.http.enable
|
このパラメータを "no" に設定します。
バックエンドサーバーでは HTTP は必要ありません。
|
service.admin.enable
|
このパラメータをデフォルト値の "yes" に設定して、管理サービス (csadmind) を有効にします。
|
caldb.cld.type
|
カレンダを複数のバックエンドに分散させるか (“directory” に設定)、またはカレンダを Calendar Server のインストール先と同じサーバーに格納するか (デフォルト値 “local” に設定) を指定します。
CLD および DWP の場合、すべてのフロントエンドおよびバックエンドサーバーでこの値を "directory" に設定する必要があります。
|
csapi.plugin.calendarlookup
|
このパラメータを "no" に設定します。
バックエンドサーバーではプラグインは必要ありません。
|
service.dwp.enable
|
"yes" に設定すると、DWP を有効にします。
|
service.dwp.port
|
デフォルトのポートは “59979” です。すべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
|
caldb.dwp.server.backend-server-n .ip
|
これは多値パラメータです。Calendar Server 配備内のバックエンドサーバーごとに 1 つの ics.conf パラメータを作成します。このパラメータの値は、バックエンドサーバーのホスト名です。サーバー名は完全修飾名で指定します。 この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。サーバー名は、パラメータの名前と値の両方で同一であり、完全修飾名である必要があります。
次に例を示します。
caldb.dwp.server.calendar1.sesta.com=
"calendar1.sesta.com"
caldb.dwp.server.calendar2.sesta.com=
"calendar2.sesta.com"
|
caldb.dwp.server.default
|
ユーザーまたはリソースの LDAP エントリが icsDWPHost 属性を持たない場合、システムが使用するデフォルトの DWP サーバー名を設定します。サーバー名は完全修飾名であり、DNS によって解決可能でなければなりません。
次に例を示します。
caldb.dwp.sever.default=
"calendar1.sesta.com"
|
local.authldaphost
|
Directory Server がインストールされているホストの名前。デフォルトは "localhost" です。
|
local.ugldaphost
|
LDAP ユーザー設定が格納されているホストの名前。 ユーザー設定を別の LDAP ホストに格納しない場合は、このパラメータを local.authldaphost と同じ値に設定してください。
|
service.ens.enable
|
このパラメータを "yes" に設定して、バックエンドサーバーの ENS (予定通知サービス) (enpd) を有効にします。
|
caldb.serveralarms
|
サーバーアラームは、バックエンドサーバーでは有効に ("1") してください。
|
-
ファイルを ics.conf として保存します。
-
Calendar Server を再起動します。
cal_svr_base /SUNWics5/cal/sbin/start-cal
フロントエンドサーバーとバックエンドサーバーを同じマシンに設定するには
手順
-
すべてのサーバーで、設定を変更する権限を持つ管理者としてログインします。
-
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
-
古い ics.conf ファイルをコピーして名前を変更し、保存します。
-
次の表に示すように、ics.conf パラメータを編集します。
パラメータ
|
説明
|
csapi.plugin.loadall
|
cs_ で始まるすべてのプラグインを cal_svr_base/SUNWics5/cal/bin/plugins ディレクトリにロードする場合は、すべてのフロントエンドサーバーでこの値を “y” に設定します。
csapi.plugin.calendarlookup.name に名前が含まれる CLD プラグインのみをロードする場合は、“n” に設定します。
|
csapi.plugin.calendarlookup
|
このパラメータを "yes" に設定します。
|
csapi.plugin.calendarlookup.name
|
すべてのプラグインをロードする場合は、"*" に設定します。
CLD プラグインのみをロードする場合は、プラグインの名前 "calendarlookup" に設定します。
|
caldb.cld.type
|
カレンダを複数のバックエンドに分散させるか (“directory” に設定)、またはカレンダを Calendar Server のインストール先と同じサーバーに格納するか (デフォルト値 “local” に設定) を指定します。
|
service.dwp.enable
|
"yes" に設定すると、DWP を有効にします。
|
service.dwp.port
|
デフォルトのポートは “59979” です。すべてのフロントエンドサーバーとバックエンドサーバーに同じポート番号を指定する必要があります。
|
caldb.dwp.server.backend-server-n .ip
|
これは多値パラメータです。Calendar Server 配備内のバックエンドサーバーごとに 1 つの ics.conf パラメータを作成します。このパラメータの値は、バックエンドサーバーのホスト名です。サーバー名は完全修飾名で指定します。 この名前は、DNS (ドメイン名サービス) によって有効な IP アドレスに解決する必要があります。サーバー名は、パラメータの名前と値の両方で同一であり、完全修飾名である必要があります。
次に例を示します。
caldb.dwp.server.calendar1.sesta.com=
"calendar1.sesta.com"
caldb.dwp.server.calendar2.sesta.com=
"calendar2.sesta.com"
|
caldb.dwp.server.default
|
ユーザーまたはリソースの LDAP エントリが icsDWPHost 属性を持たない場合、システムが使用するデフォルトの DWP サーバー名を設定します。サーバー名は完全修飾名であり、DNS によって解決可能でなければなりません。
次に例を示します。
aldb.dwp.sever.default=
"calendar1.sesta.com"
|
local.authldaphost
|
Directory Server がインストールされているホストの名前。デフォルトは “localhost” です (フロントエンドと同じサーバーで)。
|
local.ugldaphost
|
LDAP ユーザー設定が格納されているホストの名前。 ユーザー設定を別の LDAP ホストに格納しない場合は、このパラメータを local.authldaphost と同じ値に設定してください。
|
service.ens.enable
|
"yes" に設定して、ENS を有効にします。
|
caldb.serveralarms
|
サーバーアラームは、バックエンドサーバーでは有効に ("1") してください。
|
caldb.serveralarms.dispatch
|
アラームディスパッチャーは、バックエンドサーバーでは有効に ("yes") してください。
|
service.notify.enable
|
通知サービスは、バックエンドサーバーでは有効に ("yes") してください。
|
caldb.berkeleydb.archive.enable
|
自動アーカイブバックアップサービスは、バックエンドシステムでは有効に ("yes" に設定) してください。
|
caldb.berkeleydb.hotbackup.enable
|
自動ホットバックアップサービスは、バックエンドシステムでは有効に ("yes" に設定) してください。
|
-
ファイルを ics.conf として保存します。
-
Calendar Server を再起動します。
cal_svr_base /SUNWics5/cal/sbin/start-cal
フロントエンドサーバーとバックエンドサーバーの間のセキュリティーの管理
フロントエンドサーバーとバックエンドサーバーの間でパスワード認証を設定できます。ここでは、両サーバー間のセキュリティー保護された通信の設定方法と、それがどのように機能するかについて説明します。説明する内容は次のとおりです。
認証の行われ方
フロントエンドサーバーは DWP (データベースワイヤプロトコル) を使用してバックエンドサーバーと通信します。DWP は転送メカニズムとして HTTP を使用するため、Calendar Server は設定パラメータを使用して、フロントエンドサーバーとバックエンドサーバーの間の DWP 接続を認証します。
フロントエンドサーバーは、バックエンドサーバーへの最初の接続時に、ics.conf ファイルに指定されたユーザー ID とパスワードを送信します。バックエンドサーバーは、ics.conf ファイルのパラメータをチェックし、一致すると、認証は成功します。 バックエンドサーバーは、次にセッション ID をフロントエンドサーバーに返します。フロントエンドサーバーは、バックエンドサーバーへの以後の DWP コマンドの送信時にこのセッション ID を使用します。
同じフロントエンドサーバーからの以後の接続では認証は必要ありません。 ただし、バックエンドサーバーを再起動したり、2 つのサーバー間でアクティビティーがないためにセッションがタイムアウトしたりした場合には認証が必要となります。
フロントエンドサーバーとバックエンドサーバーが複数ある場合は、それぞれで同じユーザー ID とパスワードを使用できます。
バックエンドサーバーがパスワードを指定しない場合、認証は行われません。
フロントエンドサーバーの DWP 接続の認証を設定するには
始める前に
注意 –
次のパラメータは、ics.conf ファイルのインストール済みバージョンには含まれません。DWP 接続の認証を行う場合は、各フロントエンドサーバーの ics.conf ファイルに必要なパラメータを追加する必要があります。
手順
-
すべてのフロントエンドサーバーで、設定を変更する権限を持つ管理者としてログインします。
-
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
-
古い ics.conf ファイルをコピーして名前を変更し、保存します。
-
ics.conf パラメータを、次の表に示すように追加します。
パラメータ
|
説明
|
caldb.dwp.server.back-end-server.admin
|
フロントエンドサーバーで、バックエンドサーバーとの DWP 接続の認証に使用される管理者のユーザー ID を指定します。back-end-server はサーバー名です。
|
caldb.dwp.server.back-end-server.cred
|
フロントエンドサーバーで、バックエンドサーバーとの DWP 接続の認証に使用されるパスワードを指定します。back-end-server はサーバー名です。
|
-
ファイルを ics.conf として保存します。
-
Calendar Server を再起動します。
cal_svr_base /SUNWics5/cal/sbin/start-cal
バックエンドサーバーの DWP 接続の認証を設定するには
始める前に
注意 –
次のパラメータは、ics.conf ファイルのインストール済みバージョンには含まれません。DWP 接続の認証を行う場合は、各バックエンドサーバーの ics.conf ファイルに必要なパラメータを追加する必要があります。
手順
-
すべてのバックエンドサーバーで、設定を変更する権限を持つ管理者としてログインします。
-
/etc/opt/SUNWics5/cal/config ディレクトリに移動します。
-
古い ics.conf ファイルをコピーして名前を変更し、保存します。
-
ics.conf パラメータを、次の表に示すように追加します。
パラメータ
|
説明
|
service.dwp.admin.userid
|
バックエンドサーバーで、DWP 接続の認証に使用するユーザー ID を指定します。バックエンドサーバーがユーザー ID を指定しない場合、認証は行われません。
|
service.dwp.admin.cred
|
バックエンドサーバーで、DWP 接続の認証に使用するパスワードを指定します。バックエンドサーバーがパスワードを指定しない場合、認証は行われません。
|
-
ファイルを ics.conf として保存します。
-
Calendar Server を再起動します。
cal_svr_base /SUNWics5/cal/sbin/start-cal