WSFC2012 羣集存儲空間

從2008R2到2012R2 2016 再到即將發佈的2019,彷彿就在彈指一瞬間,在這個演變過程中很多技術都發生了變化,有很多新鮮的場景涌現出來,很多好的技術在演變過程中國內沒有人提到,尤爲可惜,今天老王來爲大家補遺一個羣集存儲池的技術場景


上來先來看圖 左側是傳統的SAN架構,右側是微軟軟於Windows Server 2012引入引入的簡單存儲管理架構,微軟提出來一個存儲空間的架構,用來替換掉原來價格昂貴的SAN,通過爲服務器接入簡單的JBOD或RBOD架構,然後,通過2012新推出的存儲池,存儲空間功能,來完成存儲上控制器的工作,存儲池化,磁盤分層,精簡磁盤,磁盤去重,磁盤鏡像奇偶校驗,將SAN上面控制器實現的功能,現在通過2012OS本身的存儲功能實現,底層只需要接入一個沒有控制器的JBOD磁盤捆綁,或者有RAID控制器的RBOD即可,適配器層使用微軟OS自帶的ISCSI,SMB3.0,NFS協議直接連接存儲,所有對於存儲的配置不再需要由存儲管理員完成,系統管理員就可以直接在OS上面進行存儲配置,簡單管理,節約SAN成本,存儲虛擬化,靈活分配存儲,這是微軟存儲池,存儲空間所解決的目的


2018-07-17_124758_meitu_1.jpg


常有人將存儲空間,SOFS的概念搞混,以爲SOFS就是存儲空間,老王這裏特地和大家解釋下這幾個概念的區別


存儲空間是爲了解決通過簡單存儲+OS配置,軟件實現硬件存儲陣列的容錯,存儲池,存儲分層,去重功能

SOFS是基於SMB3.0,DNS輪詢,WSFC CSV的連續性共享功能,利用SOFS共享可以獲得,AA模式的訪問交付,橫向擴展優化,透明故障轉移能力

Windows Server 2016的SDS是一種超融合交付存儲資源池的模型,通過SDS可以支持由各節點本地共享磁盤,形成跨服務器的存儲池,結合WSFC與存儲空間實現端到端存儲故障域感知

SOFS底層可以是JBOD存儲空間,SAN,SDS,ISCSI    ,    SOFS SDS 存儲空間三者之間並無必然聯繫 

QQ圖片20180717192436.jpg


上面和大家介紹了下單機上面存儲池,存儲空間的概念,其實對於新上手2012的人可能會對存儲空間這個名詞有點陌生,我在管理工具裏面看不見存儲池,只能看見存儲空間,那個是存儲空間?其實存儲空間就是基於存儲池上面創建的虛擬磁盤,當我們創建虛擬磁盤時會配置分層,精簡,容錯,這個過程其實就是在創建存儲空間


那麼大家看到微軟這套簡單存儲管理架構裏面,最關鍵的是那部分,無疑是第一張圖裏面存儲控制器的部分,通過這部分實現存儲池,存儲空間,但是大家都只知道這是單臺架構,如果只能用於單臺服務器,那企業最多隻是用來解決存儲虛擬化,節約SAN成本的問題,但是距離真正的企業級應用還是有一點距離


因此還有另外一個技術場景,羣集存儲空間,如果我將存儲控制器這一層實現的存儲池,存儲空間,通過高可用羣集實現,默認情況下有一個服務器承載,這臺服務器宕機,由另外一臺存儲服務器繼續承載存儲控制器,是否更加貼合實際應用了呢,這樣的話我們就可以利用這樣一套簡單存儲+Windows羣集的架構,來真正的爲業務提供存儲使用


需要注意的是羣集存儲空間的概念,與ISCSI target服務器羣集的概念不一樣,如果我在羣集裏面提供了ISCSI target角色,那麼我實際上是做的存儲前端適配器這一層的容錯,即是說我對外面用戶訪問我的ISCSI協議進行了高可用,如果一臺節點連接不上ISCSI,其它節點還可以連接,而羣集存儲空間是存儲池+存儲空間的高可用


通過羣集存儲空間,我們會在WSFC2012上面構建羣集存儲池,再基於羣集存儲池創建羣集存儲空間,創建羣集磁盤卷,被創建的羣集磁盤卷,將直接作爲羣集磁盤,羣集磁盤可以直接轉爲CSV提供給自身Hyper-V使用,或構建後端SOFS羣集,提供給前端Hyper-V羣集使用,但不論如何,這個CSV的底層是由一個高可用的存儲空間而來,我們對這個存儲空間進行容錯或分層設置,即便當前節點失敗,轉移到另外節點,CSV底層磁盤仍然是保留我們的設置


