所有系統(tǒng)都存在限制,而其中的某些元素不可避免地成為了永遠的痛。限制因素的存在阻礙了組織充分利用IT功能。十幾年來,在絕大多數虛擬化部署環(huán)境中存儲子系統(tǒng)一直都是瓶頸。
虛擬化的核心資源是CPU、RAM、磁盤以及網絡。除某些極個別的工作負載外,CPU早已不再是虛擬環(huán)境的瓶頸了。增加RAM容量的成本很低,通常服務器支持增加更多的內存,因為正常情況下使用的內存容量只有服務器在理論上支持的內存容量的一半。磁盤子系統(tǒng)的速度從未快到需要配置最大容量內存的地步。
取決于磁盤與虛擬集群的連接方式,網絡可能會成為存儲出現瓶頸的原因之一。但網絡也可能和CPU一樣空閑,處于待命狀態(tài)。
然而,更常見的情況是存儲子系統(tǒng)拖了后腿。解決存儲I/O瓶頸是一個復雜的過程,與物理基礎設施選擇、配置變更相關。讓我們一起了解下如何識別并搞定存儲子系統(tǒng)存在的問題。
基準測試
在著手解決存儲子系統(tǒng)存在的存儲I/O問題前,首先需要發(fā)現存在的問題究竟是什么。例如,如果問題是不能向虛擬主機交付足夠好的性能,那么調整虛擬機以試圖更多地使用存儲性能不會提供任何幫助。類似地,試圖通過簡單地調整虛擬機配置文件解決問題也不現實。
基準測試是一種很棒的發(fā)現問題的方法?;鶞蕼y試可以在物理主機、虛擬機(包括運行在不同虛擬主機之上的虛擬機)上運行相同的配置。能夠使用完全相同的I/O配置文件生成完全相同的工作負載,使我們能夠定位問題所在。
使用基準測試定位存儲I/O問題,需要建立存儲在正常情況下的性能指標基準。由于確定正常值是一個相當主觀的過程,所以你需要牢記一些原則。首先,存儲是不是只是在一個地方出問題?可能出現的情況是有兩個存儲系統(tǒng),一個運行速度慢,而另一個沒問題?;蛘呖赡苡幸粋€存儲系統(tǒng),當虛擬機在當前主機上運行時性能存在瓶頸,但在另一臺主機上運行時卻沒問題。在虛擬機執(zhí)行各種不同任務時進行全面的基準測試是一個不錯的主意。
務必保存基準測試記錄。你使用的是什么配置?IOPS是多少?吞吐量有多大?最大延遲以及平均延遲是多少?
進行各種測試。四線程50%讀/50%寫完全隨機測試是一種很棒的、多數人都能接受的通用性能基準測試方法。但不同組織針對不同工作負載的讀寫混合比例可能存在顯著差異。如果存儲產品可以統(tǒng)計讀寫比,那么采用該讀寫比進行基準測試是一種不錯的選擇。
嘗試一些100%讀以及100%寫的基準測試。如果存儲問題是無法交付所要求的性能,那么基準測試的目的是把問題找出來??赡苡斜匾獮榛鶞蕼y試虛擬機提供多塊虛擬磁盤,還需要部署多臺基準測試虛擬機。
一旦完成了基準測試,就要進行后臺工作測試了。使用I/O測量工具Iometer確定100%讀、100%寫以及讀寫各占一半條件下的IOPS峰值。將存儲系統(tǒng)的負載調整到IOPS容量的25%、33%、50%以及75%,然后運行各種常見的管理任務并記錄時間。
第一個任務是使用備份軟件對虛擬機進行完整備份。然后嘗試執(zhí)行快照以及克隆操作、從模板克隆虛擬機。接下來,嘗試同時運行多個特定工作負載,比如Exchange Server Jetstress以及其他類似的測試項目,進行基準測試。模擬多個并發(fā)的工作負載操作,同時使用Iometer進行壓力測試。
分析基準測試結果
分析所有數據是個不小的挑戰(zhàn),但并非沒有解決方法。有時數字將問題交代的一清二楚。讀IOPS值合理但寫IOPS值非常糟糕?這可能是因為存儲層沒有開啟寫緩存—你應該打開寫緩存,假定可以使用電池備份技術搞定上述問題。
如果存儲產品允許的話,你可以嘗試增加一個閃存層。或者如果正在使用某種網絡存儲,那么可以在服務器端增加緩存。在峰值時使用虛擬主機的閃存記錄寫入操作,并在間歇期將數據寫入到存儲中。
讀寫端的數字非常糟糕嗎?可能是存儲產品不符合使用要求,或者是在虛擬主機與存儲之間存在瓶頸。
如果存儲基于網絡,那么存儲性能不佳與網絡負載相關,問題有可能出在網卡上。如果你確定陣列應該提供更好的性能,但網卡負載并沒有達到飽和,那么問題可能出在虛擬主機與存儲之間的網絡連接或者網卡驅動上。
不要低估分析中延遲的重要性。IOPS以及吞吐量數字非常好,但應用性能非常糟糕,這是完全有可能的。因為有問題的應用對延遲非常敏感。對很多應用而言,延遲比存儲性能的任何其他指標都要重要。
不要把基準分析視為真理。它無法揭示所有問題。基準分析更類似于按照順序詳細測試鏈中的所有鏈接?;鶞史治鐾枰褂貌煌膮祱?zhí)行新測試。沒有指南告訴你需要做什么,或者能夠針對所有可能性進行分析。需要研究可用的數據并設計虛擬基礎設施,當看到沒有意義的數字時,需要對測試進行改進。
談到識別并消除存儲子系統(tǒng)的瓶頸,基準測試以及結果分析僅僅是第一步。一旦有充分的信息對問題進行了定位,接下來就需要制定計劃解決配置或極端的存儲問題。