一種緩存管理方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)存儲技術(shù)領(lǐng)域,尤其涉及一種緩存管理方法和系統(tǒng)。
【背景技術(shù)】
[0002]在存儲系統(tǒng)中,為了提供系統(tǒng)性能,對于數(shù)據(jù)塊的1請求,首先查詢請求處理的數(shù)據(jù)塊是否在緩存中,如果在緩存中,直接在緩存中處理;否則需要訪問底層磁盤設(shè)備并把數(shù)據(jù)塊放入緩存進(jìn)行處理。具有去重功能的存儲系統(tǒng),數(shù)據(jù)去重后,存在上層多個邏輯塊對應(yīng)底層一個物理塊的情況,而上層的1請求攜帶的是數(shù)據(jù)塊的邏輯地址信息,通過邏輯地址索引查找緩存中是否存在該數(shù)據(jù)塊,就會出現(xiàn)緩存中存在該數(shù)據(jù)塊,但是檢索不到的情況。例如,假設(shè)邏輯地址LAl跟LA2同時對應(yīng)物理地址PA1,如果有1請求訪問LAl中的數(shù)據(jù),緩存中并沒有LAl的信息,但是存在LA2的信息以及對應(yīng)的數(shù)據(jù)塊,即:邏輯地址LAl對應(yīng)的物理塊其實是在緩存中的。在用LAl來檢索緩存時,由于緩存中無LAl彳目息,認(rèn)為緩存中不存在要訪問的數(shù)據(jù)塊,此時會訪問磁盤,把物理地址PAl對應(yīng)的數(shù)據(jù)塊讀入緩存,并生成LAl對應(yīng)的緩存檢索信息。此時在緩存中就存在兩份相同的物理地址PAl對應(yīng)的數(shù)據(jù)塊,由于緩存中存在數(shù)據(jù)副本,導(dǎo)致緩存的利用率降低。
【發(fā)明內(nèi)容】
[0003]為了解決上述問題,本發(fā)明提出了一種緩存管理方法和系統(tǒng),能夠避免緩存中緩存多份相同的數(shù)據(jù)塊,從而提高緩存的利用率。
[0004]為了達(dá)到上述目的,本發(fā)明提出了一種緩存管理方法,該方法適用于具有去重功能的存儲系統(tǒng),該方法包括:
[0005]對于上層應(yīng)用的訪問請求,通過邏輯地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。
[0006]當(dāng)通過邏輯地址未檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,通過預(yù)設(shè)的邏輯地址與物理地址的映射關(guān)系獲取邏輯地址所對應(yīng)的物理地址,通過所獲取的物理地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。
[0007]當(dāng)通過物理地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理。
[0008]當(dāng)通過物理地址未檢索到緩存中存在訪問請求對應(yīng)的數(shù)據(jù)塊時,判定緩存中沒有訪問請求所對應(yīng)的數(shù)據(jù)塊,通過物理地址到底層硬件存儲設(shè)備中獲取該數(shù)據(jù)塊。
[0009]將獲取的數(shù)據(jù)塊放入緩存中,并對放入緩存的數(shù)據(jù)塊添加邏輯地址索引和物理地址索引,在緩存中對訪問請求進(jìn)行處理。
[0010]優(yōu)選地,該方法還包括:
[0011]在具有去重功能的存儲系統(tǒng)中,通過存儲池統(tǒng)一管理底層硬件存儲設(shè)備中的數(shù)據(jù)塊,并向上層應(yīng)用提供邏輯卷形式的數(shù)據(jù)塊。
[0012]其中,邏輯卷的地址為邏輯地址,邏輯地址通過空間分配與底層硬件存儲設(shè)備的物理地址形成映射關(guān)系;在該映射關(guān)系中,一個或多個邏輯地址對應(yīng)一個物理地址。
[0013]優(yōu)選地,該方法還包括:
[0014]當(dāng)通過邏輯地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理。
[0015]優(yōu)選地,訪問請求包括寫請求;當(dāng)訪問請求為寫請求時:
[0016]當(dāng)通過邏輯地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理包括:
[0017]對緩存中的寫清求對應(yīng)的數(shù)據(jù)塊進(jìn)行寫操作,將經(jīng)過寫操作后的數(shù)據(jù)塊置為臟,并刪除經(jīng)過寫操作后的數(shù)據(jù)塊的物理地址到數(shù)據(jù)塊的索引信息。
[0018]優(yōu)選地,
[0019]當(dāng)訪問請求為寫請求時,當(dāng)通過物理地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理包括:
[0020]對緩存中的寫清求對應(yīng)的數(shù)據(jù)塊進(jìn)行寫操作,將經(jīng)過寫操作后的數(shù)據(jù)塊置為臟,并刪除經(jīng)過寫操作后的數(shù)據(jù)塊的物理地址到數(shù)據(jù)塊的索引信息;刪除經(jīng)過寫操作后的數(shù)據(jù)塊原有的全部邏輯地址到數(shù)據(jù)塊的索引信息;添加寫請求的邏輯地址到經(jīng)過寫操作后的數(shù)據(jù)塊的索引信息。
[0021]為了達(dá)到上述目的,本發(fā)明還提出了一種緩存管理系統(tǒng),該緩存管理系統(tǒng)適用于具有去重功能的存儲系統(tǒng),該緩存管理系統(tǒng)包括:第一檢索模塊、第二檢索模塊、第一處理模塊、獲取模塊和第二處理模塊。
[0022]第一檢索模塊,用于對于上層應(yīng)用的訪問請求,通過邏輯地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。
[0023]第二檢索模塊,用于當(dāng)通過邏輯地址未檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,通過預(yù)設(shè)的邏輯地址與物理地址的映射關(guān)系獲取邏輯地址所對應(yīng)的物理地址,通過所獲取的物理地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。
[0024]第一處理模塊,用于當(dāng)通過物理地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理。
[0025]獲取模塊,用于當(dāng)通過物理地址未檢索到緩存中存在訪問請求對應(yīng)的數(shù)據(jù)塊時,判定緩存中沒有訪問請求所對應(yīng)的數(shù)據(jù)塊,通過物理地址到底層硬件存儲設(shè)備中獲取數(shù)據(jù)塊。
[0026]第二處理模塊,用于將獲取的數(shù)據(jù)塊放入緩存中,并對放入所述緩存的所述數(shù)據(jù)塊添加邏輯地址索引和物理地址索引,在所述緩存中對所述訪問請求進(jìn)行處理。
[0027]優(yōu)選地,緩存管理系統(tǒng)還包括:管理模塊。
[0028]管理模塊,用于在具有去重功能的存儲系統(tǒng)中,通過存儲池統(tǒng)一管理底層硬件存儲設(shè)備中的數(shù)據(jù)塊,并向所述上層應(yīng)用提供邏輯卷形式的數(shù)據(jù)塊。
[0029]其中,邏輯卷的地址為邏輯地址,邏輯地址通過空間分配與底層硬件存儲設(shè)備的物理地址形成映射關(guān)系;在該映射關(guān)系中,一個或多個邏輯地址對應(yīng)一個物理地址。
[0030]優(yōu)選地,第一處理模塊還用于:
[0031 ]當(dāng)通過邏輯地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理。
[0032]優(yōu)選地,訪問請求包括寫請求;當(dāng)訪問請求為寫請求時:
[0033]第一處理模塊當(dāng)通過邏輯地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理包括:
[0034]對緩存中的寫清求對應(yīng)的數(shù)據(jù)塊進(jìn)行寫操作,將經(jīng)過寫操作后的數(shù)據(jù)塊置為臟,并刪除經(jīng)過寫操作后的數(shù)據(jù)塊的物理地址到數(shù)據(jù)塊的索引信息。
[0035]優(yōu)選地,
[0036]當(dāng)訪問請求為寫請求時,第一處理模塊當(dāng)通過物理地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理包括:
[0037]對緩存中的寫清求對應(yīng)的數(shù)據(jù)塊進(jìn)行寫操作,將經(jīng)過寫操作后的數(shù)據(jù)塊置為臟,并刪除經(jīng)過寫操作后的數(shù)據(jù)塊的物理地址到數(shù)據(jù)塊的索引信息;刪除經(jīng)過寫操作后的數(shù)據(jù)塊原有的全部邏輯地址到數(shù)據(jù)塊的索引信息;添加寫請求的邏輯地址到經(jīng)過寫操作后的數(shù)據(jù)塊的索引信息。
[0038]與現(xiàn)有技術(shù)相比,本發(fā)明包括:對于上層應(yīng)用的訪問請求,通過邏輯地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。當(dāng)通過邏輯地址未檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,通過預(yù)設(shè)的邏輯地址與物理地址的映射關(guān)系獲取邏輯地址所對應(yīng)的物理地址,通過所獲取的物理地址檢索緩存中是否存在訪問請求所對應(yīng)的數(shù)據(jù)塊。當(dāng)通過物理地址檢索到緩存中存在訪問請求所對應(yīng)的數(shù)據(jù)塊時,在緩存中對訪問請求進(jìn)行處理。當(dāng)通過物理地址未檢索到緩存中存在訪問請求對應(yīng)的數(shù)據(jù)塊時,判定緩存中沒有訪問請求所對應(yīng)的數(shù)據(jù)塊,通過物理地址到底層硬件存儲設(shè)備中獲取該數(shù)據(jù)塊。將獲取的數(shù)據(jù)塊放入緩存中,并對放入緩存的數(shù)據(jù)塊添加邏輯地址索引和物理地址索引,在緩存中對訪問請求進(jìn)行處理。通過本發(fā)明的方案,能夠避免緩存中緩存多份相同的數(shù)據(jù)塊,從而提高緩存的利用率。
【附圖說明】
[0039]下面對本發(fā)明實施例中的附圖進(jìn)行說明,實施例中的附圖是用于對本發(fā)明的進(jìn)一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。
[0040]圖1為本發(fā)明的緩存管理方法流程圖;
[0041]圖2為本發(fā)明的數(shù)據(jù)結(jié)構(gòu)圖;
[0042]圖3為本發(fā)明實施例的讀操作緩存管理方法流程圖;
[0043]圖4為本發(fā)明實施例的寫操作緩存管理方法流程圖;
[0044]圖5為本發(fā)明的緩存管理系統(tǒng)組成框圖。
【具體實施方式】
[0045]為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述,并不能用來限制本發(fā)明的保護(hù)范圍。
[0046]本發(fā)明提供了一種通過存儲空間的邏輯地址(Logical Address)和物理地址(Physical Address)兩種方式對緩存進(jìn)行索引的緩存管理方法,在緩存