好久沒有寫博了,最近特别忙而且也沒想到什麼好的題材,這次想分享一下存儲空間與SMB的一些内容,其實這方面網上能搜到的資訊不少,但是把存儲空間與SMB3.0再加hyper-v群集串聯在一起的就很少了,我也是溺水三千隻取一瓢飲之
#####################################################################################
在這次測試環境中,我已經建立好了兩個存儲空間,testpool1與testpool2;以pool1為例下圖可以看到這個池是由4塊硬碟構成的,但是有個問題,如果是一些主流裝置比如JBOD或者其他盤櫃類産品,OS是可以正确識别出磁盤類型的,HDD或SSD;但拿我這個測試環境的老舊HP伺服器來看,顯然OS不能直接識别出來,mediatype裡預設是unknown
這樣就産生了一個問題,我們知道windows存儲空間功能的一大特點是可以做存儲分層,也就是storagetier(存儲分層),系統可以根據使用習慣來區分熱資料與冷資料,然後分别存放在傳統硬碟或固态硬碟之上,此外還可以手動将指定的檔案定位在高速媒體上;但它的一個前提就是你的池中一定要包含HDD于SSD的mediatype才行,缺一不可;那麼如果我的SSD無法正确識别的話我就需要手動來修改了
在作業系統的powershell中可以看到目前系統識别出的硬碟,以下圖為例,有一些盤我已經手動将它們的類型修改過來了,還剩下一些unspecified的
接下來通過set-physicaldisk來修改,這裡隻需簡單的指定磁盤uniqueid或friendlyname再加上mediatype就可以了
按照下面的例子将physicaldisk5修改成HDD盤
之後在server manager中重新整理一下
可以看到磁盤類型已經變為HDD了,方法很簡單的
接着來看一下pool2,我已經如法炮制将他們配置為HDD+SSD了,其實745GB那塊本身就是SSD,但因為我的伺服器比較老,RAID卡不做陣列的話OS中認不出來
後面就是在池中建立VHD了,這裡就不做說明了,建立的向導中可以啟用存儲分層,并且制定分層的容量,在這個測試環境中,我把每塊盤的全部容量都利用了,也就是說SSD的全部容量定義為SSD Tier,同理HDD也是,通過下面的get-storagetier可以看到不同層的相應參數
通過resize-storagetier也可以修改分層容量
下圖中的F卷就是在pool2中建立的,使用simple模式也就是條帶(raid0那種),這樣以犧牲資料安全為前提來提高吞吐,并且磁盤采用固定大小而不是精簡置備,這也是系統推薦的預設選項
####################################################################################
存儲空間準備好之後,就要建立SMB共享了,在server manager中的shares部分建立一個共享
用于存放hyper-v或sql的話,一定要選擇applications
然後選擇這個共享是建立在哪個卷上,我就選擇剛才存儲池中建立的F卷
然後輸入這個共享的名稱,共享路徑會自動利用該名稱
然後可以選擇是否加密資料以提高安全性
需要注意的一點是,對于存放hyper-v虛機的SMB共享一定要将每個節點的計算機名稱和群集名稱以及對應的操作賬戶(一般都是擁有域管理者權限的)加入到下圖清單中并且授予完全控制
确認無誤後就可以建立SMB共享了
按照上面的方法我在F卷上建立了名為ssd的共享路徑
上面的内容從底層磁盤-存儲空間-SMB共享這一條線都準備好了,下面就要準備hyper-v的群集環境了,failover cluster不多說了,這裡我用兩個節點A和B建立了一個hyper-v群集
對于hyper-v over smb的方案,可以參照下圖中的幾種模式,左邊是最簡單的獨立hyper-v主機與獨立的smb共享伺服器(成本低,但後端存儲單點故障,smb伺服器挂了就廢了,前端hyper-v不支援高可用但能手動live migration);中間的是雙節點smb檔案伺服器,前端還是獨立hyper-v主機(這個方案主要是提高了後端smb的高可用,并且smb的fileserver群集是AA模式的,也就是全活的,帶寬也是累加的,也就是所謂的“橫向擴充檔案伺服器群集”http://technet.microsoft.com/en-us/library/hh831349.aspx);最後的方案是更多節點的smb群集,也就是多機頭的,但前端仍然沒有改變,這裡要說明的是,對于前端hyper-v層,最佳實踐也是建議采用群集模式的,是以最終的拓撲應該是前端hyper-v群集+後端smb群集,這樣vm支援高可用,smb支援高可用,并且吞吐量更高,還可以配合RDMA等硬體加速技術來提升性能
那麼傳統hyper-v群集是會按照下圖規劃的,磁盤方面首先要有資料盤用來存放虛機,然後還會有仲裁判來進行投票以便高可用場景,如下圖所示,但是在hyper-v over smb的環境中,因為我們的存儲是不依賴于以往的SAN或者直連存儲的,我們是通過網絡通路共享檔案的方式來做,類似NAS;那麼其實資料盤是不需要的,且仲裁的配置也因人而異,可有可無,如果我們是個十足的低成本場景,那麼肯定是不會特地準備一塊仲裁盤的,那麼就直接用檔案夾仲裁就好了,有關這方面的配置我就不多說了
接下來存儲空間,SMB還有hyper-v都準備好了,這時候來到SCVMM,通過system center來對基礎架構資源進行統一化管理才是雲平台的核心價值之一,VMM對存儲的功能是在架構部分來實作的,如下圖所示,首先在providers中新加剛才準備好的smb伺服器,選擇windows-based file server即可
接着輸入smb伺服器的ip或者主機名,再選擇有足夠權限的運作方式賬戶
很快就會掃描出這台伺服器,可以看到我是用一台HP DL580G4來做的,包括容量也能看到
下一步之後就能看到我之前建立好的兩個共享目錄了,ssd是剛才上面所講到的混合vhd,hdd是在pool1中用那四塊hdd做的,total和可用空間一目了然
最有價值的是classification,也就是分類,在vmm中對存儲可以設定分類,對網絡端口也可以進行分類,别小看分類,這不光是一個辨別,它是對資料中心裡的衆多類型的資源進行合理的規劃和分類,一是友善了管理(清晰),二是在通過自服務門戶時可以傳遞給使用者,因為使用者不關心你的基礎架構有多麼複雜,他不會關心你用了哪些品牌的儲存設備或網絡裝置,你隻需要給他一個金銀銅或三六九等的類型就可以了,下圖中我建立了三個分類,FC SAN顧名思義,另外兩個hdd與ssd fileshare是給這兩個smb共享用的
此外你還可以建立更多的類型來進行管理
添加完providers之後就可以通過vmm來管理檔案共享了
在file servers中可以同步出所有共享及分類并且資源使用情況也是一目了然
接着在群集屬性中檢視file share storage,可以看到兩個共享已經配置設定給群集使用了
在對vm進行存儲遷移的時候可以放置在新的smb共享中了
以VM01這台虛機為例,目前vhd存放路徑已經是在smb共享中了
另外要提到的是,剛才前面說過存儲分類的意義在于傳遞給最終使用者,那麼面向最終使用者的就是“雲”了,在vmm的clouds中可以對雲資源配置設定指定的存儲類别,這樣使用者在通過自服務門戶時候或者租戶申請訂閱的時候,就可以選擇他要使用哪一種類型來放置資源了,至于這一類型後面對應的磁盤類型及更底層的細節,使用者可不關心
下面回到群集管理器,圖中的三台虛機最上面這個ab是存放在CSV中的
而另外兩台都是放在SMB共享上的,這裡順便說一下群集管理器左邊的storage中也有一個pools,這裡是什麼意思呢,比如你有儲存設備,不管是FC,iscsi或者DAS,whatever~你把他們挂載給每一個群集節點,然後通過這裡來建立存儲空間,并用于群集,在windows2012r2中,存儲池無論是simple,mirror還是帶校驗的類型都可以用于群集了
接下來測試一下live migration,同時選擇CSV上的ab與SMB3.0上的VM01一起遷移
遷移從A節點到B節點