Sun Java System Calendar Server 6 2005Q4 管理指南

第 6 章 在多个计算机上配置日历数据库分发

本章介绍了如何使用日历查找数据库 (CLD) 插件来将日历数据库分发到多个后端服务器上。您必须启用并配置 CLD 插件。


注意 – 注意 –

对于将功能分布在前端和后端计算机上的 Calendar Server 安装,每一端上的硬件平台都必须相同。

尤其要注意的是:由于 big-endian 与 small-endian 之间互不兼容,所以不能在包含前端和后端计算机的同一 Calendar Server 部署中同时使用 x86 平台计算机和 SPARC 平台计算机。


本章包含以下主题:


提示 –

有关如何改进 CLD 插件的性能的信息,请参见第 21 章,优化 Calender Server 的性能


背景信息

本节介绍了您在实际启用和配置 CLD 插件之前可能希望了解的有用概述和背景信息。本节包含以下主题:

CLD 插件概述

日历查找数据库 (CLD) 插件将用户日历和资源日历分布到某一个日历实例的多个后端服务器上,从而为日历数据库提供了水平可伸缩性。如果日历数据库分布在多个后端服务器上,Calendar Server 将使用 CLD 插件来决定存储日历的具体服务器。

Calendar Server 使用数据库有线协议 (DWP) 来访问后端服务器上的日历数据。DWP 是一个内部协议,作为 csdwpd 服务运行,为日历数据库提供网络连接功能。

CLD 插件的工作原理

Calendar Server 按以下说明访问后端服务器上的日历数据:

  1. 当最终用户通过 Communications Express 访问日历时,CLD 插件先从日历的 calid 中提取 userid,然后在 LDAP 目录数据库或 CLD 数据高速缓存(如果已启用)中查找日历的属主。有关配置前端计算机的信息和说明,请参见为 CLD 配置前端服务器

  2. 找到日历的属主后,插件将使用 icsDWPHost LDAP 属性中的值来确定日历所在的后端服务器的主机名。此主机名必须能够被域名服务 (DNS) 解析成有效的 IP 地址。

  3. Calendar Server 使用此主机名和数据库有线协议 (DWP) 访问后端服务器上的日历数据。

  4. Calendar Server 使用 DWP 将日历数据发送到用户登录的服务器,以便可以在某一个用户界面中显示日历数据。


提示 –

如果您的站点正在使用 CLD 插件,则为同一用户创建的所有日历必须在同一个后端服务器上,如 LDAP 用户条目的 icsDWPHost LDAP 属性所示。如果试图在不同的后端服务器上创建日历,Calendar Server 将返回一条错误信息。


CLD 插件支持的配置

CLD 插件支持以下 Calendar Server 配置:


提示 –

在所有配置中,每个前端和后端服务器都必须:


多个前端服务器与多个后端服务器

图 6–1 显示了正在运行一个 Calendar Server 实例的两个前端服务器和两个后端服务器。如果需要,还可以配置更多的前端服务器或后端服务器。

此配置使服务器可以受到防火墙的保护,以限制对 LDAP 和日历数据库的访问。日历数据库分布在两个后端服务器上。

前端服务器属于 CPU 密集型,大部分 CPU 时间都用于为最终用户呈现日历数据。后端服务器属于磁盘密集型,大部分 CPU 时间用于访问日历数据库。

有关配置的说明,请参见为 CLD 和 DWP 配置 Calendar Server

图 6–1 多个前端服务器与多个后端服务器

这显示了同时具有多个后端服务器和前端服务器的系统示例。

多个同时用作前端服务器和后端服务器的计算机

图 6–2 显示了三个同时用作前端服务器和后端服务器的计算机。每个计算机连接了一个日历数据库。此配置允许将日历分发到不同的地理位置。日历属主(最终用户)将登录到其日历所驻留的计算机上。有关配置的说明,请参见将服务器同时配置为前端服务器和后端服务器

图 6–2 多个同时用作前端和后端的服务器

此图形显示了同时用作前端计算机和后端计算机的计算机示例。

简单的调整大小练习

以下是基于中等使用率配置文件的几个简单公式,这些公式用于计算所需后端服务器和前端服务器的数目以及存储器的容量:

中等使用率配置文件的定义

为进行粗略估计,我们假定以下情况:

前端 CPU 的数目

公式为:

CPU 的数目 = 并发用户数目除以 4800

后端 CPU 的数目

公式为:

CPU 的数目 = 每 500,000 个配置用户平均 4 个 CPU

所需存储器容量

公式为:

存储器容量 = 5 封电子邮件(每周)乘以 52 周(一年)乘以 2K(每封电子邮件)(5*52*2K)

= 520KB(每个用户每年)

对于假定为两年的日历数据,每个用户需要 1 MB。

为 CLD 和 DWP 配置 Calendar Server

本节包含有关配置服务器的说明及以下主题:

Procedure为 CLD 配置前端服务器

