![]() | |
Sun Java System Calendar Server 6 2005Q1 管理指南 |
第 6 章
配置跨多台機器的行事曆資料庫分布本章說明如何使用行事曆查找資料庫 (CLD) 外掛程式讓行事曆資料庫分布在多台後端伺服器上。
注意 對於功能分別分佈在前端機器和後端機器的 Calendar Server 安裝,各端的硬體平台必須相同。
更確切地說,由於 Big-endian 與 Small-endian 不一致,您不能在包含前端機器和後端機器的同一 Calendar Server 部署中同時使用 x86 平台的機器和 Sparc 平台的機器。
本章包含以下主題:
如需有關提昇 CLD 外掛程式效能的資訊,請參閱第 21 章「調校 Calender 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) 存取後端伺服器上的行事曆資料。
- 使用 DWP,Calendar Server 可將行事曆資料傳送至使用者登入的伺服器,以使其可在其中一個使用者介面中被描繪。
CLD 外掛程式支援的配置CLD 外掛程式支援以下 Calendar Server 配置:
多台前端伺服器與多台後端伺服器
圖 6-1 顯示執行單一 Calendar Server 實例的兩台前端伺服器和兩台後端伺服器。如果願意,您還可以配置兩台以上的前端或後端伺服器。
此配置可讓伺服器受到防火牆的保護,以限制對 LDAP 和行事曆資料庫的存取。行事曆資料庫分布在兩台後端伺服器上。
前端伺服器的 CPU 使用率很高,CPU 大部分時間都用於描繪一般使用者的行事曆資料。後端伺服器的磁碟使用率很高,CPU 大部分時間都用於存取行事曆資料庫。
若需配置說明,請參閱為 CLD 和 DWP 配置伺服器。
圖 6-1 多台前端伺服器與多台後端伺服器
同時作為前端伺服器和後端伺服器的多台機器
圖 6-2 顯示同時作為前端伺服器和後端伺服器的三台機器。每台機器均連線至行事曆資料庫。此配置可讓行事曆分布在不同的地理區域。行事曆所有者 (一般使用者) 登入其行事曆所在的機器。若需配置說明,請參閱配置同一機器上的前端伺服器和後端伺服器。
圖 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",則您必須使用下列兩個參數 (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/coll/CalendarServer_05q1 和
http://docs.sun.com/coll/CalendarServer_05q1_ztcaldb.cld.type
系統根據 ics.conf 檔案中的 caldb.cld.type 參數值來決定是否下載 CLD 外掛程式。以下是兩個預期值︰
例如,若要通知行事曆系統在每台前端伺服器上均下載 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 是 Calendar Server 所使用的完全合格的預設伺服器名稱 (如果在 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 目錄的主機名稱。
- 停用事件通知服務 (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 是 Calendar Server 所使用的完全合格的預設伺服器名稱 (如果在 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 屬性所使用的名稱。
- 啟用事件通知服務 (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 檔案。
表 6-1 用於認證 DWP 連線的後端配置參數
參數
說明
service.dwp.admin.userid
在後端伺服器上,指定用於認證 DWP 連線的使用者 ID。如果後端伺服器未指定使用者 ID,則不會執行認證。
service.dwp.admin.cred
在後端伺服器上,指定用於認證 DWP 連線的密碼。如果後端伺服器未指定密碼,則不會執行認證。
當前端伺服器首次連線至後端伺服器時,它會傳送由參數指定的使用者 ID 和密碼。後端伺服器將檢查這些參數,如果兩個參數相符,則認證成功。然後,後端伺服器會將階段作業 ID 傳送回前端伺服器。在以後針對後端伺服器的 DWP 指令中,前端伺服器會使用該階段作業 ID。
來自同一前端伺服器的後續連線不需要再次進行認證,除非後端伺服器重新啟動或階段作業因兩台伺服器之間無活動而過期。
如果您有多台前端和後端伺服器,則可以對每台伺服器使用同一使用者 ID 和密碼。
如果後端伺服器未指定使用者 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 和密碼相同。