如何設置Hyper-V複製[逐步指南]

你管理Hyper-V虛擬機器(VM)並且想要建立一個災難恢復計劃嗎?您可以開始使用Hyper-V複寫。事情可能會出錯,而且很可能會出錯。如果您只有一份虛擬機器的副本,那麼您正在為自己準備一個痛苦的世界。

擁有一個或多個虛擬機器的副本,尤其是關鍵的副本,不需要很複雜或昂貴。微軟在Hyper-V中內建了一個複寫功能,您可以在不引入第三方軟件或設備的情況下設置它。

如果您準備好了解如何啟用Hyper-V複寫並準備防止可能的災難性數據丟失,那麼讓我們開始吧!

先決條件

本教程將進行實踐演示。如果您想跟著做,請確保您具備以下條件:

兩個Hyper-V主機伺服器。這兩個主機可以在Active Directory(AD)域或工作組中。本教程將使用以下詳細信息的兩個伺服器。

Hostname IP Address Designation Location Operating System
hyperv-ny 10.1.0.4 Primary Server Primary Site Windows Server 2019 Datacenter (version 1809)
hyperv-wa 10.0.0.4 Replica Server Secondary Site Windows Server 2019 Datacenter (version 1809)

主要的Hyper-V主機必須至少有一個要複寫的客戶虛擬機器。在本教程中,主要主機將有一個名為webserver的客戶虛擬機器。

有關 Hyper-V 系統要求的更多詳細信息,請參閱Windows Server 上的 Hyper-V 系統要求

準備 Hyper-V 複寫主機

假設您已經具備了先決條件,不要考慮開始 Hyper-V 複寫。在複寫虛擬機之前,仍然需要進行一些準備工作。以下是您需要在一切準備就緒之前檢查的一般事項。

允許 Hyper-V 複寫流量

如果您在 Hyper-V 主機上使用的是 Windows 防火牆,則本節僅適用於您。如果不是,您可以跳過到下一部分。

或者,如果您目前使用的是 Windows 防火牆,並且想要完全禁用它,請閱讀如何禁用或關閉 Windows 防火牆(所有方法)

當您在服務器上安裝 Hyper-V 角色時,Windows 會在 Windows 防火牆中創建兩個額外的入站規則。這兩個規則控制是否允許 Hyper-V 複寫流量,它們是:

  • Hyper-V 複寫 HTTP 監聽器(TCP-In) – Hyper-V 複寫監聽器的入站規則,用於接受複寫的 HTTP 連接(通過端口 80,未加密)。
  • Hyper-V Replica HTTPS Listener (TCP-In) – Hyper-V 複製監聽器的入站規則,以接受透過 HTTPS 連接進行複製(透過端口 443,使用憑證加密)。

默認情況下,這些 Windows 防火牆被禁用,有效地阻止了 Hyper-V 複製流量到主機的訪問。但本教程的重點是僅通過 HTTPS 設置 Hyper-V 複製,而不是 HTTP。

要啟用 Hyper-V 複製防火牆規則,請按照以下步驟進行。

1. 登錄到 複製 伺服器並以管理員身份 打開 PowerShell

2. 在 PowerShell 中執行以下命令以啟用規則。Enable-Netfirewallrule

# 啟用 Hyper-V HTTPS 複製流量防火牆規則。
Enable-Netfirewallrule -DisplayName 'Hyper-V Replica HTTPS Listener (TCP-In)'

3. 最後,為確認已成功啟用防火牆規則,執行以下命令。

Get-Netfirewallrule -DisplayName 'Hyper-V Replica HTTPS Listener (TCP-In)'

如果一切順利,您應該看到類似下面截圖的結果。

Enabling Hyper-V replication firewall rules

設置 Hyper-V 主機記錄

如果 Hyper-V 主機可以通過 DNS 查找解析對方的名稱,您可以跳過此部分。

在啟用 Hyper-V 複製時,您將在配置期間指定複製伺服器的名稱。Hyper-V 是否能夠通過正確的名稱解析找到次要伺服器取決於正確的名稱解析。

為了確保 Hyper-V 节點在網絡中能夠找到彼此的名稱,您需要編輯兩個伺服器上的主機文件並添加它們各自的名稱和IP地址。執行以下步驟:

  1. 伺服器上,以管理員身份打開 PowerShell。

運行以下命令以打開hosts文件以進行編輯:notepad.exe

notepad.exe "$env:windir\system32\drivers\etc\hosts"

