共用方式為


達到高可用性和延展性 - ARR 和硬體Load Balancer

作者:Won Yoo

達到高可用性和延展性:
適用于 IIS 7.0 和更新版本和硬體Load Balancer的 Microsoft 應用程式要求路由 (ARR) 。

Microsoft Corporation F5
作者:Won Yoo 作者:Ryan Korock
發行日期:2008 年 11 月 13 日

摘要

本檔提供應用程式要求路由 (ARR) 如何與硬體負載平衡器搭配使用,以達到高可用性和延展性的規範指引。 本檔使用 F5 BIG-IP 負載平衡器來說明 ARR 與硬體負載平衡器之間的運作關聯性。

概觀

Microsoft Application Request Routing (ARR) for IIS 7.0 和更新版本是 Proxy 型路由模組,可根據 HTTP 標頭、伺服器變數和負載平衡演算法,將 HTTP 要求轉送至內容伺服器。 下圖說明典型的 ARR 部署:

典型 R R 部署的圖表。R R 提供內容伺服器的高可用性和延展性。

雖然 ARR 為內容伺服器提供高可用性和延展性,但整體部署並非高度可用或可調整,因為:

  • ARR 是單一失敗點。
  • 內容伺服器的延展性受限於一部 ARR 伺服器的最大容量。

為了克服這些挑戰,系統管理員可以考慮搭配硬體負載平衡器使用多個 ARR 伺服器,例如 F5 BIG-IP。 ARR 可以部署在主動/被動模式中,只達到高可用性或主動/主動模式,以達到高可用性和延展性。 本白皮書說明如何一起部署 ARR 和 F5 BIG-IP,以啟用核心 ARR 案例,同時達到整體高可用性和延展性。

使用應用程式要求路由和 F5 BIG-IP

ARR 建置為 IIS 之上的模組,其設計目的是在第 7 層 (應用程式) 做出路由決策。 更精確地說,ARR 依賴另一個 IIS 模組 URL 重寫,以檢查傳入的 HTTP 要求標頭和伺服器變數,以做出路由決策。 根據此設計,系統管理員可以根據應用層級資訊撰寫智慧型路由規則,例如:

  • 主機名稱 (HTTP_HOST) :根據主機名稱將流量路由傳送至不同的內容伺服器。
  • 要求的資源 (URL) :根據副檔名,判斷所要求的資源是針對靜態內容還是動態內容,並據以路由傳送要求。
  • 用戶端資訊 (HTTP_USER_AGENT) :根據瀏覽器類型和版本,將要求路由傳送至適當的內容伺服器。
  • 自訂標頭 (依應用程式設定為 Cookie) :根據應用程式所設定的 Cookie 資訊路由流量,例如使用者喜好設定或使用者識別碼。

上述只是其中一些範例。 如需 HTTP 標頭和伺服器變數的完整清單,請參閱 附錄 A

F5 Big-IP 第 3 層和第 4 層功能可補充 ARR 的強度,以根據第 7 層進行路由決策,例如 HTTP 標頭和伺服器變數。 同時,ARR 不會為本身提供容錯部署功能,而且必須依賴其他互補技術和解決方案來達到 ARR 層的高可用性,如下所示:

F 五個大虛線 I P 第三層和第四層功能的圖表。F 五大虛線 I P 第三層和第四層會補充 R R 強度,以根據第七層做出路由決策。

案例 1:HTTP 型路由和負載平衡

HTTP 型路由和負載平衡案例可啟用包含下列的 3 層部署架構:

  • 第 1 層 (Web) :提供雙重用途,以處理靜態內容和路由和負載平衡第 2 層伺服器的其餘動態要求。
  • 第 2 層 (應用程式) :處理依賴商務邏輯的動態內容。
  • 第 3 層 (資料) :儲存資料。

下圖說明 3 層式部署:

說明三層部署的圖表。它會顯示路由規則,可區分靜態內容形式的動態內容。

雖然上述範例顯示路由規則,可區分靜態內容與動態內容,但另一個常見案例是區分呈現要求與 Web 服務要求。

選項 1:主動/被動

在主動/被動模式中,通常會有兩部 ARR 伺服器,其中一部伺服器會處理要求,而另一部伺服器則代表容錯移轉伺服器。 如上所述,雖然此設定會藉由移除單一失敗點來達到高可用性,但它不是向外延展解決方案,因為內容伺服器的匯總容量受限於一部 ARR 伺服器的最大容量。

