本文,將說明及實作在微軟新世代 Windows Server 2016 雲端作業系統當中,新的儲存特色功能稱之為「SR(Storage Replica)」,它是一種與傳統儲存設備種類(DAS / NAS / SAN)無關,屬於「區塊層級(Block Level)」的儲存複本機制,支援採用「同步(Synchronous)」及「非同步(Asynchronous)」兩種不同的資料複寫方式,以 SMB 3 通訊協定來進行資料的複寫傳送機制。
同步複寫機制 當採用「同步(Synchronous)」複寫機制時,系統將會保證每次的資料 IO 作業完成之前,都會將資料寫入至少兩個不同的位置之後,才會回覆給上層的應用程式已完成 IO 作業。所以,當來源端節點主機發生故障損壞事件時,便可以進行容錯備援的切換動作,接著讓應用程式使用目的端節點主機的資料快速恢復運作。因此,它適合應用於需要高可用性及災難復原,也就是「零資料損失(Zero Data Loss)」的營運服務。 下列為採用同步複寫機制時,兩端主機之間資料複寫的動作如下: - 應用程式發出寫入資料需求。
- 來源端節點主機將資料寫入至本地端儲存資源「日誌(Log)」當中,同時透過 SMB 3 協定將資料傳輸至目的端節點主機。
- 目的端節點主機,將所收到的資料寫入至本地端儲存資源「日誌(Log)」當中。
- 目的端節點主機寫入完成後,回覆給來源端主機已完成 IO 動作。
- 來源端節點主機回覆應用程式確認已完成 IO 動作。

上圖為同步(Synchronous)複寫機制運作架構示意圖 ( 圖片來源: TechNet Library – Storage Replica Overview )
非同步複寫機制 當採用「非同步(Asynchronous)」複寫機制時,系統會在本地端完成 IO 作業後便立即回覆給上層的應用程式,之後才將資料複寫到另一個位置。因此,這樣的資料複寫機制仍然有資料遺失的風險存在,只能達成「近乎零資料損失(Near Zero Data Loss)」的運作環境,因此並不適合用於需要高可用性的運作環境中(例如,容錯移轉叢集)。 下列為採用非同步複寫機制時,兩端主機之間資料複寫的動作如下: - 應用程式發出寫入資料需求。
- 來源端節點主機將資料寫入至本地端儲存資源「日誌(Log)」當中。
- 來源端節點主機回覆應用程式確認已完成 IO 動作。
- 透過 SMB 3 協定將資料傳輸至目的端節點主機。
- 目的端節點主機,將所收到的資料寫入至本地端儲存資源「日誌(Log)」當中。
- 目的端節點主機寫入完成後,回覆給來源端主機已完成 IO 動作。

上圖為非同步(Asynchronous)複寫機制運作架構示意圖 ( 圖片來源: TechNet Library – Storage Replica Overview )
實作 Server to Server 資料複寫
本文實作環境中,兩台主機將位於同一個站台同一個網域當中,但是擺放在不同樓層的實體位置,以期能夠因應故障損壞事件。此外,在 Windows Server 2016 TP4 技術預覽當中,針對此使用情境的部分,並沒有 GUI 圖形化工具可以進行組態設定作業,因此將統一採用 PowerShell 進行實作。 
上圖為 Server to Server 儲存複本運作架構示意圖 ( 圖片來源: TechNet Library – Storage Replica Overview ) 在本文的實作環境中,為兩台伺服器分別增加二顆硬碟,分別是 200GB 用來擔任資料磁碟區,並且給予 D 磁碟機代號及 SR-Data 的磁碟標籤,以及 20GB 用來擔任日誌磁碟,並且給予 L 磁碟機代號及 SR-Log 的磁碟標籤以利識別。 
上圖為兩台主機分別新增 200GB 資料磁碟區及 20GB 日誌磁碟區 然後,請為兩台主機安裝「檔案伺服器(File Server)」角色及「儲存體複本(Storage Replica)」功能。 
上圖為安裝檔案伺服器角色及儲存體複本功能 接著,便可以執行 Test-SRTopology 指令進行儲存複本環境測試作業,指令的參數都非常直覺就是指定來源端及目的端節點主機相關資訊,例如,電腦名稱、資料磁碟區、日誌磁碟區、測試時間、測試間隔…等。 
上圖為進行儲存複本環境測試 
上圖為儲存複本環境測試報表 執行建立儲存複本機制的 New-SRPartnership 指令,並指定日誌磁碟區大小為 10GB。執行後,可以直接執行 Get-SRGroup 指令查詢複寫資料,可以看到 ReplicationStatus 欄位為「InitialBlockCopy」,表示此時兩台主機正在進行資料區塊互相同步作業,當欄位值變更為「ContinuouslyReplicating」時便表示同步作業完成。 
上圖為建立儲存複本機制 最後,你可以使用「(Get-SRGroup).Replicas」指令,搭配指定的來源端主機或目的端主機的電腦名稱,即可查詢磁碟複寫資訊,例如,資料磁碟區、複寫模式…等。 
上圖為查詢磁碟複寫資訊 至此,SR(Storage Replica)儲存複本機制已經實作完成。事實上,SR 機制可以跟 Hyper-V、Storage Spaces Direct、Cluster、SOFS(Scale-Out File Server)、Deduplication 等特色功能協同運作,並且支援採用 ReFS / NTFS / CSVFS 等新舊檔案系統。 此外,SR 機制在使用案例上,還有「Stretch Cluster」、「Cluster to Cluster」等不同的應用情境,在後續文章中也將為讀者陸續介紹。
|