執行 Windows Server 容錯移轉叢集

您可以在 Google Cloud Platform (GCP) 上使用 Windows Server 建立容錯移轉叢集。一個伺服器群組互相搭配運作,可為 Windows 應用程式提供更高的可用性 (HA)。如果某個「叢集節點」失敗,另一個節點就會接手繼續執行軟體 。您可以將容錯移轉設定為自動 執行 (此為常用設定),或是您也可以手動觸發容錯移轉。

本教學課程假設您熟悉容錯移轉叢集、Active Directory (AD) 和 Windows Server 的管理工作。

如需瀏覽 GCP 中網路的內容摘要,請參閱 專為資料中心專業人員設計的 GCP:網路

架構

本教學課程將逐步介紹如何在 Compute Engine 上建立容錯移轉範例 。該範例系統包含下列伺服器:

  • 執行 Windows Server 2016 的主要 Compute Engine VM 執行個體。
  • 設定為符合主要執行個體的第二個執行個體。
  • AD 網域名稱伺服器 (DNS)。此伺服器會:

    • 提供 Windows 網域。
    • 將主機名稱解析為 IP 位址。
    • 託管「檔案共用見證」,其扮演第三張「投票」以達到叢集需要的仲裁

您建立的 AD DNS 僅用於啟用此範例。在工作系統中,您 可於其他位置代管檔案共用見證,而且不需要僅為了 支援容錯移轉叢集而使用個別的 AD 系統。請參閱 後續步驟 ,取得有關在 GCP 上使用 AD 的文章連結。

下圖說明您遵循本教學課程而部署的 架構。

顯示容錯移轉叢集中有兩個 Compute Engine VM 的架構圖

瞭解網路路由

叢集執行容錯移轉時,必須將要求轉往新的有效節點。叢集 技術通常會使用將 IP 位址和 MAC 位址建立關聯的 位址解析通訊協定 (ARP) 來處理轉送。在 GCP 中,虛擬 私人雲端 (VPC) 系統會使用 軟體定義網路, 而該網路不會提供 MAC 位址。也就是說,由 ARP 播送的變更 完全不會影響轉送。叢集需要 內部負載平衡器提供 一些軟體層級協助,轉送才會生效。

內部負載平衡通常會在 VPC 內部的多個後端執行個體之間 分派連入網路流量以分擔負荷。負載 為了進行容錯移轉從叢集,您會改而使用內部負載平衡將所有流量全都轉送至某一個執行個體:目前為使用中的叢集節點。內部負載平衡偵測正確節點的方法如下:

  • 每個 VM 執行個體都會執行提供 Windows 容錯移轉叢集支援的 Compute Engine 代理程式執行個體。代理程式會追蹤 VM 執行個體的 IP 位址。
  • 負載平衡器的前端會提供連入流量的 IP 位址給應用程式。
  • 負載平衡器的後端則會提供健康狀態檢查。健康狀態檢查程序會在每個叢集節點定期對代理程式執行連線偵測 (ping),方法是透過特定的通訊埠使用 VM 執行個體的固定 IP 位址。預設的通訊埠為 59998。
  • 健康狀態檢查包括在要求中當做酬載的應用程式 IP 位址。
  • 代理程式會將要求中的 IP 位址和主機 VM 的 IP 位址清單進行比較。如果代理程式找到相符項目,則會回應值 1,否則就回應 0。
  • 負載平衡器會將通過健康狀態檢查的任何 VM 標示為「健康狀態良好」。任何時候都只有一個 VM 會通過健康狀態檢查,因為只有一個 VM 具備工作負載的 IP 位址。

容錯移轉期間會發生什麼改變

當在叢集中進行容錯移轉時,即會發生下列變更:

  • Windows 容錯移轉叢集會變更有效節點的狀態來指出該節點已失敗。
  • 容錯移轉叢集會根據群數的定義,將任何叢集資源和角色從失敗節點移至最佳節點。此動作包括移動 相關聯的 IP 位址。
  • 容錯移轉叢集會播送 ARP 封包,通知以硬體為基礎的 網路路由器有關移動 IP 位址一事。在這種情況下,GCP 網路會忽略這些封包。
  • 移動後,VM 上失敗節點的 Compute Engine 代理程式會將其健康狀態檢查的回應由 1 變更為 0,原因是 VM 無法再託管要求中指定的 IP 位址。
  • VM 上新近有效節點的 Compute Engine 代理程式同樣會將其健康狀態檢查的回應由 0 變更為 1。
  • 內部負載平衡器會停止將流量轉送至失敗節點, 改而將流量轉送至新的有效節點。

全部整合在一起

現在您已經檢閱部分概念,以下是須注意的架構圖部分相關細節:

  • 名為 wsfc-2 的 VM 其 Compute Engine 代理程式會使用值 1 回應健康狀態檢查,表示這是有效的叢集節點。如果是 wsfc-1,則回應為 0。
  • 負載平衡器會將要求轉送至 wsfc-2,如箭頭所示。
  • 負載平衡器和 wsfc-2 兩者都具備 IP 位址 10.0.0.9。如果是負載平衡器,則為指定的前端 IP 位址。如果是 VM,則為應用程式的 IP 位址。容錯移轉叢集會在新近有效的節點上設定此 IP 位址。
  • 容錯移轉叢集和 wsfc-2 兩者都具備 IP 位址 10.0.0.8。VM 目前託管叢集資源,因此具備此 IP 位址。

