儲存體複本 Storage Replica 遠端資料複寫 同步 非同步 Azure 公有雲

採用SMB 3協定確保傳輸安全 區塊層級支援同步或非同步

了解儲存體複本機制 遠端複寫免建構一致環境

2019-10-07
「儲存體複本」(Storage Replica)機制屬於「區塊層級」的遠端資料複寫儲存功能,採用了SMB 3通訊協定進行遠端資料複寫機制,並支援同步與非同步兩種遠端資料複寫方式,本文將透過實作的方式來示範這項功能,並做細部的解說。

 

過去,當企業和組織需要針對儲存資源中存放的資料進行遠端複寫時,除了採用的儲存裝置必須支援外,還必須要注意許多事項。舉例來說,本地端和目的端兩者的儲存裝置必須同一廠牌,並且儲存裝置型號通常也必須相同或更高等級等等,所以採用傳統儲存裝置在建構遠端資料複寫機制時,除了部署架構較為複雜之外,所花費的IT預算通常也所費不貲。

從Windows Server 2016版本開始,新增「儲存體複本」(Storage Replica,SR)特色功能,這項儲存體複本機制與傳統儲存設備(DAS/NAS/SAN)無關,屬於「區塊層級」(Block Level)的遠端資料複寫儲存特色功能,並且支援「同步」(Synchronous)和「非同步」(Asynchronous)兩種不同的遠端資料複寫方式,並採用SMB 3通訊協定進行遠端資料複寫機制。

了解儲存體複本部署模式

Windows Server儲存體複本機制支援多種不同的部署模式,例如伺服器對伺服器(Server-to-Server)、叢集對叢集(Cluster-to-Cluster)等等,以便因應企業組織多樣化的遠端資料複寫需求。

伺服器對伺服器

採用「伺服器對伺服器」儲存體複本部署模式時,在Active Directory網域環境中的二台伺服器,無論單台伺服器採用JBOD、SAN、iSCSI或本機SAS/SATA儲存資源,都可透過儲存體複本機制將二台伺服器的儲存資源做資料複寫處理(圖1)。

圖1  儲存體複本伺服器對伺服器部署模式示意圖。(圖片來源:Microsoft Docs - Server-to-server storage replication)

二台伺服器應該建立至少「二個磁碟」,其中一個磁碟區負責儲存體複本機制「日誌檔」(Logs)用途,另一個磁碟區則是主要進行「資料複寫」(Replicated Data)用途,同時這兩個磁碟區不可使用包含Windows作業系統的磁碟區(通常為C槽)。

延展式叢集

採用「延展式叢集」(Stretch Cluster)儲存體複本部署模式時,與前一個伺服器對伺服器部署模式最大的不同,在於管理人員可以在延展式叢集架構中,在相異的二個站台內形成一個邏輯的容錯移轉叢集,如圖2所示。

圖2  儲存體複本延展示叢集部署模式示意圖。(圖片來源:Microsoft Docs - Stretch Cluster Replication Using Shared Storage)

同時,在個別站台內,依然維持傳統容錯移轉叢集使用共用儲存資源的運作架構,然後再透過儲存體複本機制同步二個站台中儲存資源的內容。

在運作環境需求方面,與前一個使用案例伺服器對伺服器大致相同,值得注意的部分是,二個站台必須為「同一個」Active Directory網域樹系內,並且單一站台中的容錯移轉叢集內,至少需要「二台」成員節點主機(最多可支援至64台成員節點主機)。

叢集對叢集

採用「叢集對叢集」(Cluster-to-Cluster)儲存體複本部署模式時,與延展式叢集部署模式最大的不同點,在於兩個不同的資料中心站台內擁有個別的容錯移轉叢集。同時,在儲存資源方面除了支援傳統共用儲存設備外,也支援新一代的S2D超融合基礎架構儲存資源,如圖3所示。

圖3  儲存體複本叢集對叢集部署模式示意圖。(圖片來源:Microsoft Docs - Cluster to cluster Storage Replication)

在運作環境需求上,與前一個使用案例延展式叢集大致相同,除了二個站台必須為同一個Active Directory網域樹系內,並且單一站台中的容錯移轉叢集內至少需要「二台」成員節點主機之外,當採用傳統共享儲存設備時,仍可支援最多64台成員節點主機,如果採用新興的S2D超融合基礎架構,則最多支援至16台成員節點主機。

Azure相同區域叢集對叢集

企業組織也可以將儲存體複本機制套用於Microsoft Azure公有雲環境中,由於採用Azure公有雲環境會有「區域」(Region)的差異。首先,可以在「同一個區域」(The same region)的Azure公有雲環境中,如圖4所示,透過儲存體複本機制輕鬆達成叢集對叢集的資料複寫目的。

圖4  Azure公有雲「相同」區域叢集對叢集儲存體複本部署模式示意圖。(圖片來源:Microsoft Docs - Cluster to cluster Storage Replica within the same region in Azure)

