您可以使用儲存體複本設定兩部伺服器來同步處理資料,讓每個都有相同磁碟區的相同複本。 本文說明伺服器對伺服器復寫組態,以及如何設定和管理環境。
若要管理記憶體複本,您可以使用 Windows Admin Center 或 PowerShell。
如需如何在 Windows Admin Center 中使用記憶體複本的概觀,請參閱下列影片:
必要條件
Active Directory 網域服務樹系。 (您不需要執行 Windows Server 2016。
執行 Windows Server 2019 或 Windows Server 2016 Datacenter 的兩部伺服器。
如果您執行的是 Windows Server 2019,如果只復寫大小高達 2 TB 的單一磁碟區適合您的案例,則可以改用 Standard Edition。
兩組存儲設備,可包括序列連接 SCSI (SAS) “Just a Bunch of Disks” 機箱 (JBODs)、光纖通道存儲區域網路 (FC SAN)、網際網路小型電腦系統介面 (iSCSI) 目標,或本機 SCSI 或序列先進技術附件 (SATA) 存儲設備。 記憶體應該包含硬碟 (HDD) 和固態硬碟 (SSD) 媒體的組合。 您可以讓每個記憶體集只提供給每部伺服器,且沒有共用存取權。
每組記憶體都必須支援建立至少兩個虛擬磁碟,一個用於復寫的數據,一個用於記錄。 實體存放裝置的所有資料磁碟上,必須都要有相同的磁區大小。 實體存放裝置的所有記錄檔磁碟上,必須都要有相同的磁區大小。
每個伺服器上至少有一個乙太網路/TCP 連線進行同步復寫,但偏好使用遠端直接記憶體存取 (RDMA)。
適當的防火牆和路由器規則,允許因特網控制訊息通訊協定(ICMP)、伺服器消息塊(SMB)(埠 445 和 SMB 直接傳輸的埠 5445),以及 Web 服務管理(WS-Man)(埠 5985)所有節點之間的雙向流量。
伺服器之間的網路,其頻寬足以包含您的輸入/輸出 (I/O) 寫入工作負載,以及同步復寫的平均往返延遲 5 毫秒。 非同步複寫沒有延遲建議。
如果您在內部部署伺服器與 Azure 虛擬機之間複寫,您必須在內部部署伺服器與 Azure VM 之間建立網路連結。 若要建立連結,請使用 Azure ExpressRoute、使用 站對站 VPN 網關聯機,或在 Azure VM 中安裝 VPN 軟體,以將它們與您的內部部署網路連線。
復寫的記憶體不能位於包含 Windows作系統資料夾的磁碟驅動器上。
重要
在此案例中,每部伺服器都必須位於不同的實體站點或不同的邏輯站點。 每部伺服器都必須能夠透過網路與其他伺服器通訊。
您可以使用 Cmdlet 來驗證其中許多需求 Test-SRTopology
。 如果您在至少一部伺服器上安裝記憶體複本或安裝記憶體複本管理工具功能,即可存取此工具。 若要使用此工具,只要安裝並執行 Cmdlet。 本文稍後會包含詳細資訊。
Windows Admin Center 需求
若要同時使用 Storage Replica 和 Windows Admin Center,您需要下列項目:
系統 | 作業系統 | 必須用於 |
---|---|---|
兩部伺服器 (任何混合內部部署硬體、VM 和雲端 VM,包括 Azure VM) |
Windows Server 2019、Windows Server 2016 或 Windows Server(「半年通道」) | 儲存副本 |
一部電腦 | Windows 10 | Windows Admin Center (Windows 管理中心) |
注意
目前,您無法在 Azure 入口網站中使用 Windows Admin Center 來管理記憶體複本。 Windows Admin Center 2410 版和更新版本可用來管理記憶體複本。
詞彙
本逐步解說使用下列環境做為範例︰
兩部伺服器: SR-SRV05 和 SR-SRV06
代表兩個不同數據中心的邏輯「站點」:Redmond 和 Bellevue
步驟 1:在您的電腦上安裝及設定 Windows Admin Center
如果您使用 Windows Admin Center 來管理記憶體複本,請使用下列步驟來設定您的電腦來管理記憶體複本。
下載和安裝 Windows Admin Center。
下載和安裝遠端伺服器系統管理工具。
如果您使用 Windows 10 版本 1809 或更新版本,請從功能隨選安裝功能 RSAT:Windows PowerShell 的記憶體複本模組。
以系統管理員身分開啟 PowerShell 工作階段:
- 選擇 開始。
- 輸入 PowerShell。
- 以滑鼠右鍵按兩下 [Windows PowerShell]。
- 選擇 以系統管理員身份執行。
輸入下列命令,在本機計算機上啟用 WS-Man 通訊協定,並在用戶端上設定遠端管理的預設組態:
winrm quickconfig
輸入 Y 以啟用 WinRM 服務,並啟用 WinRM 防火牆例外狀況。
步驟 2:布建作系統、功能、角色、記憶體和網路
使用 Windows Server 安裝類型,在兩個伺服器節點上安裝 Windows Server (桌面體驗)。
您可以使用 透過 ExpressRoute 連線到您網路的 Azure VM。
注意
從 Windows Admin Center 1910 版開始,您可以在 Azure 中自動設定目的地伺服器。 如果您選擇該選項,則請在來源伺服器上安裝 Windows Server,然後跳至步驟 3:設定伺服器對伺服器複寫。
新增網路資訊,並將伺服器加入與 Windows 10 管理 PC (若您要使用) 相同的網域,然後重新啟動伺服器。
注意
如需其餘步驟,請以網域使用者身分登入,成為所有伺服器上內建系統管理員群組的成員。 如果您正在進行圖形伺服器安裝或使用 Windows 10 計算機,請務必在其餘步驟中提升 PowerShell 和命令提示字元權限。
將第一組 JBOD 儲存裝置機箱、iSCSI 目標、FC SAN 或本機固定磁碟直接連結存儲設備 (DAS) 連接到 Redmond 網站中的伺服器。
將第二組存放裝置連線至 Bellevue 網站中的伺服器。
因此,請安裝最新的廠商記憶體和機箱韌體和驅動程式、最新的廠商主機總線適配卡(HBA)驅動程式、最新的廠商 BIOS/UEFI 韌體、最新的廠商網路驅動程式,以及這兩個節點上的最新主機板晶元組驅動程式。 視需要重新啟動節點。
注意
請參閱硬體廠商檔,以設定共用記憶體和網路硬體。
請確定伺服器的 BIOS/UEFI 設定可啟用高效能,例如停用 C 狀態、設定 QPI 速度、啟用非一般記憶體存取 (NUMA),以及設定最高的記憶體頻率。 確定將 Windows Server 中的電源管理設定為 [高效能]。 視需要重新啟動。
依照下列各節所述設定角色:
Windows Admin Center 方法
- 在 Windows Admin Center 中,移至 [伺服器管理員],然後選取其中一部伺服器。
- 移至 [角色與功能]。
- 選取 [功能>記憶體複本],然後選取 [ 安裝]。
- 在其他伺服器上重複這些步驟。
伺服器管理員方法
執行 ServerManager.exe 並建立伺服器群組。 新增所有伺服器節點。
在每個節點上安裝檔案伺服器和記憶體複本角色和功能。 然後重新啟動節點。
Windows PowerShell 方法
在 SR-SRV06 或遠端管理計算機上,在 Windows PowerShell 控制台中執行下列命令,以安裝必要的功能和角色。 然後重新啟動節點。
在 [伺服器管理員]中,選取 [建立伺服器群組],然後新增所有伺服器節點。
在每個節點上安裝 檔案伺服器 角色和 儲存器複本 功能,然後重新啟動。 若要深入瞭解,請參閱 安裝或卸載角色、角色服務或功能
如需這些步驟的詳細資訊,請參閱 安裝或卸載角色、角色服務或功能
依照下列步驟所述設定記憶體。
重要
- 您必須在每個機箱上建立兩個磁碟區︰一個供資料使用,而另一個供記錄檔使用。
- 記錄和數據磁碟必須初始化為 GUID 分割區數據表 (GPT),而不是主要開機記錄 (MBR)。
- 這兩個數據磁碟區的大小必須相同。
- 這兩個記錄磁碟區的大小應該相同。
- 所有複寫的資料磁碟都必須有相同的磁區大小。
- 所有記錄檔磁碟都必須有相同的磁區大小。
- 記錄檔磁碟區應該使用 Flash 架構的儲存體,例如 SSD。 我們建議使用速度較快的日誌存儲。 記錄磁碟區絕對不能用於其他工作負載。
- 數據磁碟可以使用 HDD、SSD 或分層組合,而且可以使用鏡像或同位空間或 RAID 1、RAID 10、RAID 5 或 RAID 50。
- 如果未指定記錄檔大小,則記錄大小預設為8 GB。 根據記錄需求和組織需求,您的記錄磁碟區必須至少為10 GB或更大。
- 檔伺服器角色僅是Test-SRTopology運作所必需的。 它會開啟必要的防火牆埠進行測試。
針對 JBOD 機箱:
以確保每部伺服器只能看到該網站的存儲機箱,並已正確設定 SAS 連接。
透過儲存空間配置儲存:使用 Windows PowerShell 或伺服器管理員,完成 在 Stand-Alone 伺服器上部署儲存空間 中的步驟 1 至 3。
針對 iSCSI 儲存體:
請確保每個叢集只能看到該網站的存儲設備。 如果您使用 iSCSI,您應該使用多個網路適配器。
使用您的廠商檔布建記憶體。 如果您使用 Windows 型的 iSCSI 目標,請參閱 iSCSI 目標區塊存儲使用指南。
針對 FC SAN 儲存體:
請確保每個叢集只能看到該站點的存儲設備,而且您已正確地劃分主機區域。
使用您的廠商檔布建記憶體。
針對本地固定硬碟儲存:
請確定記憶體不包含系統磁碟區、頁面檔案或傾印檔案。
使用您的廠商檔布建記憶體。
啟動 Windows PowerShell 並使用
Test-SRTopology
Cmdlet 來判斷您是否符合所有記憶體複本需求。 您可以使用 cmdlet 的僅限需求模式進行快速測試,或使用長時間運行的效能評估模式。例如,若要驗證建議的節點各有 F: 磁碟區和 G: 磁碟區,以及執行測試 30 分鐘,請使用此命令:
MD c:\temp
重要
如果您在評估期間,在指定的來源磁碟區上使用沒有寫入 I/O 負載的測試伺服器,請考慮新增工作負載以產生有用的報告。 您應該使用類似生產環境的工作負載進行測試,以查看實際數目和建議的記錄大小。 或者,在測試期間將某些檔案複製到來源磁碟區,或下載並執行 DISKSPD 以產生寫入 I/O。 例如,將執行 10 分鐘之低寫入 I/O 工作負載的範例複製到 D: 磁碟區:
Diskspd.exe -c1g -d600 -W5 -C5 -b8k -t2 -o2 -r -w5 -i100 -j100 d:\test
檢查 TestSrTopologyReport.html 報告,以確保您符合儲存複本需求。
步驟 3:設定伺服器對伺服器複寫
使用 Windows Admin Center
新增來源伺服器:
- 選取 ,然後新增。
- 選取 [新增伺服器連線]。
- 輸入伺服器的名稱,然後選取 [ 提交]。
在 [ 所有連線] 窗格中,選取來源伺服器。
在 [ 工具] 窗格中,選取 [ 記憶體複本]。
選取 [新增],以建立新的合作關係。
建立新的 Azure VM,以用作合作關係的目的地:
在 [與另一伺服器進行複寫] 下,選取 [使用新的 Azure VM],然後選取 [下一步]。 如果您看不到此選項,則請確定您正在使用 Windows Admin Center 1910 版或更新版本。
指定來源伺服器資訊和複寫群組名稱,然後選取 [下一步]。
此步驟會開始自動選取 Windows Server 2019 或 Windows Server 2016 Azure VM 作為移轉來源目的地的程式。 儲存體移轉服務建議符合來源的 VM 大小,但您可以選取 查看所有大小 以解除這項限制。 清查數據可用來自動設定受控磁碟及其文件系統,以及將新的 Azure VM 加入 Active Directory 網域。
在 Windows Admin Center 建立 Azure VM 之後,請提供複寫組名,然後選取 [ 建立]。 Windows Admin Center 接著會開始一般儲存體複本初始同步處理程序,以開始保護您的資料。
以下影片示範如何使用記憶體復本移轉至 Azure VM:
提供合作關係的詳細資訊,然後選取 建立。
注意
從 Windows Admin Center 中移除「Storage Replica」的合作關係並不會移除複寫群組名稱。
使用 Windows PowerShell
接下來,使用 Windows PowerShell 設定伺服器對伺服器複寫。 您必須直接在節點上或從包含 Windows Server 遠端伺服器管理工具的遠端管理電腦執行下列步驟。
請檢查以確認您正以系統管理員身份使用具有提升權限的 PowerShell 控制台。
設定伺服器間的複寫。 指定來源和目的地磁碟、來源和目的地記錄、來源和目的地節點,以及記錄大小。
New-SRPartnership -SourceComputerName sr-srv05 -SourceRGName rg01 -SourceVolumeName f: -SourceLogVolumeName g: -DestinationComputerName sr-srv06 -DestinationRGName rg02 -DestinationVolumeName f: -DestinationLogVolumeName g: -LogType Raw
以下是範例輸出:
DestinationComputerName : SR-SRV06 DestinationRGName : RG02 SourceComputerName : SR-SRV05 PSComputerName :
重要
預設記錄大小為 8 GB。 根據 Cmdlet 的結果
Test-SRTopology
,您可以選擇使用-LogSizeInBytes
參數來設定較高或較低的值。若要取得複寫來源和目的地狀態,請使用
Get-SRGroup
和Get-SRPartnership
Cmdlet:Get-SRGroup Get-SRPartnership (Get-SRGroup).replicas
以下是範例輸出:
CurrentLsn : 0 DataVolume : F:\ LastInSyncTime : LastKnownPrimaryLsn : 1 LastOutOfSyncTime : NumOfBytesRecovered : 37731958784 NumOfBytesRemaining : 30851203072 PartitionId : c3999f10-dbc9-4a8e-8f9c-dd2ee6ef3e9f PartitionSize : 68583161856 ReplicationMode : synchronous ReplicationStatus : InitialBlockCopy PSComputerName :
依照下列步驟所述,判斷複寫進度。
在來源伺服器上執行下列命令,並檢查事件標識碼 5015、5002、5004、1237、5001 和 2200:
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -Max 20
在目的地伺服器上,執行下列命令以查看顯示合作夥伴關係建立的儲存複本事件。 此事件會指出複製的位元組數目,以及建立合作關係所花費的時間長度。
例如:
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq "1215"} | fl
以下是範例輸出:
TimeCreated : 4/8/2016 4:12:37 PM ProviderName : Microsoft-Windows-StorageReplica Id : 1215 Message : Block copy completed for replica. > [!NOTE] > By design, Storage Replica dismounts the destination volumes and their drive letters or mount points.
或者,複本的目的地伺服器群組總是顯示剩餘需要複製的位元組數目。 您可以使用 PowerShell 來查詢資訊。
例如:
(Get-SRGroup).Replicas | Select-Object numofbytesremaining
以下是進度範例(不會終止):
while($true) { $v = (Get-SRGroup -Name "RG02").replicas | Select-Object numofbytesremaining [System.Console]::Write("Number of bytes remaining: {0}`r", $v.numofbytesremaining) Start-Sleep -s 5 }
在目的地伺服器上執行下列命令,並檢查事件標識碼 5009、1237、5001、5015、5005 和 2200,以瞭解處理進度。 此序列中應該不會有任何錯誤警告。 將會有許多 1237 事件識別符,表示處理進度。
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | FL
步驟 4:管理複寫
最後,管理與操作您的伺服器對伺服器複製的基礎設施。 您可以直接在節點上或從包含 Windows Server 遠端伺服器管理工具的遠端管理計算機,直接執行下列步驟。
使用
Get-SRPartnership
和Get-SRGroup
Cmdlet 來判斷複寫的目前來源和目的地及其狀態。若要測量複寫效能,請在來源和目的地節點上使用
Get-Counter
Cmdlet。 計數器名稱如下︰\存儲複本分區 I/O 統計資料(*)\刷新暫停次數
\儲存體複本分割區I/O統計資料(*)\待處理清除I/O數量
\Storage Replica Partition I/O 統計資料(*)\上次日誌寫入的請求數量
Step 2: \Storage Replica Partition I/O Statistics(*)\平均刷新佇列長度
\儲存複本分割區 I/O 統計(*)\當前刷新佇列長度
\儲存複本分區 I/O 統計資料(*)\應用程式寫入請求數
\Storage Replica Partition I/O Statistics(*)\平均每次日誌寫入的請求數量
\Storage Replica Partition I/O Statistics(*)\平均應用程式寫入延遲
\Storage Replica Partition I/O Statistics(*)\平均應用程式讀取延遲
\Storage Replica 統計資料(*)\Target RPO
\存儲副本統計資訊(*)\當前恢復點目標
\Storage Replica Statistics(*)\平均日誌隊列長度
\儲存複本統計資料(*)\目前日誌佇列長度
\Storage Replica Statistics(*)\接收的位元組總數
\存儲複本統計資料(*)\已傳送的總字節數
\Storage Replica Statistics(*)\Avg. Network 發送延遲時間
\Storage Replica Statistics(*)\複寫狀態
\儲存複本統計資料(*)\平均訊息往返延遲時間
\存儲副本統計資料(*)\最後恢復用時
\儲存副本統計數據(*)\已清除復原交易數量
\存儲副本統計資料(*)\復原交易數量
\Storage Replica Statistics(*)\已刷新的複寫交易數量
\儲存體複本統計(*)\複製交易數量
\儲存複本統計資料(*)\最大日誌序列號
\儲存複本統計資料(*)\收到的訊息數量
\儲存複本統計資料(*)\發送訊息數量
如需 Windows PowerShell 中效能計數器的詳細資訊,請參閱 Get-Counter。
若要從一個站點移動復寫方向,請使用
Set-SRPartnership
cmdlet:$params = @{ NewSourceComputerName = 'SR-SRV06' SourceRGName = 'RG02' DestinationComputerName = 'SR-SRV05' DestinationRGName = 'RG01' } Set-SRPartnership @params
警告
Windows Server 會在進行初始同步處理時防止角色切換。 如果您嘗試在允許初始復寫完成之前先切換,可能會發生數據遺失。 在初始同步處理完成之前,請勿強制切換方向。
檢查事件記錄檔以查看複寫變更和復原模式的方向,然後協調。 然後,寫入 I/O 可以寫入新來源伺服器的記憶體。 變更復寫方向會封鎖原始來源計算機上的寫入 I/O。
若要移除複寫,在任何節點上使用
Get-SRGroup
、Get-SRPartnership
、Remove-SRGroup
及Remove-SRPartnership
。 請確定您只在目前的復寫來源上執行Remove-SRPartnership
Cmdlet,而不是在目的地伺服器上執行。 在兩部伺服器上執行Remove-SRGroup
。例如,若要從兩部伺服器移除所有複寫,請執行下列命令:
Get-SRPartnership Get-SRPartnership | Remove-SRPartnership Get-SRGroup | Remove-SRGroup
以記憶體複本取代 DFS 複寫
許多Microsoft客戶會將 Windows 服務 DFS 複寫部署為非結構化用戶數據的災害復原解決方案,例如主資料夾和部門共用。 自 Windows Server 2003 R2 起的所有版本都隨附 DFS 複寫,並在低頻寬網路上運作。 對於具有許多節點的高延遲和低變更環境而言,這是一個吸引人的替代方案。
不過,DFS 複寫作為一種資料複寫解決方案,具有一些值得注意的限制︰
- 它不會複寫正在使用或已開啟的檔案。
- 它不會同步複寫。
- 其非同步複寫延遲可能是好幾分鐘,好幾小時,甚至好幾天。
- 它所依賴的資料庫在電源中斷後可能需要冗長的一致性檢查。
- 它通常設定為多主模式,允許變更在雙向之間傳遞,而且可能覆寫更新的資料。
儲存體複本沒有這些限制。
不過,儲存體複本確實有數個限制,可能會在某些環境中降低其吸引力。
- 它只允許磁碟區之間的一對一複寫。 有可能在多部伺服器之間進行不同磁碟區的複製。
- 雖然它支援異步復寫,但並非針對低頻寬、高延遲的網路所設計。
- 它不允許使用者在復寫進行時存取目的地伺服器上的受保護數據。
如果在您的情境中這些因素未構成阻礙,您可以使用存放裝置複本技術,將 DFS 複寫伺服器替換為更新的存放裝置複本技術。
概括而言,此程式具有下列步驟:
在兩部伺服器上安裝 Windows Server,並設定您的記憶體。 您可能需要升級現有的伺服器集,或執行作系統的全新安裝。
請確定您想要復寫的任何數據都存在於一或多個數據磁碟區上,而不是在 C: 磁碟驅動器上。
- 您也可以在其他伺服器上植入數據,以節省時間、使用備份或檔案複本,或使用精簡布建的記憶體。 與 DFS 複寫不同,不需要讓類似元數據的安全性完全匹配。
將來源伺服器上的資料共用,並透過 DFS 命名空間進行存取。 如果伺服器名稱變更為災害站台中的 DFS 命名空間,請務必確保使用者仍然可以存取它。
- 您可以在目的地伺服器上建立相符的共用,這在一般作業期間無法使用。
- 請勿將目的地伺服器新增至 DFS 命名空間。 如果您這樣做,請確定其所有資料夾目標都已停用。
啟用記憶體複本複寫並完成初始同步處理。復寫可以是同步或異步的。
- 我們建議同步復寫,以確保目的地伺服器上的 I/O 數據一致性。
- 我們強烈建議使用 vssadmin 或其他工具來啟用磁碟區陰影複製,並定期擷取快照集。 此動作可確保應用程式一致地將數據檔排清到磁碟。 如果發生災害,您可以從可能以異步方式部分複寫之目的地伺服器上的快照集復原檔案。 快照集會與檔案一起複寫。
正常運作,直到發生災害為止。
將目的地伺服器切換為新的來源,其會將復寫的磁碟區呈現給使用者。
如果您選擇使用同步復寫,除非使用者在遺失來源伺服器時,使用未使用事務保護來寫入數據的應用程式,否則不需要進行數據還原。 如果您選擇使用異步復寫,磁碟區陰影複製服務 (VSS) 快照集掛接的需求較高,但請考慮在所有情況下使用 VSS 來進行應用程式一致快照集。
將伺服器及其共用新增為 DFS 命名空間資料夾目標。
然後,用戶可以存取其數據。
注意
災害復原規劃是一個複雜的主題,需要對規劃進行重大且詳細的注意。 強烈建議您建立操作手冊,並執行年度的即時故障轉移演練。 當真正的災害發生時,混亂主宰,而有經驗的人員可能無法找到。
新增透過 ExpressRoute 連線至您網路的 Azure VM
在 Azure 入口網站中,建立 ExpressRoute 的實例。
在 ExpressRoute 核准之後,資源群組會新增至訂用帳戶。 若要檢視這個新群組,請移至 [資源群組]。 記下虛擬網路名稱。
建立 新的資源群組。
新增 網路安全組。 當您建立網路安全組時,請選取與您建立之 ExpressRoute 實例相關聯的訂用帳戶標識符,然後選取與 ExpressRoute 相關聯的資源群組。
將您需要的任何輸入和輸出安全性規則清單新增至網路安全性群組。 例如,您可能想要允許遠端桌面存取 VM。
建立具有下列設定的 Azure VM :
- 公用 IP 位址:無
- 虛擬網路:從使用 ExpressRoute 實例新增的資源群組選取您記下的虛擬網路名稱。
- 網路安全組(防火牆):選取您建立的網路安全組。
建立 VM 之後,請參閱 步驟 2:布建作系統、功能、角色、記憶體和網路。