獲取 IBM Lotus iNotes 的高可用性
轉自 http://www.ibm.com/developerworks/cn/lotus/inotes-avail/
Mail 是關鍵企業應用,使用者和管理員都希望郵件 24x7 可用。利用 IBM Lotus Notes 和 Lotus Domino,可獲取具有 Lotus Domino 叢集化和郵件檔案副本特性的高可用性。Lotus Notes 客戶端包括明確的程式碼來處理這樣的場景:該客戶端正與之通訊的 Lotus Domino 伺服器不再可用。
在短暫的延遲(它需要等待一個連線或通訊完成嘗試)後,Lotus Notes 客戶端通知使用者,伺服器不再可用,並要求使用者確認切換到另一個已知的副本伺服器。
然而,對於 Lotus iNotes ,想實現高可用性,需要一些額外基礎設施的輔助,比如 Application Delivery Controller (ADC),ADCs 為資料中心提供很多好處,包括:
- 提高應用可用性(通過應用監控和負載均衡)
- 增強安全性(應用防火牆)並提高速度(TCP 和 UDP 優化)
- 從計算密集型任務中解除安裝伺服器:例如,安全套接字層(SSL)加密
Lotus Domino 包含稱為 Internet Cluster Manager 的技術,通過該技術能夠基於應用,將初始的 URL 重定向到後端郵件伺服器。如果在一個會話開始後,實際的郵件伺服器變得不可用,然而,不存在恢復與切換到儲存有郵件檔案副本的其他可用伺服器的機制。
正常配置後,負載平衡器能為使用者提供無縫的故障轉移體驗。使用者絕不會意識到正與他們互動的原始伺服器已不可用;負載平衡器會無縫地檢測出這個問題,並向其他合適的伺服器發出請求。
有基於軟體的負載平衡器和特定的、提供此能力的硬體(比如 ADC)。硬體產品通常會貴一些,但是能夠提供更優的效能和能力,並能節約後端伺服器的資源。
本文討論恰當實現 Lotus iNotes 負載均衡的一些問題,並提供特定的、有關行業領先的 F5 Networks BIG-IP Local Traffic Manager (LTM) Advanced ADC 的例子。
我們還將探索建立可支援大多數 Lotus iNotes 郵件部署的 BIG-IP LTM 配置,然後考慮通過使用 BIG-IP LTM ,來提高 Lotus Domino 伺服器和使用者的效能。
Lotus Domino 郵件檔案通常有子目錄(例如,mail)和檔名(例如,juser.nsf)。 為實現負載均衡,每個伺服器中的任何郵件檔案的路徑應當是相同的,當到達負載均衡器時,郵件檔案的完整路徑必須是唯一的(明確的)。
我們來討論一些能夠用於獲取高可用性的配置方案。
這一配置方案最簡單。採用伺服器的全映象、叢集化設定,並且所有的郵件檔案都位於一個叢集中。兩個或三個伺服器採用相同的目錄架構和郵件檔案集,並開啟所有伺服器的叢集複製功能(見圖 1)。
圖 1 .叢集 A 中的兩個映象伺服器
在本方案中,對於負載均衡器,任何 Lotus iNotes 相關的請求能遞交給叢集中的任何伺服器。
更復雜的級別是有多個類似於配置 1 當中的 Lotus Domino 郵件叢集,並且負載平衡器需要將收到的請求傳送給合適的後端伺服器集(那些處於同一叢集的)。
有多種可能的方法來完成這件事:
- 在第一種方法中,每個叢集使用一個獨特命名的子目錄來儲存郵件檔案,這意味著普通 URLS 包含一個清楚指明叢集的段(見圖 2 )。更新負載均衡器中的規則來切斷這些名稱,並關聯合適的後端伺服器。
圖 2. 兩臺處於不同叢集的伺服器,每個叢集有獨特的子目錄名稱
這些獨特叢集子目錄名稱和後端 Lotus Domino 伺服器的硬編碼列表,必須針對任何對於伺服器叢集的更改隨時更新。 - 在第二種方法中,Lotus iNotes 重定向應用被配置為返回伺服器的 Lotus Domain Name System (DNS) 的主郵件伺服器主機名部分,作為針對郵件檔案生成的 URL 中的一個附加段(就在路徑之前)。負載平衡器使用這一附加段來查詢 Lotus Domino 叢集和相關的後端伺服器。
此方法的有個問題,Lotus iNotes 會產生後續的 URLs,其中不再包含段名稱。因此,叢集識別符號必須儲存在一個 cookie 當中,這樣如果不存在該段時,負載平衡器就會觀察該值。 - 在第三種方法中, Lotus Domino 伺服器中增加負載平衡器協助代理,通過負載平衡器查詢,來動態生成包含該郵件檔案副本的相關 Lotus Domino 伺服器列表(見圖 3 )。
圖 3. 處於不同叢集的兩臺伺服器
在本方案中,不必在負載平衡器規則中硬編碼特定叢集名稱或者後端 Lotus Domino 伺服器 IP 地址。
更加複雜的級別是在 Lotus Domino 叢集中有多個伺服器的方案,但不是叢集中的每個伺服器中都儲存所有郵件檔案。相反地,使用者郵件檔案稀疏地分佈在叢集內的部分伺服器中。
此方案可能是用於支援負載平衡器的最複雜配置,但它是 Lotus Domino 配置的常用部署方法。這裡有一些完成此配置的可能方法:
- 每個駐留有特定郵件檔案的、獨特的伺服器組合,在獨特的、郵件檔案所駐留的子目錄名稱中,以某種方式反映出來(見圖 4 )。這種組合意味著,通常的 URLs 實際上標識了郵件檔案所駐留的叢集和伺服器子集。
負載平衡器利用這一資訊將需求傳送給相應的伺服器子集。
圖 4. 在叢集 A 中的三個非映象伺服器
- 另外,Lotus Domino 伺服器中增加負載平衡器協助代理,通過負載平衡器查詢,來動態生成包含該郵件檔案副本的相關 Lotus Domino 伺服器列表(見圖 5 )。
圖 5. 在叢集 A 中的三個帶有重定向器的非映象伺服器
因此,正如我們對前面選項的討論所示,最通用的解決方案包括增加 Lotus Domino 伺服器來傳遞有關哪個後端伺服器可建立用於平衡當前所收到請求的動態池的資訊,同時不需要使用特定路徑名來傳遞相關故障轉移資訊。
現在,我們來探索有關建立用於實施這一解決方案的通用服務的更多細節,這同樣需要負載平衡器能夠進行動態查詢並使用查詢結果。
F5 Networks BIG-IP LTM 提供精密的、基於 Tool Command Language(TCL)的指令碼語言,該語言可用於建立 iRule 。每個 iRule 使用一個容易學習的指令碼語法,來定製 BIG-IP LTM 如何截獲、檢查、轉換和指示入站或出站應用傳輸。
利用這一方法,負載均衡環境可智慧地將 HTTP 傳輸路由到正確的 Lotus Domino 伺服器。
Lotus Domino 將關於一個特殊叢集中的獨特 NSF 檔案的資訊儲存在叢集資料庫目錄(cldbdir.nsf)中;然而,該資料庫只在特定叢集中是獨特的。同一域內其他叢集的目錄資料庫包含完全不同的資訊。
確定某個獨特 NFS 檔案是否在特定叢集中的方法是,檢查最初收到請求的伺服器上的叢集目錄,來確定路徑是否已找到。如果是,那就一切順利。會返回相應的伺服器集,並且使用者的主伺服器會處於所返回列表的最前面,來優先展示。
然而,如果伺服器的叢集目錄內沒有該路徑, 負載平衡器必須在不同的叢集中查詢伺服器。為了幫助它向正確的叢集傳送請求,要在 Lotus Domino 目錄 names.nsf 中查詢資訊,在當前使用者郵件檔案所駐留的叢集中定位伺服器集。
為完成這一查詢,該服務為當前已驗證使用者查詢主郵件伺服器,然後查詢該伺服器所屬叢集的 ClusterName 。 可在($Clusters)檢視中查詢該叢集,來獲取屬於該叢集的伺服器。
我們使用 Notes Formula 語言來建立協助服務,並將關鍵程式碼放入 Lotus iNotes 重定向器模板中的表單 ServersLookup 。 當負載均衡器發出請求時,表單 ServersLookup 以 X-Domino-xxxxx 格式,返回兩個 HTTP 響應頭中的一個,每個都包含由逗號分隔的伺服器列表。
當伺服器在自己的叢集中發現相關路徑時,返回 X-Domino-ReplicaServers , 然而,只有當郵件伺服器屬於其他叢集時,才返回 X-Domino-ClusterServers 。
本文中提供了表單 ServersLookup(見附錄)。下面的效能檢測沒有采用協助代理,只檢測配置 1 。
DWA85 工作負載施加在兩個叢集化 Lotus Domino 郵件伺服器上,同時進行伺服器的複製。每個伺服器上有 4000 個併發使用者和 2000 個活動使用者,採用 Microsoft® Windows® 64 位作業系統和 Lotus Domino 8.5.1 的 32 位版本。
所有測試中,伺服器的每個 Lotus Domino 目錄都定義了 4000 個使用者。測試開始時,每個使用者擁有一個大約 256 MB 的非壓縮文件,在收件箱資料夾裡有 3000 條訊息。
在這些測試中,通過啟用 Favor Runtime 設定,可得到 Lotus Domino 事務日誌,Mail Journaling 也設定為記錄所有本地訊息。針對訊息傳遞和 Server Operating System 的 Domino Domain Monitoring (DDM) 探測器已啟用,所有使用者都有用於阻止 10 個外部使用者郵件的郵件規則,來用於測試。
利用 Lotus Domino 8.5.1 ,我們在郵件資料庫中啟動文件壓縮功能,這就將所需空間從 250 MB 減少到大約 170 MB 。另外,在一些測試中,在郵件資料庫建立之後,啟用 Domino Attachment and Object Store (DAOS) 資料庫屬性,還在郵件箱和郵件日誌資料庫中啟用 DAOS 。
在第一個測試中,針對兩臺 Lotus Domino 郵件伺服器的 SSL 埠,模擬 4000 個 NotesBench DWA85 使用者, 在客戶端與伺服器之間沒有部署 BIG-IP LTM 代理。在本測試中,每個伺服器有 2000 個活動 DWA 使用者。
在第二個測試中,有 4000 個 NotesBench DWA85 模擬使用者,經過 BIG-IP LTM 代理,然後訪問郵件伺服器。在本測試中,禁用了 Lotus Domino 郵件伺服器的響應快取和 GZIP 壓縮,採用如下的 Notes.ini 設定:
Notes_wa_GZIP_Disable=1HTTPDisableUrlCache=1
也禁用了 Lotus Domino 目錄伺服器文件中 HTTP 伺服器的 SSL 埠。在測試過程中,BIG-IP LTM 代理伺服器負責處理快取、GZIP 壓縮和 SSL 加密。
表 1-3 總結了所有的硬體規範
表 1. 伺服器 1 的硬體配置
硬體 | 規範 |
---|---|
型號 | Intel 64 位平臺 |
測試用處理器/速度 | Intel® Xeon MP configured as 2 quad-core processor /3.67 GHz |
記憶體 | 8 GB |
活動物理驅動器 | 42 |
活動邏輯卷 | 3 |
作業系統 | Microsoft Windows 2003 X64 |
Lotus Domino 版本 | Lotus Domino 8.5.1,32 位應用 |
當 BIG-IP LTM 解除安裝 SSL/gzip 時使用的 Notes.ini 設定 | iNotes_wa_GZIP_Disable=1 HTTPDisableUrlCache=1 |
表 2. 伺服器 2 的硬體配置
硬體 | 規範 |
---|---|
型號 | Intel 64 位平臺 |
測試用處理器/速度 | Intel Xeon MP configured as 2 quad-core processor /3.06 GHz |
記憶體 | 12 GB |
活動物理驅動器 | 42 |
活動邏輯卷 | 3 |
作業系統 | Microsoft Windows 2003 X64 |
Lotus Domino 版本 | Lotus Domino 8.5.1, 32 位應用 |
當 BIG-IP LTM 解除安裝 SSL/gzip 時使用的 Notes.ini 設定 | iNotes_wa_GZIP_Disable=1 HTTPDisableUrlCache=1 |
表 3. 伺服器 3 的硬體配置
硬體 | 規範 |
---|---|
型號 | 6900 |
2x dual-core | |
記憶體 | 8 GB |
活動快閃記憶體驅動器 | 8 GB |
活動硬體驅動器 | 2 x 320 GB |
作業系統 | 10.1 |
圖 6 顯示配置基線。
圖 6. 配置基線
採用兩臺配有雙 3.6 GHz Xeon 處理器,8 GB 實體記憶體的 IBM 3850s 伺服器,每個伺服器連線一個配有 42 塊光纖盤的 DS4300 ,採用 Microsoft Windows 2003 Server Enterprise 64-bit Edition 作業系統(見圖 7 )。Linux® 伺服器的 NotesBench 驅動載入系統具有處理 4000 DWA85 模擬使用者的能力。
圖 7. 對 BIG-IP LTM 6900 進行測試配置
以下是對 BIG-IP LTM 的設定:
- SNAT: Set to Automap
- Nagle: Disabled
- SSL: Enabled
- Send buffer: 262144
- Recv window: 262144
- HTTP Profile:
- Defaults from http-wan-optimized-compression-caching
- Compress: Enabled
- Compress GZIP level: 5
- RAM cache size: 200 MB
Lotus Notes 的設定為:
- SSL: Disabled
- HTTP Caching: Disabled
- GZIP: Disabled
表 4 展示了兩個配置的關鍵度量值。
表 4. 關鍵結果
測試 | 基線 | BIP-IP LTM | 提高百分比 |
---|---|---|---|
事務/分鐘 | 6028 | 6044 | -0.27% |
響應時間(單位:秒) | 0.338 | 0.083 | 75.44% |
處理器忙 | 29.4 | 20.9 | 28.91% |
磁碟 I/O Ops/秒 | 525 | 530 | -0.95% |
磁碟 Kbytes/秒 | 4406 | 4308 | 2.22% |
在 Lotus Domino 伺服器中,顯示有意義的單個請求響應時間和處理器繁忙級別的區別。通過正確部署 BIGIP ADC ,平均響應時間提高了 75%(見圖 8 )。
換句話說,經過該裝置比直接連線 Lotus Domino 伺服器的響應速度快四倍。這一提高的原因之一是 ADC 持續開啟到 Lotus Domino 伺服器的連線,並能更高效地使用這些通道來進行後續的請求。
而且,Lotus Domino 伺服器上處理器的繁忙級別少於未使用 ADC 時的 28% ;更低的處理器繁忙級別允許 Lotus Domino 伺服器能保持更多的併發使用者。
圖 8. 效能提高百分比
注意:我們還模擬與郵件客戶端進行一些關鍵互動的低速連線,來度量客戶端響應時間。 當頻寬成為關鍵限定因素時, 我們不度量我們所計時的關鍵使用者操作的任何有意義的提高。
想獲取 Lotus iNotes 的高可用性,需要使用軟體負載均衡器或者硬體 ADC 結合 Lotus Domino 叢集化,以及包含映象配置和稀疏叢集的拓撲。
支援全映象叢集相對簡單,但正確使用稀疏叢集比較複雜。我們還介紹一些新的伺服器端邏輯,來幫助理解稀疏叢集拓撲。
這樣當叢集中的一臺伺服器當機時,稀疏叢集能夠在叢集中將負載平均地分配給剩餘的伺服器,因此不必在叢集內的每臺伺服器上為每個使用者保留郵件檔案的副本。
效能執行還展示了,部署 ADC 後,明顯節省了 Lotus Domino 伺服器的處理器資源。此外,該測試證實了,對於各種請求的響應時間有明顯的優化,也因此縮短了具有合理頻寬的連線使用者的響應時間。
對於想採用更以 Web 為中心的解決方案的組織,在軟體負載均衡器或者硬體 ADC 方面的投資,能夠明顯提高 Lotus Domino 郵件伺服器的使用者響應時間並降低處理器負載。
表單 ServersLookup 有一個稱為 $$HTMLHead 的,文字型別的 “Computed for display” 欄位。該欄位包含此處所展示的公式。 其中增加了除錯語句,這樣,如果在瀏覽器中手動開啟該表單,就可以看到公式的結果。
要手動開啟表單,發起如下請求:
http://mail.acme.ibm.com/iwaredir.nsf/ServersLookup?OpenForm&nsfpath=mail\jsmith.nsftmpDebug := ""; tmpNSFPath := @ReplaceSubstring(@URLDecode ( "Domino"; @UrlQueryString("nsfpath") );"/";"\\"); tmpServers := @DbLookup( "":"" ; "":"cldbdir.nsf" ; "($Pathname)" ; tmpNSFPath; "CanonicalServername"); tmpServers:=@If(@IsError(tmpServers);"";tmpServers); REM {Lookup home mail server }; tmpHomeServer:=@Name([Canonicalize];@NameLookup( [NoUpdate]; @UserName; "MailServer" )); REM {Is Home Mail server in list of servers, then move this up to the front of the list}; tmpServers := @If(@IsMember(tmpHomeServer;tmpServers); tmpHomeServer : @Transform(tmpServers;"x";@If(x=tmpHomeServer;@Nothing;x)) ;tmpServers); tmpDebug := tmpDebug + "ReplicaServers:" + @Implode(tmpServers;","); tmpDNSNames := ""; tmpClusterName := ""; tmpClusterServers := ""; REM {If no servers found, then db is in a different cluster, return list of cluster servers, with home server in front of list}; tmpServers := @If(tmpServers="" | @Elements(tmpServers)=0; @Do( tmpDebug := tmpDebug + "Looking for cluster servers;"; tmpClusterName := @Subset(@DbLookup("":""; "":"names.nsf"; "($ServersLookup)"; tmpHomeServer; "ClusterName"); 1); tmpClusterServers := @DbLookup( "":""; "":"names.nsf"; "($Clusters)"; tmpClusterName; "$0"); tmpClusterServers := @Transform(tmpClusterServers;"x"; @If(x=tmpHomeServer;@Nothing;@Name([Canonicalize];x))); tmpClusterServers := @If(@IsMember(tmpHomeServer;tmpClusterServers); tmpHomeServer : @Transform(tmpClusterServers;"x"; @If(x=tmpHomeServer;@Nothing;x));tmpClusterServers); tmpClusterServers); tmpServers); tmpLimit:=@Elements(tmpServers)+1; @For(n:=1; n |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14751907/viewspace-665641/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IBM Lotus iNotes 8.5 中的新特性:full 模式IBM模式
- 使用 IBM Lotus Mobile Connect 支援對 IBM Lotus iNotes 的安全遠端訪問IBM
- IBM Lotus Notes 8.5 中的高階 Java 檢視特性IBMJava
- IBM Lotus Notes Traveler 8.5.1 的效能IBM
- IBM Lotus Notes Traveler 8.5 的效能IBM
- IBM Lotus看重Web2.0IBMWeb
- IBM Lotus Domino 8.5 效能評測IBM
- 部署 IBM Lotus Connections: 維護IBM
- IBM Lotus Quickr Web Services 介紹IBMUIWeb
- developerWorks 中國 > Lotus > IBM Lotus Symphony 七種兵器之 Mail MergesDeveloperIBMAI
- IBM Lotus Forms V3.0 中的新特性IBMORM
- IBM Lotus Expeditor V6.1.1簡介IBM
- 為 Webform Server 開發 IBM Lotus FormsWebORMServerIBM
- IBM Lotus Expeditor V6.1.1 簡介IBM
- IBM Lotus Connections 2.5 評審指南IBM
- 5、pgpool-II高可用性(一)資料庫的高可用性資料庫
- 在 IBM WebSphere Portal 中整合 IBM Lotus Quickr 協作功能IBMWebUI
- IBM Lotus Quickr services for IBM WebSphere Portal 8.0 中定製元件IBMUIWeb元件
- IBM Lotus Notes 8 中全新的 Out of Office 功能IBM
- 使用新的 IBM Lotus Connections 2.5 遷移工具IBM
- IBM Lotus Expeditor Toolkit V6.1.1 入門IBM
- RADVISION改進與IBM Lotus整合IBM
- 從 PDF 表單遷移到 IBM Lotus FormsIBMORM
- 藉助 Project Zero 建立 RESTful IBM Lotus DominoProjectRESTIBM
- IBM Lotus Symphony 七種兵器之 WidgetsIBM
- IBM Lotus Sametime 8.5 策略管理簡介IBM
- 理解 IBM Lotus Domino 郵件資料庫的限額IBM資料庫
- 最全的獲取元素寬高及位置的方法
- 用 IBM Lotus Expeditor 進行遠端除錯IBM除錯
- IBM Lotus Notes 和 Domino 8.5 評測指南IBM
- IBM Lotus Domino 8.0.1 Web Access Lite 模式簡介IBMWeb模式
- IBM Lotus Sametime Gateway 8.5 新功能詳解IBMGateway
- IBM Lotus Sametime Gateway V7.5.1 簡介IBMGateway
- IBM Lotus Sametime Servers 故障診斷與排除IBMServer
- IBM Lotus Symphony 七種兵器之 Mail MergesIBMAI
- js/jq 獲取網頁寬高JS網頁
- 使用IBM InfoSphere CDC Transaction Stage實現高效的資料獲取IBM
- JS獲取元素寬高的兩種情況JS