軟件定義存儲在VMware虛擬化環境中的使用
在公司當前環境中,VMware虛擬化環境承載著大約80%的應用系統的運行。隨著應用系統和虛擬桌面需求增多,尤其各種業務系統突發增多,傳統的存儲規劃已經無法滿足要求,需要靈活的應對VMware環境存儲需求的方案。隨著各種軟件定義存儲的發展和使用,我們也在嘗試和尋找一個比較成熟的針對VMware環境的軟件定義存儲方案。
存儲方案的基本原則:
- 靈活快速部署,通過監控當前環境存儲的狀態能夠通過快速部署應對存儲性能和容量的需求增長。
- 在滿足性能要求的前提下,降低成本。
- 通用型存儲,以便該存儲方案能夠應對其他應用場景的需求。
結合VMware所兼容的存儲類型接口,在軟件定義存儲的選型中,我們對當前主流的幾款軟件定義存儲做了一些測試以及分析,綜合下來有以下特點:
一些開源軟件定義存儲已經可以通過部署iSCSI Gateway提供block存儲掛載給VMware ESXi主機使用,但目前此方案還不成熟,比如Ceph。
一些存儲公司的軟件定義存儲產品已可以與VMware環境集成,但有些產品集成度過高,不夠通用;還有些產品可以獨立部署,作為通用存儲使用,除了能夠提供對VMware存儲集成支持,也可適用于其他應用場景。在這一點上,比較符合我們選型前所設定的基本原則。
那么,如何對此存儲集群進行設計?
在設計前,需要結合當前VMware運行環境的特點以及容量和性能需求做統一考慮:
- 通過監控當前VMware環境,我們發現,在此環境中存儲的讀寫比例約為7:3,讀操作明顯更多
- 結合虛擬桌面的特點,也更多的是讀操作
- 容量需求
- 虛擬桌面的鏡像存儲需要更優的讀性能
結合容量以及未來增長需求,我們考慮此存儲集群的存儲節點不會超過16個,我們最終按以下架構進行了***期部署:
- 采用兩套獨立的10gb網絡用于不同的通信:
1. Private network用于存儲節點之間通信,作為數據rebuild和rebalance網絡
2. Public network用于存儲客戶端與存儲集群通信,作為數據存儲網絡
- 采用6臺X86服務器作為存儲節點,每臺服務器配置:
1. 10K SAS 1.2TB × 20
2. SSD 480GB × 4
- 存儲池和Cache設置:
1. 根據硬盤分類將集群分為兩個存儲池:SAS pool和SSD pool
2. 使用一部分存儲節點內存作為緩存
3. 每臺存儲節點使用一塊SSD作為SAS pool讀緩存
4. SSD pool主要用于存放虛擬桌面鏡像
- 容錯配置:
為了應對服務器故障,同時由于存儲集群節點較少,我們設置每臺服務器作為一個Fault set,同時預留一臺服務器的容量空間作為spare space,可以應對一臺服務器故障。隨著集群增大,可以靈活更改此預留空間比例。
我們通過FIO對此存儲集群做了一個簡單的性能測試,結果如下:
當然,VMware環境的實際IO類型要比以上的測試更為復雜,目前此套集群已經能滿足當前需求。我們也將不斷根據實際使用情況和需求,逐步增加集群存儲節點,結合cache技術,進行存儲性能優化。