遵循本教學課程的建議

本教學課程分成許多步驟。有時候,系統會要求您遵循 Microsoft 說明文件等外部文件中的步驟。請詳閱本文件的注意事項 ,其中提供遵循外部步驟時的相關具體細節。

本教學課程會在 Google Cloud Platform 主控台中使用 Cloud Shell。雖然您也可以 使用 GCP 主控台使用者介面或 Cloud SDK 設定 容錯移轉叢集,但是本教學課程主要是使用更容易進行的 Cloud Shell。此方法可協助您更快速地完成教學課程。如果更為適用 ,部分步驟還會改用 GCP 主控台。

Cloud Shell

建議您全程為 Compute Engine 永久磁碟拍攝快照 。如果有問題,您就可以使用快照,避免需從頭開始進行冗長的工作。本教學課程會建議何時拍攝快照。

如果您發現事情的運作不如預期,您或許可以在目前 閱讀的段落中找到操作說明。如果找不到,請參閱 疑難排解 一節。

目標

  • 建立網路。
  • 在兩個 Compute Engine VM 上安裝 Windows Server 2016。
  • 在第三個 Windows Server 執行個體上安裝並設定 Active Directory。
  • 設定容錯移轉叢集,包括仲裁的檔案共用見證以及工作負載的角色。
  • 設定內部負載平衡器。
  • 測試容錯移轉作業以驗證叢集是否可運作。

費用

本教學課程使用的 Compute Engine 映像檔包含 Windows Server 授權。也就是說,如果您讓 VM 保持運作狀態,執行本教學課程的費用可能會十分可觀。因此,建議您不使用時就停止 VM。

請使用 Pricing Calculator 預估完成本教學課程需要的費用。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 啟用Compute Engine API。

    啟用 API

  5. 啟動 Cloud Shell 的執行個體。
    開啟 CLOUD SHELL

建立網路

