一種計算機存儲加速系統(tǒng)及其優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種存儲加速系統(tǒng),特別設(shè)及國產(chǎn)計算機針對海量數(shù)據(jù)且熱口數(shù)據(jù)較 多的應(yīng)用環(huán)境下,提高讀性能的存儲加速系統(tǒng)及其優(yōu)化方法。
【背景技術(shù)】
[0002] 隨著國家科技信息安全意識的不斷提高,計算機的自主可控逐漸被提上日程,但 其國產(chǎn)計算機仍處起步階段,與主流水平存在一定差距。然而,近幾年來隨著計算機和信息 技術(shù)的迅猛發(fā)展和普及應(yīng)用,行業(yè)應(yīng)用系統(tǒng)的規(guī)模迅速擴大,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)呈爆 炸性增長。面對如此海量的數(shù)據(jù),如果將其全部放在大容量的SATA、SAS盤上時,會發(fā)現(xiàn)性能 (響應(yīng)時間)不夠;如果全放在固態(tài)硬盤(SSD)上時,又會發(fā)現(xiàn)成本很高。而現(xiàn)在的大數(shù)據(jù)具 有一個普遍特點,即大部分數(shù)據(jù)都會束之高閣封塵千年,只有少部分數(shù)據(jù)才會頻繁訪問使 用。如何提高國產(chǎn)計算機的存儲讀寫能力成為研究的重點之一。
[0003] 多年來硬件技術(shù)不斷向前發(fā)展,但各類硬件的發(fā)展速度卻不盡相同。尤WCPU和磁 盤最為明顯,兩者之間速度落差的不斷增大導(dǎo)致磁盤單位容量的I/O性能越來越低。但隨著 閃存技術(shù)的進步,SSD的性價比逐漸提高,而且其高性能,低功耗,無噪音的特性對于大型存 儲系統(tǒng)有著極大的吸引力。即使如此,SSD的高價格與低容量仍然是制約其大規(guī)模應(yīng)用的主 要原因,例如一個32GBImd嚴X25-ESSD大約花費12美元每GB,運比典型的傳統(tǒng)商用硬盤貴 了接近100倍。建立一個只有1TB的服務(wù)器,需要32個SSD,僅硬盤就要花費12000美元。所W 目前SSD并不能完全代替?zhèn)鹘y(tǒng)硬盤,但是我們可W用它來增強傳統(tǒng)硬盤的性能,將SSD作為 存儲系統(tǒng)中的二級緩存,儲存常用數(shù)據(jù)來加速訪問,降低用戶的I/O請求直接與機械式磁盤 的交互,并通過與基于SSD的緩存交互提高I/O效率,W此達到性能與價格的兼顧。在計算機 系統(tǒng)中,緩存kache)的魔爪無處不在。CPU中有一級緩存化Icache)、二級緩存化2cache)甚 至Ξ級緩存(;L3cache),Linux有頁高速緩沖存儲器(pagecache),MySQL有高速緩沖存儲器 (buffercache/querycache), 10系統(tǒng)中Raid卡/磁盤也有緩存(cache),在大型互聯(lián)網(wǎng)系 統(tǒng)中,數(shù)據(jù)庫前面一般也都有一層高速緩存系統(tǒng)memcache。緩存kache)是容量與性能之前 取平衡的結(jié)果,W更低的成本,獲得更高的收益,是系統(tǒng)設(shè)計時應(yīng)該遵循的原則。所W,毫無 疑問基于SSD的緩存技術(shù)成為一種更好的加速方案。
[0004] Flashcache是化cebook技術(shù)團隊的又一力作,最初是為加速MySQL設(shè)計的。由于 Flashcache是在Linux層面的,所W任何受磁盤10困繞的軟件或應(yīng)用都可W方便的使用之。 Flashcache-個非常不錯的軟件(準確的說是一個Linux的模塊),可W動態(tài)加載。 Flashcache通過在文件系統(tǒng)(VFS)和設(shè)備驅(qū)動之間新增了一次緩存層,來實現(xiàn)對熱口數(shù)據(jù) 的緩存。由此可見Flashcache滿足上述加速方案要求,即用SSD作為介質(zhì)的緩存,通過將傳 統(tǒng)硬盤上的熱口數(shù)據(jù)緩存到SSD上,然后利用SSD優(yōu)秀的讀性能,來加速系統(tǒng)。運個方法較之 內(nèi)存緩存,沒有內(nèi)存快,但是空間可W比內(nèi)存大很多。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所解決的技術(shù)問題是,針對現(xiàn)有技術(shù)的不足,提供一種計算機存儲加速系 統(tǒng)及其優(yōu)化方法,能有效提高國產(chǎn)計算機存儲系統(tǒng)的性能,尤其應(yīng)對海量數(shù)據(jù)且熱口數(shù)據(jù) 較多的應(yīng)用環(huán)境。
[0006] 本發(fā)明所提供的技術(shù)方案為:
[0007] -種計算機存儲加速系統(tǒng),包括國產(chǎn)計算機主板,國產(chǎn)計算機主板通過SATA、SAS 或PCI-E接口連接有如SSD、PBlaze3閃存加速卡等高速存儲設(shè)備,作為文件系統(tǒng)(VFS)和底 層存儲設(shè)備之間的高速緩存設(shè)備;所述高速存儲設(shè)備是指數(shù)據(jù)讀寫速度高于傳統(tǒng)機械硬盤 的存儲設(shè)備,如SSD、PBlaze3閃存加速卡等。與W往的存儲方式相比,本發(fā)明利用高速存儲 介質(zhì)提高了I/O效率,并降低用戶I/O請求與機械磁盤直接交互的頻次,從而在降低了機械 磁盤的故障發(fā)生率。
[0008] 所述國產(chǎn)計算機是基于國產(chǎn)自主可控CPU搭建的計算機。
[0009] 通過SATA、SAS或PCI-E等總線增加讀寫性能明顯高于原存儲介質(zhì)(如機械硬盤)的 高速存儲介質(zhì)(如SSD、高速緩沖卡),作為存儲系統(tǒng)中的高速緩存層。通過擴展國產(chǎn)計算機 的存儲介質(zhì),增加高速緩存層,并通過改良高速緩存模塊Flashcache的緩存方法,為讀緩存 未命中時增加預(yù)讀機制,W提升后續(xù)讀寫操作的命中率,來進一步增加讀寫性能。
[0010] 優(yōu)選地,國產(chǎn)計算機主板通過PCI-E插槽連接有PBlaze3閃存加速卡,作為文件系 統(tǒng)(VFS)和底層存儲設(shè)備之間的緩存設(shè)備。
[0011] -種計算機存儲加速系統(tǒng)的優(yōu)化方法,所述計算機存儲加速系統(tǒng)為上述的計算機 存儲加速系統(tǒng),其優(yōu)化方法為:采用基于Linux內(nèi)核開發(fā)的國產(chǎn)操作系統(tǒng),通過內(nèi)核加載高 速緩存模塊Flashcache,實現(xiàn)將底層存儲設(shè)備(低速存儲介質(zhì))上的數(shù)據(jù)緩存到高速存儲設(shè) 備(高速存儲介質(zhì))上,從而通過高速存儲介質(zhì)優(yōu)秀的讀寫能力來提升存儲系統(tǒng)的性能。
[0012] 所述高速緩存模塊Flashcache通過通用設(shè)備映射機制Devicemapper將高速緩存 設(shè)備和底層存儲設(shè)備映射為同一邏輯存儲設(shè)備(層)(MappedDevice),從而通過高速存儲 介質(zhì)優(yōu)秀的讀寫能力來提升存儲系統(tǒng)的性能。所述MappedDevice是作為虛擬的塊設(shè)備驅(qū) 動在內(nèi)核中被注冊的,它不是一個真實的設(shè)備驅(qū)動,不能完成塊I/O請求(bio)處理,因此, 它主要是基于映射表對bio進行分解、克隆和重映射,然后通過調(diào)用某一目標設(shè)備驅(qū)動 targeLdriver的映射方法,來映射從上層分發(fā)下來的bio,找到正確的目標設(shè)備(Target_ Device),并將bio轉(zhuǎn)發(fā)到目標設(shè)備的請求隊列,啟動數(shù)據(jù)傳輸,完成操作。當文件系統(tǒng)下發(fā) I/O請求時,不再直接訪問底層真實存儲設(shè)備,而是下發(fā)到高速緩存設(shè)備上,查找數(shù)據(jù),如果 存在則直接返回給上層,進而提高讀寫性能,如果不存在則需要將I/O請求再次下發(fā)到真實 存儲設(shè)備上查找,如果找到則將數(shù)據(jù)返回給上一層并把數(shù)據(jù)寫入到高速緩存中。
[0013] 進一步地,當文件系統(tǒng)下發(fā)I/O請求(讀命令)時,下發(fā)到高速緩存設(shè)備上,查找目 標數(shù)據(jù),如果在高速緩存設(shè)備上找到目標數(shù)據(jù),則直接將目標數(shù)據(jù)返回給上層文件系統(tǒng);如 果未在高速緩存設(shè)備上找到目標數(shù)據(jù)(即在高速緩存層未命中),則再次下發(fā)到底層存儲設(shè) 備上查找,如果找到目標數(shù)據(jù)(命中),則在將目標數(shù)據(jù)返回給上層文件系統(tǒng)時,增加預(yù)讀機 審IJ,即根據(jù)局部性原理,將目標數(shù)據(jù)及與目標數(shù)據(jù)相鄰的多個數(shù)據(jù)塊一起緩存到高速緩存 設(shè)備上,來提升后續(xù)操作在高速緩存中的命中率,從而提高整個存儲系統(tǒng)的性能。
[0014] 有益效果:
[0015] 1、本發(fā)明的存儲加速系統(tǒng),在國產(chǎn)計算機的主板上通過PCI-E插槽擴展PBlaze3閃 存加速卡,作為文件系統(tǒng)(VFS)和設(shè)備驅(qū)動之間的高速緩存層,降低用戶的I/O請求直接與 機械式磁盤的交互,從而在時間上推遲了機械式磁盤故障的發(fā)生時間,并通過與基于高速 換設(shè)備交互提高I/O效率,進而從總體上提高國產(chǎn)計算機存儲系統(tǒng)的效率;
[0016] 2、本發(fā)明的優(yōu)化存儲方法,通過改良高速緩存模塊的緩存方法,為讀緩存未命中 時增加預(yù)讀機制,所述預(yù)讀機制在文件系統(tǒng)向設(shè)備驅(qū)動直接下發(fā)讀命令后,將與目標數(shù)據(jù) 相鄰的多個數(shù)據(jù)塊一起緩存到高速緩存層,進一步提升國產(chǎn)計算機存儲系統(tǒng)讀寫性能。
【附圖說明】
[0017] 圖1為本發(fā)明加入高速緩存后的分級緩存存儲方式;
[001引圖2為現(xiàn)有存儲方式;
[0019] 圖3為MappedDevice內(nèi)核中各對象之間的層次關(guān)系;
[0020] 圖4為flashcahce數(shù)據(jù)讀取流程;
[0021] 圖5為Linux存儲層次架構(gòu)。
【具體實施方式】
[0022] W下結(jié)合附圖和【具體實施方式】對本發(fā)明進行進一步具體說明。
[0023] 1、計算機存儲加速系統(tǒng)
[0024] 本發(fā)明的計算機存儲加速系統(tǒng)一種計算機存儲加速系統(tǒng),包括國產(chǎn)計算機主板, 國產(chǎn)計算機主板通過SATA、SAS或PCI-E接口連接有如SSD、PBlaze3閃存加速卡等高速存儲 設(shè)備,作為文件系統(tǒng)(VFS)和底層存儲設(shè)備之間的緩存設(shè)備。如圖1所示,與W往的存儲方式 (見圖2)相比,利