本文包含記憶體複本常見問題的解答。
Azure 是否支援記憶體複本?
Yes. 您可以搭配 Azure 使用下列案例:
- Azure 內的伺服器對伺服器複寫(在一或兩個數據中心容錯網域中的基礎結構即服務 (IaaS) 虛擬機 (VM) 之間以同步或異步方式複寫,或以異步方式在兩個不同的區域之間)。
- Azure 與內部部署之間的伺服器對伺服器異步複寫(使用虛擬專用網 (VPN) 或 Azure ExpressRoute)。
- Azure 內的叢集對叢集復寫(在一或兩個數據中心容錯網域中的 IaaS VM 之間同步或異步,或在兩個不同的區域之間以異步方式進行)。
- Azure 與內部部署之間的叢集對叢集異步複寫(使用 VPN 或 Azure ExpressRoute)。
- 使用 Azure 共用磁碟來延展叢集(在一或兩個數據中心容錯網域中的 IaaS VM 之間同步或異步,或以異步方式在兩個不同的區域之間)。
如需 Azure 中客體叢集的詳細資訊,請參閱 在 Azure中部署 IaaS VM 客體叢集。
Important notes:
- 如需儲存空間直接存取型記憶體複本叢集的 Azure Resource Manager 範本,請參閱 建立具有記憶體複本的儲存空間直接存取 SOFS 叢集,以跨 Azure 區域進行災害復原。
- Azure 中的叢集對叢集 RPC 通訊(叢集 API 需要授與叢集之間的存取權)需要設定叢集網路作員 (CNO) 的網路存取權。 您必須允許 TCP 連接埠 135 和高於 TCP 連接埠 49152 的動態範圍。 如需詳細資訊,請參閱 在 Azure IaaS VM 上建置 Windows Server 故障轉移叢集 - 第 2 部分網路和建立。
- 您可以使用兩個節點的客體叢集,其中每個節點都會針對記憶體複本所復寫的非對稱叢集使用回送 iSCSI。 但此組態的執行效能可能會不佳,而且應該只用於有限的工作負載或測試。
如何在初始同步處理期間檢視複寫的進度?
目的地伺服器上的記憶體復本管理員事件記錄檔中的事件識別碼 1237 訊息會顯示複製的位元組數目,以及每 10 秒剩餘的位元元組數。
另一個選項是在目的地伺服器上,針對一或多個復寫磁碟區使用目的地伺服器上的記憶體復本性能計數器,\Storage Replica Statistics\Total Bytes Received。
您也可以使用 Windows PowerShell 查詢複寫群組。 For example, the following sample command gets the name of the groups on the destination, and then queries one group named Replication 2 every 10 seconds to show progress:
Get-SRGroup
do{
$r=(Get-SRGroup -Name "Replication 2").replicas
[System.Console]::Write("Number of remaining bytes {0}`n", $r.NumOfBytesRemaining)
Start-Sleep 10
}until($r.ReplicationStatus -eq 'ContinuouslyReplicating')
Write-Output "Replica Status: "$r.replicationstatus
我可以指定要用於復寫的網路介面嗎?
Yes. 若要指定要用於復寫的網路介面,請使用 Set-SRNetworkConstraint
Cmdlet。 此 Cmdlet 會在介面層運作。 您可以在叢集和非叢集案例中使用。
例如,使用獨立伺服器 (在每個節點上),執行下列命令:
Get-SRPartnership
Get-NetIPConfiguration
記下閘道和介面資訊(在兩部伺服器上)和合作關係指示。 Then run:
Set-SRNetworkConstraint -SourceComputerName sr-srv06 -SourceRGName rg02 -
SourceNWInterface 2 -DestinationComputerName sr-srv05 -DestinationNWInterface 3 -DestinationRGName rg01
Get-SRNetworkConstraint
Update-SmbMultichannelConnection
若要在延展式叢集上設定網路條件約束,請執行:
Set-SRNetworkConstraint -SourceComputerName sr-cluster01 -SourceRGName group1 -SourceNWInterface "Cluster Network 1","Cluster Network 2" -DestinationComputerName sr-cluster02 -DestinationRGName group2 -DestinationNWInterface "Cluster Network 1","Cluster Network 2"
我可以設定一對多複寫或轉移式 (A 到 B 到 C) 複寫嗎?
否,記憶體複本僅支援伺服器、叢集或延展式叢集節點的一對一複寫。 您可以透過任一方向設定特定磁碟區配對的各種伺服器之間的複寫。 例如,Server 1 可以將 D 磁碟區複寫到 Server 2,以及其 E 磁碟區從伺服器 3 複寫。
我可以擴大或縮小記憶體復本復寫的復寫磁碟區嗎?
您可以增加(擴充)磁碟區,但無法縮小磁碟區。 根據預設,記憶體複本會防止系統管理員擴充複寫的磁碟區。 重設大小之前,請使用來源群組上的 [Set-SRGroup -AllowVolumeResize $TRUE
] 選項。
For example:
- 對來源電腦執行此命令:
Set-SRGroup -Name YourRG -AllowVolumeResize $TRUE
。 - 使用您偏好的技術來增加磁碟區。
- 對來源電腦執行此命令:
Set-SRGroup -Name YourRG -AllowVolumeResize $FALSE
。
我可以讓目的地磁碟區上線以進行唯讀存取嗎?
Windows Server 2016:否。 當 Windows Server 2016 開始復寫時,記憶體複本會卸除目的地磁碟區。
Windows Server 2019:是。 You can mount the destination storage by using the test failover feature. 若要執行測試故障轉移,您必須擁有目前未復寫在目的地上的未使用NTFS或ReFS格式化磁碟區。 然後,暫時掛接複寫記憶體的快照集,以供測試或備份之用。
若要在目的地伺服器 RG2
上建立複寫群組 SRV2
的測試故障轉移,請使用 T:
作為未復寫的暫存磁碟驅動器,請執行下列命令:
Mount-SRDestination -Name RG2 -Computername SRV2 -TemporaryPath T:\
復寫的磁碟區現在可在 SRV2
存取。 您通常可以讀取和寫入檔案、將檔案從中複製,或執行您儲存在其他地方以供安全保存的在線備份。
T:
磁碟區包含記錄數據。
若要移除測試故障轉移快照集並捨棄其變更,請執行:
Dismount-SRDestination -Name RG2 -Computername SRV2
您應該只針對短期的暫存作業使用測試故障轉移功能。 它不適合長期使用。 使用中時,復寫會繼續到實際的目的地磁碟區。
我可以在延展式叢集中設定 Scale-Out 檔案伺服器 (SOFS) 嗎?
雖然在技術上可行,但由於在連絡SOFS實例的計算節點中缺少月臺感知,因此不建議使用此組態。 如果您使用校園距離網路,其中延遲通常小於一毫秒,此設定通常會在沒有問題的情況下運作。
在叢集對叢集復寫中,當您在兩個叢集之間復寫時,儲存體複本完全支援SOFS,包括使用儲存空間直接存取。
在延展式叢集中或叢集之間復寫需要叢集共用磁碟區嗎?
No. 您可以使用叢集共用磁碟區或叢集資源所擁有的永續性磁碟保留區(PDR),例如文件伺服器角色來復寫。
在叢集對叢集復寫中,記憶體複本完全支援SOFS,包括在兩個叢集之間複寫時使用儲存空間直接存取。
我可以在具有記憶體複本的延展式叢集中設定儲存空間直接存取嗎?
No. Windows Server 不支援此設定。
在叢集對叢集復寫中,記憶體複本完全支援SOFS和 Hyper-V 伺服器,包括使用儲存空間直接存取。
如何設定異步複寫?
執行 New-SRPartnership -ReplicationMode
並提供 自變數 Asynchronous
。 根據預設,記憶體複本中的所有複寫都是同步的。 您也可以執行 Set-SRPartnership -ReplicationMode
來變更模式。
如何防止自動故障轉移延展式叢集?
若要防止自動故障轉移,您可以使用 PowerShell 來設定 Get-ClusterNode -Name "NodeName").NodeWeight=0
。 此命令會移除災害復原網站中每個節點上的投票。 然後,您可以在主要月臺的節點上執行 Start-ClusterNode -PreventQuorum
,並在災害月臺的節點上 Start-ClusterNode -ForceQuorum
強制故障轉移。 防止自動故障轉移無法作為UI組態選項使用,建議您不要防止自動故障轉移。
如何停用虛擬機復原功能?
若要防止新的 Hyper-V 虛擬機復原功能執行,並改為暫停 VM,而不是將它們故障轉移至災害復原網站,請執行 (Get-Cluster).ResiliencyDefaultPeriod=0
。
如何縮短初始同步處理的時間?
您可以使用精簡布建的記憶體來加速初始同步處理時間。 記憶體復本查詢並自動使用精簡布建的記憶體,包括非叢集儲存空間、Hyper-V 動態磁碟,以及儲存局域網路 (SAN) 邏輯單元編號 (LUN)。 初始復寫開始之後,您無法壓縮或修剪磁碟區。
您也可以使用植入的數據磁碟區來減少頻寬使用量,而且在某些情況下,同步處理時間。 使用故障轉移叢集管理員中的 [植入] 選項,或使用 New-SRPartnership
Cmdlet 來確保目的地磁碟區具有主要月臺的某些數據子集。 如果磁碟區大多是空的,使用植入的同步處理可能會減少時間和頻寬使用量。
若要植入數據,您可以選擇提供不同程度效力的選項:
- Previous replication. 在包含磁碟和磁碟區的節點之間透過一般初始同步進行復寫、移除複寫、將目的地磁碟寄送到別處,然後使用植入選項新增復寫。 此方法最有效,因為記憶體複本保證區塊複製鏡像,而唯一複寫的是差異區塊。
- 還原的快照集或還原的快照式備份。 藉由將磁碟區型快照集還原至目的地磁碟區,區塊配置應該會有最少的差異。 此方法是下一個最有效的方法。 區塊可能會相符,因為磁碟區快照集是鏡像映像。
-
Copied files. 在未使用的目的地上建立新的磁碟區,然後執行數據的完整
robocopy /MIR
樹狀結構複本。 可能有區塊相符專案。 使用 Windows 檔案總管或複製樹狀結構的某些部分並不會建立許多區塊相符專案。 手動複製檔案是植入最不有效的方法。
我可以委派用戶來管理複寫嗎?
Yes. 使用 Grant-SRDelegation
Cmdlet 來委派使用者。 您可以使用 命令來設定伺服器對伺服器、叢集對叢集和延展式叢集復寫案例中的特定使用者。 命令會委派建立、修改或移除複寫的許可權,而不需要是本機系統管理員群組的成員。
For example:
Grant-SRDelegation -UserName contoso\tonywang
Cmdlet 提醒您,使用者需要註銷,然後登入他們打算管理的伺服器,讓變更生效。 您可以使用 Get-SRDelegation
和 Revoke-SRDelegation
Cmdlet 進一步控制委派。
復寫磁碟區的備份和還原選項為何?
記憶體復本支持備份和還原來源磁碟區。 它也支援建立和還原來源磁碟區的快照集。 當目的地磁碟區受到記憶體復本保護時,您無法備份或還原目的地磁碟區,因為它無法掛接或存取。
如果您遇到災害且來源磁碟區遺失,您可以使用 Set-SRPartnership
Cmdlet 將目的地升級為新的來源磁碟區。 在新升級的來源上,您可以備份或還原該磁碟區。 您也可以使用 Remove-SRPartnership
和 Remove-SRGroup
Cmdlet 來移除複寫,以將磁碟區重新掛接為可讀取/寫入。
若要建立定期的應用程式一致快照集,您可以在來源伺服器上執行 VSSAdmin.exe
來建立復寫的數據磁碟區,以使用磁碟區陰影複製服務 (VSS)。
例如,當您使用記憶體復本複寫 F:
磁碟區時,請執行下列命令:
vssadmin create shadow /for=F:
然後,切換複寫方向、移除複寫,或只是位於相同的來源磁碟區上之後,您可以將任何快照還原到其時間點。
例如,仍在使用 F:
,執行:
vssadmin list shadows
vssadmin revert shadow /shadow={shadown copy ID GUID listed previously}
您也可以使用排程的工作,將此工具排程為定期執行。 For more information on using VSS, see vssadmin. VSS 會忽略記錄磁碟區,因此您不需要備份記錄磁碟區。
記憶體複本支援以檔案為基礎的備份。 記憶體復本不支援區塊式備份和還原。
記憶體複本需要哪些網路埠?
儲存體複本依賴伺服器消息塊 (SMB) 和 Web 服務管理 (WSMan) 進行復寫和管理,因此需要下列埠:
- 445 (SMB; 複寫傳輸通訊協定, 叢集 RPC 管理通訊協定)
- 5445 (iWARP SMB;只有在使用 iWARP 遠端直接記憶體存取 (RDMA) 網路時才需要)
- 5985 (WSManHTTP; Windows Management Instrumentation (WMI)/Common Information Model (CIM)/PowerShell 的管理通訊協定)
Note
Test-SRTopology
Cmdlet 需要 ICMPv4/ICMPv6,但不適用於復寫或管理。
什麼是記錄磁碟區最佳做法?
記錄的最佳大小會因環境和工作負載而有所不同,以及您的工作負載執行多少寫入 I/O。
- 較大的或較小的記錄檔不會讓復寫更快速或更慢。
- 較大或較小的記錄檔與 10 TB 的數據磁碟區(例如)沒有任何影響。
較大的記錄只會收集並保留更多寫入 I/O,再包裝它們。較大的記錄檔可讓來源和目的地計算機之間的服務中斷,例如網路中斷或目的地離線,以較長的時間。 例如,您的記錄已設定為保留最多 10 小時的寫入,而網路會關閉 2 小時。 當網路傳回時,來源只能播放未同步變更的差異回到目的地。 如果記錄檔保留 10 小時,且中斷時間是兩天,來源現在必須從稱為位圖的不同記錄檔播放,而且通常不會變慢,才能恢復同步處理。同步處理時,它會傳回使用記錄檔。
記憶體複本依賴記錄檔來取得所有寫入效能。 記錄效能對於復寫效能至關重要。 您必須確定記錄磁碟區的執行效能優於數據磁碟區,因為記錄會串行化並循序化所有寫入 I/O。 您應該一律在記錄磁碟區上使用快閃媒體,例如固態硬碟(SSD)。 您絕不能允許任何其他工作負載在記錄磁碟區上執行,就像永遠不允許其他工作負載在 SQL 資料庫記錄磁碟區上執行一樣。
Important
我們建議您的記錄記憶體比數據記憶體更快,而且記錄磁碟區永遠不會用於其他工作負載。
您可以執行 Test-SRTopology
Cmdlet 來取得記錄大小調整建議。 或者,您可以使用現有伺服器上的性能計數器來進行記錄大小判斷。 公式很簡單:監視工作負載下的數據磁碟輸送量(Avg Write Bytes/Sec
),並用它來計算填滿不同大小記錄所需的時間量。 例如,50 MB/秒的數據磁碟輸送量會使 120 GB 的記錄包裝在 120 GB 中除以 50 MB/秒,也就是 2,400 秒或 40 分鐘。 因此,在包裝的記錄檔為 40 分鐘之前,無法連線到目的地伺服器的時間量。 如果記錄檔換行,但目的地再次變成可連線,來源會透過點陣圖記錄重新執行區塊,而不是主要記錄檔。 記錄檔的大小不會影響效能。
Only the data disk from the source cluster should be backed up. The Storage Replica log disks should not be backed up because a backup can conflict with Storage Replica operations.
我應該選擇哪一個拓撲:延展式叢集、叢集對叢集或伺服器對伺服器?
記憶體複本有三個主要設定:延展式叢集、叢集對叢集和伺服器對伺服器。 每個拓撲都有不同的優點。
如果您的工作負載需要透過協調流程進行自動故障轉移,例如在私人雲端叢集 Hyper-V 或 SQL Server FCI 中,延展式叢集拓撲是理想的做法。 它也具有內建的圖形化介面故障轉移叢集管理員,方便使用。 它會透過持續性保留,使用儲存空間、SAN、iSCSI 和 RAID 的傳統非對稱叢集共用儲存架構。 您可以使用最少兩個節點來執行此拓撲。
叢集對叢集拓撲會使用兩個不同的叢集。 如果您想要手動故障轉移,或布建第二個月臺以進行災害復原,而不是日常使用,則此拓撲是理想的。 協調流程是手動的。 不同於延展式叢集拓撲,您可以在此設定中使用儲存空間直接存取(如需注意事項,請參閱記憶體複本常見問題和叢集對叢集檔)。 您可以使用最少四個節點來執行此拓撲。
如果您要執行無法叢集的硬體,伺服器對伺服器拓撲就很理想。 它需要手動故障轉移和協調流程。 它非常適合分公司與中央數據中心之間的廉價部署,特別是當您使用異步複寫時。 此組態通常可以取代您用於單一主要災害復原案例的分散式文件系統複寫 (DFS 複寫)保護的文件伺服器實例。
在所有情況下,拓撲都支援在實體硬體上執行,以及在虛擬機上執行。 在虛擬機上,基礎 Hypervisor 不需要 Hyper-V。 例如,您可以使用 VMware、KVM 或 Xen。
儲存體復本也有伺服器對自我模式,您可以在同一部計算機上將復寫指向兩個不同的磁碟區。
儲存體複本是否支援重複資料刪除?
Yes. 在來源伺服器上的磁碟區上啟用重複資料刪除,並在復寫期間,目的地伺服器會收到磁碟區的重複數據刪除復本。
Although you should install Data Deduplication on both the source and the destination servers (see Install and enable Data Deduplication), it's important not to enable Data Deduplication on the destination server. 記憶體複本只允許在來源伺服器上寫入。 因為重複資料刪除會寫入磁碟區,所以它應該只在來源伺服器上執行。
我可以在 Windows Server 2019 與 Windows Server 2016 之間復寫嗎?
Unfortunately, we don't support creating a new partnership between Windows Server 2019 and Windows Server 2016. You can safely upgrade a server or cluster running Windows Server 2016 to Windows Server 2019 and any existing partnerships continue to work.
若要改善 Windows Server 2019 的複寫效能,合作關係的所有成員都必須執行 Windows Server 2019。 您也必須刪除現有的合作關係和相關聯的復寫群組,然後使用植入的數據重新建立它們(當您在 Windows Admin Center 中建立合作關係或使用 New-SRPartnership
Cmdlet 時)。
如何回報記憶體複本或文件的問題?
如需記憶體複本的技術支援,您可以在 Microsoft Q & A 張貼,或連絡 Microsoft Business Support。
For issues with this documentation, see the Feedback section at the bottom of this page, and select This page.
記憶體複本是否可以設定為雙向複寫?
記憶體複本是單向複寫技術。 它只會根據每個磁碟區從來源復寫到目的地。 方向可以隨時反轉,但仍只以一個方向複寫。
您可以讓一組磁碟區(來源和目的地)以一個方向復寫,並以相反方向復寫不同的磁碟驅動器集(來源和目的地)。
例如,您想要設定伺服器對伺服器複寫。 Server1 和 Server2 各有驅動器號 L:
、M:
、N:
和 O:
。 您想要將磁碟驅動器 M:
從 Server1
復寫至 Server2
,並將磁碟驅動器 O:
從 Server2
復寫至 Server1
。 只要每個群組都有個別的記錄磁碟驅動器,您就可以使用此設定:
-
Server1
來源磁碟驅動器M:
來源記錄磁碟驅動器L:
使用目的地記錄磁碟驅動器Server2
復寫至drive M:
目的地L:
。 -
Server2
來源磁碟驅動器O:
來源記錄磁碟驅動器,N:
使用目的地記錄磁碟驅動器Server1
復寫至drive O:
目的地N:
。
您可以將叢集磁碟置於維護模式嗎?
記憶體復本會封鎖任何叢集磁碟進入維護模式。 對於某些工作,例如啟用或停用 BitLocker,磁碟必須處於維護模式。 對於需要磁碟處於維護模式的工作,必須先中斷合作關係,然後在工作完成時再次建立。
您可以在不同的作系統版本之間設定記憶體複本嗎?
如果復寫記錄版本不相符,或兩部伺服器不支援功能,記憶體複本會封鎖新的合作關係。 記憶體複本壓縮是作系統版本之間不符合的功能範例,因為它第一次新增於 Windows Server 2022 中。 嘗試設定與不支援功能之伺服器的合作關係,會傳回「不支援要求的作業」錯誤。
下表顯示目前的記錄版本互作性矩陣:
從 /到 複寫 | Windows Server 2016 | Windows Server 2019 | Windows Server 2022 |
---|---|---|---|
Windows Server 2016 | |||
Windows Server 2019 | |||
Windows Server 2022 |
Related content
- 儲存體複本概觀
- 使用共用記憶體 Stretch 叢集複寫
- 伺服器對伺服器記憶體複寫
- 叢集對叢集記憶體複寫
- 記憶體複本:已知問題
- Storage overview
- 儲存空間直接存取