您的叢集需要自訂網路。在 Cloud Shell 中執行 gcloud 指令,即可使用 VPC 建立自訂網路及單一子網路。

  1. 建立網路:

    gcloud compute networks create wsfcnet --subnet-mode custom
    

    您建立的網路名稱為 wsfcnet

  2. 建立子網路。將 [YOUR_REGION] 換成鄰近的 GCP 地區:

    gcloud compute networks subnets create wsfcnetsub1 --network wsfcnet --region [YOUR_REGION] --range 10.0.0.0/16`
    

    您建立的子網路名稱為 wsfcnetsub1

請注意,在這個子網路中 IP 位址的 CIDR 範圍是 10.0.0.0/16。這是本教學課程中 使用的範圍範例。在工作系統中,請和網路管理員合作 ,針對系統配置適當的 IP 位址範圍 。

建立防火牆規則

根據預設,您的網路不會開放外部流量。您必須在防火牆中 開啟通訊埠以啟用連至伺服器的遠端連線。在 Cloud Shell 中使用 gcloud 指令建立規則。

  1. 在本教學課程中,開啟主要網路的通訊埠 22 和 3389 以啟用 SSH 和遠端桌面協定連線。在下列指令中,將 [YOUR_IPv4_ADDRESS] 替換成您用來連線至 VM 執行個體的電腦 IP 位址。在實際工作環境系統中,您可以提供 IP 位址範圍或一系列位址

    gcloud compute firewall-rules create allow-ssh --network wsfcnet --allow tcp:22,tcp:3389 --source-ranges [YOUR_IPv4_ADDRESS]`
    
  2. 在子網路上,允許所有通訊埠上的所有通訊協定啟用伺服器讓其相互通訊。在實際工作環境系統中,請視需要考慮僅開啟特定的通訊埠。

    gcloud compute firewall-rules create allow-all-subnet --network wsfcnet --allow all --source-ranges 10.0.0.0/16`
    

    請注意,source-ranges 值與您用來建立子網路的 CIDR 範圍相符。

  3. 查看防火牆的值:

    gcloud compute firewall-rules list
    

    畫面會顯示類似以下的輸出:

    NAME              NETWORK  DIRECTION  PRIORITY  ALLOW            DENY
    allow-all-subnet  wsfcnet  INGRESS    1000      all
    allow-ssh         wsfcnet  INGRESS    1000      tcp:22,tcp:3389

在 Compute Engine 中啟用容錯移轉叢集

新增自訂中繼資料,以便在 Compute Engine 代理程式中啟用容錯移轉 叢集。為求簡化,本教學課程會使用將這些屬性套用至專案中所有 VM 的 全專案中繼資料。您也可以選擇針對每個 VM 新增個別中繼資料或是在每個 VM 上建立設定檔 ,如 Compute Engine 說明文件所述。 本教學課程需要使用 wsfc-addrswsfc-agent-port 的預設行為,但是您不需要設定那些值。

gcloud compute project-info add-metadata --metadata enable-wsfc=true

建立伺服器

接下來,請建立 3 個伺服器。在 Cloud Shell 中使用 gcloud 指令。

建立第一個叢集節點伺服器

建立新的 Compute Engine 執行個體。如下所示建立執行個體:

  • 將執行個體命名為 wsfc-1
  • 在鄰近區域設定 --zone 標記。將 [YOUR_ZONE] 換成鄰近較方便的區域,例如 us-central1-a
  • --machine-type 標記設定為 n1-standard-2.
  • --image-project 標記設定為 windows-cloud
  • --image-family 標記設定為 windows-2016
  • --scopes 標記設定為 https://www.googleapis.com/auth/compute
  • --can-ip-forward 標記設定為啟用 IP 轉送。
  • --private-network-ip 標記設定為 10.0.0.4
  • 將網路設定為 wsfcnet,而將子網路設定為 wsfcnetsub1

執行下列指令,並將 [YOUR_ZONE] 換成您的區域 名稱:

gcloud compute instances create wsfc-1 --zone [YOUR_ZONE] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.4 --network wsfcnet --subnet wsfcnetsub1

建立第二個叢集節點伺服器

您可遵循上述相同步驟建立第二個伺服器,但下列事項除外:

  • 將執行個體名稱設定為:wsfc-2
  • --private-network-ip 標記設定為 10.0.0.5

[YOUR_ZONE] 替換成您的區域名稱:

gcloud compute instances create wsfc-2 --zone [YOUR_ZONE] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.5 --network wsfcnet --subnet wsfcnetsub1

建立 Active Directory 的第三個伺服器

您可遵循上述步驟建立網域控制站,但下列事項除外:

  • 將執行個體名稱設定為:wsfc-dc
  • --private-network-ip 標記設定為 10.0.0.6

[YOUR_ZONE] 替換成您的區域名稱:

gcloud compute instances create wsfc-dc --zone [YOUR_ZONE] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.6 --network wsfcnet --subnet wsfcnetsub1

查看執行個體

您可以查看建立的執行個體的詳細資料。

gcloud compute instances list

畫面會顯示類似以下的輸出:

NAME     ZONE        MACHINE_TYPE      PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP     STATUS
wsfc-1   us-central1-a  n1-standard-2               10.0.0.4     35.203.131.133  RUNNING
wsfc-2   us-central1-a  n1-standard-2               10.0.0.5     35.203.130.194  RUNNING
wsfc-dc  us-central1-a  n1-standard-2               10.0.0.6     35.197.27.2     RUNNING

建立 Compute Engine 執行個體群組

建立包含叢集節點的執行個體群組可讓您建立 所需的內部負載平衡器。您會在接下來的段落中建立負載平衡器。請勿將網域控制站 wsfc-dc 新增至執行個體群組。

[YOUR_ZONE] 替換成您的區域名稱:

gcloud compute instance-groups unmanaged create wsfc-group --zone=[YOUR_ZONE]
gcloud compute instance-groups unmanaged add-instances wsfc-group --instances wsfc-1,wsfc-2 --zone [YOUR_ZONE]

透過 RDP 連線

Compute Engine 說明文件會提供如何使用 RDP 連接至 Windows VM 執行個體的相關細節。您可以:

每當本教學課程告知您連接至 Windows 執行個體時,請使用您 偏好的 RDP 連線。

設定 Windows 網路

取得 GCP 閘道的 IP 位址。在 Cloud Shell 中,將 [YOUR_REGION] 替換為您的區域名稱並執行:

gcloud compute networks subnets describe wsfcnetsub1 --region [YOUR_REGION]

輸出會包含閘道的 IP 位址,例如:

gatewayAddress: 10.0.0.1

現在請使用 RDP 連線至 wsfc-1wsfc-2wsfc-dc, 並且針對每個執行個體重複執行下列步驟:

  1. 在伺服器管理員的左窗格中,選取 [本機伺服器]
  2. 在「屬性」面板的「乙太網路」底下,按一下 [由 DHCP 指派]/0}。
  3. 在 [乙太網路] 上按一下滑鼠右鍵,然後選取 [屬性]
  4. 按兩下 [網際網路通訊協定第 4 版 (TCP/IPv4)]
  5. 選取 [使用下列 IP 位址]
  6. 輸入建立 VM 時為其指派的 IP 位址。

    • 如果是 wsfc-1,請輸入「10.0.0.4」。
    • 如果是 wsfc-2,請輸入「10.0.0.5」。
    • 如果是 wsfc-dc,請輸入「10.0.0.6」。
  7. 在「Subnet mask」(子網路遮罩) 中輸入「255.255.0.0」。

  8. 在「Default gateway」(預設閘道) 中輸入 wsfcnetsub1 的閘道 IP 位址。您可於本段落的開頭處找到此 IP 位址。

  9. 如果是 wsfc-1wsfc-2,請按一下 [Use the following DNS server addresses] (使用下列的 DNS 伺服器位址)。請注意,wsfc-dc 是網域控制站,因此該 VM 的「Default gateway」(預設閘道) 應留空。

  10. 請在「Preferred DNS server」(慣用 DNS 伺服器) 中,輸入「10.0.0.6」。

  11. 關閉所有對話方塊。

    這些變更會重設 VM 執行個體的虛擬網路介面卡,因此您會失去 RDP 連線 。

  12. 關閉 RDP 工作階段,然後重新連線至執行個體。如果上一步驟中的對話方塊仍處於開啟狀態,請將其關閉。

  13. 在本機伺服器的屬性區段中,確認「Ethernet」(乙太網路) 的設定是否反映本機伺服器的 IP 位址 (10.0.0.410.0.0.510.0.0.6)。如果未反映,請重新開啟「Internet Protocol Version 4 (TCP/IPv4)」(網際網路通訊協定第 4 版 (TCP/IPv4)) 對話方塊並更新設定。

建議您現在拍攝 wsfc-1wsfc-2 的快照。

設定 Active Directory

現在請設定網域控制站。

  1. 使用 RDP 連接至名為 wsfc-dc 的伺服器。
  2. 設定本機管理員帳戶的密碼。
  3. 啟用本機管理員帳戶。
  4. 遵照下列 Microsoft 操作說明中的步驟設定網域 控制站,並加上這些額外附註。大部分的設定都可以使用 預設值。

    • 選取 [DNS Server role] 核取方塊。操作說明中並未指定此步驟。
    • 選取 [Restart the destination server automatically if required] (必要時自動重新啟動目的地伺服器) 核取方塊。
    • 將檔案伺服器推送到網域控制站。
    • 在「新增樹系」步驟中,將網域命名為「WSFC.TEST」。
    • 將 NetBIOS 網域名稱設定為「WSFC」(預設)。

    Microsoft 操作說明

建議您現在拍攝 wsfc-dc 的快照。

建立網域使用者帳戶

wsfc-dc 需經過一段時間才會重新啟動。將伺服器聯結至 網域之前,請先使用 RDP 登入 wsfc-dc 以驗證網域控制站是否 運作中。

您需要具備叢集伺服器的管理員權限的網域 使用者。步驟如下:

  1. 在網域控制站 (wsfc-dc) 上按一下 [Start] (開始),然後輸入 dsa 以尋找並開啟「Active Directory 使用者和電腦」應用程式。
  2. 在 [WSFC.TEST] 上按一下滑鼠右鍵,指向 [New] (新增),然後按一下 [User] (使用者)
  3. 在「全名」和「使用者登入名稱」的部分輸入「clusteruser」。
  4. 點選 [下一步]。
  5. 輸入並確認使用者的密碼。在對話方塊中選取密碼選項。例如,您可將密碼設定為永不過期。
  6. 確認設定並按一下 [Finish] (完成)
  7. clusteruser 擔任 wsfc-dc 上的管理員:

    • wsfc-dc 上,前往「Active Directory 使用者和電腦」應用程式。
    • clusteruser 上按一下滑鼠右鍵,點選 [Add to a group] (加入群組中),輸入 [Administrators] (系統管理員),然後按一下 [OK] (確定)

每當需要管理員帳戶時,本教學課程就會使用 WSFC.TEST\clusteruser 帳戶當做此類帳戶。在工作系統中,遵循 一般安全性做法來配置帳戶和權限。如需 詳細資訊,請參閱 容錯移轉叢集所需 Active Directory 帳戶的總覽

將伺服器聯結至網域

將兩個叢集節點新增至 WSFC.TEST 網域。在每個叢集節點伺服器 (wsfc-1wsfc-2) 上執行下列步驟:

  1. 在「Server Manager」(伺服器管理員) >「Local Server」(本機伺服器) 的「Properties」(屬性) 窗格中,按一下 [WORKGROUP] (工作群組)
  2. 按一下 [Change] (變更)
  3. 選取 [網域],然後輸入「WSFC.TEST」。
  4. 按一下 [確定]
  5. 提供 WSFC.TEST\clusteruser 的憑證以加入網域。
  6. 按一下 [確定]
  7. 關閉對話方塊,然後並遵循提示重新啟動伺服器。
  8. clusteruser 擔任 wsfc-1wsfc-2 上的管理員。

    • 按兩下 [Computer Management] (電腦管理) > [Local Users and Groups] (本機使用者和群組) > [Groups] (群組) > [Administrators],然後按一下 [Add] (新增)
    • 輸入「clusteruser」,然後按一下 [Check names] (檢查名稱)
    • 按一下 [確定]

建議您現在為所有三個 VM 拍攝快照。

設定容錯移轉叢集

如要建立及設定容錯移轉叢集:

  1. 使用遠端桌面協定來連接 wsfc-1wsfc-2
  2. 遵照下列 Microsoft 操作說明中的步驟操作,並加上這些額外附註:

    • wsfc-1wsfc-2 上安裝「容錯移轉叢集」功能。請勿在 wsfc-dc 上安裝「容錯移轉叢集」功能。
    • 請使用網域使用者 WSFC.TEST\clusteruser 的身分執行容錯移轉叢集管理員應用程式,否則可能會發生權限問題。建議您一律使用此方式執行容錯移轉叢集管理員或是使用 clusteruser 的身分連接至伺服器,以確保您具備必要的權限。
    • wsfc-1wsfc-2 當做節點新增至叢集。
    • 驗證設定時:

      • 在「Testing Options」(測試選項) 頁面上​,選取 [Run only tests I select] (僅執行我選取的測試)​,​然後點選 [Next] (下一步)
      • 在 Compute Engine 上執行 [Storage] (儲存空間) 選項將會失敗 (其適用於個別獨立的實體伺服器),因此請在「Test Selection​」(測試選項) ​頁面上清除 [Storage] (儲存空間)

        叢集驗證期間可能會遇到的常見問題如下:

        • 備用資源之間只有一個網路介面。這不適用於雲端設定,因此您可以忽略此問題。
        • 兩個備用資源之間的 Windows 更新並不相同。如果您將 Windows 執行個體設定為自動套用更新,可能會發生其中一個節點已套用更新而另一個節點尚未下載此更新的情況。您應該讓伺服器保持使用完全相同的設定。
        • 正在等候重新啟動。您已變更其中一部伺服器,所以必須重新啟動才能套用變更。請勿忽略此問題。
        • 伺服器並非全部都具備相同的網域角色。您可以忽略此問題。
        • 伺服器並非全都位於相同的機構單位 (OU) 中。本教學課程不會使用機構單位,但是在實際工作環境系統中,請考慮將叢集放在其自己的機構單位中。Microsoft 操作說明會描述這種最佳做法。
        • 找到未簽署的驅動程式。您可以忽略此問題。
    • 您可以在「摘要」頁面上選取 [立即使用驗證節點建立叢集] ,即可繼續建立叢集,而不是關閉 再重新開啟精靈。

    • 在「建立叢集」精靈的「存取點」頁面上,將叢集命名為 「testcluster」。

    • 在「位址」欄位中,輸入「10.0.0.8」。

    MICROSOFT 操作說明

新增叢集管理員

將網域帳戶新增為叢集管理員,即可讓您 使用 Windows PowerShell 等工具在叢集上執行動作。將 clusteruser 網域帳戶新增為叢集管理員。

  1. 在託管叢集資源的叢集節點上,於容錯移轉叢集管理員的左側窗格中選取您的叢集,然後按一下右側窗格中的 [Properties] (屬性)
  2. 選取 [Cluster Permissions] (叢集權限) 分頁標籤。
  3. 按一下 [Add] (新增),然後新增 clusteruser
  4. 如果已在 [Group or user names list] 中選取 clusteruser,則在 [Permissions] (權限) 窗格中選取 [Full Control] (完全控制)
  5. 按一下 [Apply] (套用),然後按一下 [OK] (確定)

建議您現在拍攝快照。

建立檔案共用見證

您擁有雙節點容錯移轉叢集,但是叢集的投票機制可 決定應該使用哪一個節點。您可以新增檔案共用見證 以達到群數。

本教學課程只會將共用資料夾新增至網域控制站伺服器。 如果此伺服器於其中一個叢集節點重新啟動時離線, 則其餘伺服器無法單獨投票,因此 整個叢集可能會停止運作。本教學課程假設即時遷移自動重新啟動等 GCP 基礎架構功能提供的可靠性,足以讓共用資料夾保持運作。

您可使用下列選項建立可用性更高的檔案共用見證:

  • 使用儲存空間直接存取以使用 Windows 伺服器叢集提供共用。這項 Windows Server 2016 功能可以為仲裁見證提供高可用性的共用。例如,您可以為 Active Directory 網域控制站建立叢集,以同時提供高可用性網域服務及檔案共用見證。
  • 使用 Avere vFXT 等檔案伺服器解決方案。

遵循下列步驟為見證建立檔案共用:

  1. 連接至 wsfc-dc。此伺服器會代管檔案共用。
  2. 在「檔案總管」中,瀏覽至 C 磁碟。
  3. 在標題列中,按一下 [新增資料夾] 按鈕。
  4. 將新資料夾命名為「shares」。
  5. 按兩下 shares 資料夾以開啟此資料夾。
  6. 新增資料夾並將其命名為「clusterwitness-testcluster」。

針對檔案共用見證設定共用

您必須在檔案共用見證資料夾設定權限以啟用並使用叢集。

  1. 在「Explorer」(檔案總管) 中的 clusterwitness-testcluster 資料夾上按一下滑鼠右鍵,然後選取 [Properties] (內容)
  2. 在「Sharing」(共用) 分頁上,按一下 [Advanced Sharing] (進階共用)
  3. 選取 [共用此資料夾]
  4. 按一下 [權限],然後按一下 [新增]
  5. 按一下 [物件類型],選取 [電腦],然後按一下 [確定]
  6. 新增電腦帳戶 testcluster$
  7. 將「Full Control」(完全控制) 權限授予 testcluster$
  8. 按一下 [套用],然後關閉所有對話方塊。

將檔案共用見證新增至容錯移轉叢集

現在將容錯移轉叢集設定為使用檔案共用見證當做仲裁投票。

  1. 在託管叢集資源 (wsfc-1) 的電腦上,開啟容錯移轉叢集管理員。
  2. 在左側窗格的叢集名稱 (testcluster.WSFC.TEST) 上按一下滑鼠右鍵,指向 [More Actions] (其他動作),然後按一下 [Configure Cluster Quorum Settings] (設定叢集仲裁設定)
  3. 在精靈頁面的每個步驟使用 [Next] (下一步) 按鈕逐步執行。
  4. 在群數設定選項選擇 [選取群數見證]
  5. 選擇 [Configure a file share witness] (設定檔案共用見證)
  6. 在「File Share Path」(檔案共用路徑) 中輸入共用資料夾的路徑,例如「\10.0.0.6\clusterwitness-testcluster」。在此範例中,10.0.0.6 是 wsfc-dc VM 的 IP 位址。
  7. 確認設定並按一下 [Finish] (完成)

測試容錯移轉叢集

Windows 伺服器容錯移轉叢集現在應處於運作狀態。您可以在執行個體之間手動移動叢集資源 以進行測試。您尚未完成程序,但建議現在檢查以驗證到目前為止執行的操作是否一切正常。

  1. wsfc-1 上,記下容錯移轉叢集管理員中「Current Host Server」(目前的主機伺服器) 名稱。
  2. 使用 clusteruser 的身分執行 Windows PowerShell。
  3. 在 PowerShell 中,執行下列指令變更目前的主機伺服器:

    Move-ClusterGroup -Name "Cluster Group"
    

您應該會看到目前的主機伺服器名稱變更為其他 VM。

如未變更,請回頭查看先前的步驟,看看是否遺漏任何操作。 最常見的問題是遺漏會在網路上封鎖存取 的防火牆規則。如要查看其他問題, 請參閱疑難排解 一節。

否則,您可以繼續設定內部負載平衡器,這是 將網路流量轉送至叢集中目前的主機伺服器時的必要項目。

建議您現在拍攝快照。

新增規則

在 Windows 容錯移轉叢集中,「角色」會代管叢集工作負載。您可以使用 角色在叢集中指定應用程式使用的 IP 位址。在 本教學課程中,您會為測試工作負載新增角色,亦即 Internet Information Services (IIS) 網路伺服器。步驟如下:

  1. 在容錯移轉叢集管理員的「Actions」(動作) 窗格中,選取 [Configure Role] (設定角色)
  2. 在 **「Select Role」(選取角色)** 頁面上,選取 [Other Server]
  3. 在「Client Access Point」(用戶端存取點) 頁面上,輸入「IIS」當做名稱。
  4. 將位址設定為「10.0.0.9」。
  5. 略過「選取儲存空間」和「選取資源類型」
  6. 確認設定並按一下 [Finish] (完成)

確認對話方塊會顯示角色的設定。

建立內部負載平衡器

現在請建立並設定內部負載平衡器, 這是將 網路流量轉送至使用中叢集主機節點時的必要項目。您會使用 GCP 主控台,因為其使用者介面可讓您查看 內部負載平衡的編排方式。

  1. 在 GCP 主控台中,前往「負載平衡」頁面。

    開啟負載平衡

  2. 按一下 [建立負載平衡器]

  3. 在「TCP 負載平衡」卡上,按一下 [啟動設定]

  4. 選取 [僅在我的 VM 之間],然後按一下 [繼續]

  5. 輸入「wsfc-lb」當做名稱

目前還不能點選 [建立]

建立後端

回想一下,GCP 內部負載平衡器會使用定期健康狀態檢查來判斷使用中的節點。健康狀態檢查會針對正在使用中叢集節點上執行的 Compute Engine 叢集 主機代理程式進行連線偵測。健康狀態檢查酬載 是由叢集 角色表示的應用程式 IP 位址。如果節點為使用中,則代理程式的回應值為 1,否則為 0。

  1. 按一下 [後端設定]
  2. 選取您目前所在地區。
  3. 在「Network」(網路) 部分選取 wsfcnet
  4. 在「Instance group」(執行個體群組) 部分選取 wsfc-group
  5. 建立健康狀態檢查。

    • 在「Name」(名稱) 部分輸入「wsfc-hc」。
    • 接受預設的 TCP「Protocol」(通訊協定) 設定,並且將「Port」(通訊埠) 變更為「59998」以取得叢集主機代理程式的回應。
    • 在「Request」(要求) 部分,輸入「10.0.0.9」。
    • 在「Response」(回應) 部分,輸入「1」。
    • 在 **「Check interval」(檢查時間間隔) 部分,輸入「2」。
    • 在「Timeout」(逾時) 部分,輸入「1」。
    • 按一下 [儲存並繼續]。

設定前端

前端設定會建立轉送規則,而此規則可定義負載平衡器處理傳入要求的方式 。為求簡化,您在本教學課程中將於子網路的 VM 之間提出要求以測試系統。

但在工作系統中,您可能想要開放系統讓網際網路流量等外部網路流量通過。您可以 建立防禦主機 以接受外部流量並將其轉送至內部網路,即可達到此目的。本教學課程 並未涵蓋防禦主機的使用方式。

  1. 在中間窗格中,按一下 [前端設定]
  2. 在「名稱」部分輸入「wsfc-lb-fe」。
  3. 選取子網路 (wsfcnetsub1)。
  4. 在「IP」部分選取 [臨時 (自訂)]
  5. 輸入「10.0.0.9」,其與您為角色設定的 IP 位址相同。
  6. 在「通訊埠」部分,輸入「80」。
  7. 按一下 [完成]

檢查並完成

  1. 如要查看內部負載平衡器設定摘要,請按一下中間窗格的 [Review and finalize] (檢查並完成)。摘要即會顯示在右側窗格中。
  2. 按一下 [建立]。建立負載平衡器需要一點時間。

    GCP 主控台會顯示內部負載平衡的最終設定。

建立健康狀態檢查的防火牆規則

您可能已注意到 GCP 主控台通知您 健康狀態檢查系統需要有防火牆規則,才能讓健康狀態檢查 達到其目標。在本節中,您會設定防火牆規則。

  1. 返回 GCP 主控台的 Cloud Shell。

    開啟 CLOUD SHELL

  2. 執行下列指令來建立防火牆規則:

    gcloud compute firewall-rules create allow-health-check --network wsfcnet --source-ranges 130.211.0.0/22,35.191.0.0/16 --allow tcp:59998`
    