在此設定中,由於兩部 ARR 伺服器設定的方式相同,因此會使用共用組態。 已設定 F5 BIG-IP,使其將所有要求路由傳送至主動 ARR 伺服器,並在必要時只將要求路由傳送至被動 ARR 伺服器。

除了 ARR 中的主機名稱親和性功能之外,兩部 ARR 伺服器之間沒有必須共用的執行時間狀態資訊。 因此,在此案例中,ARR 伺服器或 F5 BIG-IP 上不需要任何特殊設定。 即使您在 ARR 中使用伺服器親和性功能,當 F5 BIG-IP 將要求路由傳送至先前被動但現在是主動伺服器時,會透過要求標頭中的 Cookie,將同質化狀態資訊提供給被動伺服器。

ARR 第 1 版完全支援此案例。

ARR 設定

步驟 1:在兩部 ARR 伺服器上啟用共用設定。

  • 請遵循 檔中的步驟,在 IIS 中設定共用組態。

步驟 2:使用 ARR 設定 3 層部署架構。

  • 請遵循 檔中的步驟,在 3 層部署架構中設定 ARR。

  • 概括而言,上述檔說明:

    • 如何在 ARR 伺服器上提供靜態內容。
    • 如何撰寫靜態內容的 URL 重寫規則,以便直接從 ARR 伺服器提供服務。
    • 如何撰寫動態內容的 URL 重寫規則,以便將它們轉送到應用程式伺服器。

F5 BIG-IP 組態

在此案例中,您將建立一個虛擬伺服器,將負載平衡至兩部 (或更多) ARR 伺服器的集區。 您選取的負載平衡方法應該將所有流量傳送至主要 ARR 伺服器,直到無法使用為止。 此時,BIG-IP LTM 應該將所有流量傳送至次要 ARR 伺服器。

步驟 1:設定 ARR 伺服器的集區。

  • 在 [本機流量] 區段中,按一下 [集區]。 然後按一下 [建立] 按鈕以建立集區。
  • 任何唯一名稱都適用于集區;此範例使用 ARR_Pool。
  • 針對健全狀況監視器,您可以使用自訂 HTTP 監視器或預設 HTTP 監視器。
  • 您可以將 [負載平衡方法] 設定為 [迴圈配置資源]。 在此案例中,因為只有主動和被動 ARR 伺服器,所以不會使用負載平衡。
  • 請務必啟用優先順序群組啟用。 這會設定 BIG-IP,以將流量傳送至具有最高優先順序值的伺服器 () 。 當這些伺服器 () 無法使用時,BIG-IP 會將流量傳送至具有下一個最高優先順序值的 ARR 伺服器。
  • 在此案例中,10.0.0.1 的 ARR 伺服器優先順序值為 1,而 10.0.0.2 的優先順序值為 2。 所有流量都會傳送至 10.0.0.2,直到關閉為止,然後流量會傳送至 10.0.0.1。

大虛線 I P 網頁的螢幕擷取畫面。在 [作用中] 下的 [健全狀況監視器] 方塊中,會反白顯示 h t t p。在 [新增成員] 方塊中,[R R 伺服器優先順序] 值為 10 點零點零點 1。

步驟 2:設定 ARR 伺服器的集區。

  • 在 [本機流量] 區段中,按一下 [虛擬伺服器]。 然後按一下 [建立] 按鈕以建立虛擬伺服器。
  • 任何唯一名稱都適用于虛擬伺服器;此範例使用 ARR_VS。
  • 針對目的地,您可以使用使用者指向其瀏覽器的 IP 位址。 在此特定範例中,我們使用 65.197.145.23。 針對服務埠,我們使用 '80'。
  • 針對 [虛擬伺服器類型] 區段,您有數個選項。 由於相依于 ARR 來路由,因此您可以選取效能 HTTP,這是針對最佳效能所設計。
  • 針對 [預設集區],選取您在步驟 1 中建立的集區。

F 五個 Big I P 頁面的螢幕擷取畫面。在 [名稱] 方塊中,會寫入 R R 底線 V S。

  • 此時,您應該能夠連線到此虛擬伺服器,這會傳送至適當的 ARR 伺服器。

選項 2:使用中/主動

在主動/主動模式中,您可以有兩部以上的 ARR 伺服器。 此組態可達到高可用性和延展性,與只達到高可用性的 Active/Pass 模式不同。 如先前所述,由於多個 ARR 伺服器設定的方式相同,因此會使用共用設定。 F5 BIG-IP 已設定為將所有可用且狀況良好的 ARR 伺服器負載平衡傳入要求,進而將要求轉送至內容伺服器。 不論 F5 BIG-IP 上是否使用伺服器親和性功能,ARR 伺服器上不需要任何特殊設定。 針對一個,ARR 伺服器會使用一個共用組態,讓它們以相同方式進行設定。 其次,由於 ARR 會使用用戶端 Cookie 來儲存伺服器親和性資訊以供自己使用,因此每個要求都可使用這項資訊,因此可在 ARR 伺服器上使用。 ARR 第 1 版完全支援此案例。

