深入淺出桌面虛擬化存儲性能的評估

   到底該如何規劃桌面虛擬化的存儲性能?一幫兄弟由討論變成了紛爭。直到Citrix的大拿Davy Huang開聲,討論才戛然而止。這是我看過的桌面虛擬化IOPS評估中最有的深度的文章了。不敢私藏,拿出來與大家分享。

 

虛擬桌面系統很依賴存儲基礎架構來承載用戶環境和操作系統的不同部分。如果沒有合適的存儲子系統的設計,用戶的虛擬桌面會變得越來越慢,然後直到不可用,因爲存儲變爲了最大的瓶頸。爲了恰當的設計存儲基礎設施,我們需要能夠計算期望的每秒Input/Output Operations ,也就是我們俗稱的IOPS, 我個人認爲計算IOPS 需要從以下幾方面考慮:

(1)磁盤IOPS

磁盤是整個存儲系統的最基本組成單元,它完成一個I/O請求所花費的時間是由尋道時間、旋轉延遲和數據傳輸時間三部分構成:

尋道時間Tseek是指將讀寫磁頭移動至正確的磁道上所需要的時間。尋道時間越短,I/O操作越快,目前磁盤的平均尋道時間一般在315ms

旋轉延遲Trotation是指盤片旋轉將請求數據所在扇區移至讀寫磁頭下方所需要的時間。旋轉延遲取決於磁盤轉速,通常使用磁盤旋轉一週所需時間的1/2表示。比如,7200 rpm的磁盤平均旋轉延遲大約爲60*1000/7200/2 = 4.17ms,而轉速爲15000 rpm的磁盤其平均旋轉延遲約爲2ms

數據傳輸時間Ttransfer是指完成傳輸所請求的數據所需要的時間,它取決於數據傳輸率,其值等於數據大小除以數據傳輸率。目前IDE/ATA能達到133MB/sSATA II可達到300MB/s的接口數據傳輸率,數據傳輸時間通常遠小於前兩部分時間。因此,理論上可以計算出磁盤的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略數據傳輸時間。假設磁盤平均物理尋道時間爲3ms, 磁盤轉速爲7200,10K,15K rpm,則磁盤IOPS理論最大值分別爲,

IOPS = 1000 / (3 + 60000/7200/2) = 140

IOPS = 1000 / (3 + 60000/10000/2) = 167

IOPS = 1000 / (3 + 60000/15000/2) = 200

需要注意的是,上述計算中磁盤平均尋道時間的取值對計算結果的有較大的影響;同時爲了提升磁盤的IO速度,所有的磁盤都會帶有緩存(Disk Buffer),這也是網上的資料有時候會看到磁盤的IOPS值大於上述理論計算值的原因.

 

2)磁盤Raid IOPS

通常我們在使用存儲的時候,都是把多個磁盤建成一個Raid,那麼這個由多個磁盤構成的RAID的IOPS就跟我們採用的RAID LEVEL有很大關係:

讀IOPS:

無論是那種RAID LEVEL,磁盤的讀取性能都是所有磁盤之和,所以可以得出下面的讀取IOPS

read IOPS = disk_IOPS/(1-disk_ buffer_read_hit_ratio)*disk_num

但是不同RAID LEVEL,磁盤的寫性能則會由於不同類型的數據冗餘影響實際寫的數量(這也稱爲寫懲罰,penalty):

RAID 0: RAID 懲罰

RAID 1: penalty of 2

RAID 10: Penalty of 2

RAID 5: Penalty of 4 

RAID 6: Penalty of 6

RAID0 write IOPS =disk_IOPS/(1-disk_buffer_write_hit_ratio)*disk_num/ penalty

假設組成RAID的單個磁盤的隨機讀寫的IOPS140,讀寫緩存命中率都爲10%,組成陣列的磁盤個數爲4

這樣RAID的讀IOPS

read IOPS = disk_IOPS/(1-disk_buffer_read_hit_ratio)*disk_num =140/(1-10%)*4 = 622

寫入IOPS

RAID0 write IOPS =disk_IOPS/(1- disk_buffer_write_hit_ratio)*disk_num/ Penalty =140/(1-10%)*4/1 = 622

RAID1 write IOPS =disk_IOPS/(1- disk_buffer_write_hit_ratio)*disk_num/ Penalty =140/(1-10%)*4/2 = 311

RAID5 write IOPS =disk_IOPS/(1- disk_buffer_write_hit_ratio)*disk_num/ Penalty =140/(1-10%)*4/4 = 155

RAID6 write IOPS =disk_IOPS/(1- disk_buffer_write_hit_ratio)*disk_num/ Penalty =140/(1-10%)*4/6 = 103

RAIDIOPS=寫入IOPS+IOPS

 