開啟 Windows 防火牆

現在,請在每個叢集節點 (wsfc-1wsfc-2) 上建立 Windows 防火牆規則。至少要針對 IP 位址 130.211.0.0/2235.191.0.0/16 允許透過通訊埠 59998 傳入的所有 TCP 連線。

驗證負載平衡器

當內部負載平衡器為運作中時,您可以檢查狀態以 驗證其是否能找到健康狀態良好的執行個體,然後再次測試容錯移轉。

  1. 返回 GCP 主控台的「負載平衡」頁面。

    開啟負載平衡

  2. 按一下負載平衡器 (wsfc-lb) 的名稱。

    您應該會在摘要的「後端」部分看到執行個體群組清單。

    您應該在「健康狀態良好」欄中看到:1 / 2

    這是符合預期的結果。您有兩個叢集節點,但任何時候在容錯移轉叢集中只會有一個叢集節點為使用中,因此負載平衡器健康狀態檢查僅 適用於該節點。

    即使在「健康狀態良好」欄中找不到適當的結果,仍請繼續 下一步。有時候您至少必須執行一項容錯移轉動作,負載平衡器才能找到 IP 位址。

  3. 在容錯移轉叢集管理員的 [IIS] 角色上按一下滑鼠右鍵,然後按一下 [Move] (移動) > [Best Possible Node] (最佳可行節點),即可進行容錯移轉。此動作會將角色移至「Owner Node」(擁有者節點) 欄位中顯示的新節點:

    容錯移轉叢集管理員中顯示的「擁有者節點」欄位。

  4. 請等待「Status」(狀態) 顯示為「Running」(執行中)

  5. 返回「Load balancing」(負載平衡) 頁面,按一下 [Refresh] (重新整理),並確認「Healthy」(健康狀態良好) 資料欄仍顯示 1 / 2

    負載平衡器狀態會顯示 2 個執行個體中有 1 個健康狀態良好。