在運作環境需求方面,由於採用Azure公有雲相同區域,所以應部署至相同的資源群組和虛擬網路環境,確保相同區域的二個容錯移轉叢集,能夠透過虛擬網路互相存取,進而達成儲存資源執行儲存體複本的目標。

Azure跨區域叢集對叢集

在Microsoft Azure公有雲環境中,當企業希望將容錯移轉叢集部署在「跨區域」(Cross Region)的Azure資料中心,並且達成跨區域之間叢集對叢集的資料複寫目標時,儲存體複本仍然可以無縫支援,如圖5所示。

圖5  Azure公有雲「跨」區域叢集對叢集儲存體複本部署模式示意圖。(圖片來源:Microsoft Docs - Cluster to Cluster Storage Replica cross region in 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」網路流量通行。

同步複寫

簡單來說,管理人員採用「同步複寫」的儲存體複本機制時,當應用程式在儲存體複本「來源端」寫入資料時,系統並不會立即確認資料I/O動作已完成,必須等到資料複寫至「遠端目的地」並傳回I/O確認動作後,才會回覆給上層應用程式完成資料I/O的動作,如圖6所示。下列為同步複寫模式的資料I/O詳細運作步驟:

圖6  儲存體複本機制同步複寫模式運作架構示意圖。(圖片來源:Microsoft Docs - Storage Replica Overview)

1. 上層應用程式發出資料寫入I/O需求。

2. 來源端伺服器將資料寫入至本地端儲存資源「日誌」磁碟區內,同時透過SMB通訊協定將資料複寫至遠端目的地伺服器。

3. 遠端目的地伺服器,完成複寫資料寫入至本地端儲存資源日誌磁碟區的動作。

4. 目的端伺服器完成資料寫入動作後,回覆來源端伺服器已完成資料I/O動作。

5. 來源端伺服器回覆上層應用程式已完成資料I/O動作。

因此,採用儲存體複本的同步複寫模式時,倘若來源端儲存資源故障損壞,管理人員可以將應用程式容錯移轉至遠端站台,繼續存取複寫至遠端目的地的儲存資源,並且不會有任何資料遺失的情況發生。

非同步複寫

若採用「非同步複寫」的儲存體複本機制,當應用程式在儲存體複本「來源端」寫入資料時,系統不會等待「遠端目的地」傳回I/O確認動作,便立即回覆給上層應用程式已經完成資料I/O的動作,然後才執行將資料複寫至遠端目的地伺服器的動作,如圖7所示。下列為非同步複寫模式的資料I/O詳細運作步驟:

圖7  儲存體複本機制非同步複寫模式運作架構示意圖。(圖片來源:Microsoft Docs - Storage Replica Overview)

1. 上層應用程式發出資料寫入I/O需求。

2. 來源端伺服器將資料寫入至本地端儲存資源「日誌」磁碟區內。

3. 來源端伺服器回覆上層應用程式已完成資料I/O動作。

4. 來源端伺服器透過SMB通訊協定將資料複寫至遠端目的地伺服器。

5. 遠端目的地伺服器完成複寫資料寫入至本地端儲存資源日誌磁碟區的動作。

6. 目的端伺服器完成資料寫入動作後,回覆來源端伺服器已完成資料I/O動作。

由於非同步複寫模式在災難事件發生時,可能會有資料來不及複寫至遠端目的地伺服器造成資料遺失的風險,因此一般都將非同步複寫模式用於「跨地理位置」資料中心的DR解決方案中。

何謂儲存體複本軟體授權

在軟體授權方面,若採用Windows Server 2019標準版或資料中心版,原則上都可以使用儲存體複本機制。採用Windows Server 2019標準版時,執行複本抄寫的單一磁碟區空間大小的最大上限為「2TB」,如圖8所示,若採用Windows Server 2019資料中心版,則無限制磁碟區空間大小。

圖8  採用Windows Server 2019標準版儲存體複本單一磁碟區空間最上大限2TB。(圖片來源:Microsoft 官網 - Windows Server 2019 授權和定價)

儲存體複本機制實戰演練

在本文實作環境中,實作儲存體複本機制的兩台伺服器,將採用Windows Server 2019資料中心版本,至於伺服器的實體擺放位置,則是分別擺放在企業總部不同樓層的資料中心機房內,以便因應其中一個樓層的資料中心發生災難事件,並且這兩台伺服器處於同一個網域。

安裝儲存體複本伺服器功能

首先,為實作儲存體複本機制的兩台伺服器,安裝「檔案伺服器」(File Server)角色及「儲存體複本」(Storage Replica)功能,如圖9所示。

圖9  為實作儲存體複本機制伺服器安裝檔案伺服器角色和儲存體複本功能。

複寫磁碟區規劃

本次實作將為儲存體複本機制的兩台伺服器分別配置二顆硬碟,分別是10GB用途為擔任日誌磁碟,並且給予L磁碟機代號和SR-Log磁碟標籤以利識別,以及500GB用途為擔任資料磁碟區,並給予D磁碟機代號和SR-Data磁碟標籤以利識別,如圖10所示。

圖10  為實作儲存體複本機制的兩台伺服器分別配置二顆硬碟。

此外,在規劃設計儲存體複本機制磁碟時,必須注意下列事項:

1. 日誌磁碟以及資料磁碟,必須採用「GPT」(GUID Partition Table)而非MBR進行初始化。

2. 實作儲存體複本機制的兩台伺服器,「日誌」磁碟儲存空間大小必須相同,並且至少要有9GB的儲存空間,同時建議採用SSD固態硬碟等儲存效能較佳的儲存裝置。

3. 實作儲存體複本機制的兩台伺服器,「資料」磁碟儲存空間大小必須相同,支援HDD、SSD或RAID等儲存裝置。

執行儲存體複本環境測試工作任務

完成儲存體複本運作環境前置作業後,便可以執行Test-SRTopology指令進行儲存複本環境測試作業,以便系統能夠根據目前的運作環境,判斷是否符合儲存體複本運作需求。如圖11所示,管理人員可以看到測試指令的參數非常直覺,即指定來源端及目的端節點主機相關資訊,例如電腦名稱、資料磁碟區代號、日誌磁碟區代號、測試時間、測試間隔等等。下列為本文實作環境以及執行儲存複本環境測試相關參數和參數值:

圖11  執行Test-SRTopology指令進行儲存複本環境測試作業。

-SourceComputerName:SR-Node01,來源端主機電腦名稱。

-SourceVolumeName:D槽,來源端主機資料磁碟區代號。

-SourceLogVolumeName:L槽,來源端主機日誌磁碟區代號。

-DestinationComputerName:SR-Node02,目的地主機電腦名稱。

-DestinationVolumeName:D槽,目的地主機資料磁碟區代號。

-DestinationLogVolumeName:L槽,目的地主機日誌磁碟區代號。

-DurationInMinutes:5分鐘,儲存體複本運作環境測試作業持續時間。

-ResultPath:C:\tmp,儲存體複本環境測試報告產生路徑。

完成測試作業後,將會在指定的路徑產生名稱為「TestSrTopologyReport」加上日期和時間的HTML報表檔案,內容包括儲存體複本運作環境的20項測試作業結果、初始化同步效能測試、複本抄寫效能測試等等內容,如圖12所示。

圖12  儲存體複本運作環境初始化同步效能測試結果。

建立伺服器對伺服器複寫機制

現在可以在儲存體複本運作環境中來源端伺服器,執行建立儲存複本機制的New-SRPartnership指令。同樣地,管理人員可以看到建立伺服器對伺服器複寫機制指令非常直覺,亦即指定來源端及目的端節點主機相關資訊,如圖13所示。下列為本文實作環境中,建立伺服器對伺服器複寫機制的相關參數和參數值:

圖13  建立伺服器對伺服器複寫機制。

-SourceComputerName:SR-Node01,來源端主機電腦名稱。

-SourceRGName:SR-RG01,來源端主機的複寫群組名稱。

-SourceVolumeName:D槽,來源端主機資料磁碟區代號。

-SourceLogVolumeName:L槽,來源端主機日誌磁碟區代號。

-DestinationComputerName:SR-Node02,目的地主機電腦名稱。

-DestinationRGName:SR-RG02,目的地主機的複寫群組名稱。

-DestinationVolumeName:D槽,目的地主機資料磁碟區代號。

-DestinationLogVolumeName:L槽,目的地主機日誌磁碟區代號。

順利建立伺服器對伺服器複寫機制後,接著執行Get-SRGroup指令查詢複寫狀態,可以看到ReplicationStatus欄位狀態,由一開始的「WaitingForDestination」轉變為「InitialBlockCopy」,表示兩台伺服器之間正在進行資料區塊互相同步作業,並且透過工作管理員可以看到正在進行資料磁碟區同步作業,如圖14所示。

圖14  兩台伺服器之間正在進行資料區塊互相同步作業。

當兩台伺服器之間完成資料區塊互相同步作業後,管理人員可使用「(Get-SRGroup).Replicas」指令,搭配指定來源端或目的端伺服器的電腦名稱,即可查詢磁碟複寫資訊,例如資料磁碟區、複寫模式等等,並且看到ReplicationStatus欄位狀態,由先前的「InitialBlockCopy」轉變為「ContinuouslyReplicating」,表示資料區塊同步作業完成,如圖15所示。

圖15  兩台伺服器之間已經完成資料區塊同步作業。

透過WAC管理儲存體複本機制

管理人員也可以透過新一代的管理平台WAC(Windows Admin Center),來建立和管理儲存體複本機制。

現在已經建立好伺服器對伺服器運作環境,只要透過WAC管理平台登入其中一台伺服器,如圖16所示,在Storage Replica項目中即可看到建立的儲存體複本和詳細資訊。

結語

透過本文的深入剖析和實戰演練,相信大家已經了解儲存體複本機制的優點和適用情境。

事實上,儲存體複本機制還能夠與Hyper-V、S2D超融合基礎架構、容錯移轉叢集、重複資料刪除等特色功能協同運作,並且支援NTFS、ReFS、CSVFS等檔案系統,後續文章也會一一深入剖析。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!