3. 一旦hosts文件打開,滾動到文本編輯器的底部,添加副本伺服器的IP地址和名稱如下。

請確保使用您的IP地址和伺服器名稱。

10.1.0.4	hyperv-wa

4. 編輯文件後,按CTRL+S或點擊文件 —> 保存保存更改。

5. 在副本伺服器上重複相同步驟,將伺服器的名稱和IP地址添加到副本伺服器的hosts文件中。下面的截圖顯示了兩個伺服器hosts文件的並排最終狀態。

Updating the hosts file

創建自簽名證書

此部分僅適用於您的 Hyper-V 複製將使用基於證書的身份驗證(HTTPS)的情況。如果 Hyper-V 主機已加入域並將使用 Kerberos 身份驗證(HTTP),則可以跳過此部分。

通過 HTTPS 的 Hyper-V 複製要求主和副本主機使用由共同發行者簽發的證書。 Hyper-V 使用這些證書將主伺服器驗證為副本伺服器。

代替從外部憑證提供商購買憑證,如DigiCertNameCheap,您可以免費生成用於 Hyper-V 複寫的自簽名憑證。

對於兩個 Hyper-V 主機之間基於憑證的身份驗證,您將需要三個憑證。每個主機需要一個根憑證和一個服務器憑證。按照以下步驟生成這些憑證。

1. 在主機伺服器上,以系統管理員身份開啟 PowerShell。

2. 接下來,在 PowerShell 中運行以下命令定義以下變量。請參考內聯註釋了解每個變量,並根據需要替換其值。

# 設置證書變數

## 指定新根 CA 證書的名稱。
$rootCA_Name = 'Hyper-V Root CA'

## 指定 Hyper-V 伺服器的名稱。
$hostnames = @('hyperv-ny','hyperv-wa')

## 匯出 PFX 證書的密碼是什麼。
$CertPassword = 'this is a strong password' | ConvertTo-SecureString -Force -AsPlainText

## 在創建後將 PFX 證書匯出到哪裡。確保此文件夾存在。
$CertFolder = 'C:\HPVCerts'

3. 在定義證書變數之後,執行以下命令生成根證書。此命令使用伺服器的New-SelfSignedCertificate cmdlet 在 個人證書 存儲中創建自簽名的根證書。

## 創建並保存根 CA 證書到 '個人' 證書存儲。
## 有效期為 10 年。
$rootCA = New-SelfSignedCertificate `
-Subject $rootCA_Name  `
-FriendlyName $rootCA_Name `
-KeyExportPolicy Exportable  `
-KeyUsage CertSign  `
-KeyLength 2048  `
-KeyUsageProperty All  `
-KeyAlgorithm 'RSA'  `
-HashAlgorithm 'SHA256'  `
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"  `
-NotAfter (Get-Date).AddYears(10)

4. 為了使伺服器信任根證書本身,執行以下命令將根證書複製到可信任的根證書授權證書存儲

## 將根憑證從 '個人' 存儲複製到 '受信任的根憑證授權機構' 存儲。
$rootStore = [System.Security.Cryptography.X509Certificates.X509Store]::new("Root","LocalMachine")
$rootStore.Open("ReadWrite")
$rootStore.Add($rootCA)
$rootStore.Close()

5. 接下來,運行以下命令使用 Export-PfxCertificate cmdlet 將根憑證導出到文件。您需要導出憑證以便稍後將其複製到複製伺服器。

## 導出根憑證
$rootCA | Export-PfxCertificate -FilePath "$CertFolder\$($rootCA_Name).pfx" -Password $CertPassword -Force
Exporting the Root Certificate

6. 現在,生成由您創建的根憑證簽署的伺服器憑證。運行以下命令為每個 Hyper-V 主機創建伺服器憑證並將每個憑證導出到文件。

$hostnames | ForEach-Object {
	$name = $_
	## 創建憑證
	New-SelfSignedCertificate `
	-FriendlyName $name `
	-Subject $name `
	-KeyExportPolicy Exportable `
	-CertStoreLocation "Cert:\LocalMachine\My" `
	-Signer $rootCA `
	-KeyLength 2048  `
	-KeyAlgorithm 'RSA'  `
	-HashAlgorithm 'SHA256'  `
	-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"  `
	-NotAfter (Get-Date).AddYears(10) |
	## 導出憑證
	Export-PfxCertificate -FilePath "$CertFolder\$($name).pfx" -Password $CertPassword -Force
}
Generating and exporting the server certificates