提示:您可以使用 gcloud 工具檢查哪一個執行個體的健康狀態良好,其中 [REGION] 是您的地區:

gcloud compute backend-services get-health wsfc-lb --region=[REGION]

輸出如下所示:

backend: https://www.googleapis.com/compute/v1/projects/[PROJECT_NAME]/zones/us-west1-a/instanceGroups/wsfc-group
status:
  healthStatus:
  - healthState: UNHEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/[PROJECT_NAME]/zones/us-west1-a/instances/wsfc-1
    ipAddress: 10.0.0.4
    port: 80
  - healthState: HEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/[PROJECT_NAME]/zones/us-west1-a/instances/wsfc-2
    ipAddress: 10.0.0.5
    port: 80
  kind: compute#backendServiceGroupHealth

安裝應用程式

現在您已經有一個叢集,您可以在每個節點上設定 應用程式,並將其設定為在叢集 環境中運作。

在本教學課程中,您必須設定某些內容,藉以示範 叢集確實可和內部負載平衡器搭配。在每個 VM 上 設定 IIS 以提供簡單的網頁。

您並不是在叢集中針對 HA 設定 IIS,而是建立會提供不同網頁的個別 IIS 執行個體。發生容錯移轉後,網路 伺服器會提供各自的內容,而非共用的內容。

