前陣子有位網友在老王的博客下面詢問微軟雙機雙櫃方案,那種性價比最高,須要最少的硬件投入,老王以爲這個話題挺有意思,今天特意與你們分享討論shell
按照老王的理解所謂雙機雙櫃是指兩臺服務器,每臺服務器接本身的存儲機櫃,而後兩臺服務器實現複製,以確保應用故障轉移時的存儲支援數據庫
若是按照這個概念來說,微軟雙機雙櫃方案有兩個,一個是Hyper-V複製,另一個是存儲副本,下面咱們來逐個進行分析緩存
Hyper-V複製是微軟在2012 hyper-v3.0時引入的虛擬機複製技術,支持將虛擬機複製到其它主機或羣集或Azure,支持在沒有羣集的狀況下災難恢復虛擬機安全
Hyper-V複製技術優缺點服務器
存儲無關性,參與複製的hyper-v宿主機能夠連不一樣的存儲,可以使用現有盤櫃或本地磁盤網絡
支持標準版與數據中心版架構
支持工做組部署異步
複製過程使用80或443端口,支持證書加密ide
支持單機對單機複製,羣集對羣集複製,單機對羣集複製,羣集對單機複製工具
支持擴展複製,A-B B-C (2012R2引入)
支持計劃內故障轉移
支持災難恢復,可是需在備份節點手動故障轉移
支持多子網架構TCP/IP預設,例如能夠設定虛擬機轉移到備站點開機後自動設置爲備站點IP
支持反向複製
支持LAN環境或WAN環境
複製過程區分主備架構,對於一臺參與複製的虛擬機來講,僅在主節點開機,備節點關機,主節點按照時間間隔複製虛擬機增量數據至備節點
支持測試故障轉移,開一臺測試虛擬機出來,監視資料是否正常複製
支持經過ASR將虛擬機複製到Azure
Hyper-V虛擬機級別複製,支持複製虛擬機全部虛擬磁盤(除直通)
支持多個恢復點
支持應用程序一致性,若是虛擬機裏面承擔SQL等數據庫服務,使用應用程序一致性複製虛擬機,能夠支持複製時內存數據Flush到磁盤上後再建立恢復點
具有官方複製規劃軟件,微軟SCOM平臺能夠對其監控,SCVMM不能操做hyper-v複製
總結,hyper-v複製能夠說以一款虛擬機複製的災難恢復解決方案,對於硬件的改變老王認爲是幾種方案裏面最小的,直接使用現有雙機雙櫃架構便可,對於存儲沒有要求,複製功能自己並不過多佔用系統資源,各項複製功能,如擴展複製,測試故障轉移,恢復控制,架構支持,應用感知,數據安全等都相對完善,缺點主要仍是計劃外故障必須手動故障轉移,原生不能自動故障轉移,若是須要自動故障轉移還須要再學習SCO或使用ASR,僅適用於Hyper-V虛擬機負載,若是沒有使用虛擬化則不適用
存儲副本技術是微軟Windows Server 2016上面推出的基於塊級別複製技術,在系統級別對分區進行復制,支持分區對分區,單機對單機,延伸羣集,跨羣集複製等災備場景的複製,幫助組織更好的提升業務連續性
優缺點總結
僅支持2016數據中心版
參與存儲複製的節點必須加入域
系統級別分區複製,應用並不知道底層發生複製
複製使用SMB 3.1.1通信協議,445端口
支持同步複製與非同步複製
存儲無相關性,節點底層能夠是任何存儲結構
支持固定式磁盤和精簡置備磁盤
複製過程存在主備關係,主複製分區可讀寫,備複製分區不可讀寫,暫未支持備只讀模式
單機對單機和跨羣集複製時只能使用Powershell命令管理複製,延伸羣集支持GUI管理
單機對單機和跨羣集複製需手動故障轉移,延伸羣集實現全自動故障轉移
延伸羣集仍需每一個站點接入各自站點存儲,不支持直接使用各節點本地磁盤
跨羣集複製支持兩個羣集使用不一樣架構存儲
複製時會須要日誌磁盤與數據磁盤,數據先寫入日誌磁盤,再Commit數據磁盤
複製節點至少須要兩個磁盤,一個數據磁盤,一個日誌磁盤
數據磁盤和日誌磁盤的格式必須爲GPT,不支持MBR格式磁盤
兩個數據磁盤大小與分區大小必須相同,最大 10TB
兩個日誌磁盤大小與分區大小必須相同,最少 8GB
不支持擴展複製,不支持多個恢復點,不支持應用一致性感知,不支持工做組,不支持羣集對單機
支持經過SCOM監控,SCVMM管理,OMS監控,Honolulu管理
總結,存儲複製是server 2016上面系統級別的塊存儲複製,工做在分區之上卷之下的區域,對於單機對單機,存儲底層沒有太多限制,可是對於延伸羣集仍然要求各自節點鏈接自身存儲機櫃,存儲複製和Hyper-V複製的不一樣在於存儲複製只是系統級別的實現,並不綁定在虛擬化,所以大多數應用均可以利用此功能,缺點在於,雖說存儲複製也算是一種災難恢復技術,單機對單機能夠實現存儲的複製,手動切換,延伸羣集能夠實現存儲加計算的全自動故障轉移,可是在災難恢復軟件的層面看,存儲複製仍是缺乏一部分功能,例如擴展複製功能不支持,羣集對單機功能不支持,致使存儲複製在架構上很是不靈活,這也是將來須要改進的地方,區別於微軟的DFS,存儲複製不像DFS原理那麼複雜,檢測NTFS USN,更新DFSR DBID ,更新GVSN,RDC同步數據,存儲複製使用日誌+存儲機制,主要檢測磁盤的寫入IO,檢測到有寫入IO,按照同步複製機制或異步複製機制執行日誌和存儲的寫入,所以存儲複製能夠複製正在打開的文件,討論使用場景的話,老王認爲單機對單機的複製適用於如下場景
1.文件常常被打開,使用DFS有時候不會複製,這時候可使用存儲複製總體複製分區
2.針對於VHDX文件,VMM庫共享,數據庫MDF結果集文件,這類常常被打開的大文件,能夠在兩個節點直接進行復制
3.適用於歸檔場景,例若有些虛擬機常年處於關機狀態,可是裏面又有一些關鍵數據,這時候可使用存儲複製,簡單複製歸檔虛擬機的虛擬磁盤
以上爲老王設想到的存儲複製單機對單機場景,另一點要說的是延伸羣集,延伸羣集能夠說是存儲複製的最大亮點,即便用非對稱存儲架構,各自節點掛載存儲,經過存儲副本+羣集配合能夠作到發生故障時先故障轉移存儲,再故障轉移上層虛擬機
你們看到不少文檔,可能都會說延伸羣集適用於多站點架構,例如北京站點和上海站點各自站點只是接入簡單存儲機櫃,並未配置硬件級別的存儲複製,而經過微軟2016延伸羣集實現,當北京站點宕機時,能夠在上海站點連同存儲和計算資源一塊兒啓動,這確實是延伸羣集的最主要意義,幫助公司省一大筆硬件費用,兩點,一點是實現了原生自帶的存儲複製,一點是實現了存儲複製和羣集融合,羣集檢測節點宕機,自動故障轉移存儲和應用。
可是,這種自動故障轉移存儲和應用的實現,若是沒有多站點是否是就不能實現了,答案是否是的,即便你就一個數據中心,一個機房,兩個節點,兩個存儲機櫃,各自節點接入機櫃,就能夠作到延伸羣集的架構,只要符合延伸羣集的配置要求,延伸羣集並不關心你是不是本地數據中心仍是異地數據中心,這取決於您的技術選型
延伸羣集架構帶來的好處是存儲複製和羣集的融合,完美處理存儲的單點故障和應用的單點故障,而且作到存儲和羣集節點故障轉移聯動,所以若是本地數據中心,您想要這個功能,也是OK的。
存儲複製對比Hyper-V複製
存儲複製是系統系別,不支持複製系統磁盤,Hyper-V複製是虛擬機級別,不支持複製直通類型磁盤
存儲複製能夠用於物理機,虛擬機,私有云,公有云,只要有OS就能夠實現,hyper-v複製需在物理機上面配置實現
二者都不須要額外更換存儲,均可以使用現有存儲機櫃來完成利舊
存儲複製就是複製存儲,作好存儲的切換,別的無論,hyper-v複製會包含內存狀態,也會把主節點內存狀態進行復制。
存儲複製功能只有2016數據中心版纔有,若是企業沒有須要額外構建,且2016對於系統要求比2012要大,若是配置存儲複製功能,建議爲系統至少預留2-4GB內存
存儲複製實現爲日誌磁盤加數據磁盤架構,管理員需額外管理日誌磁盤和數據磁盤,hyper-v複製則無此架構
存儲複製不是基於檢查點,而是連續複製,因此變化的增量每每遠低於基於快照的產品
若是但願在虛擬機級別複製一個應用,而且但願實現虛擬機直接開機就用,應用事務並不丟失,建議使用Hyper-v複製配應用一致性
若是是但願複製VHDX庫,數據庫MDF結果集文件,歸檔虛擬機,或一些會被打開的平常文件,可使用存儲複製
若是但願實現雙機雙櫃存儲複製+自動化故障轉移,建議使用延伸羣集
若是但願得到虛擬機級別的擴展複製 等更靈活的複製架構,建議使用Hyper-V複製
以上爲老王關於微軟正兒八經雙機雙櫃方案,hyper-v複製與存儲複製的淺談,二者的主要優點都是能夠直接利舊,使用現有存儲機櫃,不須要改變基礎架構就能夠實現災難恢復,hyper-v複製不能作到自動故障轉移,存儲複製能夠配置延伸羣集實現自動故障轉移,這個多是一個主要的思考點,另外存儲複製比hyper-v複製更佔用系統CPU和內存資源,hyper-v複製比存儲複製在災難恢復上面更加專業,更適用於重要的虛擬機總體複製,具體你們實際使用時,能夠結合老王提到的這些功能點選擇適用的場景。
除了這兩種能夠直接利舊的方案外,針對於此類沒有共享存儲的場景,微軟2016還推出了S2D的功能,它將2012R2的存儲池和存儲空間功能,擴展到了多個節點上,具體實現爲如下兩點
能夠把各羣集節點上面本地磁盤聚集到一塊兒,每一個節點會有一個clusport組件充當適配卡角色,羣集中會有一個clusblft角色,負責鏈接各個節點的clusport,經過這兩個組件,能夠把各個羣集節點上面符合要求的本地磁盤聚集到一塊兒,造成羣集的邏輯存儲池,這個邏輯存儲池能夠被進一步配置存儲空間,但其實這個邏輯存儲池裏面是各個羣集節點的本地磁盤,通過構建完成存儲空間後,生成的虛擬磁盤就能夠被用於羣集磁盤
另一點是存儲空間延伸至羣集後實現的全新容錯機制,2016 S2D,能夠根據存儲空間的不一樣容錯配置,把數據寫入分紅多個extent,一個extent 1GB,若是配置爲雙重鏡像,那就是數據後臺會生成兩個extent,兩個extent能夠被灑在不一樣節點,不一樣機櫃,不一樣機架,經過這個功能就把存儲空間延伸至了羣集,一個節點或磁盤的故障,並不會影響上層應用的讀取,由於全部的磁盤會被在另外節點上面讀取,數據也會在另外節點上面重建,S2D會遵循extent容錯反相關性原則,始終把同一份數據的多個extent撒在不一樣節點,當一個IO進來,只有當數據全部extent都完成寫入後,這個IO纔會回傳結束
所以,若是全新部署的一個環境,利不利舊也無所謂,那麼您能夠嘗試這種全新的超融合架構,非對稱存儲架構不用,直接超融合使用各節點本地存儲,透過數據始終容錯寫入不一樣節點,以確保數據的高度可用,而且支持SSD,NVME,NVDIMM-N緩存設定,可以得到更高的性能,缺點在於,S2D比存儲複製更消耗資源,尤爲是網絡和內存,並且S2D並非備份方案或災難恢復方案,一旦S2D這個功能不work了,數據讀取將很是麻煩,因此若是採用S2D,您須要額外考慮單獨的備份機制
除了微軟自身的三種方案外,DataKeeperSIOS,Starwind,Symantec SFW也是不錯的解決方案,SIOS支持各節點本地存儲或非對稱機櫃的複製,能夠在SIOS上面完成存儲的複製配置,通過SIOS複製後的磁盤能夠直接顯示在WSFC羣集磁盤,若是沒有server2016使用這個工具也不錯,它和羣集完美集成,也能夠作到自動故障轉移,SFW與它相似,自身管理不一樣節點存儲,構建出磁盤組,而後交付給羣集,Starwind是鏈接各節點存儲,進行復制,複製好了後虛擬出磁盤,再以ISCSI的方式提供給各個羣集節點使用。