雙端架構上可以選擇


前端單臺Hyper-V,後端羣集存儲空間SOFS

前端多臺單機Hyper-V,後端羣集存儲空間SOFS

前端Hyper-V羣集,後端單臺存儲空間

前端Hyper-V羣集,後端羣集存儲空間SOFS


不同的選擇也將獲得不同的彈性,高可用性,但是需要注意的一點是,如果您是這種前端Hyper-V,後端存儲空間架構,那麼Hyper-V連接到存儲時會採用SMB3.0協議,去掉傳統SAN的代價是網絡改造,建議爲前端虛擬化到後端存儲之間準備10GB網絡,以保證存儲性能,最好網卡能夠支持RDMA技術


除了這四種場景外,還有一種微軟在國內很少提及的場景,Cluster in a box解決方案


這種解決方案是什麼意思呢,大家可以把它想象成一個開箱即用的盒子,這個盒子裏面有兩個計算節點,SAS Expander連接JBOD存儲,盒子買來會直接幫我們配置好硬件容錯,配置好羣集,配置好羣集存儲池,羣集存儲空間,我們只需要上電使用就可以了,通常這種盒子是由廠商OEM提供,它們會把盒子設計成故障域架構,始終幫我們保證有一個計算節點和存儲可用,對於中小企業或分支機構不失爲一個不錯的方案,據老王所知Dataon 富士康現在在提供這種盒子

2018-07-17_131608.png


實際環境下如果要配置羣集存儲空間您可以結合自己公司的場景選擇合適的架構,並不一定非要是這種CIB,如果是構建一組羣集存儲空間服務器,那麼只要各節點SAS Expander接入JBOD存儲即可,JBOD可以是一個,也可以是多個配置冗餘


下面說下羣集存儲空間的先決條件


  1. Windows server 2012/R2 標準版,數據中心版,或Windows Storage Server 2012 Standard

  2. 微軟認證的SAS JBOD機箱 JBOD官方認證列表

  3. 故障轉移羣集中創建存儲池至少需要三個物理驅動器,每個驅動器的容量至少爲4GB,更多取決於列數和彈性。雙奇偶校驗存儲空間至少需要七個驅動器

  4.  羣集存儲池必須由SCSI(SAS)連接的物理磁盤組成。不支持使用內部RAID卡或帶有RAID控制器的RBOD

  5.  存儲池磁盤必須爲固定格式,不支持精簡磁盤



需要注意

在2012時代,羣集存儲池還不支持底層由SATA構成的磁盤加入,2016 SDS可以支持SATA磁盤

在2012時代如果想要利用SATA磁盤創建高可用的存儲池,建議藉助Starwind產品


實驗場景


08DC 10.0.0.2 255.0.0.0 

30.0.0.2 255.0.0.0


12node1 

10.0.0.5 255.0.0.0 10.0.0.2 

18.0.0.5 255.0.0.0

30.0.0.5 255.0.0.0


12node2 

10.0.0.6 255.0.0.0 10.0.0.2 

18.0.0.6 255.0.0.0

30.0.0.6 255.0.0.0


在我的環境中由於我沒有JBOD,所以我用DC模擬ISCSI服務器提供給兩臺存儲節點


通過ISCSI分配給羣集存儲空間節點3個4GB磁盤

2018-07-17_103619.png


打開故障轉移羣集管理器管理控制檯(cluadmin.msc),在面板左側,展開“ 存儲”,右鍵單擊“ 池”,然後點擊“新建存儲池”

2018-07-17_204115.png

指定存儲池的名稱,選擇擁有羣集存儲空間的存儲子系統,點擊下一步

2018-07-17_103716.png

配置羣集磁盤物理磁盤架構,自動或熱備用,如果需要配置分層,稍後創建完成後可以手動更新MediaType標籤

2018-07-17_103741.png

創建完成界面如下,當前已經構建了羣集存儲池,可以勾選下面按鈕繼續創建存儲空間,或稍後手動創建

2018-07-17_103824.png

創建完成後手動選擇存儲池界面下的新建虛擬磁盤,此步驟即是開始創建羣集存儲空間

2018-07-17_104308.png

輸入虛擬磁盤名稱,即羣集存儲空間名稱,如果需要配置存儲分層,應該在創建完成羣集存儲池之後去更新標籤

2018-07-17_104342.png

選擇配置羣集存儲空間容錯佈局,在2012時代羣集存儲空間僅支持簡單和鏡像,2012R2開始羣集存儲空間支持奇偶校驗佈局

2018-07-17_104357.png