針對 HA 設定應用程式或 IIS,不屬於本教學課程的 討論範圍。

設定 IIS

  1. 在每個叢集節點上,安裝 IIS

    • 請確認已於「Common HTTP Features」(一般 HTTP 功能) 底下選取 [Default Document] (預設文件)
    • 選取「Confirmation」(確認) 頁面上的核取方塊,以啟用自動重新啟動目的地伺服器。
  2. 確認每個網路伺服器皆可正常運作。

    1. 使用遠端桌面協定連線至名為 wsfc-dc 的 VM。
    2. 在伺服器管理員頂端的「Properties」(屬性) 部分,關閉「IE Enhanced Security Configuration」(IE 增強式安全性設定)
    3. 開啟 Internet Explorer。
    4. 瀏覽至每部伺服器的 IP 位址:

      http://10.0.0.4/
      http://10.0.0.5/
      

不論何種情況,您都會在「歡迎」頁面上看到預設的 IIS 網 頁。

編輯預設網頁

變更每個預設網頁,以便您可以輕鬆查看目前是由哪個伺服器 提供網頁。

  1. 使用 RDP 連線至名為 wsfc-1 的 VM。
  2. 以管理員的身分執行記事本。
  3. 在記事本中開啟 C:\inetpub\wwwroot\iistart.htm。請記得瀏覽「All Files」(所有檔案),而不是只有文字檔案。
  4. <title> 元素中,將文字變更為目前伺服器的名稱。例如:

        <title>wsfc-1</title>
    
  5. 儲存 HTML 檔案。

  6. wsfc-2 重複執行這些步驟,將 <title> 元素設定為 wsfc-2