7. 最後,將根憑證文件(Hyper-V Root CA.pfx)和複製伺服器憑證文件(hyperv-wa.pfx)複製到複製伺服器。

Copying the certificate files to the replica host

在複製主機上安裝憑證

為了使基於憑證的身份驗證在兩個 Hyper-V 主機之間生效,複製主機上也需要存在相同的根憑證和伺服器憑證。按照以下步驟在複製主機上安裝根憑證和伺服器憑證。

1. 在複製主機上以管理員身份打開 PowerShell。

安裝根憑證到受信任的憑證授權存儲中,運行下面的Import-PfxCertificate命令。請確保根據需要更改變數值。

## 指定根 CA 憑證的名稱。
$rootCA_Name = 'Hyper-V Root CA'

## PFX 憑證文件的位置。
$CertFolder = 'C:\HPVCerts'

## 匯出 PFX 憑證的密碼是什麼。
$CertPassword = 'this is a strong password' | ConvertTo-SecureString -Force -AsPlainText

## 匯入根 CA
Import-PfxCertificate  "$CertFolder\$($rootCA_Name).pfx" -CertStoreLocation Cert:\LocalMachine\Root -Password $CertPassword
Importing the root certificate

3. 要將服務器憑證安裝到個人憑證存儲中,運行下面的命令。

## 匯入服務器憑證
Import-PfxCertificate  "$CertFolder\$($env:COMPUTERNAME).pfx" -CertStoreLocation Cert:\LocalMachine\My -Password $CertPassword
Importing the server certificate

4. 最後,配置 Hyper-V 註冊表以禁用對憑證撤銷的檢查。這樣,Hyper-V 將不會嘗試檢查憑證的撤銷詳情 – 這在自簽憑證中不存在。運行以下New-ItemProperty PowerShell 命令。

## 禁用 Hyper-V 憑證撤銷檢查。
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" -Name "DisableCertRevocationCheck" -Value 1 -PropertyType DWORD -Force

配置 Hyper-V 複寫

您現在已完成準備 Hyper-V 主機的步驟。現在,您可以開始啟用 Hyper-V 複寫並開始複寫虛擬機器。

啟用主機作為複寫伺服器

在 Hyper-V 主機可以托管 VM 複本之前,必須首先將主機啟用為複寫伺服器。請按照以下步驟進行。

  1. 在複寫主機上,打開Hyper-V 管理員。要這樣做,請在 PowerShell 中執行virtmgmt.msc命令。
  2. Hyper-V 管理員視窗中,右擊複寫伺服器名稱,然後點擊Hyper-V設定。
Open the Hyper-V settings

3. 接下來,在 Hyper-V 設定視窗中,點擊左窗格上的複寫配置

在右窗格中,勾選啟用此電腦作為複寫伺服器的方塊。這樣將啟用下方的所有其他配置選項。

身份驗證和埠部分,勾選使用憑證進行身份驗證(HTTPS)方塊。將埠號值保留為 443。

Enabling the server as a replica

4. 在身份驗證和埠部分下,點擊選擇憑證。在Windows 安全性彈出框中,確認憑證正確,然後點擊確定

Selecting the server certificate

在選擇證書後,您應該看到指定證書方框現在顯示證書詳細資訊。

Certificate details

注意:如果沒有有效的證書或您尚未正確安裝證書,您將看到類似下面圖片的錯誤。在這種情況下,您需要返回並安裝證書。

The error shows no valid certificate

5. 接下來,在授權和儲存下,選擇允許從任何已驗證的伺服器複製。這樣做允許任何 Hyper-V 伺服器將 VM 複製到此伺服器,只要基於證書的驗證成功。

為了僅允許特定伺服器進行複製,請選擇允許從指定的伺服器進行複製選項,並添加每個伺服器的詳細資訊。

輸入或瀏覽儲存複製檔案的位置。在此示例中,儲存位置為C:\Hyper-V\Virtual Hard Disks。請確保選擇具有足夠儲存空間以容納 VM 複製檔案的位置。

最後,點擊確定以保存更改。

Choosing the authorization and storage

啟用虛擬機器複製

到目前為止,您已經啟用了複製主機以接受來自 VM 的 Hyper-V 複製。此時,您準備啟用 VM 進行複製。按照以下步驟進行。

1. 在主機上打開 Hyper-V 管理員視窗。

