網管人雜誌
本文刊載於 網管人雜誌第 165 期 - 2019 年 10 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。文章目錄
前言儲存體複本部署模式
伺服器對伺服器
延展式叢集
叢集對叢集
Azure 相同區域叢集對叢集
Azure 跨地區叢集對叢集
儲存體複本資料複寫機制
同步複寫
非同步複寫
儲存體複本軟體授權
實戰演練 - 儲存體複本機制
安裝儲存體複本伺服器功能
複寫磁碟區規劃
執行儲存體複本環境測試工作任務
建立伺服器對伺服器複寫機制
透過 WAC 管理儲存體複本機制
結語
前言
過去,當企業和組織需要針對儲存資源中存放的資料進行遠端複寫時,除了採用的儲存裝置必須支援之外,還必須要注意許多事項,舉例來說,本地端和目的端兩者的儲存裝置必須同一廠牌,並且儲存裝置型號通常也必須相同或更高等級……等,所以採用傳統儲存裝置在建構遠端資料複寫機制時,除了部署架構較為複雜之外,所花費的 IT 預算通常也所費不貲。從 Windows Server 2016 版本開始,新增「儲存體複本」(Storage Replica,SR)特色功能,這項儲存體複本機制與傳統儲存設備(DAS / NAS / SAN)無關,屬於「區塊層級」(Block Level)的遠端資料複寫儲存特色功能,並且支援「同步」(Synchronous)和「非同步」(Asynchronous)兩種不同的遠端資料複寫方式,並採用 SMB 3 通訊協定進行遠端資料複寫機制。
儲存體複本部署模式
Windows Server 儲存體複本機制支援多種不同的部署模式,例如,伺服器對伺服器(Server-to-Server)、叢集對叢集(Cluster-to-Cluster)……等,以便因應企業和組織多樣化的遠端資料複寫需求。伺服器對伺服器
採用「伺服器對伺服器」(Server-to-Server)儲存體複本部署模式時,在 Active Directory 網域環境中的二台伺服器,無論單台伺服器採用 JBOD、SAN、iSCSI 或是本機 SAS/SATA 儲存資源,都可以透過儲存體複本機制,將二台伺服器的儲存資源進行資料複寫處理(如圖 1 所示)。請注意,倘若其中一台伺服器為公有雲 Azure VM 虛擬主機時,企業內部執行儲存體複本的伺服器,必須透過 Express Route 或 Site-to-Site VPN,與公有雲 Azure VM 虛擬主機進行連線。
圖 1、儲存體複本伺服器對伺服器部署模式示意圖
值得注意的是,二台伺服器應該建立至少「二個磁碟」,其中一個磁碟區負責儲存體複本機制「日誌檔」(Logs)用途,另一個磁碟區則是主要進行「資料複寫」(Replicated Data)用途。同時,這二個磁碟區不可以使用包含 Windows 作業系統的磁碟區(通常為 C 槽)。
延展式叢集
採用「延展式叢集」(Stretch Cluster)儲存體複本部署模式時,與前一個伺服器對伺服器部署模式最大的不同,在於管理人員可以在延展式叢集架構中,在不同的二個站台內形成一個邏輯的容錯移轉叢集(如圖 2 所示),同時在個別站台內,依然維持傳統容錯移轉叢集使用共用儲存資源的運作架構,然後再透過儲存體複本機制同步二個站台中儲存資源的內容。
圖 2、儲存體複本延展示叢集部署模式示意圖
在運作環境需求方面,與前一個使用案例伺服器對伺服器大致相同,值得注意的部份是,二個站台必須為「同一個」Active Directory 網域樹系內,並且單一站台中的容錯移轉叢集內,至少需要「二台」成員節點主機(最多可支援至 64 台成員節點主機)。
叢集對叢集
採用「叢集對叢集」(Cluster-to-Cluster)儲存體複本部署模式時,與延展式叢集部署模式最大的不同點,在於二個不同的資料中心站台內擁有個別的容錯移轉叢集。同時,在儲存資源方面除了支援傳統共用儲存設備之外,也支援新一代的 S2D 超融合基礎架構儲存資源(如圖 3 所示)。
圖 3、儲存體複本叢集對叢集部署模式示意圖
在運作環境需求方面,與前一個使用案例延展式叢集大致相同,除了二個站台必須為同一個 Active Directory 網域樹系內,並且單一站台中的容錯移轉叢集內至少需要「二台」成員節點主機之外,當採用傳統共享儲存設備時,仍可支援最多 64 台成員節點主機,倘若採用新興的 S2D 超融合基礎架構,則最多支援至 16 台成員節點主機。
Azure 相同區域叢集對叢集
企業和組織也可以將儲存體複本機制,套用於 Microsoft Azure 公有雲環境中,由於採用 Azure 公有雲環境會有「區域」(Region)的差異。首先,我們可以在「同一個區域」(The same region)的 Azure 公有雲環境中(如圖 4 所示),透過儲存體複本機制輕鬆達成叢集對叢集的資料複寫目的。
圖 4、Azure 公有雲「相同」區域叢集對叢集儲存體複本部署模式示意圖
在運作環境需求方面,由於採用 Azure 公有雲相同區域,所以應部署至相同的資源群組和虛擬網路環境,確保相同區域的二個容錯移轉叢集,能夠透過虛擬網路互相存取,進而達成儲存資源執行儲存體複本的目標。
Azure 跨地區叢集對叢集
在 Microsoft Azure 公有雲環境中,當企業和組織希望將容錯移轉叢集部署在「跨區域」(Cross Region)的 Azure 資料中心,並且達成跨區域之間叢集對叢集的資料複寫目標時,儲存體複本仍然可以無縫支援(如圖 5 所示)。
圖 5、Azure 公有雲「跨」區域叢集對叢集儲存體複本部署模式示意圖
在運作環境需求方面,由於採用 Azure 公有雲跨區域的關係,所以二個區域的虛擬網路必須特別注意,例如,「虛擬網路閘道」(Virtual Network Gateway)的部份,必須確保二個區域之間可以互相到達和連通,同時二個區域之間的網路安全性群組也必須放行相關網路流量允許通過……等,屆時才能達到儲存資源執行儲存體複本的目標。
儲存體複本資料複寫機制
在儲存體複本資料複寫機制方面,支援「同步」(Synchronous)和「非同步」(Asynchronous)兩種不同的遠端資料複寫方式,以便因應企業和組織不同的網路頻寬需求和資料可用性等級。在資料複寫傳輸方面採用「伺服器訊息區塊」(Server Message Block,SMB)和「SMB Direct(SMB over RDMA)」通訊協定,所以管理人員在建置儲存體複本資料複寫機制時,必須允許「SMB Port 445」和「WS-MAN Port 5985」網路流量通行,倘若啟用 RDMA 機制還必須允許「SMB Direct Port 5445」網路流量通行。
同步複寫
簡單來說,管理人員採用「同步複寫」的儲存體複本機制時,當應用程式寫入資料在儲存體複本「來源端」時,系統並不會立即確認資料 IO 動作已完成,必須等到資料複寫至「遠端目的地」並傳回 IO 確認動作後,才會回覆給上層應用程式完成資料 IO 的動作(如圖 6 所示)。下列,為同步複寫模式的資料 IO 詳細運作步驟:1. 上層應用程式發出資料寫入 IO 需求。
2. 來源端伺服器將資料寫入至本地端儲存資源「日誌」磁碟區內,同時透過 SMB 通訊協定將資料複寫至遠端目的地伺服器。
3. 遠端目的地伺服器,完成複寫資料寫入至本地端儲存資源日誌磁碟區的動作。
4. 目的端伺服器完成資料寫入動作後,回覆來源端伺服器已完成資料 IO 動作。
5. 來源端伺服器回覆上層應用程式已完成資料 IO 動作。
請注意! 採用同步複寫模式,伺服器之間的網路頻寬必須滿足資料 IO 寫入工作負載之外,網路環境的延遲時間至少必須為「5 ms」的平均數值。否則,可能會發生應用程式效能降低的風險。
圖 6、儲存體複本機制同步複寫模式運作架構示意圖
因此,採用儲存體複本的同步複寫模式時,倘若來源端儲存資源故障損壞,此時管理人員可以將應用程式容錯移轉至遠端站台,繼續存取複寫至遠端目的地的儲存資源,並且不會有任何資料遺失的情況發生。
非同步複寫
至於採用「非同步複寫」的儲存體複本機制時,當應用程式寫入資料在儲存體複本「來源端」時,系統不會等待「遠端目的地」傳回 IO 確認動作,便立即回覆給上層應用程式已經完成資料 IO 的動作,然後才執行將資料複寫至遠端目的地伺服器的動作(如圖 7 所示)。下列,為非同步複寫模式的資料 IO 詳細運作步驟:1. 上層應用程式發出資料寫入 IO 需求。
2. 來源端伺服器將資料寫入至本地端儲存資源「日誌」磁碟區內。
3. 來源端伺服器回覆上層應用程式已完成資料 IO 動作。
4. 來源端伺服器透過 SMB 通訊協定將資料複寫至遠端目的地伺服器。
5. 遠端目的地伺服器,完成複寫資料寫入至本地端儲存資源日誌磁碟區的動作。
6. 目的端伺服器完成資料寫入動作後,回覆來源端伺服器已完成資料 IO 動作。
採用非同步複寫模式時,微軟官方並沒有建議的網路延遲時間。
圖 7、儲存體複本機制非同步複寫模式運作架構示意圖
由於,非同步複寫模式在災難事件發生時,可能會有資料來不及複寫至遠端目的地伺服器造成資料遺失的風險。因此,一般都將非同步複寫模式用於「跨地理位置」資料中心的 DR 解決方案中。
儲存體複本軟體授權
在軟體授權方面,原則上無論採用 Windows Server 2019 標準版或資料中心版,都可以使用儲存體複本機制,值得注意的是,採用 Windows Server 2019 標準版時,執行複本抄寫的單一磁碟區空間大小的最大上限為「2 TB」(如圖 8 所示),若是採用 Windows Server 2019 資料中心版則無限制磁碟區空間大小。
圖 8、採用 Windows Server 2019 標準版儲存體複本單一磁碟區空間最上大限 2 TB
實戰演練 - 儲存體複本機制
在本文實作環境中,實作儲存體複本機制的兩台伺服器,將採用 Windows Server 2019 資料中心版本,至於伺服器的實體擺放位置,則是分別擺放在企業總部內不同樓層的資料中心機房內,以便因應其中一個樓層的資料中心發生災難事件,並且這兩台伺服器處於同一個網域當中。安裝儲存體複本伺服器功能
請為實作儲存體複本機制的兩台伺服器,安裝「檔案伺服器」(File Server)角色及「儲存體複本」(Storage Replica)功能(如圖 9 所示)。事實上,檔案伺服器角色只有在稍後執行儲存體複本環境測試時才需要使用,並且會開啟必要的防火牆連接埠進行測試工作任務。
圖 9、為實作儲存體複本機制伺服器,安裝檔案伺服器角色和儲存體複本功能
複寫磁碟區規劃
在本文的實作環境中,為實作儲存體複本機制的兩台伺服器分別配置二顆硬碟,分別是 10 GB 用途為擔任日誌磁碟,並且給予 L 磁碟機代號和 SR-Log 磁碟標籤以利識別,以及 500 GB 用途為擔任資料磁碟區,並且給予 D 磁碟機代號和 SR-Data 磁碟標籤以利識別(如圖 10 所示)。
圖 10、為實作儲存體複本機制的兩台伺服器分別配置二顆硬碟
此外,在規劃設計儲存體複本機制磁碟時,必須注意下列項目:
- 日誌磁碟和資料磁碟,必須採用「GPT」(GUID Partition Table)而非 MBR 進行初始化。
- 實作儲存體複本機制的兩台伺服器,「日誌」磁碟儲存空間大小必須相同,並且至少要有 9 GB 的儲存空間,同時建議採用 SSD 固態硬碟等儲存效能較佳的儲存裝置。
- 實作儲存體複本機制的兩台伺服器,「資料」磁碟儲存空間大小必須相同,支援 HDD、SSD 或 RAID 等儲存裝置。
執行儲存體複本環境測試工作任務
完成儲存體複本運作環境前置作業後,便可以執行 Test-SRTopology 指令進行儲存複本環境測試作業,以便系統能夠根據目前的運作環境,判斷是否符合儲存體複本運作需求。管理人員可以看到測試指令的參數非常直覺,即指定來源端及目的端節點主機相關資訊,例如,電腦名稱、資料磁碟區代號、日誌磁碟區代號、測試時間、測試間隔...…等(如圖 11 所示)。下列為本文實作環境,以及執行儲存複本環境測試相關參數和參數值:- -SourceComputerName :SR-Node01,來源端主機電腦名稱。
- -SourceVolumeName :D 槽,來源端主機資料磁碟區代號。
- -SourceLogVolumeName :L 槽,來源端主機日誌磁碟區代號。
- -DestinationComputerName :SR-Node02,目的地主機電腦名稱。
- -DestinationVolumeName :D 槽,目的地主機資料磁碟區代號。
- -DestinationLogVolumeName :L 槽,目的地主機日誌磁碟區代號。
- -DurationInMinutes :5 分鐘,儲存體複本運作環境測試作業持續時間。
- -ResultPath :C:\tmp,儲存體複本環境測試報告產生路徑。
在正式營運環境時,測試時間建議至少需要 30 分鐘以上為佳。
圖 11、執行 Test-SRTopology 指令進行儲存複本環境測試作業
完成測試作業後,將會在指定的路徑產生名稱為「TestSrTopologyReport」加上日期和時間的 HTML 報表檔案,內容包括儲存體複本運作環境的 20 項測試作業結果、初始化同步效能測試、複本抄寫效能測試 …… 等內容(如圖 12 所示)。
圖 12、儲存體複本運作環境初始化同步效能測試結果
建立伺服器對伺服器複寫機制
現在,我們可以在儲存體複本運作環境中來源端伺服器,執行建立儲存複本機制的 New-SRPartnership 指令。同樣的,管理人員可以看到建立伺服器對伺服器複寫機制指令非常直覺,即指定來源端及目的端節點主機相關資訊(如圖 13 所示)。下列為本文實作環境,建立伺服器對伺服器複寫機制的相關參數和參數值:- -SourceComputerName: SR-Node01,來源端主機電腦名稱。
- -SourceRGName: SR-RG01,來源端主機的複寫群組名稱。
- -SourceVolumeName: D 槽,來源端主機資料磁碟區代號。
- -SourceLogVolumeName: L 槽,來源端主機日誌磁碟區代號。
- -DestinationComputerName: SR-Node02,目的地主機電腦名稱。
- -DestinationRGName: SR-RG02,目的地主機的複寫群組名稱。
- -DestinationVolumeName: D 槽,目的地主機資料磁碟區代號。
- -DestinationLogVolumeName: L 槽,目的地主機日誌磁碟區代號。
預設情況下,將會在日誌磁碟區內建立 8 GB 的日誌檔,管理人員也可以參考儲存體複本測試結果,搭配 -LogSizeInBytes 參數來指定日誌檔大小。
圖 13、建立伺服器對伺服器複寫機制
順利建立伺服器對伺服器複寫機制後,接著執行 Get-SRGroup 指令查詢複寫狀態,可以看到 ReplicationStatus 欄位狀態,由一開始的「WaitingForDestination」轉變為「InitialBlockCopy」,表示兩台伺服器之間正在進行資料區塊互相同步作業,並且透過工作管理員可以看到,正在進行資料磁碟區同步作業(如圖 14 所示)。
管理人員可以在目的地伺服器,執行「(Get-SRGroup).Replicas | Select-Object numofbytesremaining」指令,查詢剩餘多少 Bytes 需要進行初始複製。
圖 14、兩台伺服器之間正在進行資料區塊互相同步作業
當兩台伺服器之間完成資料區塊互相同步作業後,管理人員可以使用「(Get-SRGroup).Replicas」指令,搭配指定來源端或目的端伺服器的電腦名稱,即可查詢磁碟複寫資訊,例如,資料磁碟區、複寫模式...…等,並且看到 ReplicationStatus 欄位狀態,由先前的「InitialBlockCopy」轉變為「ContinuouslyReplicating」表示資料區塊同步作業完成(如圖 15 所示)。
此時,管理人員將會發現目的地伺服器的資料磁碟區,將會呈現卸載狀態。
圖 15、二台伺服器之間已經完成資料區塊同步作業
透過 WAC 管理儲存體複本機制
事實上,管理人員也可以透過新一代的管理平台 WAC(Windows Admin Center),來建立和管理儲存體複本機制。現在,我們已經建立完成伺服器對伺服器運作環境,透過 WAC 管理平台登入其中一台伺服器,在 Storage Replica 項目中,即可看到建立的儲存體複本和詳細資訊(如圖 16 所示)。
圖 16、透過 WAC 管理平台建立和管理儲存體複本機制