搜狐網(wǎng) 2017-05-02 17:58 本文主要討論了在SAN存儲領(lǐng)域里Cache技術(shù)的應(yīng)用范圍和功能比較,可以為企業(yè)存儲管理員等IT技術(shù)人員在制定企業(yè)級存儲解決方案時提供參考。文章主要以EMC的CLARiiON 和 Symmetrix 等主流SAN存儲產(chǎn)品為例,簡要介紹SAN里涉及到的各種Cache緩存技術(shù),同時對比各個技術(shù)的優(yōu)缺點和應(yīng)用場合,包括緩存使用中的最佳實踐分析。由淺入深地闡述了緩存技術(shù)在后端存儲陣列以及前端服務(wù)器層面越來越廣泛的應(yīng)用和多樣化的設(shè)計與實現(xiàn)。最后引入了在實際生產(chǎn)環(huán)境下的使用緩存技術(shù)來提供生產(chǎn)效率的案例。 (1)引言: 在數(shù)據(jù)存儲技術(shù)日新月異的今天,信息量也在以爆炸形式而迅猛增長。當磁盤等存儲媒體介質(zhì)已經(jīng)不是存儲行業(yè)的軟肋時,大數(shù)據(jù)(Big Data)和云存儲(Cloud Storage)便成為可能。各大存儲廠商和研究組織也逐漸把新的焦點集中在如何提高數(shù)據(jù)存儲速度和性能,從而進一步保證各種應(yīng)用程序的讀寫達到更快速更可靠的要求得以滿足。于是在當下流行的存儲區(qū)域網(wǎng)絡(luò)(SAN) 領(lǐng)域 ,新的提升存儲性能技術(shù)就應(yīng)運而生了。其中Cache緩存技術(shù)的發(fā)展和應(yīng)用顯得越來越重要了。 (2)正文: 在過去的十年中,服務(wù)器處理技術(shù)繼續(xù)發(fā)展沿著摩爾定律曲線。每18個月,內(nèi)存和處理能力已經(jīng)翻了一倍,但是磁盤驅(qū)動器技術(shù)還沒有。驅(qū)動器的轉(zhuǎn)速,繼續(xù)以相同的速度旋轉(zhuǎn)。這導(dǎo)致了一個在I / O堆棧上的瓶頸,服務(wù)器和應(yīng)用程序有能力以處理比磁盤驅(qū)動器可以交付的更多的I / O。這被稱為I / O差距。傳統(tǒng)的比較直接的方法是增加存儲端處理器的DRAM主內(nèi)存,從而能分配給控制器的讀緩存(Read Cache)和寫緩存(Write Cache)更多的容量,來加快后端存儲的I/O吞吐量,這樣就把處理I/O的任務(wù)交給了Cache和磁盤之間的通信。這里以EMC 的CLARiiON為例,首先介紹一下磁陣系統(tǒng)的讀寫緩存的概念。 一個存儲系統(tǒng)的控制器緩存有兩個部分:讀緩存和寫高速緩存。讀緩存使用一個預(yù)讀機制, 允許存儲系統(tǒng)從硬盤預(yù)取數(shù)據(jù)。因此,應(yīng)用程序時需要此數(shù)據(jù)就可以從讀緩存里直接得到。存儲系統(tǒng)內(nèi)存儲最近訪問的數(shù)據(jù)的高速內(nèi)存。為了得到更快的響應(yīng)時間,所有主機寫入都直接寫入緩存,并在寫入磁盤前向主機發(fā)回確認。寫高速緩存的緩沖區(qū),通過吸收高峰負荷優(yōu)化寫操作,聯(lián)合小寫操作,以及消除重寫。你可以改變讀緩存大小、寫緩存大小和緩存頁面大小達到最優(yōu)性能。最好的尺寸的讀和寫緩存取決于讀/寫比率。一個通用的標準比讀書寫的都是兩讀/一寫;即:讀取占了66%的I / O。 在主存儲DRAM(內(nèi)存)的部署方式中,由用戶決定在固態(tài)磁盤中放置哪些數(shù)據(jù)以及何時放置。用戶必須進行特殊的操作來將數(shù)據(jù)遷移到固態(tài)磁盤中,而且使用到這些數(shù)據(jù)的應(yīng)用程序必須被告知數(shù)據(jù)的準確位置。內(nèi)存和緩存的固態(tài) 磁盤部署有兩個顯著的不同:在內(nèi)存的部署方式中,僅有數(shù)據(jù)放置在固態(tài)磁盤上的應(yīng)用程序可以提升性能。而且和緩存系統(tǒng)中性能隨時間線性增長不同,內(nèi)存部署方式可以即刻改善性能,不需要花時間預(yù)熱數(shù)據(jù)。主內(nèi)存分配給讀、寫緩存的空間越大系統(tǒng)處理I/O的速度就越快。這就是主內(nèi)存DRAM的部署的最大優(yōu)勢,可以直接反應(yīng)出對于來自服務(wù)器的I/O處理能力。提升對所有負載整體性能,見效快但是成本高,靈活性和可擴展性以及易維護性交差一點。 讀、寫緩存固然對提高存儲系統(tǒng)整體性能很好,但是這些緩存依然來自存儲控制器里的主內(nèi)存,也就是DRAM。而由于內(nèi)存硬件容量的制約和成本的考慮,基于RAM的系統(tǒng)主內(nèi)存不可能無限增加,并且更重要的一個因素是,如果在使用大寫緩存的情況下出現(xiàn)斷電、宕機等不確定因素容易造成寫緩存無法訪問甚至數(shù)據(jù)丟失。那么就會出現(xiàn)緩存越大丟失的數(shù)據(jù)越多的情況。在實際生產(chǎn)環(huán)境中,很多客戶都是因為突然的掉電導(dǎo)致系統(tǒng)內(nèi)存中有來不及寫入磁盤的數(shù)據(jù)而出現(xiàn)Dirty Cache(臟數(shù)據(jù))如果后端存儲的兩個控制器都出現(xiàn)問題無法啟動,那么這部分的緩存數(shù)據(jù)就徹底丟失了。還有就是很多核心硬件故障也會導(dǎo)致寫緩存首先自動被禁用(Disabled),以便保證不會出現(xiàn)數(shù)據(jù)在寫緩存內(nèi)丟失的情況。 所以我們必須根據(jù)生產(chǎn)應(yīng)用環(huán)境和以及I/O量大小及I/O特性來調(diào)整讀寫緩存的大小,來達到優(yōu)化性能的目的。由此看來,單靠增加系統(tǒng)控制器的讀寫緩存,即單一增加系統(tǒng)主內(nèi)存DRAM來提高存儲系統(tǒng)整體性能還是不足的。因為內(nèi)存的固態(tài)磁盤部署方式最大的缺點在于,今天最合適的數(shù)據(jù)分布方式可能并不是明天最合適的。舉例來講,假設(shè)一個非常關(guān)鍵的應(yīng)用僅在每個月 末需要高性能,其數(shù)據(jù)必須在每月月末處理開始之前遷移到固態(tài)磁盤,并在月末處理結(jié)束之后移出。為解決這一問題,許多固態(tài)存儲技術(shù)的供應(yīng)商為其內(nèi)存部署方式自動化軟件提供自動化功能,可以自動化輔助選擇和遷移數(shù)據(jù)到固態(tài)磁盤上。這些解決方案可以工作在全LUN級別或次LUN級別。此外,這些解決方案通常提供了基于策略的數(shù)據(jù)遷移功能,用戶可以設(shè)置相關(guān)閾值,限制數(shù)據(jù)升級到固態(tài)磁盤上的次數(shù)和降級到普通磁盤上的次數(shù)。這些自動化分層軟件解決方案目前都已應(yīng)用成熟。 EMC的全自動分層存儲(FAST)就是自動化分層軟件解決方案中比較先進的技術(shù)之一。其實在SAN應(yīng)用存儲產(chǎn)品中,各類控制器,不論軟件控制器,服務(wù)器內(nèi)部的RAID控制器或者是高端外部陣列的控制器,會將固態(tài)存儲技術(shù)作為前端傳統(tǒng)磁盤存 儲的一個緩存。該緩存控制器會區(qū)分出所有經(jīng)常存取的數(shù)據(jù),亦稱為“熱點數(shù)據(jù)”,并自動地將其遷移至固態(tài)媒介。雖然不同的緩存控制器或許有些許不同的緩存交 換算法,但最基本的想法還是通過將熱點數(shù)據(jù)遷移到最高速的媒介上,提升I/O性能并降低I/O延遲來改善性能。I/O模式每時每刻都在變化,緩存控制器自 動地監(jiān)控哪些數(shù)據(jù)是最常被訪問的,并將其遷移至最高速的媒介,在這個過程中無需任何用戶或管理員的介入。 另外FAST還具備Cache功能,如果存儲系統(tǒng)有需求,簡單講就是Fast Cache將把一部分固態(tài)硬盤當成Cache來使用。FAST與 FAST Cache協(xié)同工作,從而基于應(yīng)用程序訪問各種數(shù)據(jù)塊的方式將數(shù)據(jù)放置在最適當 的存儲層上。自 EMC 在企業(yè)陣列的磁盤模塊(通常稱為 SSD)中首次部署閃存技術(shù)以來,拓展此技術(shù)在整個存儲系統(tǒng)中的使用一直是業(yè)界的目標。IT技術(shù)日新月異,近幾年里閃存技術(shù)的高性能和快速降低的每 GB 成本結(jié)合在一起導(dǎo)致緩存層 概念的出現(xiàn)。緩存層是使用企業(yè)閃存驅(qū)動器的大容量輔助緩存,介于存儲處理器基于 DRAM 的主緩存和硬盤驅(qū)動器之間。在 EMC CLARiiON、Celerra 統(tǒng)一存儲和 VNX?? 存儲系統(tǒng)上,此功能稱為 EMC FAST Cache。 FAST Cache 可擴展存儲系統(tǒng)的現(xiàn)有緩存容量,以提高整體系統(tǒng)性能。具體通過以下幾個方式實現(xiàn):將經(jīng)常訪問的數(shù)據(jù)映射到閃存驅(qū)動器以擴展 DRAM 緩存的功能,閃存驅(qū)動器的速度比機械式驅(qū)動器(也稱為硬盤驅(qū)動器)快一個數(shù)量級,從而大大提高系統(tǒng)性能。它還使用閃存驅(qū)動器提供更大的可擴展緩存,與 DRAM 容量相比,閃存驅(qū)動器可以提供非常大的每驅(qū)動器容量。FAST Cache 的容量介于 73 GB 到 2 TB 之間,這比現(xiàn)有存儲系統(tǒng)的可用 DRAM 緩存大得多。無需用戶干預(yù)即可使應(yīng)用程序體驗到 FAST Cache 的性能優(yōu)勢。因此,EMC用閃盤作為系統(tǒng)主內(nèi)存Cache的延伸,不存在掉電后的保護問題。 使用 FAST Cache 的一個主要應(yīng)用就是能提高應(yīng)用程序性能,特別是對于 I/O 活動經(jīng)常不可預(yù)知的大幅度增加的工作負載。應(yīng)用程序工作數(shù)據(jù)集經(jīng)常被訪問的部分會復(fù)制到 FAST Cache,因此應(yīng)用程序可以立即大幅提高性能。利用 FAST Cache,應(yīng)用程序可以通過以閃存驅(qū)動器速度處理繁重的讀/寫負載來實現(xiàn)一致的性能。另一個重要好處是降低了系統(tǒng)的總體擁有成本 (TCO),這是通過減少后端硬盤驅(qū)動器上的負載實現(xiàn)的。FAST Cache 將大型存儲容量的繁忙部分復(fù)制到閃存驅(qū)動器;因此,許多 LUN 的最繁忙區(qū)域只使用一小組閃存驅(qū)動器。這使得一大組速度較慢的驅(qū)動器可以實現(xiàn)通常由速度較快的驅(qū)動器提供的性能。經(jīng)過一段時間后,速度較快的光纖通道驅(qū)動器可以減少數(shù)量或替換為速度較慢的光纖通道或 SATA 驅(qū)動器,同時保持相同的應(yīng)用程序性能。這樣就提高了存儲系統(tǒng)的財務(wù)效率和能源效率 。 這里我舉個實際生產(chǎn)案例來說明FAST Cache如何提高了應(yīng)用程序的性能。原來在客戶環(huán)境里有若干臺虛機,針對150個VMware試圖桌面,所有虛機啟動需要20分鐘,響應(yīng)225毫秒,使用FAST Cache之后啟動時間縮短為9分鐘,響應(yīng)時間縮短為50毫秒。還有我們知道Exchange Server 2010 是一個對存儲系統(tǒng)要求很高的應(yīng)用程序。而使用Exchange 2010的公司就會從EMC FAST Cache 中受益匪淺。我們做了測試,在一個單一Exchange 2010 服務(wù)器使用SATA盤作為儲存的環(huán)境,啟用FAST Cache測試發(fā)現(xiàn)IOPS獲得了113%的增長。在另一個更大一些的配置達到44TB數(shù)據(jù)量的Exchange 2010環(huán)境,數(shù)據(jù)處理任務(wù)非常繁重,測試結(jié)果顯示在啟用FAST Cache后STAT 盤的性能也有42%的提升。 FAST Cache 與存儲系統(tǒng)緩存的比較,F(xiàn)AST Cache 是基于半導(dǎo)體的存儲技術(shù)。它在存儲系統(tǒng)的 DRAM 緩存(速度較快但容量有限)與機械式硬盤驅(qū)動器(速度較慢但容量較高)之間提供一個基于閃存的大容量輔助緩存層。 DRAM 內(nèi)存與 FAST Cache 緩存的比較 特征 DRAM 緩存 FAST Cache 緩存 位置 它最接近 CPU,并且延遲最低。 與 DRAM 緩存相比,它距離 CPU 較遠并且較慢。 粒度 它具有非常高的粒度,粒度實際上是 I/O 大小。緩存頁面大小可由用戶配置,可介于2KB 到16KB 之間。 它在 64 KB 粒度的范圍內(nèi)運行。 可升級性 不可升級。 可在各種型號中升級,相關(guān)選項取決于存儲系統(tǒng)型號和閃存驅(qū)動器類型。 操作 它對讀操作和寫操作分別使用單獨的區(qū)域。 它使用單個區(qū)域來完成讀操作和寫操作。 容量 與 FAST Cache 相比,它的大小有限。 可以擴展到非常大的容量。 范圍 它支持 FAST Cache LUN 以及其他 LUN。 它允許您在所選 RAID 組 LUN 或存儲池上啟用 FAST Cache。 響應(yīng)時間 響應(yīng)時間大約為幾毫微秒到幾微秒。 響應(yīng)時間大約為幾微秒到幾毫秒。 可用性 出現(xiàn)故障時,需要合格人員進行更換。 出現(xiàn)故障時,另一閃存驅(qū)動器熱備盤自動取代出現(xiàn)故障的驅(qū)動器,客戶可更換故障組件。 電源故障 它的內(nèi)容具有易失性;因此不能經(jīng)受斷電。 它的內(nèi)容是非易失性的,可以經(jīng)受斷電。 如何提高提升應(yīng)用程序性能是儲存行業(yè)一個永恒的話題。最近幾年閃存技術(shù)的興起和飛速發(fā)展讓很多業(yè)內(nèi)人士又看到了新的機會。我們知道SAS和SATA驅(qū)動器給數(shù)據(jù)庫提供了不凡的性能容量比,但基于物理旋轉(zhuǎn)的磁盤注定不能夠提供最佳的性能。 于是把閃存驅(qū)動器加入到磁陣中就發(fā)現(xiàn)可以提供一個更高數(shù)量級的性能。 現(xiàn)在在市場上有一個新的服務(wù)器閃存緩存技術(shù),提供了更大的性能。就是說 把Flash閃存放置到裝有PCIe卡的服務(wù)器上,就可以加速甚至得到另一個數(shù)量級閃存驅(qū)動器的性能。 EMC VFCache 就是一種優(yōu)秀的服務(wù)器閃存緩存解決方案,可利用智能緩存軟件和 PCIe 閃存技術(shù)縮短延遲并提高吞吐量,從而大幅提升應(yīng)用程序性能。VFCache 可加快數(shù)據(jù)塊 I/O 讀取速度和保護數(shù)據(jù),方法是使用到網(wǎng)絡(luò)存儲的直寫緩存,提供持久的高可用性、可靠性、數(shù)據(jù)完整性和災(zāi)難恢復(fù)。與基于陣列的 EMC 全自動存儲分層 (FAST) 軟件配合使用時,VFCache 可創(chuàng)建從應(yīng)用程序到數(shù)據(jù)存儲區(qū)的最高效和最智能的 I/O 路徑。并最終衍生出針對物理和虛擬環(huán)境的性能、智能和保護進行動態(tài)優(yōu)化的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。VFCache 與陣列上的 FAST VP(Virtual Provision) 和 FAST Cache 互為補充,但它并不要求存儲陣列使用 FAST VP 或 FAST Cache。VFCache 作為一種服務(wù)器端只讀緩存,可將 EMC 全自動存儲層 (FAST) 策略擴展到服務(wù)器。VFCache 動態(tài)緩存引擎不僅會自動識別頻繁訪問的數(shù)據(jù),還會自動將該數(shù)據(jù)升級到 PCIe 卡上的閃存中。如此一來,不但使來自 SAN 和共享陣列的 I/O 壓力得到緩解,而且也提高了應(yīng)用程序性能。由于頻繁訪問的數(shù)據(jù)位于服務(wù)器內(nèi),使 I/O 服務(wù)次數(shù)大幅減少。因此,服務(wù)器可支持更多的虛擬機和/或應(yīng)用程序可交付更多的事務(wù)。 VFCache 獨立于 FAST Cache 和 FAST VP 運行。VFCache 是一種專用的服務(wù)器端只讀緩存,而 FAST Cache 是一種支持讀寫操作的共享陣列端緩存。上述二者均屬暫時性緩存,而 FAST VP 則是在基于陣列的存儲池內(nèi)的層之間半永久性地移動數(shù)據(jù)。借助于 EMC 存儲陣列緩存和分層技術(shù)中的智能優(yōu)勢,F(xiàn)AST VP 算法允許陣列集中資源來處理所有工作負載中要求最高的部分。這三種技術(shù)旨在共同確保以最低的延遲為最常訪問的信息提供服務(wù)。VFCache、FAST Cache 和 FAST三者相結(jié)合,可進一步簡化數(shù)據(jù)連續(xù)體系間的數(shù)據(jù)傳遞。 同樣,我們也找了個實際案例來說明VFCache如何提高了應(yīng)用程序的性能。在一個使用VFCache 配合FAST Cache 來加速聯(lián)機事務(wù)處理系統(tǒng)(OLTP)Oracle DB11gR2的環(huán)境里,我們發(fā)現(xiàn)在配置了VFCache后,系統(tǒng)的吞吐量,每分鐘交易量,是基線配置(Baseline Configuration)的2.5倍,而延時時間(Latency)卻減少了30%。如果再同時配合啟用FAST Cache功能,系統(tǒng)的吞吐量及每分鐘交易量,是基線配置的7.8倍,而延時時間減少了20%。 (3)結(jié)論: 回頭看來,總結(jié)我遇到的這些實際案例中,一些用戶選擇了固態(tài)磁盤緩存的部署方式,而另一些則選擇主存儲(DRAM)方式。由于每種方式都有其優(yōu)點,這使得許多客戶開始時選擇緩存的方式,而之后又為其解決方案額外增加了內(nèi)存方式的支持選項,反之亦然。主內(nèi)存是基本配置,用戶可以根據(jù)EMC官方文檔找到自己型號機器所對應(yīng)的最佳推薦讀/寫緩存配置。但是內(nèi)存是不保護數(shù)據(jù)的,一旦斷電數(shù)據(jù)將全部丟失。這將是它永遠的軟肋。當存儲系統(tǒng)的FLARE?? 版本 升級到30以上后,并且根據(jù)條件能夠使用Flash閃存驅(qū)動器,那么我們極力推薦用戶使用EMC FAST VP及FAST Cache來進一步提高整體系統(tǒng)性,因為閃存驅(qū)動器的速度比機械式驅(qū)動器快一個數(shù)量級。FAST Cache 的容量介于 73 GB 到 2 TB 之間,這比現(xiàn)有存儲系統(tǒng)的可用 DRAM 緩存大得多。但是FAST CACHE并非適用于所有I/O類型。例如,連續(xù)大I/O數(shù)據(jù)流或許根本不會促使數(shù)據(jù)被提升(Promote)至FAST Cache,因為這些I/O不會多次訪問同一個64KB數(shù)據(jù)塊(chunk)。于是人們開始把目光從后端的存儲轉(zhuǎn)移到了前端服務(wù)器。VFCache就是一個軟硬件完美結(jié)合的最新服務(wù)器端閃存緩存解決方案。在內(nèi)存中的應(yīng)用緩存數(shù)據(jù)只能加速某個應(yīng)用,但VFCache可以加速 所有連接到它的源存儲,也就是我們通常所說的LUN。當然現(xiàn)階段VFCache還不支持Cluster,希望能在下一版VFCache中實現(xiàn)了共享磁盤環(huán)境和Active/Active集群的支持。綜上我們不難看出,主內(nèi)存DRAM,F(xiàn)AST Cache 還有VFCache 都是提升存儲性能的好辦法,三者如果能夠根據(jù)用戶實際應(yīng)用程序的特點以及硬件設(shè)備條件來搭配使用必將給用戶帶來前所未有的性能提升體驗,同時也會降低運維成本,提高客戶滿意度和企業(yè)生產(chǎn)效率。 |
|