在解決方案生命週期的部署設計階段期間,您設計高階部署架構和低階實作規格,以及準備實作解決方案需要的一系列規劃和規格。專案核准會在部署設計階段發生。
本章包含以下各節:
部署設計以部署方案開始,而部署方案是在解決方案生命週期的邏輯設計和技術需求階段期間所設計的。 部署方案包含一個邏輯架構及解決方案的服務品質 (QoS) 需求。您對應邏輯架構 (跨實體伺服器和其他網路裝置) 中識別的元件以建立部署架構。需求提供效能、可用性、延展性和其他相關規格之硬體配置的指導。
設計部署架構是一個反覆式程序。通常需要重新審視 QoS 需求並重新檢查初步設計。需要考慮 QoS 需求的相互關係,透過平衡利弊和所有權成本問題找出一個能夠達到專案最終業務目標的最佳化解決方案。
專案核准會在部署設計階段期間發生,通常是在您建立部署架構之後。使用部署架構和以下所述的實作規格 (若有可能),則可估計部署的實際成本並將結果提交給利害關係人以進行核准。一旦核准專案後,則會簽訂部署完成的合約並取得及分配實作專案的資源。
在部署設計階段期間,您可能準備下列任何規格和規劃:
部署架構。一個描述邏輯架構與實體環境對映的高階架構。實體環境包括企業內部網路或是網際網路環境中的計算節點、處理器、記憶體、儲存裝置和其他硬體及網路裝置。
實作規格。用作部署建立藍圖的詳細規格。這些規格提供電腦和網路硬體的規格,以取得和描述部署的網路佈局。實作規格也包括目錄服務的規格,包含目錄資訊樹狀結構 (DIT) 以及為目錄存取定義的群組和角色的詳細資訊。
實作規劃。一組涵蓋企業軟體解決方案實作各個層面的規劃。實作規劃包括下列項目:
遷移規劃。描述遷移企業資料和升級企業軟體的策略和程序。遷移資料必須符合最近安裝之企業應用程式的格式和標準。所有的企業軟體必須都是正確的版本層級,才能進行交互操作。
安裝規劃。源自部署架構,指定硬體伺服器名稱、安裝目錄、安裝順序、每個節點的安裝類型以及安裝和配置分散式部署所必需的配置資訊。
使用者管理規劃。包括現有目錄和資料庫中資料的遷移策略、將部署架構中指定的複製設計考慮在內的目錄設計規格以及使用新內容佈建目錄的程序。
測試規劃。描述已部署軟體的測試程序,包括開發原型和引導實作的特定規劃、判定預期負載處理能力的加強測試以及判定規劃的功能是否如預期運作的功能測試。
建置規劃。描述將實作自規劃和測試環境移到生產環境的程序和排程。將實作移動到生產通常會發生在各個階段中。例如,第一個階段可能會為有限群組的使用者部署軟體,並在完成整個部署之前於每個階段增加使用者基礎。在完成整個部署之前,階段式實作也可以包括特定軟體套件的排程實作。
有數個因素會影響您在部署設計期間所做的決定。請考慮下列關鍵因素:
邏輯架構。邏輯架構詳細描述提議解決方案中的功能服務以及提供這些服務的元件間的相互關係。將邏輯架構作為判定分配服務之最佳作法的關鍵。部署方案包含與服務品質元件需求相互搭配的邏輯架構 (如下所示)。
服務品質需求。 服務品質 (QoS) 需求規定解決方案作業的各個層面。使用 QoS 需求可協助開發策略,以達成效能、可用性、延展性、服務性和其他服務品質的目標。部署方案包含與服務品質需求搭配的邏輯架構 (如前所述)。
使用分析。 使用分析是在解決方案生命週期的技術需求階段開發的,它提供可以協助預估已部署系統負載和加強之使用模式的相關資訊。利用使用分析來協助隔離效能瓶頸並開發可滿足 QoS 需求的策略。
使用實例。 使用實例是在解決方案生命週期的技術需求階段開發的,它列出了針對部署找出的不同使用者互動,這些互動通常代表最常見的使用實例。雖然使用實例屬於使用分析的一部份,但在評估部署設計時,您應該要參閱使用實例,確保已經有正確說明。
服務層級合約。 服務層級合約 (SLA) 規定最低的效能需求以及這些需求無法滿足時必須提供的客戶支援層級和範圍。 部署設計應該可以很輕易地達到服務層級合約指定的效能需求。
所有權總成本。 在部署設計階段需要進行潛在解決方案分析,這些解決方案用來滿足可用性、效能、延展性及其他層面的 QoS 需求。不過,針對每個您列入考慮的解決方案,您也必須考慮該解決方案的成本,以及該成本對所有權總成本的影響。請確實考量您的決定之利弊,以及您已經使資源最佳化以達成業務限制中的業務需求。
業務目標。 業務目標是在解決方案生命週期的業務分析階段設定的,它包括達成這些目標的業務需求和業務限制。最後會依部署設計達成業務目標的能力決定其優劣。
如同部署規劃的其他層面,部署設計同時兼具藝術與科學的特性,無法以特定的程序和過程來詳細說明。成功部署設計的因素包含了過去的設計經驗、系統架構的知識、網域知識和實用的創意思考。
部署設計通常以達成效能需求為中心並同時滿足其他 QoS 需求。您所使用的策略必須能平衡設計決定的利弊,才能最佳化解決方案。您使用的方法通常會包含下列作業:
估計處理器需求。 部署設計的第一步通常是對邏輯架構中每個元件所需的 CPU 數目進行估計。以代表最大負載的使用實例開始,再繼續進行每個使用實例。考慮支援使用實例之所有元件的負載,並依實際情況修改估計。另外也要將您之前設計企業系統的經驗列入考慮。
複製可用性和延展性服務。 對處理器數目估計感到滿意後,即可對設計進行修改,使其因應 QoS 的可用性和延展性需求。考慮處理可用性和容錯移轉問題的負載平衡解決方案。
在分析期間,請考慮設計決定的利弊。例如,可用性及延展性策略對系統的服務性 (維護) 有什麼影響?策略的其他成本為何?
本節會討論評估支援部署系統中服務需要的 CPU 處理器數目和對應記憶體的過程。本節也會為您說明評估過程,並以通訊部署方案為範例說明。
評估 CPU 計算能力是一項反覆式過程,需要考慮到下列項目:
邏輯元件及其互動 (如邏輯架構中的元件相依性所列)
已識別的使用實例的使用分析
服務品質需求
過去的部署設計經驗和使用 Java Enterprise System 的經驗
向具有各類型部署方案設計和實作經驗的 Sun 專業服務部門諮詢
評估過程包括下列步驟。這些步驟的順序並不是關鍵這只是提供一個考慮影響最後結果之因素的方法。
對於被識別為系統的使用者進入點之元件必須決定其基準 CPU 估計。
其中一項是決定要完整載入或部分載入 CPU。完整載入的 CPU 可將系統的容量最大化。若要增加容量,可能會因為增加額外的 CPU 而產生維護成本和可能的當機時間。在某些情況下,您可以選擇增加額外的機器以符合增加的效能需求。
部份載入的 CPU 可允許處理額外效能需求的空間,而不會立即產生維護成本。不過,未充分利用的系統會有額外的前置成本費用。
調整 CPU 估計以因應元件之間的互動。
研究邏輯架構中元件彼此間的互動,以判定因為獨立元件而產生的額外負載。
研究特定使用實例的使用分析,以判定系統的尖峰負載,然後再對處理尖峰負載的元件進行調整。
從權重最高的使用實例 (亦即需要最多負載) 開始,再繼續研究每個使用實例,確實考慮所有的預期使用方案。
調整 CPU 估計來反映安全性、可用性和延展性需求。
此評估過程提供判定您需要的實際處理能力的起點。一般而言,您會先建立以這些評估值為基礎的原型部署,然後再對預期的使用實例執行嚴格的測試。只有在經過反覆的測試之後,您才能判定部署設計的實際處理需求。
本節說明一個方法,來評估範例部署所需的處理能力。本範例部署基於以識別為基礎的通訊解決方案的邏輯架構,該解決方案適用於員工人數為 1 千至 5 千的中型企業,如以識別為基礎的通訊範例一節中所述。
本範例中使用的和記憶體為隨意估計,僅限為圖解使用。這些圖例以理論性範例所使用的隨意資料為根據。需要徹底分析各種因素才能評估處理器需求。此分析會包括 (但不限於) 下列資訊:
以徹底業務分析為基礎的詳細使用實例和使用分析
由業務需求分析所判定的服務品質需求
處理和網路硬體的特定成本和規格
過去實作類似部署的經驗
除了描述您在設計系統時可能使用的過程外,這些範例所示的資訊不代表任何特定的實作建議。
從估計處理每個作為使用者進入點的元件上預期的負載所需的 CPU 數量開始。下圖顯示前面的以識別為基礎的通訊範例中所描述的以識別為基礎之通訊方案的邏輯架構。
下表列出邏輯架構之表示層中的元件,其會直接與部署的一般使用者聯繫。這個表格包括基準 CPU 估計,這些估計源自於技術需求分析、使用實例、特定使用分析和過去處理此類型部署的經驗。
表 5–1 元件的 CPU 估計包含存取使用者進入點的基線 CPU 估計
元件 |
CPU 數目 |
說明 |
---|---|---|
Portal Server |
4 |
作為使用者進入點的元件。 |
Communications Express |
2 |
向 Portal Server 訊息傳送與行事曆通道路由資料。 |
提供使用者進入點的元件需要其他 Java Enterprise System 元件的支援。若要繼續指定效能需求,請納入效能估計以考慮其他元件需要的支援。設計邏輯架構時應詳細描述元件間的互動類型,如範例邏輯架構一節的邏輯架構範例中所述。
表 5–2 支援元件的 CPU 估計
元件 |
CPU |
說明 |
---|---|---|
Messaging Server MTA (內送) |
1 |
路由來自 Communications Express 和電子郵件用戶端的內送郵件訊息。 |
Messaging Server MTA (外傳) |
1 |
路由外送的電子郵件給收件者。 |
1 |
存取 Messaging Server 的電子郵件用戶端訊息儲存區。 |
|
1 |
擷取和儲存電子郵件。 |
|
2 |
提供授權與認證服務。 |
|
2 |
擷取和儲存 Communications Express (Calendar Server 前端) 的行事曆資料。 |
|
2 |
提供 LDAP 目錄服務。 |
|
0 |
為 Portal Server 和 Access Manager 提供 Web 容器支援。 (不需要額外的 CPU 循環。) |
回到使用實例和使用分析,以找出尖峰負載使用的區域,並調整您的 CPU 估計。
例如,在此例中您發現下列的尖峰負載情況:
當使用者同時登入時,開始累計使用者
在特定的時間範圍內交換電子郵件
若要應付這個尖峰負載使用,請調整提供這些服務的元件。下表會概述您可以針對應付這個尖峰負載所進行的調整。
表 5–3 CPU 估計尖峰負載的調整
元件 |
CPU (調整後) |
說明 |
---|---|---|
Messaging Server MTA (內送) |
2 |
為尖峰傳入電子郵件增加 1 個 CPU |
Messaging Server MTA (外傳) |
2 |
為尖峰外送電子郵件新增 1 個 CPU |
Messaging ServerMMP |
2 |
為額外負載新增 1 個 CPU |
Messaging Server STR (Message Store) |
2 |
為額外負載新增 1 個 CPU |
Directory Server |
3 |
為額外 LDAP 查詢新增 1 個 CPU |
繼續進行 CPU 估計,考慮其他會影響負載的服務品質需求:
安全性。在技術需求階段中,判定資料的安全傳輸可能會對負載需求產生的影響,並對估計進行相應的修改。下一節估計安全作業事件的處理器需求描述進行調整的程序。
複製服務。調整 CPU 估計以因應可用性、負載平衡及延展性的服務複製需求。下一節判定可用性策略討論確定可用性解決方案的大小。判定延展性策略討論關於目錄服務可用存取的解決方案。
潛在容量和延展性。視需要修改 CPU 估計,使其具有可因應部署上意外大型負載的潛在容量。注意調整的預期基準點以及一段期間中預期負載的增加,確定您可以達成調整系統 (不管是以水平或垂直調整的方式) 的所有預期基準點。
通常將 CPU 數目增訂為偶數。增訂為偶數可在兩個實體伺服器之間平均地分配 CPU 估計,並能為潛在容量增加一點空間。不過,請根據您對複製服務的特定需求進行增訂。
一般的規則是每個 CPU 應有 2 GB 的記憶體。所需的實際記憶體是依您特定的使用為依據,並可在測試時判定。
下表列出身份識別型通訊範例的最終估計。這些估計沒有包含任何專為安全性和可用性增加的額外運算能力。安全性和可用性的總和將新增於下列章節中。
表 5–4 支援元件的 CPU 估計調整
元件 |
CPU |
記憶體 |
---|---|---|
Portal Server |
4 |
8 GB |
Communications Express |
2 |
4 GB |
Messaging Server (MTA,內送) |
2 |
4 GB |
Messaging Server (MTA,外傳) |
2 |
4 GB |
Messaging Server (MMP) |
2 |
4 GB |
Messaging Server (Message Store) |
2 |
4 GB |
Access Manager |
2 |
4 GB |
Calendar Server |
2 |
4 GB |
Directory Server |
4 |
8 GB (增訂自 3 個 CPU/6 GB 記憶體) |
Web Server |
0 |
0 |
資料的安全傳輸包括通過安全通訊端層 (SSL) 或傳輸層加密 (TLS) 這樣的安全傳輸協定處理作業事件。通過安全傳輸處理的交易通常需要額外的計算能力,首先要建立安全階段作業 (稱為訊號交換),然後再加密和解密傳輸資料。根據使用的加密演算法 (如 40 位元或 128 位元加密演算法),可能額外需要大量計算能力。
考慮在非安全交易的同層級上執行安全交易時,您必須規劃額外的計算能力。根據作業事件的特性以及處理作業事件的 Sun JavaTM Enterprise System 服務,安全作業事件需要的計算能力最多可能是非安全作業事件的四倍。
當評估處理安全交易的處理能力時,請分析使用實例來判定需要安全傳輸的交易百分比。如果安全交易的效能需求與非安全交易相同,則需修改 CPU 數量的估計值,將安全交易所需的額外計算能力考慮在內。
在某些使用方案中,安全傳輸可能只需要用來認證。一旦使用者經由系統認證,就不需要額外的資料傳輸安全性評量。在其他方案中,所有的交易可能都需要安全傳輸。
例如,瀏覽線上電子商務網站的產品目錄時,客戶在結束選擇並準備「結帳」以購買產品前的所有作業事件都可以是不安全的。不過,某些使用方案 (像是針對銀行或證券經紀商的部署) 卻需要大部分或全部作業事件都是安全的,它們為安全和非安全作業事件都套用同一效能標準。
本節繼續以範例部署說明如何計算既包括安全作業事件又包括非安全作業事件的理論性使用實例的 CPU 需求。
若要估計安全作業事件的 CPU 需求,請進行以下計算:
先計算 CPU 估計的基準數字 (如上一節處理器需求估計範例中所述)。
計算需要安全傳輸的作業事件的百分比,然後計算安全作業事件的 CPU 估計。
計算非安全交易已減少的 CPU 估計。
將安全估計與非安全估計相加以計算總 CPU 估計。
將總 CPU 估計增訂為偶數。
安全交易的 CPU 估計顯示以 Portal Server 的使用實例和使用分析為基礎的範例計算,該計算有如下假設:
所有的登入都需要安全認證。
所有登入佔用 Portal Server 總負載的 10%。
安全交易的效能需求與非安全交易的效能需求相同。
若要說明處理安全交易的額外計算能力,處理這些交易的 CPU 數目將以 4 倍增加。如同此範例中的其他 CPU 圖例,這個係數是隨意的,且僅限於描述之用。
步驟 |
說明 |
計算 |
結果 |
---|---|---|---|
1 |
先計算所有 Portal Server 作業事件的基準估計。 |
來自研究尖峰負載使用的使用實例的基準估計是 4 個 CPU。 |
- - - - - |
2 |
計算安全交易的額外 CPU 估計。假設安全作業事件需要的 CPU 能力是非安全作業事件的四倍。 |
10% 的基準估計需要安全傳輸:
0.10 x 4 CPU = 0.4 CPU
增加安全交易的 CPU 能力 4 倍:
4 x 0.4 = 1.6 CPU |
1.6 CPU |
3 |
計算非安全交易已減少的 CPU 估計。 |
90% 的基準估計是不安全的:
0.9 x 4 CPU = 3.6 CPU |
3.6 CPU |
4 |
計算安全和非安全交易的已調整總 CPU 估計。 |
安全估計 + 非安全估計 = 總計:
1.6 CPU + 3.6 CPU = 5.2 CPU |
5.2 CPU |
5 |
增訂為偶數。 |
5.2 CPU ==> 6 CPU |
6 CPU |
依據本範例中的安全作業事件計算,可以對安全交易的 CPU 估計中的總 CPU 估計進行修改,額外增加 2 個 CPU 和四十億位元組的記憶體,得到 Portal Server 的下列總計。
元件 |
CPU |
記憶體 |
---|---|---|
Portal Server |
6 |
12 GB |
專用硬體裝置,例如 SSL 加速卡和其他裝置,可用來提供處理安全階段作業建立的計算能力,和資料的加密和解密。使用專用硬體來進行 SSL 作業時,計算能力專供 SSL 計算的某一部份使用,這部份通常是建立安全階段作業的「訊號交換」作業。
此硬體可能對您最後的部署架構有益。不過,鑒於硬體的專門化特性,請先估計 CPU 能力層面的安全作業事件效能需求,然後再考慮使用專用硬體處理額外負載的利益。
當使用專用硬體時要考慮的一些因素是使用實例是否支援使用硬體 (例如,需要大量「SSL訊號交換作業」作業的使用實例),以及此類硬體帶給設計的複雜性附加層面。該複雜性包括安裝、配置、測試和裝置管理。
開發可用性需求的策略時,請研究元件互動和使用分析來判定要考慮哪個可用性解決方案。以基於元件的方式來進行分析,判定最能符合可用性和容錯移轉需求的解決方案。
下列項目是您蒐集的資訊類型範例,可用來判定可用性策略:
可用性中指定了多少個「九」?
哪些是與容錯移轉狀況相關的效能規格 (例如在容錯移轉期間最少為效能的 50%)?
使用分析是否區分尖峰和非尖峰使用的時間?
地理考量為何?
所選的可用性策略還必須考慮服務性需求,如設計最佳化資源使用中所討論的。避免需要大量管理和維護的複雜型解決方案。
Java Enterprise System 部署的可用性策略包括下列項目:
負載平衡。使用備援硬體和軟體元件來共擔處理負載。負載平衡器會將服務的任何要求導向到該服務的其中一個多重對稱式實例。如果任何一個實例失敗,還可以使用其他實例繼續較大量的負載。
容錯移轉。包含對備援硬體和軟體進行管理,以在任何元件發生故障時能繼續存取服務及繼續保持關鍵資料的安全性。
Sun Cluster 軟體提供針對由後端元件管理的關鍵資料的容錯移轉解決方案,像是 Messaging Server 的訊息儲存和 Calendar Server 的行事曆資料便是這樣的關鍵資料。
複製服務。複製服務提供可存取相同資料的數個來源。Directory Server 提供眾多針對 LDAP 目錄存取的複製和同步化策略。
下列章節提供數個可用性解決方案的範例,這些解決方案會提供數個層級的負載平衡、容錯移轉和複製服務。
將所有服務的計算資源放置在單一伺服器上。如果伺服器發生錯誤,則整個服務會失敗。
Sun 提供可帶來以下利益的高階伺服器:
在系統執行時硬體元件可取代和重新裝配
在伺服器上的錯誤隔離網域中執行多個應用程式的能力
無須重新啟動系統即可升級容量、效能速度和 I/O 配置的能力
高階伺服器通常比相較的多伺服器系統花費更大。然而,單一伺服器提供管理上的節約、監視和控管資料中心內伺服器的成本。負載平衡、容錯移轉和單一失敗點的移除比多伺服器系統更有彈性。
有數種方式可使用平行備援伺服器同時提供負載平衡和容錯移轉增加可用性。下圖說明兩個重複伺服器提供 N+1 容錯移轉系統。N+1 系統在一個伺服器發生故障時由另一個伺服器提供 100% 的容量。
上述水平備援系統中每個伺服器的計算能力是完全相同的。一個伺服器單獨處理效能需求。另一個伺服器在作為備援啟用時提供100% 的效能。
N+1 容錯移轉設計的優點是在容錯移轉情況下還能擁有 100% 的效能。缺點包括增加硬體成本而沒有獲得對應的整體效能 (因為有一個作為備用的伺服器,僅限在容錯移轉情況中使用)。
下圖說明一個實作負載平衡和容錯移轉的系統,它在兩個伺服器之間分配效能。
在以上水平備援系統所描述的系統中,如果一個伺服器發生故障,所有服務仍然可用,只是容量達不到完整容量而已。剩餘的伺服器提供 6 個 CPU 的計算能力,為 10 個 CPU 需求的 60%。
此設計的優點是當兩個伺服器都可用時將帶來額外的 2 個 CPU 的潛在容量。
下圖說明在一些伺服器之間的效能和負載平衡的分配。
因為水平備援系統所描述的設計中有五個伺服器,如果一個伺服器發生故障, 剩餘伺服器合計可提供 8 個 CPU 的計算能力,為 10 個 CPU 效能需求的 80%。如果在設計中額外增加一個具有 2 個 CPU 容量的伺服器,實際上便實現了 N+1 設計。如果一個伺服器發生故障,剩餘的伺服器可滿足 100% 的效能需求。
本設計包含以下優點:
增加單一伺服器錯誤時的效能
當一個以上的伺服器當機時依然可用
伺服器可轉出服務以便維護和升級
多個低階伺服器通常花費低於單一高階伺服器
然而,使用額外的伺服器會明顯地增加管理和維護費用。您也必須考慮在資料中心中控管這些伺服器的成本。在某些時候您會遇到新增額外伺服器造成的利潤縮減。
在需要高度可用性的情況下 (像是四或五個「九」的可用性),可以考慮將 Sun Cluster 軟體作為可用性設計的一部份。叢集系統是備援伺服器、儲存裝置和其他網路資源的結合。叢集中的伺服器保持互相通訊。如果一個伺服器離線,叢集中剩餘的裝置會隔離該伺服器,並將任何應用程式或資料從錯誤節點故障轉移到其他節點。容錯移轉過程相對上會快速的完成,並且只對使用者的系統造成極小的服務中斷。
Sun Cluster 軟體需要額外的專用硬體和專門化技術來配置、管理和維護。
本節包含兩個可用性策略範例,它們基於以識別為基礎的通訊解決方案,該解決方案適用於員工人數為 1 千至 5 千的中型企業,如之前在以識別為基礎的通訊範例中所述。第一個可用性策略說明 Messaging Server 的負載平衡。第二個可用性策略說明使用 Sun Cluster 軟體的容錯移轉解決方案。
下表列出邏輯架構中 Messaging Server 的每個邏輯元件的 CPU 能力估計。此表格重複了更新 CPU 估計一節中計算的最終估計。
表 5–6 支援元件的 CPU 估計調整
元件 |
CPU |
記憶體 |
---|---|---|
Messaging Server (MTA,內送) |
2 |
4 GB |
Messaging Server (MTA,外傳) |
2 |
4 GB |
Messaging Server (MMP) |
2 |
4 GB |
Messaging Server (Message Store) |
2 |
4 GB |
對此範例而言,假設在技術需求階段期間,您已經指定下列的服務品質需求:
可用性。整體系統的可用性應為 99.99% (不含排程當機時間)。個別電腦系統的失敗應該不會導致服務失敗。
延展性。在每日尖峰負載下,不應讓任何伺服器的容量使用率超過 80%,且系統必須能夠長期地因應每年 10% 的負載增長。
若要滿足可用性需求,為每個 Messaging Server 元件提供兩個實例,每個元件有一個實例位於不同的硬體伺服器上。如果一個元件的伺服器失敗,其他伺服器會繼續提供服務。下表說明此可用性策略的網路圖表。
在之前的圖表中,CPU 的數目已經比原本的估計增加了一倍。CPU 增加一倍的理由如下:
在一個伺服器失敗的情況下,其餘的伺服器會繼續提供處理負載的 CPU 能力。
對於在尖峰負載下單一伺服器的容量使用率不能超過 80% 的延展性需求,增加的 CPU 能力可以滿足這個安全性界限。
對於延展性需求 (系統必須容納每年 10% 的成長),新增的 CPU 能力會增加潛在容量,以便在需要額外調整時能夠處理增加的負載。
下圖顯示 Calendar Server 後端和 Messaging Server 訊息傳送儲存區的容錯移轉策略範例。Calendar Server 後端和訊息傳送儲存區會複製到不同的硬體伺服器上並使用 Sun Cluster 軟體對它們進行容錯移轉配置。在 Sun Cluster 的每個伺服器上複製 CPU 數目和對應的記憶體。
可以複製目錄服務以將作業事件分配到不同的伺服器上,從而提高可用性。Directory Server 提供針對複製服務的各種策略,其中包括以下項目:
多個資料庫。在不同的資料庫中儲存同一目錄樹狀結構的不同部分。
鏈接和參照。將分散式資料連結到單一的目錄樹狀結構。
單一主伺服器複製。提供主資料庫的集中來源,之後再分配給用戶副本。
多重主伺服器複製。將主資料庫分散在數個伺服器之上。每個主要資料庫接著都會將他們的資料庫分散到用戶的副本。
Directory Server 的可用性策略是一個複雜的主題,不在本指南的討論範圍內。以下章節 (單一主機複製和多重主伺服器複製) 提供對基礎複製策略的高階檢視。如需詳細資訊,請參閱「Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide」第 12 章「Designing a Highly Available Deployment」。
下圖顯示說明基本複製概念的單一主機複製策略。
在單一主伺服器複製中,Directory Server 中的一個實例管理主目錄資料庫,並記錄所有變更。主要資料庫會複製到所有的用戶資料庫中。針對讀取和搜尋作業將 Directory Server 的用戶實例最佳化。用戶接收的任何寫入作業將會被導回主要資料庫中。主要資料庫會定期更新用戶資料庫。
單一主機複製的優點包括:
針對資料庫讀取和寫入作業將 Directory Server 的單一實例最佳化
針對讀取和搜尋作業將 Directory Server 的任意數量用戶實例最佳化
Directory Server 用戶實例的水平延展性
下圖顯示多重主機複製策略,可用來全域分散目錄存取。
在多重主伺服器複製中,Directory Server 的一或多個實例管理主目錄資料庫。每個主要資料庫都有複製協定,指定同步化主要資料庫的程序。每個主要資料庫複製為所有的用戶資料庫。與單一主伺服器複製一樣,也會針對讀取和搜尋存取將 Directory Server 的用戶實例最佳化。用戶接收的任何寫入作業將會被導回主要資料庫中。主要資料庫會定期更新用戶資料庫。
多重主機複製策略擁有單一主機複製的所有優點,並具有可提供更新主要資料庫負載平衡的可用性策略。您也可以實作可用性策略,提供目錄作業的本端控制,這對資料中心分佈於全世界的企業而言是一個很重要的考量。
延展性是增加容量到您系統的能力,通常增加系統資源,但是不變更部署架構。在需求分析期間,您通常會根據業務需求和之後的使用分析來建立系統預期成長的設計。這些系統使用者數目的設計,以及符合其需求的系統容量,經常是與實際部署系統的數目會有顯著差異的評估。您的設計應該有足夠的彈性容許規劃中的差異。
可延伸的設計包括足夠的潛在容量,以便在系統使用額外資源升級之前,能夠處理增加的負載。可延伸的設計能可輕易調整以應付增加的負載,而無須重新設計系統。
潛在容量是您可以將額外的效能和可用性資源容納進系統中的延展性層面,以便系統可以處理不尋常的尖峰負載。您也可以監視在部署的系統中如何使用潛在容量,協助判定何時增加資源來調整系統。潛在容量是將安全性帶入您設計中的一種方式。
使用實例的分析可協助找出會造成不尋常尖峰負載的方案。使用這項不尋常尖峰負載的分析,加上容納非預期成長的因素,設計出可將安全性帶入系統的潛在容量。
您的系統設計應該能夠處理預期容量一段合理的時間,通常是作業的最初 6 到 12 個月。維護週期可在需要時用來增加資源或增加容量。理想狀況下,您應該可以定期排程系統的升級,但是預測需要的容量增加通常會很困難。依靠資源的仔細監視以及業務設計來判定何時要升級系統。
如果您規劃在遞增式階段中實作解決方案,您必須在每個遞增式階段,將系統容量的增加和其他排程的改善功能排程為同時發生。
本節中的範例說明以水平和垂直方式調整實作 Messaging Server 的解決方案。以垂直方式進行調整是透過為伺服器增加額外的 CPU 來處理增加的負載。 以水平方式進行調整是透過增加額外的伺服器,將負載分散來處理增加的負載。
範例基準假設為由兩個訊息儲存區實例支援 5 萬個使用者基礎,且已分散這些實例以取得負載平衡。每個伺服器有兩個 CPU,所以總共有 4 個 CPU。下圖顯示如何調整這個系統,以便為 250,000 個使用者和 2,000,000 使用者處理增加的負載。
延展性範例顯示垂直調整和水平調整之間的差異。這個圖表不會顯示調整時需考慮的其他因素,例如負載平衡、容錯移轉和使用模式中的變更。
成功部署設計的其中一個關鍵就是找出潛在的效能瓶頸,以及開發避免瓶頸的策略。當存取的資料速率無法符合指定的系統需求時,效能瓶頸就會發生。
瓶頸可分為不同的硬體類別,如以下系統中資料存取點表格所示。此表也會建議每個硬體類別中瓶頸的潛在解決方法。
表 5–7 資料存取點
硬體類別 |
相對的存取速度 |
效能改善功能的解決方法 |
---|---|---|
處理器 |
十億分之一秒 |
垂直調整:增加更多處理能力,改善處理器快取能力 水平調整:增加平行的處理能力以進行負載平衡 |
系統記憶體 (RAM) |
一百萬分之一秒 |
將系統記憶體指定給特定的作業 垂直調整:增加額外的記憶體 水平調整:建立額外的實例,以進行平行處理和負載平衡 |
磁碟讀取和寫入 |
毫秒 |
使用磁碟陣列 (RAID) 使磁碟存取最佳化 將磁碟存取指定給特定功能,例如唯讀或唯寫 快取系統記憶體中經常存取的資料 |
網路介面 |
因網路上的頻寬和節點的存取速度而異 |
增加頻寬 傳輸安全資料時,增加加速卡硬體 改善網路中節點的效能,使得能夠輕鬆隨時使用資料 |
找出效能瓶頸列出依據相對存取速度的硬體類別,暗指慢速存取點 (像是磁碟) 是瓶頸所在的可能性更高。不過,無法處理大量負載的處理器也可能是造成瓶頸的原因。
一般而言,部署設計通常是從部署中每個元件及其相依性的基準處理能力估計開始。然後,您再判定如何避免與系統記憶體和磁碟存取相關的瓶頸。最後,檢查網路介面以判定潛在的瓶頸,再將焦點放在可以解決瓶頸的策略上。
部署設計的關鍵元件是對於時常存取的資料集 (如 LDAP 目錄) 的磁碟存取速度。磁碟存取提供最慢的資料存取,可能是造成效能瓶頸的原因。
最佳化磁碟存取的方法就是將寫入作業和讀取作業分開。不單是因為寫入作業比讀取作業費時,而且讀取作業 (查詢 LDAP 目錄的作業) 發生的機率通常也比寫入作業 (更新 LDAP 目錄中的資料) 來得大。
另一個最佳化磁碟存取的方法是將磁碟指定給不同的 I/O 作業。例如,為 Directory Server 記錄作業 (像是作業事件記錄和事件記錄) 及 LDAP 讀取和寫入作業提供獨立的磁碟存取。
此外,考慮實作一或多個 Directory Server 實例專用於讀取和寫入作業,並使用分配到本機伺服器的複製實例進行讀取和搜尋存取。也可以使用鏈接和連結選項來最佳化目錄服務的存取。
「Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide」第 6 章「Defining System Characteristics」中討論了磁碟存取規劃的各種因素。本章的主題包括:
最低記憶體與磁碟空間需求。提供各種大小目錄所需磁碟和記憶體估計。
調整快取存取所需的實體記憶體大小。依據 Directory Server 的規劃使用提供快取大小估計指導及提供總記憶體使用規劃指導。
調整磁碟子系統大小。依據目錄字尾和影響磁碟使用的 Directory Server 因素來提供關於磁碟空間需求規劃的資訊,並提供關於將檔案分散至各磁碟 (包括各種磁碟陣列方案) 的資訊。
部署設計不只是估計滿足 QoS 需求需要的資源。在部署設計期間,您也要分析所有可用的選項,並選擇最佳的解決方案,這個解決方案必須能將成本降到最低但仍然可以滿足 QoS 需求。您必須分析每個設計決定的利弊,以確保一個領域中的獲利不會被另一個領域中的成本抵銷。
例如,可用性的水平調整可能會增加整體可用性,然而代價是增加維護和服務。效能的垂直調整可能會廉價地增加計算能力,但是額外的能力可能會被某些裝置沒有效率地使用。
在完成設計策略之前,審核決定以確認您已經從提議解決方案的整體利益平衡資源的使用。這個分析通常包含檢查一個區域的系統品質如何影響其他的系統品質。下表列出某些系統品質和資源管理的對應考量。
表 5–8 資源管理考量
系統品質 |
說明 |
---|---|
對於將 CPU 集中在個別伺服器上的效能解決方案,服務是否能有效地利用計算能力?(例如,某些裝置對能夠有效使用的 CPU 數目有限制。) |
|
潛在容量 |
您的策略是否能處理超過效能估計的負載? 在伺服器上使用垂直調整處理過度的負載,平分負載到其他伺服器,或是兩者同時使用? 潛在容量足夠處理不尋常的尖峰負載,一直到您達成調整部署的下一個基準點嗎? |
您曾經充分地說明處理安全交易需要的效能費用嗎? |
|
就水平備援解決方案而言,您曾經充分地估計長期維護的費用嗎? 您曾經考慮過維護系統必要的排程停工期? 您是否平衡過高階伺服器和低階伺服器的成本? |
|
您曾經評估過需調整部署的基準點嗎? 您是否有策略可提供足夠的潛在容量處理負載的預期增加,直到您觸及需調整部署的基準點為止? |
|
您有將管理、監視和維護成本考慮到您的可用性設計中嗎? 您曾經考慮過委託管理解決方案 (讓一般使用者執行某些管理作業) 來減少管理成本嗎? |
部署設計所根據的大部分資訊,例如服務品質需求和使用分析,並非經驗資料而是基於評估和規劃。可能造成這些設計不正確的原因很多,包括業務環境中未預期的情況、收集資料的方法錯誤或是人為疏失。在完成部署設計前,重新檢視設計所依據的分析,並確定您的設計考慮到任何來自評估或規劃的合理誤差。
例如,如果使用分析低估系統的實際使用,您將面臨無法應付流量的系統風險。在表現水準下的設計無疑將被視為失敗。
另一方面,如果您建立一個超出需要的多層級系統,則會將可用於別處的資源分散掉。關鍵在於將安全性的極限包含於需求之上,但避免浪費資源。
浪費資源可能也會導致設計失敗,因為沒利用到的資源原本應該應用在其他領域。此外,浪費的解決方案可能會被利害關係人視為不良的合約履行。
下圖表示本白皮書稍早介紹的範例部署的完整部署架構。本圖提供一個表現部署架構的概念。
下圖中的部署架構只限於圖解說明使用。其並不代表已實際設計、建立或測試過的部署,而且不應視為部署規劃的建議。