2. 接下來,點擊左窗格上的 Hyper-V 伺服器。在 VM 列表下,點擊您打算複製的 VM,然後在動作窗格下點擊啟用複製

Selecting the VM for Hyper-V replication

3. 在彈出的窗口上,單擊下一步開始之前頁面上。

4. 在指定副本伺服器頁面上,在副本伺服器框中輸入副本伺服器的主機名稱,然後單擊下一步

Specifying the target replica server

5. 現在,在指定連接參數頁面上,將副本伺服器埠號更改為443。

驗證類型選項下,單擊選擇基於使用者證書的驗證(HTTPS)

您會注意到此時的證書信息為空。要選擇證書,請單擊選擇證書

Specifying the port and authentication type

6. 接下來,在選擇證書對話框中,單擊選擇您之前生成的帶有主機名稱的主要主機的證書。選擇證書後,單擊確定

Selecting the server certificate

7. 選擇證書後,您應該現在看到證書信息,如下所示。單擊下一步繼續。

Confirming the certificate details

8. 接下來,選擇要包含在複寫中的虛擬硬盤(VHD)。如果有多個VHD,請確保選擇包含VM操作系統的VHD。下面的示例只有一個VHD。選擇後,單擊下一步

Selecting VHDs to replicate

9. 在下一頁中,從下拉列表中選擇複製間隔。此值決定Hyper-V向複本伺服器發送更改的頻率。默認間隔為5分鐘。其他可用選項為30秒15分鐘。點擊下一步

Choosing the Hyper-V replication interval

10. 在配置其他恢復點頁面上,點擊選項以僅保留最新的恢復點

選擇此選項,Hyper-V將僅在複本伺服器上維護虛擬機的最新恢復點或狀態。此選項使用的存儲空間最少,但僅支持單一時間點恢復。點擊下一步繼續。

Selecting the recovery points to maintain

11. 在選擇初始複製方法中,有三個選項可選擇如何將VHD的初始副本發送到複本伺服器:

  • 通過網絡發送初始副本。此選項通過網絡複製VHD。
  • 使用外部媒體發送初始副本。選擇此選項可將VHD副本保存到外部存儲設備,例如外部硬盤。然後您可以將存儲設備實際運輸並連接到複本伺服器進行複製。
  • 使用複本伺服器上的現有虛擬機作為初始副本。此選項僅適用於已經將虛擬機的副本還原到複本伺服器的情況。

在實際情況中,您所選擇的選項取決於您的評估。但是在本教程中,請選擇通過網絡發送初始副本

接下來,選擇立即開始複製,一旦完成配置,即可啟動複製過程。

Choosing the initial replication method

12. 在摘要頁面上,審查複製配置,並點擊完成以完成最後設置。

Finalizing the replication configuration

13. 等待確認消息顯示複製已成功啟用。 點擊關閉返回到 Hyper-V 管理員視窗。

Hyper-V 複製會複製虛擬機器、其配置和 VHD。但在複製伺服器上生成的副本尚未連接。如下所示,您仍需配置副本 VM 的網路連接

Confirming the replication is now enabled

檢查複製健康狀態

因此,您已為所選虛擬機器啟用了 Hyper-V 複製。您如何知道 Hyper-V 複製是仍在進行中、已完成還是失敗了?幸運的是,Hyper-V 讓您可以在 Hyper-V 管理員中直接檢查複製健康狀態。

要檢查虛擬機器複製健康狀態,請按照以下步驟進行。

右鍵點擊主機 Hyper-V 管理員視窗中的虛擬機器名稱 —> 複製 —> 檢視複製健康狀態

Opening the VM replication health

最初,您將看到一條複製狀態消息,如下圖所示,表示複製仍在進行中。

Initial replication in progress

並且當 Hyper-V 複寫完成時,您應該會看到類似下面的消息。

And that’s it! You’ve successfully set up Hyper-V replication for your VM.

就是這樣!您已成功為虛擬機設定了 Hyper-V 複寫。

結論

最後,設置 Hyper-V 複寫是系統管理員在規劃和實施災難恢復時應考慮的事項。這樣做可能比丟失數據或延長服務停機時間更便宜。想像一下如果您的 工資 伺服器掛掉了呢?

您使用過 Hyper-V 複寫嗎?您覺得如何?您會推薦給其他人嗎,還是您認為組織應該避免使用它?

Source:
https://adamtheautomator.com/hyper-v-replication/