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