步骤
  1. 在每个前端服务器上,以有权更改此配置的管理员身份登录。

  2. 转至 /etc/opt/SUNWics5/cal/config 目录。

  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。

  4. 编辑下表中所示的 ics.conf 参数:

    参数 

    说明 

    csapi.plugin.loadall

    对于每个前端服务器,如果您希望将所有以 cs_ 开头的插件加载到 cal_svr_base/SUNWics5/cal/bin/plugins 目录中,请将值设置为 "y"

    将值设置为 "n",则仅可以加载名称由 csapi.plugin.calendarlookup.name 指定的特定插件。

    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 部署中的每个后端服务器创建一个 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

    禁用此前端服务器的 ENS (enpd),将此参数设置为 "no"

    必须仅在后端服务器上启用 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")。前端计算机上不需要热备份。

  5. 将此文件另存为 ics.conf

  6. 重新启动 Calendar Server。

    cal_svr_base/SUNWics5/cal/sbin/start-cal

Procedure为 CLD 和 DWP 配置后端服务器

步骤
  1. 在每个后端服务器上,以有权更改此配置的管理员身份登录。

  2. 转至 /etc/opt/SUNWics5/cal/config 目录。

  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。

  4. 编辑下表中所示的 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 部署中的每个后端服务器创建一个 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

    要启用此后端服务器的 ENS (enpd),将此参数设置为 "yes"

    caldb.serveralarms

    在后端服务器上必须启用服务器报警 ("1")。

  5. 将此文件另存为 ics.conf

  6. 重新启动 Calendar Server。

    cal_svr_base/SUNWics5/cal/sbin/start-cal

Procedure将服务器同时配置为前端服务器和后端服务器

步骤
  1. 在每个服务器上,以有权更改此配置的管理员身份登录。

  2. 转至 /etc/opt/SUNWics5/cal/config 目录。

  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。

  4. 编辑下表中所示的 ics.conf 参数:

    参数 

    说明 

    csapi.plugin.loadall

    对于每个前端服务器,如果您希望将所有以 cs_ 开头的插件加载到 cal_svr_base/SUNWics5/cal/bin/plugins 目录中,请将值设置为 "y"

    将值设置为 "n",则仅可以加载名称由 csapi.plugin.calendarlookup.name 指定的 CLD 插件。

    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 部署中的每个后端服务器创建一个 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")。

  5. 将此文件另存为 ics.conf

  6. 重新启动 Calendar Server。

    cal_svr_base/SUNWics5/cal/sbin/start-cal

维护前端服务器与后端服务器之间的安全

您可以配置前端服务器和后端服务器之间的密码验证。本节介绍了这两种服务器之间的安全通信的设置方法及其工作原理。本节包含以下主题:

完成验证的方法

前端服务器使用数据库有线协议 (DWP) 与后端服务器通信。由于 DWP 使用 HTTP 作为传输机制,因此,Calendar Server 使用配置参数对前端服务器和后端服务器之间的 DWP 连接进行验证。

当前端服务器第一次连接到后端服务器时,它将发送在 ics.conf 文件中指定的用户 ID 和密码。后端服务器将在其 ics.conf 文件中核对参数,如果所有参数均匹配,则验证成功。后端服务器然后向前端服务器发送会话 ID。前端服务器在对后端服务器执行的后续 DWP 命令中使用该会话 ID。

来自同一个前端服务器的后续连接不需要再次验证,除非重新启动了后端服务器或者由于两个服务器之间没有活动而导致该会话过期。

如果有多个前端服务器和多个后端服务器,则可以对每个服务器使用相同的用户 ID 和密码。

如果后端服务器不指定用户 ID 和密码,则不执行验证。

Procedure设置前端服务器的 DWP 连接验证

开始之前

注意 – 注意 –

这些参数不包括在已装版本的 ics.conf 文件中。要使用 DWP 连接验证,必须在每个前端服务器上将所需的参数添加到 ics.conf 文件中。


步骤
  1. 在每个前端服务器上,以有权更改此配置的管理员身份登录。

  2. 转至 /etc/opt/SUNWics5/cal/config 目录。

  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。

  4. 添加下表中所示的 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 是服务器的名称。

  5. 将此文件另存为 ics.conf

  6. 重新启动 Calendar Server。

    cal_svr_base/SUNWics5/cal/sbin/start-cal

Procedure设置后端服务器的 DWP 连接验证

开始之前

注意 – 注意 –

这些参数不包括在已装版本的 ics.conf 文件中。要使用 DWP 连接验证,必须在每个后端服务器上将所需的参数添加到 ics.conf 文件中。


步骤
  1. 在每个后端服务器上,以有权更改此配置的管理员身份登录。

  2. 转至 /etc/opt/SUNWics5/cal/config 目录。

  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。

  4. 添加下表中所示的 ics.conf 参数:

    参数 

    说明 

    service.dwp.admin.userid

    在后端服务器上,指定用来验证 DWP 连接的用户 ID。如果后端服务器不指定用户 ID,则不执行验证。 

    service.dwp.admin.cred

    在后端服务上,指定用来对 DWP 连接进行验证的密码。如果后端服务器不指定密码,则不执行验证。 

  5. 将此文件另存为 ics.conf

  6. 重新启动 Calendar Server。

    cal_svr_base/SUNWics5/cal/sbin/start-cal