專利名稱:一種存儲系統(tǒng)的緩存系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng)性能優(yōu)化領(lǐng)域,具體涉及一種存儲系統(tǒng)的緩存系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)發(fā)展過程中,CPU速度一直隨著摩爾定律發(fā)展,即每年增長60%左右。但作 為主要存儲設(shè)備的磁盤系統(tǒng),訪問速度卻增長緩慢,每年只有7%左右。因此,CPU和磁盤之 間的性能差距就越來越大,“ IO墻”已經(jīng)成為“CPU墻”和“內(nèi)存墻”之后計(jì)算機(jī)系統(tǒng)新的瓶頸。這種處理速度的差距對外表現(xiàn)在服務(wù)器端不能穩(wěn)定可靠地對外提供服務(wù)、客戶端 得不到及時(shí)的高質(zhì)量的IO響應(yīng)。目前常見的解決方案是通過增加服務(wù)器數(shù)量,從而增加存 儲部件的數(shù)量來解決IO問題,但這種方法會造成計(jì)算資源的浪費(fèi);即使通過簡單地增加磁 盤設(shè)備的數(shù)量來提高存儲系統(tǒng)性能,也會有更多的磁盤存儲空間被浪費(fèi);此外,其他電力成 本、機(jī)房和環(huán)境成本也隨著服務(wù)器或磁盤設(shè)備數(shù)量的增加而不斷上升。為了彌補(bǔ)基于磁盤的存儲設(shè)備性能的不足,目前許多新的存儲介質(zhì)不斷出現(xiàn),比 如Flash,PCM等。但磁盤容量大、價(jià)格低等優(yōu)勢使得其在存儲系統(tǒng)中的主流地位短期內(nèi)不 會改變。因此,如何提高現(xiàn)有磁盤系統(tǒng)的性能就顯得極為重要。分級存儲的概念在計(jì)算機(jī)系統(tǒng)中得到了普遍采用,緩存層主要擔(dān)負(fù)兩方面的工 作,一方面是將之前訪問過的數(shù)據(jù)緩存下來,根據(jù)數(shù)據(jù)訪問的時(shí)間局部性原理,這些數(shù)據(jù)在 短期內(nèi)可能會被再次訪問,因此可以直接從緩存層讀出,而不用再次訪問主存介質(zhì)。另一方 面,緩存層還需要對應(yīng)用即將訪問的數(shù)據(jù)做預(yù)測,并將預(yù)測的內(nèi)容提早讀入緩存介質(zhì)中。在 預(yù)測正確的情況下,后續(xù)的訪問可以直接在緩存介質(zhì)中命中,也同樣避免了訪問速度較慢 的主存介質(zhì)。因此,存儲介質(zhì)就需要具有耐磨損、讀寫速度快、讀寫均衡、系統(tǒng)干擾低的特點(diǎn)?,F(xiàn) 有的基于FLASH的存儲設(shè)備由于其寫入次數(shù)有限,并且寫帶寬明顯低于讀帶寬等缺點(diǎn)使其 不能用作緩存介質(zhì)。而如果借用宿主機(jī)內(nèi)存,由于內(nèi)存之間的數(shù)據(jù)遷移需要CPU參與,因此 用宿主機(jī)內(nèi)存做緩存介質(zhì)會對系統(tǒng)帶來性能方面的干擾。
發(fā)明內(nèi)容
為解決上述缺點(diǎn),本發(fā)明從存儲系統(tǒng)的緩存和預(yù)取技術(shù)出發(fā),在磁盤設(shè)備和內(nèi)存 系統(tǒng)之間增加緩存層,從而形成層次化的存儲結(jié)構(gòu),提高底層設(shè)備和存儲系統(tǒng)整體的性能。一種存儲系統(tǒng)的緩存系統(tǒng),包括對外接口層,緩存管理模塊和塊設(shè)備硬件層;所述對外接口層包括用戶接口和標(biāo)準(zhǔn)塊設(shè)備接口 ;所述緩存管理模塊包括虛擬設(shè)備映射層和核心管理層;所述塊設(shè)備硬件層包括基于RAM的高速塊設(shè)備和常規(guī)的標(biāo)準(zhǔn)塊設(shè)備。本發(fā)明的第一種優(yōu)選技術(shù)方案在于應(yīng)用通過所述標(biāo)準(zhǔn)塊設(shè)備接口對設(shè)備進(jìn)行 read, write, ioctl操作;用戶通過所述用戶接口構(gòu)建、管理和配置緩存系統(tǒng)。
本發(fā)明的第二種優(yōu)選技術(shù)方案在于所述虛擬設(shè)備映射層用來在緩存設(shè)備和標(biāo)準(zhǔn) 存儲設(shè)備之間建立映射和地址轉(zhuǎn)化。本發(fā)明的第三種優(yōu)選技術(shù)方案在于所述核心管理層對底層存儲設(shè)備進(jìn)行管理和 組織,處理具體的IO請求和進(jìn)行各種策略的實(shí)現(xiàn)和轉(zhuǎn)換。本發(fā)明的第四種優(yōu)選技術(shù)方案在于所述基于RAM的高速塊設(shè)備用來做標(biāo)準(zhǔn)塊設(shè) 備的緩存,所述標(biāo)準(zhǔn)塊設(shè)備可以是磁盤、盤陣、RAID或是虛擬塊設(shè)備。本發(fā)明中帶來的有益效果如下低價(jià)格由于后端存儲仍使用基于磁盤的存儲系統(tǒng),所以整體系統(tǒng)的價(jià)格比全部 采用FLASH的系統(tǒng)低;高性能命中率較高的情況下,多數(shù)的訪問都在高速緩存介質(zhì)中命中,因此系統(tǒng)可 以提供近似高速緩存介質(zhì)的性能;大容量由于數(shù)據(jù)最終存儲在外部存儲上,因此最終的系統(tǒng)存儲容量是基于磁盤 的存儲容量。
圖1是本發(fā)明緩存系統(tǒng)架構(gòu)2是本發(fā)明系統(tǒng)中數(shù)據(jù)訪問流程圖3是本發(fā)明讀請求處理流程圖4是本發(fā)明寫請求處理流程
具體實(shí)施例方式如圖1所示,在緩存系統(tǒng)的最上層是對外接口層,提供用戶接口和塊設(shè)備操作接 口。在對外接口層之下是緩存系統(tǒng)的緩存管理模塊,該模塊是本發(fā)明設(shè)計(jì)實(shí)現(xiàn)的主要部分, 它包括虛擬設(shè)備映射層和核心管理層;最底層是塊設(shè)備硬件層,由基于RAM的高速塊設(shè)備 和一個(gè)常規(guī)的標(biāo)準(zhǔn)塊設(shè)備組成,其中基于RAM的高速塊設(shè)備用來做標(biāo)準(zhǔn)塊設(shè)備的緩存。在緩存管理模塊中,虛擬設(shè)備映射層主要實(shí)現(xiàn)緩存系統(tǒng)虛擬的緩存設(shè)備與原始數(shù) 據(jù)源設(shè)備的地址映射和封裝。緩存系統(tǒng)核心管理層在底層的緩存設(shè)備和標(biāo)準(zhǔn)數(shù)據(jù)源設(shè)備之 間進(jìn)行緩存單元的映射,建立緩存映射關(guān)系,并通過相應(yīng)的數(shù)據(jù)結(jié)構(gòu)來進(jìn)行緩存的管理,通 過對緩存單元狀態(tài)的管理,達(dá)到對IO請求進(jìn)行分發(fā)和控制的目的。其中,各個(gè)模塊的功能劃分如下1、標(biāo)準(zhǔn)塊設(shè)備接口和用戶接口層標(biāo)準(zhǔn)塊設(shè)備接口為應(yīng)用提供一個(gè)標(biāo)準(zhǔn)的塊設(shè)備視圖,方便上層應(yīng)用使用緩存模塊 呈現(xiàn)的存儲設(shè)備。通過標(biāo)準(zhǔn)塊設(shè)備接口可以對設(shè)備進(jìn)行ReacUfeite、ioctl等常見的塊設(shè) 備操作。用戶接口層為上層應(yīng)用提供一個(gè)構(gòu)建、管理和配置緩存設(shè)備的接口。用戶通過該 接口提供高速緩存設(shè)備、數(shù)據(jù)源設(shè)備的大小和相對地址,以及最終需要生成的緩存系統(tǒng)的 名字等。用戶接口層提供的管理和配置接口,主要用來管理和配置緩存系統(tǒng)的屬性,例如 緩存系統(tǒng)的核心管理層的相關(guān)策略、緩存設(shè)備、緩存單元的大小等。
2、設(shè)備映射層設(shè)備映射層主要用來在緩存設(shè)備和標(biāo)準(zhǔn)存儲設(shè)備之間建立映射和地址轉(zhuǎn)化。它用 來對兩個(gè)設(shè)備的原始地址進(jìn)行整合,形成一個(gè)新的邏輯地址,對這個(gè)邏輯地址的訪問就會 自動落入緩存系統(tǒng)中。并且,設(shè)備映射層還負(fù)責(zé)將邏輯地址的訪問映射到物理設(shè)備的物理地址上去,以 實(shí)現(xiàn)對虛擬設(shè)備的訪問真正落到物理設(shè)備上來。3、核心管理層核心管理層是整個(gè)緩存系統(tǒng)的的核心模塊。核心管理層主要負(fù)責(zé)對底層存儲設(shè)備 的管理和組織、具體的IO請求的處理、各種策略的實(shí)現(xiàn)和轉(zhuǎn)換。核心管理層中包含各種數(shù)據(jù)結(jié)構(gòu),包括設(shè)備的數(shù)據(jù)結(jié)構(gòu)、管理兩個(gè)基本塊設(shè)備的 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)傳送和管理的基本數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)、進(jìn)行相應(yīng)數(shù)據(jù)處理和緩存管理的各 個(gè)工作線程、IO處理流程控制的數(shù)據(jù)結(jié)構(gòu)、各種策略的數(shù)據(jù)結(jié)構(gòu)等。核心管理層的各種策略設(shè)計(jì)中都盡量保證較低的系統(tǒng)開銷,具體策略可以分為 地址映射方式、寫策略、回收策略和預(yù)取策略。4、實(shí)體設(shè)備層實(shí)體設(shè)備層包含具體的塊設(shè)備。在緩存系統(tǒng)中,實(shí)體塊設(shè)備層處于最底層。每個(gè) 生成的緩存系統(tǒng)內(nèi)部包含兩個(gè)具體的設(shè)備,一個(gè)高速的塊設(shè)備和一個(gè)標(biāo)準(zhǔn)塊設(shè)備。其中標(biāo) 準(zhǔn)塊設(shè)備可以是磁盤、盤陣、Raid系統(tǒng)或是虛擬的塊設(shè)備等。而高速塊設(shè)備則是采用基于 RAM的高性能存儲設(shè)備。根據(jù)上層傳遞下來的IO請求信息,實(shí)體塊設(shè)備層的各個(gè)設(shè)備處理發(fā)送給自己的 IO請求,并進(jìn)行相應(yīng)的數(shù)據(jù)傳送。下面介紹本發(fā)明中緩存系統(tǒng)的工作過程如圖2所示,在緩存系統(tǒng)中,處理請求的過程實(shí)際上是根據(jù)請求的信息,對請求進(jìn) 行分析,根據(jù)分析的信息進(jìn)行轉(zhuǎn)換、轉(zhuǎn)發(fā)、擴(kuò)充和收尾處理的過程。對請求的處理是貫穿整 個(gè)模塊的主要線路。請求的處理路線根據(jù)請求的讀和寫分成兩條線路。在處理的過程中緩 存的狀態(tài)是決定的因素,每個(gè)緩存單元的數(shù)據(jù)結(jié)構(gòu)中都記錄著本單元的緩存狀態(tài),控制著 請求的處理流程。其中,讀請求的處理中,緩存空間主要進(jìn)行的是對源數(shù)據(jù)設(shè)備中數(shù)據(jù)做緩存以及 根據(jù)讀請求的信息對后續(xù)數(shù)據(jù)的預(yù)取。讀請求的處理流程如圖3所示。首先存儲接收到讀請求后,結(jié)合預(yù)取策略和請求的歷史記錄信息,對請求的數(shù)據(jù) 地址進(jìn)行分析。如果判斷需要預(yù)取,則會同時(shí)對預(yù)取數(shù)據(jù)和原數(shù)據(jù)請求同時(shí)進(jìn)行處理。如果需要對請求的內(nèi)容進(jìn)行緩存,首先為讀請求所在的緩存單元地址范圍分配緩 存單元。將此讀請求交給源數(shù)據(jù)設(shè)備進(jìn)行處理。在數(shù)據(jù)源設(shè)備將請求的數(shù)據(jù)內(nèi)容拷貝到請 求的主機(jī)內(nèi)存區(qū)域中的同時(shí),新構(gòu)造一個(gè)請求用來將此塊內(nèi)存區(qū)域中的數(shù)據(jù)寫入到緩存設(shè) 備的緩存單元之中。若請求所在的地址范圍被緩存設(shè)備映射,即請求的地址空間被包含在某個(gè)緩存單 元之中,則查詢緩存單元的狀態(tài),根據(jù)狀態(tài)進(jìn)行進(jìn)一步的處理。如果數(shù)據(jù)已經(jīng)從源存儲設(shè)備 放入緩存設(shè)備,或者緩存設(shè)備中存儲的是數(shù)據(jù)的最新值,則可以直接從緩存設(shè)備中取得數(shù)據(jù),直接將請求經(jīng)過轉(zhuǎn)換后交給緩存設(shè)備處理。如果緩存單元描述符的狀態(tài)為數(shù)據(jù)無效,但更新請求已發(fā)出,表明緩存設(shè)備正在 從源數(shù)據(jù)設(shè)備讀入數(shù)據(jù)。此時(shí),如果從緩存設(shè)備中讀取數(shù)據(jù)會讀入過期和不一致的數(shù)據(jù);如 果從源數(shù)據(jù)設(shè)備讀取數(shù)據(jù)會造成數(shù)據(jù)的重復(fù)讀取,都是不恰當(dāng)?shù)淖龇āT谶@種情況下,緩存 系統(tǒng)會將請求轉(zhuǎn)換為對緩存設(shè)備的請求,等待緩存單元填充結(jié)束,狀態(tài)變?yōu)橛行Ш?,再將?請求交送給緩存設(shè)備處理。如圖4對寫請求的處理過程設(shè)計(jì)到緩存寫策略的采用。對寫穿透過程,直接將緩 存中的數(shù)據(jù)標(biāo)記為無效,將請求轉(zhuǎn)換為源數(shù)據(jù)設(shè)備的請求,轉(zhuǎn)發(fā)請求給源數(shù)據(jù)設(shè)備處理。對 寫回策略,寫請求的處理過程如圖4所示,如果請求對應(yīng)地址空間沒有被緩存,則直接轉(zhuǎn)換 相應(yīng)的請求交給源數(shù)據(jù)設(shè)備處理。否則,查詢緩存單元狀態(tài),如果緩存中的數(shù)據(jù)有效,則說 明緩存中的數(shù)據(jù)是最新的,將請求交給緩存設(shè)備處理。如果緩存不為這三種狀態(tài),則將請求 交給源數(shù)據(jù)設(shè)備進(jìn)行處理。
權(quán)利要求
1.一種存儲系統(tǒng)的緩存系統(tǒng),其特征在于包括對外接口層,緩存管理模塊和塊設(shè)備 硬件層;所述對外接口層包括用戶接口和標(biāo)準(zhǔn)塊設(shè)備接口;所述緩存管理模塊包括虛擬設(shè)備映射層和核心管理層;所述塊設(shè)備硬件層包括基于RAM的高速塊設(shè)備和常規(guī)的標(biāo)準(zhǔn)塊設(shè)備。
2.如權(quán)利要求1所述一種存儲系統(tǒng)的緩存系統(tǒng),其特征在于應(yīng)用通過所述標(biāo)準(zhǔn)塊設(shè) 備接口對設(shè)備進(jìn)行read、write、ioctl操作;用戶通過所述用戶接口構(gòu)建、管理和配置緩存 系統(tǒng)。
3.如權(quán)利要求1所述一種存儲系統(tǒng)的緩存系統(tǒng),其特征在于所述虛擬設(shè)備映射層用 來在緩存設(shè)備和標(biāo)準(zhǔn)存儲設(shè)備之間建立映射和地址轉(zhuǎn)化。
4.如權(quán)利要求1所述一種存儲系統(tǒng)的緩存系統(tǒng),其特征在于所述核心管理層對底層 存儲設(shè)備進(jìn)行管理和組織,處理具體的IO請求和進(jìn)行各種策略的實(shí)現(xiàn)和轉(zhuǎn)換。
5.如權(quán)利要求1所述一種存儲系統(tǒng)的緩存系統(tǒng),其特征在于所述基于RAM的高速塊 設(shè)備用來做標(biāo)準(zhǔn)塊設(shè)備的緩存,所述標(biāo)準(zhǔn)塊設(shè)備可以是磁盤、盤陣、RAID或是虛擬塊設(shè)備。
全文摘要
本發(fā)明提供了一種存儲系統(tǒng)的緩存系統(tǒng),包括對外接口層,緩存管理模塊和塊設(shè)備硬件層;對外接口層包括用戶接口和標(biāo)準(zhǔn)塊設(shè)備接口;緩存管理模塊包括虛擬設(shè)備映射層和核心管理層;塊設(shè)備硬件層包括基于RAM的高速塊設(shè)備和常規(guī)的標(biāo)準(zhǔn)塊設(shè)備。本發(fā)明的系統(tǒng)價(jià)格低,性能高,容量大。
文檔編號G06F12/08GK102043731SQ20101059852
公開日2011年5月4日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者許建衛(wèi), 邵宗有, 駱志軍 申請人:天津曙光計(jì)算機(jī)產(chǎn)業(yè)有限公司