ARR 設定

主動/主動的 ARR 組態與主動/被動的組態相同。 主要差異在於 F5 的設定方式。

步驟 1:在兩部 ARR 伺服器上啟用共用設定。

  • 請遵循 檔中的步驟,在 IIS 中設定共用組態。

步驟 2:使用 ARR 設定 3 層部署架構。

  • 請遵循 檔中的步驟,在 3 層部署架構中設定 ARR。

  • 在高階上,上述檔說明:

    • 如何在 ARR 伺服器上提供靜態內容。
    • 如何撰寫靜態內容的 URL 重寫規則,以便直接從 ARR 伺服器提供服務。
    • 如何撰寫動態內容的 URL 重寫規則,以便將它們轉送到應用程式伺服器。

F5 BIG-IP 組態

在此案例中,所有可用的 ARR 伺服器都會被視為作用中,以及負載平衡流量的候選項目。 使用 BIG-IP LTM 來判斷 ARR 前端的健康情況和效能,並將流量導向最佳效能。

步驟 1:設定 ARR 伺服器的集區。

  • 在 [本機流量] 區段中,按一下 [集區]。 然後按一下 [建立] 按鈕以建立集區。
  • 任何唯一的名稱都適用于集區;範例會使用 ARR_Pool。 - 針對健全狀況監視器,您可以使用自訂 HTTP 監視器或預設 HTTP 監視器。 - 由於您有多個 ARR 伺服器要散發流量,因此您想要選取最符合您需求的負載平衡方法。 假設所有 ARR 伺服器都有類似的硬體特性,動態負載平衡方法,例如最快、觀察到或預測性,可提供效能型散發。

F 五個 Big I P 網頁的螢幕擷取畫面。在 [負載平衡方法] 方塊中,會選擇 [最快應用程式]。

步驟 2:設定虛擬伺服器。

  • 在 [本機流量] 區段中,按一下 [虛擬伺服器]。 然後按一下 [建立] 按鈕以建立虛擬伺服器。
  • 任何唯一的名稱都適用于虛擬伺服器;此範例使用 ARR_VS。 - 針對目的地,您可以使用使用者指向其瀏覽器的 IP 位址。 在此特定範例中,我們使用 65.197.145.23。 針對服務埠,我們使用 '80'。 - 針對 [虛擬伺服器類型] 區段,您有數個選項。 由於您依賴 ARR 路由,因此您可以選取 [效能 HTTP],這是專為最佳效能而設計。 - 針對 [預設集區],選取您在步驟 1 中建立的集區。

F 五個 Big I P 網頁的螢幕擷取畫面。在 [預設集區] 方塊中,已選取步驟一中建立的集區,即會選取 [R R 集區]。

案例 2:使用主機名稱親和性共用裝載

此案例會利用 ARR 中的主機名稱親和性功能來啟用共用主機部署,

  • 減少與傳統共用主機部署相關的手動管理和維護。
  • 最大化現有的伺服器資源,同時確保所有伺服器資源都平均使用。
  • 輕鬆地相應放大環境。
  • 建立商機以銷售額外的容量。

如需共用主機和 ARR 的詳細資訊,請參閱 檔。

下圖說明使用 ARR 的共用裝載環境: 使用 R R 的共用裝載環境圖表。

選項 1:主動/被動

如先前所述,在主動/被動模式中,通常會有兩部 ARR 伺服器,其中一部伺服器會處理要求,而另一部伺服器則代表容錯移轉伺服器。 雖然此設定可藉由移除單一失敗點來達到高可用性,但它不是相應放大解決方案,因為內容伺服器的匯總容量受限於一部 ARR 伺服器的最大容量。

在此設定中,由於兩部 ARR 伺服器是以相同方式設定,因此會使用共用組態。 F5 BIG-IP 已設定為將所有要求路由傳送至主動 ARR 伺服器,並在必要時只將要求路由傳送至被動 ARR 伺服器。

