眾所眾知,OLTP工作負載作為讀寫密集型應用,其性能直接依賴于數(shù)據(jù)存放的存儲。很多企業(yè)不惜投入巨大的前期投資購置外部存儲陣列,以期獲得良好的性能。雖然通過這一方法可以解決存儲的性能瓶頸,但是在總體擁有成本上卻令企業(yè)不堪重負。VMware的Virtual SAN可以幫助客戶有效解決這一問題。將SQL Server部署在Virtual SAN中,可以降低50%的綜合總體擁有成本(TCO)。而啟用Virtual SAN 6.2中全閃存特有的去重/壓縮技術以后,可以進一步提升存儲效率,降低用戶的總體擁有成本。
為了打消客戶對于Virtual SAN在性能與可用性方面的疑慮,我們在Virtual SAN 6.2全閃存架構中針對SQL Server 2014進行了全面的性能評估。通過閱讀本文,讀者可以對SQL Server在全閃存架構Virtual SAN上的性能有細致的了解。
注釋:本次性能測試分為上下兩個部分,本文為上半部分,主要描述在啟用Virtual SAN各種不同新特性的情況下運行SQL Server OLTP工作負載的性能表現(xiàn)。下半部分主要描述SQL Server在各種故障場景下的彈性性能以及在延伸集群上的性能表現(xiàn)。
測試介紹
在Virtual SAN 6.2中,引入了去重、壓縮以及糾刪碼(RAID 5/6)來提高存儲效率,降低空間開銷,節(jié)省了存儲成本。
在測試中,我們的目標之一是在新的空間效率提高技術啟用的條件下運行OLTP工作負載。我們使用了4節(jié)點全閃存架構的Virtual SAN集群,分別在每臺主機上部署1臺SQL Server虛擬機,并在虛擬機下分別對200GB數(shù)據(jù)庫和500GB數(shù)據(jù)庫進行性能測試,測試工具為Benchmark Factory for Database。
全閃存架構Virtual SAN具體配置
測試中我們采用4臺雙路ESXi主機,每臺主機擁有兩個12核并可啟用超線程的處理器,256GB內存,2塊400GB的Intel SSD作為緩存層以及8塊400GB的Intel SSD作為容量層(即每臺主機擁有兩個磁盤組),網(wǎng)絡配置基于萬兆網(wǎng)絡。
SQL Server數(shù)據(jù)庫虛擬機配置
SQL Server數(shù)據(jù)庫虛擬機的操作系統(tǒng)版本為Windows Server 2012 R2 64位數(shù)據(jù)中心版SP1,數(shù)據(jù)庫版本為Microsoft SQL Server 2014企業(yè)版SP1,在測試中,我們在每臺ESXi主機上放置一臺SQL Server虛擬機。為了測試Virtual SAN對不同大小數(shù)據(jù)庫支持的性能表現(xiàn),我們配置了200GB和500GB兩組數(shù)據(jù)庫,不同類型虛擬機的具體硬件配置如下:
通過測試,全閃存架構Virtual SAN集群中的4臺虛擬機可以持續(xù)獲得總計接近8000的每秒交易數(shù)(TPS),同時保持平均磁盤讀寫延遲在2毫秒以下——去重/壓縮、校驗和在Virtual SAN中均已啟用。全閃存架構的極致性能使得虛擬磁盤的平均讀寫延遲穩(wěn)定在1毫秒至2毫秒之間。這意味著Virtual SAN 6.2在啟用所有空間效率提高技術的情況下,仍然可以獲得極佳的性能。
如圖一所示,如果Virtual SAN未啟用去重/壓縮和校驗和功能,200GB的數(shù)據(jù)庫每秒交易數(shù)在1905~1906之間;500GB數(shù)據(jù)庫的每秒交易數(shù)在2051~2158之間。而在啟用去重/壓縮和校驗和功能后,200GB的數(shù)據(jù)庫每秒交易數(shù)在1850~1851之間;500GB數(shù)據(jù)庫的每秒交易數(shù)在2092~2172之間,如圖二所示。從整個集群的角度,兩種不同大小的數(shù)據(jù)庫在Virtual SAN集群中啟用去重/壓縮與校驗和后可以達到總計7965~8022的每秒交易數(shù)。我們測得的平均磁盤讀寫延遲在1毫秒至2毫秒之間。
圖一 未啟用去重/壓縮和校驗和功能時每臺虛擬機的TPS和虛擬磁盤平均讀寫延遲
圖二 啟用去重/壓縮和校驗和功能時每臺虛擬機的TPS和虛擬磁盤平均讀寫延遲
在SQL Server的類TPC-E性能測試中,我們最關注的是平均磁盤延遲。如表所示,在Virtual SAN默認存儲策略,F(xiàn)TT=1的情況下,各場景的Virtual SAN磁盤讀取延遲范圍在1.7毫秒到2.1毫秒之間。在更改存儲策略,啟用糾刪碼——RAID 5以后,平均磁盤寫入延遲增加到4.4毫秒。在所有的測試場景中,平均磁盤讀取延遲都低于2毫秒。
表 四種不同測試場景下的具體性能
啟用去重/壓縮和糾刪碼(RAID 5)節(jié)省存儲空間
在將數(shù)據(jù)庫部署到啟用去重/壓縮和糾刪碼功能的全閃存架構Virtual SAN中后,我們測試了Virtual SAN存儲結構化數(shù)據(jù)時(類OLTP/TPC-E 數(shù)據(jù)庫)的空間節(jié)省情況。
我們在全閃存架構Virtual SAN集群中部署了五臺虛擬機,其中兩臺虛擬機每臺托管200GB的數(shù)據(jù)庫,兩臺虛擬機每臺托管500G的數(shù)據(jù)庫,一臺域控制器。
從虛擬機硬件配置表中可以看到,部署200GB數(shù)據(jù)庫的虛擬機需要680GB的存儲空間(100GB的操作系統(tǒng),2*200GB數(shù)據(jù)盤,1*100GB日志盤以及1*80GB的臨時數(shù)據(jù)盤);部署500GB數(shù)據(jù)庫的虛擬機需要1360GB的存儲空間(100GB的操作系統(tǒng),4*250GB數(shù)據(jù)盤,1*100GB日志盤以及2*80GB的臨時數(shù)據(jù)盤);部署域控制器虛擬機需要100GB的存儲空間。
在Virtual SAN的默認存儲策略下,總計部署空間超過8TB。如圖三所示,Virtual SAN在啟用去重/壓縮功能之前部署五臺虛擬機的物理寫入空間大概需要5050GB。當啟用去重/壓縮功能后,實際的空間使用為2020GB。去重/壓縮比率大約在2.27倍。在啟用RAID 5后,實際的空間使用下降為1900GB,空間節(jié)省比大約在2.66倍。
圖三 部署SQL Server虛擬機時不同空間效率提高技術的空間節(jié)省率
此外,啟用校驗和、去重/壓縮、糾刪碼功能并不會明顯占用主機的CPU資源。如圖四所示,各臺主機的物理CPU利用率在四種測試場景中都非常相近。
圖四 四種測試場景下各臺主機的平均物理CPU利用率
總結
通過實際測試與驗證,我們可以得出結論:Virtual SAN 6.2在啟用去重/壓縮、校驗和以及糾刪碼等新特性后,對SQL Server的性能影響微乎其微。此外,啟用全閃存獨有的去重/壓縮技術可以節(jié)省50%以上的數(shù)據(jù)存儲空間,結合糾刪碼(RAID 5)技術甚至可以達到60%以上。Virtual SAN 6.2在全閃存架構下的性能表現(xiàn)讓人眼前一亮。關于SQL Server在Virtual SAN上面對各種場景故障的彈性性能以及在延伸集群上的性能表現(xiàn),我們將于下半部分詳細描述,敬請期待!
關于作者
本文作者為VMware存儲與可用性事業(yè)部Virtual SAN解決方案團隊(Product Enablement,PE)的武曉今/丁楠。Virtual SAN解決方案團隊主要負責Virtual SAN與各種行業(yè)關鍵應用平臺的融合。通過設計、構建、驗證關鍵應用在Virtual SAN超融合架構下各種場景的性能表現(xiàn),針對產品特性進行性能調優(yōu),并以參考架構——白皮書的方式向客戶提供使用Virtual SAN的最佳實踐。