讓我們來看看軟體定義儲存體(SDS)
新年快樂
2017第一天,我就想該寫點東西紀錄一下,在電視機前跨年果然還是比較省時間,可以讀比較多書,做比較多實驗
延續上一篇製作Nano Server的實驗環境,本次會用到的機器是SVR1,SVR2,SVR3
什麼是軟體定義儲存?
現在很流行軟體定義XXX阿,好像沒用軟體定義的東西就不能用,其實不然,現在軟體技術很強,加上相對便宜的硬體規格也出現更高速度的,所以用比較高端的軟體去控制硬體,邏輯上組合起來已經可實際使用,好處是靈活有彈性,簡化部署流程,降低成本,提高效能等等,Software Defined Storage 以下簡稱SDS
需要詳細圖文解說的朋友,可以參考以下微軟官方的解釋,這邊不再贅述
https://technet.microsoft.com/en-us⋯⋯
最少3個節點,最多支援16 個節點
儲存定義有兩種:
- 超融合(做在同一台上面)
- 融合(多層式)
本文使用超融合
為什麼需要使用軟體定義儲存?
軟體定義儲存 =便宜版本的SAN
現在你不用投資幾百萬,不用搞複雜的Fiber Channel(光纖通道),就能擁有百萬IOPS的效能
讓我算給你看,一台HPE Gen 9伺服器大約十萬,記憶體建議最小插到128GB,硬碟每台插四顆NVMe的SSD 256GB總價大約49萬,每台有RDMA RoCEv2或者iWARP (10GB)網卡至少一張,四張算你10萬,交換器你應該有了我就不列入,一台國產車的價錢就可以比擬中高階性能的儲存設備
看看FC SAN,光纖通道儲存設備需要前端伺服器接上後面光纖交換器以及儲存設備群,一台FC SAN 交換器二手價20萬,儲存設備就看你要砸多少錢了,加上光纖基礎建設,百萬的建置費用與維護費用應該是跑不掉,你要砸一棟房子的錢,大概是這樣的比較概念,十年前不敢想SDS的原因是,當年沒有更高速的端口技術以及儲存裝置(這好比虛擬化也不是新技術,只是當年硬體跟不上)
去Google搜尋NVMe SSD就能看到一堆插卡式的價錢
去Google搜尋RDMA RoCE網卡就會出現一些有支援這種格式的廠商,例如 Mellanox
軟體定義儲存體(SDS)
步驟1 在SVR1、SVR2、SVR3上各別用伺服器管理員安裝檔案和存放服務,容錯移轉叢集,及相關管理工具與功能,並重新開機
你也可以用指令完成這些機器的安裝
Get-WindowsFeature -Name *fail*,*file*
Invoke-Command -ComputerName svr1 -ScriptBlock{ Install-WindowsFeature -Name FileAndStorage-Services -IncludeManagementTools - IncludeAllSubFeature Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -IncludeAllSubFeature }
Invoke-Command -ComputerName svr2 -ScriptBlock{ Install-WindowsFeature -Name FileAndStorage-Services -IncludeManagementTools - IncludeAllSubFeature Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -IncludeAllSubFeature }
Invoke-Command -ComputerName svr3 -ScriptBlock{ Install-WindowsFeature -Name FileAndStorage-Services -IncludeManagementTools - IncludeAllSubFeature Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -IncludeAllSubFeature }
Get-WindowsFeature -Name *fail*,*file*
可以方便檢查你有沒有成功安裝了這些功能
我知道你看的頭快暈了,上面三個區段我有試過用foreach迴圈簡化掉,但結果只有SVR1會安裝指定功能(不知道哪個好心人可以幫我看一下那裡有問題)
$Servers = @('svr1','svr2','svr3')
foreach ($Server in $Servers) { Install-WindowsFeature -Name FileAndStorage-Services,Failover-Clustering -IncludeManagementTools -IncludeAllSubFeature}
步驟2 驗證叢集設定
驗證叢集報告非常詳細,建議你從頭看一遍,裡面會提到你的網卡不是RDMA類型
Test-Cluster –Node svr1,svr2,svr3 –Include “Storage Spaces Direct”,”Inventory”,”網路”,”系統設定”
所以,有警告不代表不能做LAB喔
(記得,這是LAB,正式環境建議把驗證叢集設定報告提醒你的事情都盡量做到)
步驟3 建立叢集
-StaticAddress參數是因為你的伺服器也是靜態ip
New-Cluster -Name 叢集名稱 -Node 節點名稱 -NoStorage -StaticAddress 靜態ip
步驟4 啟動S2D功能
Enable-ClusterStorageSpacesDirect
按下全部皆是繼續往下做
步驟5 建立儲存集區跟虛擬磁碟(Cluser Storage Volume)
建議你先用這個指令跑看看你目前的儲存層類型是什麼
Get-StorageTier
https://technet.microsoft.com/en-us⋯⋯
New-Volume -StoragePoolFriendlyName "S2D*" -FriendlyName S2DD4 -FileSystem CSVFS_ReFS -StorageTierFriendlyNames Capacity -StorageTierSizes 100GB -CimSession S2DCluster
步驟6 建立可延展性檔案伺服器
你也可以把VM的VHDX放在本次建立的CSV中,取代以前叢集需要放在MPIO(多重路徑存取)+iSCSI(以前要多加一台虛擬機模擬)磁碟裡的做法
後記
- 整個過程用虛擬機器做實驗不困難,挑戰的是實體機實驗,如果有碰到實體機我再補圖上來給各位(有RDMA網卡加上混合磁碟NVMe的實體機實驗環境的朋友可以幫忙測IOPS有多快分享給我們...)
- 上面的PowerShell問題我發現加上參數 -ComputerName $Server 就可以了,會寫跟不會寫真的差好多)
- 驗證叢集報告非常詳細,裡面會提到你的網卡不是RDMA類型,也會指出你的硬碟是屬於哪一種匯流排類型
- 本次LAB全過程都可以用圖形操作完成,像是安裝角色,新增虛擬磁碟等等,除了啟動S2D功能
- 你的3台練習機的資料碟別初始化還新增簡單磁碟區,因為S2D不支援已經有磁碟分割的磁碟,你就當作你家伺服器新買的HDD插上去的狀態就是了
- 本次LAB為了快速做出S2D,容錯移轉叢集沒有建立見證磁碟,若要建立有兩種方式,雲端見證跟檔案見證(以前的做法就是用共用資料夾做檔案見證),雲端見證做法請參考以下網址
https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/deploy-cloud-witness
參考資料(我主要是看第一篇跟第二篇):
Hyper-converged solution using Storage Spaces Direct in Windows Server 2016 (超融合解決方案)
https://technet.microsoft.com/en-us⋯⋯
Testing Storage Spaces Direct using Windows Server 2016 virtual machines (用虛擬機器的設定方式)
Windows Server 2016 TP5 Storage Spaces Direct(S2D)- 建置
http://blog.pmail.idv.tw/?p=13560
以上就是 SDS 軟體定義儲存體 建立過程,我們下回見
Ken
Mailto: taleships@gmail.com