在最近的Next Generation Storage Symposium and Storage Field Day(下一代存儲峰會與存儲現(xiàn)場日)上,讓我感到驚訝的是有這么多的廠商認為存儲的下一個熱點是通過某種形式的服務質(zhì)量的管理存儲性能。雖然這個行業(yè)正在熱衷于將閃存整合進存儲架構,不過有一些廠商已經(jīng)在考慮不僅為應用程序提供更高的性能,還要讓每個應用程序得到更加具有可預測性的性能。
存儲管理員通常是通過給各個工作負荷分配物理資源來管理性能。管理員可以給一個需要1.5萬次IOPS(每秒輸入輸出)的Oracle服務器分配100個1.5萬轉旋轉式磁盤來提供所需要的IOPS。
這種方法的問題在于它的效率低。由于希捷最小的最新一代的1.5萬轉磁盤都有146GB容量,提供1.5萬次IOPS意味著至少要7.5TB的磁盤空間。如果這個數(shù)據(jù)庫只有500或600GB,那大部分空間都被浪費了。給這個數(shù)據(jù)庫分配SSD(固態(tài)驅(qū)動器)雖然可以不浪費容量,但是浪費了性能。
處理效率問題的解決方案——自動精簡配置、將多個虛擬服務器放在一個數(shù)據(jù)倉庫內(nèi)、將閃存用作共享高速緩存、存儲分層等——都要在多個工作負荷中共享資源,使得多個工作負荷的性能出現(xiàn)互相依賴。如果一個用戶在你的Oracle數(shù)據(jù)庫上創(chuàng)建了一個非常復雜的請求,給存儲系統(tǒng)帶來了負擔,那么和數(shù)據(jù)庫一起共享磁盤的Exchange和Web服務器也會在I/O上受到影響。
如果我們將QoS(服務質(zhì)量)機制引入存儲系統(tǒng),我們可以給每個工作負荷分配最低的IOP率和優(yōu)先級。當存儲性能的總需求超過系統(tǒng)可以提供IOPS的能力的時候,我們不是在IO請求上采用“先來先服務”的方式,而是先讓系統(tǒng)確保每個服務器都獲得自己最低水平的IOPS,然后使用任何剩余的資源來給高優(yōu)先級的工作負荷提供額外的IOPS。
一個像NexGen或Tintri這樣的負荷存儲系統(tǒng)上,滿足QoS目標不僅需要對系統(tǒng)IO請求的仔細管理,而且還需要閃存和旋轉式磁盤的相對分配。(NexGen和Tintri是“下一代存儲峰會”的贊助商)
我得說,在我當網(wǎng)絡管理員的那段時間,我對QoS還是蠻懷疑的。voice-over-IP(IP電話)的家伙告訴我們說要想讓IP電話順利工作我們需要購買昂貴的新交換機來確保語音傳輸在以太網(wǎng)上有一個清晰的路徑。高級管理層決定拋棄舊的Rolm PBX并轉到VoIP,我們聲道Gb級以太網(wǎng)。我們的帶寬有很多,以至于無論我們部不部署QoS我們在VoIP上都有空閑容量。
一些人建議說雖然QoS在復合系統(tǒng)中行得通,不過純固態(tài)存儲系統(tǒng)有足夠的性能,因此QoS在這樣的系統(tǒng)中應該是不需要的。可惜的是,即使純SSD系統(tǒng)也是容易受到相鄰問題的干擾的,只是壓力程度不同而已。
存儲QoS對云提供商來說有一定吸引力,因為和企業(yè)數(shù)據(jù)中心管理員比起來,云服務提供商在他們所托管的虛擬機所做的事情上有更少的控制權。一個提供商如果因為客戶B大量使用存儲而不能給客戶A提供足夠性能的話,那它會很容易失去客戶A。SolidFire的純SSD系統(tǒng)專門為云服務提供商而設計。它的QoS機制不僅能控制性能的下限,還能控制性能的上限,因此云服務提供商可以在不同價位上提供不同的性能水平。(SolidFire是此次峰會的贊助商)
由于磁盤和SSD的容量在不斷增長,給工作負荷分別分配資源的低效性已經(jīng)變得越來越明顯。存儲系統(tǒng)上的QoS控制性,尤其是在VM(虛擬機)層面上實施的QoS,可以讓我們用最少的資源分配給盡可能多的工作負荷,同時保持每個工作負荷合適的性能水平。