ARR 中的主機名稱親和性功能會根據主機名稱,將要求同質化至特定伺服器 (或) RC 中的伺服器群組。 主機名稱與內容伺服器之間的同質對應執行時間狀態資訊會儲存在 ARR 伺服器實例內的記憶體中。 在 ARR 第 1 版中,ARR 會利用適用于 IIS 的 Microsoft 外部快取,在多個 ARR 伺服器之間共用和維護此執行時間狀態。 如需此案例的詳細資訊,請參閱 檔。

ARR 第 1 版完全支援此案例。

ARR 設定

步驟 1:在兩部 ARR 伺服器上啟用共用設定。

  • 請遵循 檔中的步驟,在 IIS 中設定共用組態。

步驟 2:使用 ARR 設定 3 層部署架構。

  • 請遵循 檔中的步驟,在 3 層部署架構中設定 ARR。

  • 在高階上,上述檔說明:

    • 如何在 ARR 伺服器上提供靜態內容。
    • 如何撰寫靜態內容的 URL 重寫規則,以便直接從 ARR 伺服器提供服務。
    • 如何撰寫動態內容的 URL 重寫規則,以便將它們轉送到應用程式伺服器。

步驟 3:啟用和設定外部快取。

  • 請遵循 檔中的步驟,啟用及設定要與 ARR 搭配使用的外部快取。

F5 BIG-IP 組態

在此案例中,您將建立將負載平衡的虛擬伺服器負載平衡至兩部 (或更多) ARR 伺服器的集區。 您選取的負載平衡方法應該將所有流量傳送到主要 ARR 伺服器,直到無法使用為止。 此時,BIG-IP LTM 應該將所有流量傳送至次要 ARR 伺服器。

步驟 1:設定 ARR 伺服器的集區。

  • 在 [本機流量] 區段中,按一下 [集區]。 然後按一下 [建立] 按鈕以建立集區。
  • 任何唯一的名稱都適用于集區;此範例使用 ARR_Pool。 - 針對健全狀況監視器,您可以使用自訂 HTTP 監視器或預設 HTTP 監視器。 - 您可以將負載平衡方法設定為迴圈配置資源。 在此案例中,由於只有主動和被動 ARR 伺服器,因此不會使用負載平衡。 - 請務必啟用優先順序群組啟用。 這會設定 BIG-IP,以將流量傳送至具有最高優先順序值的伺服器 (s) 。 當這些伺服器 () 無法使用時,BIG-IP 會將流量傳送至具有下一個最高優先順序值的 ARR 伺服器。 - 在此案例中,10.0.0.1 的 ARR 伺服器優先順序值為 1,而 10.0.0.2 的優先順序值為 2。 所有流量都會傳送至 10.0.0.2,直到關閉為止,然後流量會傳送至 10.0.0.1。

Big I P 網站的螢幕擷取畫面。在名稱方塊中是 R R 底線集區。在 [本機流量] 窗格中,已選取 [集區]。

步驟 2:設定虛擬伺服器。

  • 在 [本機流量] 區段中,按一下 [虛擬伺服器]。 然後按一下 [建立] 按鈕以建立虛擬伺服器。
  • 任何唯一的名稱都適用于虛擬伺服器;此範例使用 ARR_VS。 - 針對目的地,您可以使用使用者指向其瀏覽器的 IP 位址。 在此案例中,我們使用 。 針對服務埠,我們使用 '80'。 - 針對 [虛擬伺服器類型] 區段,您有數個選項。 由於您依賴 ARR 路由,因此您可以選取 [效能 HTTP],這是專為最佳效能而設計。 - 針對 [預設集區],選取您在步驟 1 中建立的集區。

F 五個網頁的螢幕擷取畫面。在 [預設集區] 方塊中,已選取 [R R 集區]。在 [本機流量] 窗格中,已選取 [虛擬伺服器]。

  • 此時,您應該能夠連線到此虛擬伺服器,這會傳送至適當的 ARR 伺服器。

選項 2:ARR 中的主動/主動

在主動/主動模式中,您可以有兩部以上的 ARR 伺服器。 此設定可同時達到高可用性和延展性,與 Active/Pass 模式不同,這只會達到高可用性。 由於多個 ARR 伺服器是以相同方式設定,因此會使用共用組態。 F5 BIG-IP 已設定為將傳入要求負載平衡至所有可用且狀況良好的 ARR 伺服器,進而將要求轉送至內容伺服器。

如先前所述,主機名稱與內容伺服器之間的同質對應執行時間狀態資訊會儲存在 ARR 伺服器實例內的記憶體中。 為了在多個 ARR 伺服器之間共用此資訊,會使用適用于 IIS 的 Microsoft 外部快取。 如需外部快取的詳細資訊,請參閱 檔。

