如第 1 章, 產品概念的「Application Server」中所述,評估與效能相關的因素之後。拓樸是機器、應用程式伺服器實例與 HADB 節點的排列方式,及其之間的通訊流程。
基本的部署拓樸有兩種:兩個拓樸有共同的基本結構:叢集中的多個應用程式伺服器實例、HADB 節點的鏡像組,以及 HADB 備用節點。兩個拓樸皆需要一組共用配置設定才可正常運作。
本章內容討論:
共同需求(適用於兩個拓樸)。
兩個拓樸:
本節說明兩個拓樸的共同需求:
兩個拓樸皆須符合下列一般需求:
代管 HADB 節點的機器必須成對。亦即機器數目必須為偶數。
每個資料備援單元 (DRU) 必須有相同的機器數目。以這種方式建立 HADB 資料庫,使鏡像 (成對) 的節點位於與主要節點不同的 DRU 上。
代管 HADB 節點的機器必須執行相同的作業系統。最好使用在配置與效能方面完全相同或幾乎相同的機器。
若要將 HTTP 與 SFSB 階段作業資訊保留至 HADB,應用程式伺服器實例必須在叢集中,且滿足所有相關的需求。如需有關配置叢集的更多資訊,請參閱「Sun Java System Application Server 9.1 高可用性管理指南」中的第 6 章「使用 Application Server 叢集」。
代管應用程式伺服器實例的機器在配置與效能方面必須儘可能相同。這是因為負載平衡器外掛程式使用循環策略進行負載平衡,若不同類別的機器代管實例,將無法在這些機器之間達成最佳的負載平衡。
每個 DRU 最好都有專屬的不斷電系統 (UPS)。
每個 DRU 包含 HADB 中完整的資料複本,並可在其他 DRU 無法使用時繼續處理請求。但是,若一個 DRU 中的節點與其在另一個 DRU 中的鏡像節點同時故障,則將會遺失部分資料。因此,設定系統時請特別注意,不要讓兩個 DRU 受到單點故障的影響,例如電源故障或磁碟故障。
設定 HADB 節點與機器時,請遵循這些指導方針進行:
設定每個 DRU,使其備用節點數目等於每部機器上執行的節點數目。這是因為如果配置中的每部機器執行 n 個資料節點,單一機器故障便會關閉 n 個節點。
在所有機器上執行相同數目的 HADB 節點,可儘量均勻地平衡負載。
請勿於相同的機器上執行不同 DRU 的節點。若必須在相同的機器上執行不同 DRU 的節點,請確定機器可解決所有單點故障的問題 (與磁碟、記憶體、CPU、電源、作業系統當機...等等相關的故障)。
兩個拓樸在叢集中皆有應用程式伺服器實例。這些實例會將階段作業資訊保留至 HADB。配置負載平衡器,以納入叢集中所有應用程式伺服器實例的配置資訊。
如需有關設定叢集以及將應用程式伺服器實例增加至叢集的更多資訊,請參閱「Sun Java System Application Server 9.1 高可用性管理指南」中的第 6 章「使用 Application Server 叢集」。
在並置拓樸中,應用程式伺服器實例與 HADB 節點皆位於相同的機器上 (因此稱為並置)。此拓樸需要的機器數比個別層級拓樸少。並置拓樸可更有效率地使用 CPU—應用程式伺服器實例與 HADB 節點共用一部機器,且在兩者之間平均分散處理。
此拓樸至少需要兩部機器。若要改善流量,請增加更多成對的機器。
並置拓樸適用於大型的對稱多重處理 (SMP) 機器,因為您可充份利用這些機器的處理能力。
下圖描述並置拓樸的配置範例。
代管應用程式伺服器實例 A 的機器 SYS0、代管應用程式伺服器實例 B 的機器 SYS1、代管應用程式伺服器實例 C 的機器 SYS2,以及代管應用程式伺服器實例 D 的機器 SYS3。
這四個實例會組成叢集,並保留資訊至兩個 DRU:
DRU0 包含兩部機器 SYS0 與 SYS2。HADB 使用中節點 0 位於機器 SYS0 上。HADB 備用節點 2 位於機器 SYS2 上。
DRU1 包含兩部機器 SYS1 與 SYS3。HADB 使用中節點 1 位於機器 SYS1 上。HADB 備用節點 3 位於機器 SYS3 上。
如需更佳的延展性與流量,請透過增加更多機器來增加應用程式伺服器實例與 HADB 節點的數目。例如,您可以增加兩部機器,各有一個應用程式伺服器實例與一個 HADB 節點。請務必增加成對的 HADB 節點,並為每個 DRU 指定一個節點。並置拓樸的變體說明此配置。
在此變體中,機器 SYS4 與 SYS5 已如配置範例中所述增加至並置拓樸。
應用程式伺服器實例使用下列方式代管:
機器 SYS0 代管實例 A
機器 SYS1 代管實例 B
機器 SYS2 代管實例 C
機器 SYS3 代管實例 D
機器 SYS4 代管實例 E
機器 SYS5 代管實例 F
這些實例會組成叢集,並保留資訊至兩個 DRU:
DRU0 包含機器 SYS0、SYS2 與 SYS4。HADB 使用中節點 0 位於機器 SYS0 上。HADB 使用中節點 2 位於機器 SYS2 上。HADB 備用節點 4 位於機器 SYS4 上。
DRU1 包含機器 SYS1、SYS3 與 SYS5。HADB 使用中節點 1 位於機器 SYS1 上。HADB 使用中節點 3 位於機器 SYS3 上。HADB 備用節點 5 位於機器 SYS5 上。
在此拓樸中,應用程式伺服器實例與 HADB 節點位於不同的機器上 (因此稱為個別層級)。
此拓樸需要比並置拓樸更多的硬體。若有不同類型的機器,可能適合使用此拓樸—您可以配置一組機器代管應用程式伺服器實例,另一組代管 HADB 節點。例如,應用程式伺服器實例可使用較強大的機器,而 HADB 可使用較不強大的機器。
下圖描述個別層級拓樸。
在此拓樸中,機器 SYS0 代管應用程式伺服器實例 A,而機器 SYS1 代管應用程式伺服器實例 B。這兩個實例組成一個叢集,將階段作業資訊保留至兩個 DRU:
DRU0 包含兩部機器 SYS2 與 SYS4。HADB 使用中節點 0 位於機器 SYS2 上,而 HADB 備用節點 2 位於機器 SYS4 上。
DRU1 包含兩部機器 SYS3 與 SYS5。HADB 使用中節點 1 位於機器 SYS3 上,而 HADB 備用節點 3 位於機器 SYS5 上。
DRU 上的所有節點位於不同的機器上,因此即使一部機器故障,仍可繼續在其他機器上使用任何 DRU 的完整資料。
個別層級拓樸的變體是透過將更多機器水平增加至配置,以增加應用程式伺服器實例的數目。例如,透過建立新的應用程式伺服器實例,將其他機器增加至配置範例。同理,透過增加更多機器代管 HADB 節點,以增加 HADB 節點的數目。如上所述,您必須成對增加 HADB 節點,且每個 DRU 一個節點。
個別層級拓樸的變體說明此配置。
在此配置中,每部代管應用程式伺服器實例的機器有兩個實例。因此叢集中共有六個應用程式伺服器實例。
HADB 節點位於機器 SYS3、SYS4、SYS5 與 SYS6 上。
DRU0 包含兩部機器:
SYS3,代管 HADB 使用中節點 0 與 HADB 使用中節點 2。
SYS5,代管 HADB 備用節點 4 與 HADB 備用節點 6。
DRU1 包含兩部機器:
SYS4,代管 HADB 使用中節點 1 與 HADB 使用中節點 3。
SYS6,代管 HADB 備用節點 5 與 HADB 備用節點 7。
每部代管 HADB 節點的機器會代管兩個節點。因此,共有八個 HADB 節點:四個使用中節點與四個備用節點。
若要決定哪種拓樸 (或變體) 最適合您的效能與可用性需求,請測試拓樸並試驗不同的機器與 CPU 組合。
決定符合目標所需的代價。例如,若重點是要能輕鬆維護,則個別層級拓樸比較適合。而代價是此拓樸需要比並置拓樸更多的機器。
選擇拓樸的一項重要因素是可用的機器類型。若系統包含大型對稱多重處理 (SMP) 機器,則並置拓樸比較適合,因為您可以充份利用這些機器的處理能力。若系統包含各種機器類型,則個別層級拓樸更有用,因為您可以為 Application Server 層和 HADB 層配置不同的機器組合。例如,Application Server 層可能需要使用最強大的機器,而 HADB 層可使用較不強大的機器。
下表比較並置拓樸與個別層級拓樸。左欄列出拓樸的名稱,中間欄列出拓樸的優點,而右欄列出拓樸的缺點。
表 3–1 拓樸的比較
拓樸 |
優點 |
缺點 |
---|---|---|
並置拓樸 |
需要較少機器。由於 HADB 節點與應用程式伺服器實例皆位於相同的層級,因此您可以在每個備用節點上建立應用程式伺服器實例,以處理額外的負載。 改善 CPU 使用率。共用一部機器的應用程式伺服器實例與 HADB 節點之間,會平均分散處理。 適用於大型對稱多重處理 (SMP) 機器,因其可充份利用這些處理能力。 |
增加維護的複雜度。例如,當您必須關閉代管 HADB 節點的機器以執行維護時,機器上的應用程式伺服器實例也將無法使用。 |
個別層級拓樸 |
較容易維護。例如,您可以在代管應用程式伺服器實例的機器上執行維護,而無須關閉 HADB 節點。 在使用不同的機器類型時很有用。您可以對 Application Server 層與 HADB 層配置不同的機器組合。例如,Application Server 層可以使用更強大的機器,而 HADB 層可以使用較不強大的機器。 |
需要比並置拓樸更多的機器。由於應用程式伺服器實例與 HADB 節點位於個別層級上,所以應用程式伺服器實例無法位於代管 HADB 備用節點的機器上。 降低 CPU 使用率。Application Server 層與 HADB 層的負載可能會不平衡。這在機器數目很少 (四部至六部) 時會格外明顯。 |