系統(tǒng)管理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體來說,涉及一種系統(tǒng)管理方法和裝置。
【背景技術(shù)】
[0002]在以數(shù)據(jù)為中心的信息時(shí)代,妥善有效地保護(hù)數(shù)據(jù)顯得尤為重要。信息的丟失將會(huì)給企業(yè)或用戶造成大量的損失。冗余磁盤陣列(Redundant Array of IndependentDisks)技術(shù)是各種企業(yè)信息系統(tǒng)和個(gè)人廣泛使用的解決方案,一般的中高檔服務(wù)器多使用硬件RAID控制器,但是由于硬件RAID控制器的價(jià)格昂貴,導(dǎo)致系統(tǒng)成本大大增加。而隨著處理器的性能快速發(fā)展,使得軟件RAID的解決方法得到人們的重視。
[0003]在磁盤陣列系統(tǒng)中,頁(yè)緩存(page cache):頁(yè)緩存是Linux內(nèi)核一種重要的磁盤高速緩存,它通過軟件機(jī)制實(shí)現(xiàn)。但頁(yè)緩存和硬件cache的原理基本相同,將容量大而低速設(shè)備中的部分?jǐn)?shù)據(jù)存放到容量小而快速的設(shè)備中,這樣速度快的設(shè)備將作為低速設(shè)備的緩存,當(dāng)訪問低速設(shè)備中的數(shù)據(jù)時(shí),可以直接從緩存中獲取數(shù)據(jù)而不需再訪問低速設(shè)備,從而節(jié)省了整體的訪問時(shí)間。
[0004]頁(yè)緩存以頁(yè)為大小進(jìn)行數(shù)據(jù)緩存,它將磁盤中最常用和最重要的數(shù)據(jù)存放到部分物理內(nèi)存中,使得系統(tǒng)訪問塊設(shè)備時(shí)可以直接從主存中獲取塊設(shè)備數(shù)據(jù),而不需從磁盤中獲取數(shù)據(jù)。
[0005]在大多數(shù)情況下,內(nèi)核在讀寫磁盤時(shí)都會(huì)使用頁(yè)緩存。內(nèi)核在讀文件時(shí),首先在已有的頁(yè)緩存中查找所讀取的數(shù)據(jù)是否已經(jīng)存在。如果該頁(yè)緩存不存在,則一個(gè)新的頁(yè)將被添加到高速緩存中,然后用從磁盤讀取的數(shù)據(jù)填充它。如果當(dāng)前物理內(nèi)存足夠空閑,那么該頁(yè)將長(zhǎng)期保留在高速緩存中,使得其他進(jìn)程再使用該頁(yè)中的數(shù)據(jù)時(shí)不再訪問磁盤。寫操作與讀操作時(shí)類似,直接在頁(yè)緩存中修改數(shù)據(jù),但是頁(yè)緩存中修改的數(shù)據(jù)(該頁(yè)此時(shí)被稱為Dirty Page)并不是馬上就被寫入磁盤,而是延遲幾秒鐘,以防止進(jìn)程對(duì)該頁(yè)緩存中的數(shù)據(jù)再次修改。頁(yè)緩存在內(nèi)核中的結(jié)構(gòu)如圖1所示。
[0006]在傳統(tǒng)的磁盤陣列中,當(dāng)在系統(tǒng)中建立完raid之后,用戶開始讀寫數(shù)據(jù),系統(tǒng)就會(huì)發(fā)送讀寫請(qǐng)求到raid這一層,raid則收到讀寫請(qǐng)求后向底層下發(fā),磁盤收到這些請(qǐng)求后開始準(zhǔn)備數(shù)據(jù),而這個(gè)讀寫請(qǐng)求操作過程中會(huì)等待磁盤去準(zhǔn)備這些數(shù)據(jù),而磁盤的機(jī)械操作相對(duì)于內(nèi)存中讀寫這些數(shù)據(jù)性能要低的多。所以也就降低了整個(gè)系統(tǒng)的性能。
[0007]針對(duì)相關(guān)技術(shù)中的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0008]針對(duì)相關(guān)技術(shù)中的問題,本發(fā)明提出一種系統(tǒng)管理方法,能夠?qū)崿F(xiàn)對(duì)系統(tǒng)數(shù)據(jù)的優(yōu)化處理從而可以大大提升系統(tǒng)對(duì)數(shù)據(jù)處理的性能。
[0009]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0010]根據(jù)本發(fā)明的一個(gè)方面,提供了一種系統(tǒng)管理方法,該系統(tǒng)管理方法包括:在內(nèi)核的LVM層和RAID層的中間建立一個(gè)緩存層;獲得LVM層下發(fā)的指令使得數(shù)據(jù)到達(dá)緩存層;通過緩存層對(duì)數(shù)據(jù)進(jìn)行處理。
[0011]其中,緩存層至少具備以下功能之一:將數(shù)據(jù)緩存后再讀寫、直接讀寫數(shù)據(jù)、直接讀寫數(shù)據(jù)的功能與將數(shù)據(jù)緩存后再讀寫的功能之間相互轉(zhuǎn)換、預(yù)讀數(shù)據(jù)、頁(yè)回寫、頁(yè)回收、強(qiáng)制同步緩存數(shù)據(jù)到硬盤、斷電后自動(dòng)保護(hù)獲取的數(shù)據(jù)。
[0012]其中,緩存層包含至少一個(gè)子緩存層,且子緩存層的數(shù)量與RAID層的數(shù)量相同并且——對(duì)應(yīng)。
[0013]優(yōu)選地,每個(gè)子緩存層均含有獨(dú)立的基數(shù)樹及處理請(qǐng)求的線程。
[0014]其中,該系統(tǒng)管理方法包括:對(duì)緩存層初始化使緩存層形成頁(yè)的結(jié)構(gòu);建立頁(yè)的管理結(jié)構(gòu)和頁(yè)的存儲(chǔ)結(jié)構(gòu)的映射。
[0015]其中,緩存層進(jìn)一步用于存儲(chǔ)頁(yè)的元數(shù)據(jù)。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種系統(tǒng)管理裝置,該系統(tǒng)管理裝置包括:
[0017]建立模塊,用于在內(nèi)核的LVM層和RAID層的中間建立一個(gè)緩存層;
[0018]獲取模塊,用于獲得LVM層下發(fā)的指令使得數(shù)據(jù)到達(dá)緩存層;
[0019]處理模塊,用于通過緩存層對(duì)數(shù)據(jù)進(jìn)行處理。
[0020]其中,緩存層至少具備以下功能之一:將數(shù)據(jù)緩存后再讀寫、直接讀寫數(shù)據(jù)、直接讀寫數(shù)據(jù)的功能與將數(shù)據(jù)緩存后再讀寫的功能之間相互轉(zhuǎn)換、預(yù)讀數(shù)據(jù)、頁(yè)回寫、頁(yè)回收、強(qiáng)制同步緩存數(shù)據(jù)到硬盤、斷電后自動(dòng)保護(hù)獲取的數(shù)據(jù)。
[0021]其中,緩存層包含至少一個(gè)子緩存層,且子緩存層的數(shù)量與RAID層的數(shù)量相同并且一一對(duì)應(yīng),并且每個(gè)子緩存層均含有獨(dú)立的基數(shù)樹及處理請(qǐng)求的線程。
[0022]其中,該系統(tǒng)管理裝置包括:
[0023]初始化模塊,用于對(duì)緩存層初始化使緩存層形成頁(yè)的結(jié)構(gòu);
[0024]創(chuàng)建模塊,用于建立頁(yè)的管理結(jié)構(gòu)和頁(yè)的存儲(chǔ)結(jié)構(gòu)的映射。
[0025]本發(fā)明上述方法和裝置能夠?qū)崿F(xiàn)對(duì)系統(tǒng)數(shù)據(jù)的優(yōu)化處理從而可以大大提升系統(tǒng)對(duì)數(shù)據(jù)處理的性能。
【附圖說明】
[0026]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0027]圖1是現(xiàn)有技術(shù)的內(nèi)核數(shù)據(jù)處理方法的示意圖;
[0028]圖2是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)管理方法的流程圖;
[0029]圖3是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)管理方法的結(jié)構(gòu)示意圖;
[0030]圖4是根據(jù)本發(fā)明一具體實(shí)施例的系統(tǒng)管理方法的示意性流程圖;
[0031]圖5是根據(jù)本發(fā)明另一具體實(shí)施例的系統(tǒng)管理方法的示意性流程圖;
[0032]圖6是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)管理裝置的框圖。
【具體實(shí)施方式】
[0033]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]根據(jù)本發(fā)明的實(shí)施例,提供了一種系統(tǒng)管理方法。
[0035]如圖2所示,根據(jù)本發(fā)明實(shí)施例的系統(tǒng)管理方法包括:
[0036]步驟S201,在內(nèi)核的LVM層和RAID層的中間建立一個(gè)緩存層;
[0037]步驟S203,獲得LVM層下發(fā)的指令使得數(shù)據(jù)到達(dá)緩存層;
[0038]步驟S205,通過緩存層對(duì)數(shù)據(jù)進(jìn)行處理。
[0039]其中,緩存層至少具備以下功能之一:將數(shù)據(jù)緩存后再讀寫、直接讀寫數(shù)據(jù)、直接讀寫數(shù)據(jù)的功能與將數(shù)據(jù)緩存后再讀寫的功能之間相互轉(zhuǎn)換、預(yù)讀數(shù)據(jù)、頁(yè)回寫、頁(yè)回收、強(qiáng)制同步緩存數(shù)據(jù)到硬盤、斷電后自動(dòng)保護(hù)獲取的數(shù)據(jù)。
[0040]其中,緩存層包含至少一個(gè)子緩存層,且子緩存層的數(shù)量與RAID層的數(shù)量相同并且——對(duì)應(yīng)。
[0041]優(yōu)選地,每個(gè)子緩存層均含有獨(dú)立的基數(shù)樹及處理請(qǐng)求的線程。
[0042]其中,該系統(tǒng)管理方法還包括:對(duì)緩存層初始化使緩存層形成頁(yè)的結(jié)構(gòu);建立頁(yè)的管理結(jié)構(gòu)和頁(yè)的存儲(chǔ)結(jié)構(gòu)的映射。
[0043]其中,緩存層進(jìn)一步用于存儲(chǔ)頁(yè)的元數(shù)據(jù)。
[0044]為了更清楚的理解本發(fā)明的技術(shù)方案,下面以多個(gè)具體實(shí)施例來進(jìn)行闡述,本發(fā)明主要在I inux內(nèi)核中LVM層和RAID層之間建立一個(gè)緩存層(包含多個(gè)target_CaChe層)來實(shí)現(xiàn)。
[0045]如圖3所示,在LVM層和RAID層增加一層緩存層。B1通過LVM層下發(fā)后修改屬性,讓b1 (請(qǐng)求)經(jīng)過緩存這一層。這個(gè)緩存層(target_cache層)可以實(shí)現(xiàn)的功能:支持經(jīng)緩存讀寫和直讀寫;支持經(jīng)緩存讀寫和直讀寫的轉(zhuǎn)換;支持預(yù)讀策略;支持頁(yè)回寫和頁(yè)回收功能;支持強(qiáng)制同步緩存數(shù)據(jù)到硬盤;支持?jǐn)嚯姅?shù)據(jù)保護(hù)機(jī)制。
[0046]在本發(fā)明中,緩存層(target_cache層)建立在RA