現在,當您檢視其中一個伺服器提供的網頁時, 伺服器的名稱就會顯示為「Internet Explorer」分頁的標題。

測試容錯移轉

  1. 使用遠端桌面協定連線至名為 wsfc-dc 的 VM。
  2. 開啟 Internet Explorer。
  3. 瀏覽至負載平衡器角色的 IP 位址:

    http://10.0.0.9/
    

    您會看到「歡迎」頁面的分頁標題中顯示 目前伺服器的名稱。

  4. 停止目前的伺服器以模擬失敗。在 Cloud Shell 中執行下列指令,將 [INSTANCE_NAME] 替換為您在先前步驟中看到的目前伺服器名稱 (例如 wsfc-1):

    gcloud compute instances stop [INSTANCE_NAME]
    
  5. 切換至對於 wsfc-dc 的遠端桌面協定連線。

    負載平衡器可能需要幾分鐘的時間才能偵測到移動並重新轉送流量。

  6. 大約 30 秒後,在 Internet Explorer 中重新整理頁面。

    您現在應該會看到分頁標題中顯示新近有效節點的名稱。 例如,如果一開始的有效節點是 wsfc-1,則現在標題會顯示 wsfc-2。如果您沒有立即看到變更,或是您看到「找不到網頁」錯誤,請再次重新整理瀏覽器。