3)磁盤陣列IOPS

現代的磁盤陣列爲了進一步提升性能,在其控制器上一般都會再加上緩存(SDRAM),有的還有第二級的緩存(Flash Memory),這樣一來整個陣列和其中某個RIADIOPS就變得難以計算。

很多廠商公佈的那些非常高的IOPS數據實際上是將被測存儲系統配置了儘量多的小容量、高轉速磁盤且每個磁盤裝載數據量不多、設置爲RAID-10時測出的100%順序讀(Sequential Read)IOPS的最大值。而且很多廠商在公佈上述100%順序讀(Sequential Read)IOPS時還隱去了“100%順序讀”字樣,籠統地稱爲IOPS。但多數用戶實際使用的環境既有順序讀寫、也有隨機讀寫操作;傳輸數據塊尺寸大小都有;爲了有效利用存儲系統的存儲容量,很多用戶都採用RAID-5,而且儘量使用大容量磁盤來減少磁盤數量,以少佔存儲系統的寶貴槽位空間。因此廠商測試環境得到的100%順序讀(Sequential Read)IOPS指標完全不能代表該存儲產品在用戶實際應用環境下的性能。這就是廠商公佈的IOPS很高,而產品在用戶實際使用環境中性能卻很差的原因。

既然很難計算,而廠商提供的數據也不能信任,那我們怎麼辦呢?幸運的是我們還有SPCSPC-1 IOPS™可以信任和參考。SPC的全稱是Storage Performance Council(:存儲性能理事會),它的成員由幾乎全部的國外存儲廠商和部分大學、研究機構組成,SPC是一個非贏利的組織,其使命是定義、標準化存儲系統的基準測試,並提升存儲系統基準測試的知名度、擴展其影響,使之成爲計算機行業最具權威性的存儲性能測試結果,使計算機用戶可以不受現存混亂的各種存儲性能測試結果的影響。目前SPCSPC-1基準測試主要是針對隨機I/O應用環境的,SPC-2基準測試主要是針對順序I/O應用環境的。SPC-1基準測試很好地模擬了OLTP、數據庫和e-mail等真實應用環境,使SPC-1基準測試結果具有很高權威性和可比性。查詢各存儲廠商的SPC-1基準測試報告,可訪問http://www.storageperformance.org/results 測試報告中列明瞭進行測試的存儲系統配置。但是要注意的是,這些測試結果我們不應該直接使用,因爲測試的配置和我們時間項目中的配置肯定不同。所以其最重要的意義在於它使我們知道這種磁盤陣列在某種配置下,陣列的實測IOPS跟我們通過上述第(1)(2)中介紹的方法計算出來的總IOPS理論值之間的比例,這個比例(我稱爲提升因子)代表了陣列中的緩存對IO起到的提升作用。換句話說,以後我們在對陣列中RAIDIOPS理論計算中可以乘上這個比例。有些廠商也直接告訴你這個因子,比如說NETAPP就宣稱採用PAM緩存卡可降低75%的讀IOWAFL寫優化可降低50%的寫IO等等,這裏的1/(1-75)%1/(1-50%)就可以看作提升因子,只不過可信度有多少就不知道了。

 

4)桌面虛擬化場景下磁盤陣列IOPS的評估

在實際運行中每個桌面VM有不同的工作狀態,一般而言每中工作狀態對存儲子系統都有不同的要求:

1.      工作:

     輕量: 4-8 IOPS

     普通: 8-15 IOPS

     重量: 15-30 IOPS

2.      空閒: 4 IOPS

3.      登出: 12 IOPS

4.      Offline: 0 IOPS

那麼在桌面虛擬化環境下,我們如何評估一個存儲系統能否滿足我們的使用要求呢?我認爲可以從兩個方面考慮:

1.      整個系統IOPS總需求與總供給:比如我們總共需要提供給研發用戶5000臺重量級VM,每臺VM峯值IOPS需求是30,那麼總需求就是150000;每個磁盤陣列提供的IOPS大約爲SPC-1測試值×SPC-1測試配置的磁盤數量/實際項目中配置的磁盤數量,總IOPS供給=磁盤陣列提供的IOPS×磁盤陣列數量。這樣我們就能計算出整個存儲配置能否滿足項目的需求。

2.      每個SR(一個LUN,一般對應存儲 陣列上的由多個磁盤組成的一個RAID)的IOPS需求與供給:根據最佳實踐,每個SR上放置25-30臺重量級VM,按照25臺計算,因此需求是25×30=750 IOPS;而對應的RAID的供給可以由(2)中的總IOPS×(3)的提升因子計算得到。這樣我們就可以判斷具體某一個SR的磁盤配置能否滿足項目的需要。

轉載請註明出處:http://vdesk.blog.51cto.com

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