創建完成羣集虛擬空間後,自動彈出新建卷嚮導,選擇基於羣集存儲空間磁盤創建卷

2018-07-17_104442.png

創建出來的卷,將自動顯示在羣集可用存儲中

2018-07-17_104657.png

可以將由羣集磁盤添加上來的再添加爲CSV,上面我們提到的四種場景都是說的Hyper-V與存儲分離,我們也可以嘗試一種超融合的架構,這種超融合架構可以看到從2012時代就開始了,例如我們就四個節點,可以構建起來羣集,先用着四個節點構建羣集存儲空間,最終到這一步構建出羣集共享卷,然後再這四個節點上面安裝Hyper-V,就跑在由羣集存儲空間構建出來的CSV上。有人說這樣性能不好,但是爲了保證存儲到計算端到端容錯,這也未嘗不是一種合適的架構。


那麼到了2016這種架構是不是就消失了呢,2016的羣集存儲池既可以用2012延續的JBOD這種方式構建,也可以用SDS構建,在2012如果使用這種超融合架構我們需要好好設計仲裁以及維護操作,以確保架構穩定運行,2016我們可以進一步利用站點感知和故障域感知技術。


2018-07-17_104856.png

或者我們也可以將羣集做成基於羣集存儲空間上層的SOFS,然後通過這個SOFS爲上層的SQL羣集或Hyper-V羣集使用

2018-07-17_105648.png

測試存儲控制器故障轉移,當前羣集存儲池由12node1承載

2018-07-17_105708.png

暫停12node1節點,存儲池架構直接在12node2上面聯機

2018-07-17_110712.png

羣集虛擬空間,以及羣集共享卷,聯機上線正常使用,存儲控制器配置信息即便轉移到另外節點也得到保留

2018-07-17_110732.png

在羣集運行中也支持手動故障轉移羣集存儲池

2018-07-17_111034.png


這裏需要爲大家指出的一個問題是採用羣集存儲空間後的羣集仲裁設置,最開始老王犯了一個錯誤,讓羣集直接使用羣集存儲空間的仲裁磁盤,這就有可能會存在一個問題,假設我羣集只剩下兩個節點+羣集存儲空間構建出來的見證磁盤,假設見證磁盤背後存儲池所在的節點宕機,爲什麼是羣集存儲池,因爲一切羣集磁盤都是通過羣集存儲池創建的,羣集存儲池節點如果宕機,那麼一切也就不存在了。假設剩下兩個節點,或關鍵票數節點的時候,羣集存儲池節點土壤宕機,導致見證磁盤,來不及調整投票,導致需要強制啓動羣集,之後要手動聯機存儲池,存儲空間


因此最優設計,應該是在最初設計JBOD磁盤的時候,單獨留出來一塊磁盤,不加入羣集存儲池,這塊磁盤作爲羣集仲裁,不受羣集存儲池節點映像,第二設計是採用文件共享仲裁


其它需要注意的地方


  1. 已經分配給羣集存儲池的磁盤不能再添加到其它存儲池使用

  2. 如果要部署具有更多節點的羣集,則可能還需要SAS交換機以使所有節點能夠連接到JBOD中的所有磁盤

  3. 如果需要將羣集配置爲SOFS,需要爲每個節點安裝文件服務器角色

  4. 如果需要爲羣集磁盤或羣集共享卷啓用重複數據刪除,需在每個節點安裝重複數據刪除功能

  5. 內部RAID卡或RBOD雖然在羣集存儲空間架構不被支持,但是單機上面可以支持


存儲空間的管理可以通過羣集管理器或2012服務器管理器,不論是單機存儲空間,或是羣集存儲空間,都可以在服務器管理器裏面配置,利用存儲空間,存儲池配置的磁盤將獲得靈活彈性,磁盤享受存儲空間的容錯配置,分層配置,如果磁盤大小不夠可以由存儲空間給予在線擴展,如果存儲空間不夠,可以通過增加磁盤擴展,存儲池可以配置爲自動修復機制,自動替換備用磁盤


如果我們有SCVMM架構的話,也可以利用SCVMM集中幫我們管理羣集存儲池,羣集存儲空間,SOFS


將存儲池羣集作爲Providers添加進入存儲基礎結構

2018-07-17_210855.png

管理羣集存儲池陣列

2018-07-17_210743.png

將添加進來的羣集存儲池,通過創建邏輯unit的方式劃分,然後分配給計算節點

2018-07-17_211327.png

如果羣集配置有SOFS,可以將SOFS與羣集存儲池一起加入SCVMM管理,構建端到端的存儲管理


希望可以通過這篇文章讓大家瞭解羣集存儲空間的概念,爲大家帶來思考與應用 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章