恭喜!您現在擁有一個可在 GCP 中正常運作的 Windows Server 2016 容錯移轉叢集 。

疑難排解

如果事情的運作不如預期,您可以查看以下一些常見問題。

GCP 防火牆規則會封鎖健康狀態檢查

如果健康狀態檢查無法正常運作,請再次確認您的防火牆規則允許來自健康狀態檢查系統使用之 IP 位址的連入流量: 130.211.0.0/2235.191.0.0/16

Windows 防火牆會封鎖健康狀態檢查

請確認已在每個叢集節點的 Windows 防火牆上開啟通訊埠 59998。

使用 DHCP 的叢集節點

請確保叢集中的每個 VM 都有靜態 IP 位址。如果將 VM 設定為在 Windows 中使用 DHCP,請變更 Windows 中的網路設定,使 IPv4 位址與 VM 的 IP 位址相符,如 GCP 主控台中所示。此外,也要將閘道 IP 位址設定為與 GCP VPC 中的子網路閘道位址相符。

防火牆規則中的 GCP 網路標記

如果您在防火牆規則中使用網路標記,請務必在每個 VM 執行個體上設定正確的標記。本教學課程不會使用標記,但如果您因為某些其他原因而設定標記 ,就必須採取一致的做法。

清理

如何避免系統向您的 Google Cloud Platform 帳戶收取您在本教學課程中使用資源的相關費用:

完成容錯移轉叢集教學課程後,您可以清除 在 Google Cloud Platform 建立的資源,這樣 將來您就不用再為這些資源付費了。下列各節將說明如何刪除或關閉這些資源。

刪除專案

如要避免被收費,最簡單的方法就是刪除您在教學課程中建立的專案。

如何刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除執行個體

刪除 Compute Engine 執行個體:

刪除永久磁碟

如何刪除永久磁碟:

  1. 前往 GCP 主控台的「磁碟」頁面。

    前往磁碟頁面

  2. 找出您要刪除的磁碟,然後選取磁碟名稱旁的核取方塊。

  3. 點選頁面頂端的 [Delete] (刪除) 按鈕。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件