ARR 設定

Active/Active 的 ARR 組態與主動/被動的設定相同。 主要差異在於 F5 的設定方式。

步驟 1:在兩部 ARR 伺服器上啟用共用設定。

  • 請遵循 檔中的步驟,在 IIS 中設定共用組態。

步驟 2:使用 ARR 設定 3 層部署架構。

  • 請遵循 檔中的步驟,在 3 層部署架構中設定 ARR。

  • 概括而言,上述檔說明:

    • 如何在 ARR 伺服器上提供靜態內容。
    • 如何撰寫靜態內容的 URL 重寫規則,以便直接從 ARR 伺服器提供服務。
    • 如何撰寫動態內容的 URL 重寫規則,以便將它們轉送到應用程式伺服器。

步驟 3:啟用和設定外部快取。

  • 請遵循 檔中的步驟,啟用並設定要與 ARR 搭配使用的外部快取。

F5 BIG-IP 組態

在此案例中,所有可用的 ARR 伺服器都會被視為作用中和負載平衡流量的候選項目。 使用 BIG-IP LTM 來判斷 ARR 前端的健康情況和效能,並將流量導向最佳效能。

步驟 1:設定 ARR 伺服器的集區。

  • 在 [本機流量] 區段中,按一下 [集區]。 然後按一下 [建立] 按鈕以建立集區。
  • 任何唯一名稱都適用于集區;此範例使用 ARR_Pool。 - 針對健全狀況監視器,您可以使用自訂 HTTP 監視器或預設 HTTP 監視器。 - 由於您有多個要散發流量的 ARR 伺服器,因此您想要選取最符合您需求的負載平衡方法。 假設所有 ARR 伺服器都有類似的硬體特性,動態負載平衡方法,例如最快、觀察到或預測性,將為您提供以效能為基礎的散發。

F 五個網頁的螢幕擷取畫面。在 [本機流量] 方塊中,已選取 [集區]。在 [負載平衡方法] 方塊中,已選取 [最快] 應用程式。

步驟 2:設定虛擬伺服器。

  • 在 [本機流量] 區段中,按一下 [虛擬伺服器]。 然後按一下 [建立] 按鈕以建立虛擬伺服器。
  • 任何唯一名稱都適用于虛擬伺服器;此範例使用 ARR_VS。 - 針對目的地,您可以使用使用者指向其瀏覽器的 IP 位址。 在此案例中,我們使用 。 針對服務埠,我們使用 '80'。 - 針對 [虛擬伺服器類型] 區段,您有數個選項。 由於相依于 ARR 來路由,因此您可以選取效能 HTTP,這是針對最佳效能所設計。 - 針對 [預設集區],選取您在步驟 1 中建立的集區。

F 五個網頁的螢幕擷取畫面。在 [本機流量] 方塊中,已選取 [虛擬伺服器]。在 [預設集區] 方塊中,已選取 [R R 集區]。

總結

在此白皮書中,已檢閱兩個主要 ARR 案例,藉由部署多個 ARR 伺服器並使用 F5 BIG-IP 來達到高可用性和延展性。

附錄

附錄 A:用於撰寫路由決策規則的所有可用 HTTP 標頭和伺服器變數。

ALL_HTTP ALL_RAW APPL_MD_PATH
APPL_PHYSICAL_PATH CERT_COOKIE CERT_FLAGS
CERT_ISSUER CERT_KEYSIZE CERT_SECRETKEYSIZE
CERT_SERIALNUMBER CERT_SERVER_ISSUER CERT_SERVER_SUBJECT
CERT_SUBJECT CONTENT_LENGTH CONTENT_TYPE
DOCUMENT_ROOT GATEWAY_INTERFACE HTTP_ACCEPT
HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION
HTTP_CONTENT_LENGTH HTTP_HOST HTTP_IF_MODIFIED_SINCE
HTTP_IF_NONE_MATCH HTTP_REFERER HTTP_UA_CPU
HTTP_USER_AGENT HTTPS HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE HTTPS_SERVER_ISSUER HTTPS_SERVER_SUBJECT
INSTANCE_ID INSTANCE_META_PATH LOCAL_ADDR
PATH_INFO PATH_TRANSLATED QUERY_STRING
REMOTE_ADDR REMOTE_HOST REMOTE_PORT
REMOTE_USER REQUEST_FILENAME REQUEST_METHOD
REQUEST_URI SCRIPT_FILENAME SCRIPT_NAME
SERVER_ADDR SERVER_NAME SERVER_PORT
SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE
URL