本發明涉及數據存儲技術領域,具體涉及一種基于混合存儲產品的存儲控制方法和存儲控制裝置。
背景技術:
硬盤一般包括固態硬盤(SSD)和機械硬盤(HDD),SSD采用閃存來存儲,HDD采用磁性碟片來存儲。隨著SSD的成熟,基于SSD+HDD混合介質的存儲產品應用越來越廣泛。
基于混合存儲產品的讀寫技術有讀緩存、寫緩存和數據分層幾種,對于寫緩存緩存來說,把數據暫時存儲在SSD里面,這些數據還沒有存儲到HDD里面,對于數據分層來說,存儲在SSD里面的數據并不會存儲到HDD里面。然而對于SSD而言,其中采用的NAND flash有一個很重要的特性,即其Program/Erase cycle(擦寫次數)具有限制,即每個NAND flash只有有限的擦寫次數。比如,目前業界普遍采用的MLC(Multi-Level Cell)NAND flash,其擦寫次數的限制次數是3000至5000次。一旦擦寫次數用完,SSD的使用壽命也就達到極限,會造成存儲用戶數據丟失。
現有技術中,為了保證數據的安全,會周期性的讀取混合存儲產品中各個SSD的剩余壽命,當某個SSD的剩余壽命較少時,便將其提前取下,并安裝替換的SSD。
但是,取下的SSD實際上還可以進行多次讀寫,并且,讀取到的SSD的剩余壽命只是一個經驗值,而不是該SSD實際的剩余壽命,即使讀取到的剩余壽命顯示該SSD的使用壽命到期了,該SSD的實際使用壽命也不一定達到極限,還可以進行多次擦寫。因此,根據SSD的剩余壽命來對其進行提前更換,會浪費SSD擦寫次數。
技術實現要素:
本發明實施例提供了一種基于混合存儲產品的存儲控制方法和存儲控制裝置,用于解決在SSD的擦寫次數到達極限之前便對其進行更換所導致的浪費問題。
為達到上述目的,本發明實施例的一方面提供了一種基于混合存儲產品的存儲控制方法,所述混合存儲產品包括第一固態硬盤SSD,所述方法包括:
獲取所述第一SSD的剩余壽命;
判斷所述第一SSD的剩余壽命是否小于或等于第二壽命閾值;
若是,則在所述第一SSD中不為第一數據分配存儲空間,為第二數據分配存儲空間,所述第一數據為寫緩存數據和/或數據分層數據,所述第二數據為讀緩存數據。
結合第一方面,在第一方面的第一種可能的實現方式中,所述混合存儲產品還包括機械硬盤HDD和第二SSD,所述在所述第一SSD中不為第一數據分配存儲空間包括:
將所述第一SSD中的所述第一數據存儲于所述HDD中,并且當接收到所述第一數據時,將所述接收到的所述第一數據存儲于所述第二SSD中。
結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,在所述判斷所述第一SSD的剩余壽命是否小于或等于第二壽命閾值之前,所述方法還包括:
判斷第一SSD的剩余壽命是否小于或等于第一壽命閾值,所述第一壽命閾值大于所述第二壽命閾值;
若是,則觸發所述判斷所述第一SSD的剩余壽命是否小于或等于第二壽命閾值的步驟;
在所述判斷所述第一SSD的剩余壽命是否小于或等于第二壽命閾值之后,若判定所述第一SSD的剩余壽命大于第二壽命閾值,則減小所述第一SSD中為所述第一數據分配的存儲空間。
結合第一方面,在第一方面的第三種可能的實現方式中,所述混合存儲產品還包括第二固態硬盤SSD,若判定所述第一SSD的剩余壽命小于或等于第二壽命閾值,且所述第二SSD的剩余壽命大于所述第二SSD的第三壽命閾值,所述方法還包括:
增大所述第二SSD中為所述第一數據分配的存儲空間。
結合第一方面的第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述混合存儲產品還包括HDD和第二SSD,所述在所述第一SSD中不為第一數據分配存儲空間包括:
將所述第一SSD中的所述第一數據存儲于所述第二SSD中,并且當接收到所述第一數據時,將所述接收到的所述第一數據存儲于所述第二SSD中。
結合第一方面、第一方面的第一種可能的實現方式、第一方面的第二種可能的實現方式、第一方面的第三種可能的實現方式和第一方面的第四種可能的實現方式之中任一種可能的實現方式,在第一方面的第五種可能的實現方式中,若判定所述第一SSD的剩余壽命小于或等于第二壽命閾值,所述為第二數據分配存儲空間包括:
增大所述第一SSD中為所述第二數據分配的存儲空間。
本發明實施例的第二方面提供了一種存儲控制模塊,用于控制包括第一SSD的混合存儲產品,包括:
獲取單元,用于獲取所述第一SSD的剩余壽命;
第一判斷單元,用于判斷所述第一SSD的剩余壽命是否小于或等于第二壽命閾值;
第一分配單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于第二壽命閾值時,在所述第一SSD中不為第一數據分配存儲空間,所述第一數據為寫緩存數據和/或數據分層數據;
第二分配單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于第二壽命閾值時,為第二數據分配存儲空間,所述第二數據為讀緩存數據。
結合第二方面,在第二方面的第一種可能的實現方式中,所述混合存儲產品還包括機械硬盤HDD和第二SSD,其特征在于,所述第一分配單元包括:
第一存儲子單元,用于將所述第一SSD中的所述第一數據存儲于所述HDD中;
第二存儲子單元,用于當接收到所述第一數據時,將所述接收到的所述第一數據存儲于所述第二SSD中。
結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述存儲控制模塊還包括:
第二判斷單元,用于判斷第一SSD的剩余壽命是否小于或等于第一壽命閾值,所述第一壽命閾值大于所述第二壽命閾值;
觸發單元,用于當所述第二判斷單元判定所述第一SSD的剩余壽命小于或等于所述第一壽命閾值時,觸發所述第一判斷單元;
第三分配單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命大于第二壽命閾值時,減小所述第一SSD中為所述第一數據分配的存儲空間。
結合第二方面的第一種可能的實現方式,所述混合存儲產品還包括第二SSD,在第二方面的第三種可能的實現方式中,所述存儲控制模塊還包括:
第四分配單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值,且所述第二SSD的剩余壽命大于第二SSD的第三壽命閾值時,增大所述第二SSD中為所述第一數據分配的存儲空間。
結合第二方面的第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述混合存儲產品還包括HDD和第二SSD,所述第一分配單元包括:
第三分配子單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值時,將所述第一SSD中的所述第一數據存儲于所述第二SSD中;
第四分配子單元,用于在所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值之后,在接收到所述第一數據時,將所述接收到的所述第一數據存儲于所述第二SSD中。
結合第二方面、第二方面的第一種可能的實現方式、第二方面的第二種可能的實現方式、第二方面的第三種可能的實現方式和第二方面的第四種可能的實現方式中任一種可能的實現方式,在第二方面的第五種可能的實現方式中,所述第二分配單元包括:
第五分配子單元,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值時,增大所述第一SSD中為所述第二數據分配的存儲空間。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例可以獲取混合存儲產品中第一SSD的剩余壽命,并在第一SSD的剩余壽命小于或等于第二壽命閾值時,不為第一數據分配存儲空間,為第二數據分配存儲空間,其中第一數據為寫緩存數據和/或數據分層數據,第二數據為讀緩存數據,這樣,若第一數據未在混合存儲產品中第一SSD以外的其他存儲區域進行存儲,而第二數據在混合存儲產品中第一SSD以外的其他存儲區域進行存儲,就能夠在第一SSD的使用壽命即將達到極限的情況下,不再利用第一SSD存儲第一數據,只存儲第二數據,能夠在保證用戶數據安全的前提下,充分利用第一SSD的使用壽命,減少對第一SSD的浪費。
附圖說明
圖1是本發明基于混合存儲產品的存儲控制方法一個實施例示意圖;
圖2是本發明基于混合存儲產品的存儲控制方法另一個實施例示意圖;
圖3是本發明基于混合存儲產品的存儲控制方法另一個實施例示意圖;
圖4是本發明存儲控制裝置一個實施例示意圖;
圖5是本發明存儲控制裝置另一個實施例示意圖;
圖6是本發明存儲控制裝置另一個實施例示意圖。
具體實施方式
本發明實施例提供了一種基于混合存儲產品的存儲控制方法和存儲控制裝置,用于充分利用混合存儲產品中SSD的使用壽命。
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三”、“第四”等(如果存在)是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內容以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
存儲產品使用的存儲介質不同,該存儲產品所展現出來的性能也不同。比如,SSD采用NAND flash進行存儲,而HDD是采用磁性碟片來進行存儲,SSD和HDD相比,SSD的優點包括讀寫速度快、防震抗摔性好、低功耗、無噪音等,而SSD的缺點包括容量較小、具有使用壽命限制、售價高等。為了綜合使用性能不同的兩種或多種存儲產品,可以將性能不同的兩種或多種存儲介質集成在一起,也就得到了混合存儲產品。目前市面上最常見的混合存儲產品由SSD和HDD組成,可以結合HDD和SSD兩者所長來增強存儲產品的性能。
基于混合存儲產品的讀寫技術主要有讀緩存、寫緩存和數據分層幾種:
讀緩存:在基于混合存儲介質的存儲系統(或者說混合存儲產品)中,把經常讀取的熱數據緩存到高速的存儲介質里面,當下次再讀取相同數據的時候,就直接從高速的存儲介質讀取,以提升讀取速度,真正的數據是存儲在低速的存儲介質里面的,高速介質里面緩存的數據只不過是低速介質中數據的一個拷貝,所以即使高速介質中的數據丟了,也沒關系,客戶的數據還在。
寫緩存:在基于混合存儲介質的存儲系統中,寫數據的時候,先把數據寫入到高速的存儲介質,就直接給上層應用返回寫入成功,使得寫入性能非常高,然后再逐漸地把數據從高速存儲介質回寫到低速大容量的存儲介質,數據在沒回寫到低速的存儲介質之前,只存在于高速的存儲介質當中,如果高速存儲介質中的數據丟了,那數據就真正丟了。
數據分層:在基于混合存儲介質的存儲系統中,將高速和低速的存儲介質劃分成多個層次,高速和低速的存儲介質都是用來保存數據,熱數據保存在高速的介質上面,冷數據保存在低速的介質上面,數據要么保存在高速介質,那么保存在低速介質,如果保存在高速存儲介質中的數據丟了,那就真正丟了。
高速的存儲介質通常指具有讀寫次數限制的存儲介質,由這種存儲介質組成的硬盤,比如SSD。而低速的存儲介質通常指沒有讀寫次數限制的存儲介質,由這種存儲介質組成的硬盤,比如HDD。本發明實施例以由SSD和HDD組成的混合存儲產品為例進行說明,并且,由于SSD的容量較小,混合存儲產品通常由多塊SSD組成。混合存儲產品一般采用“讀緩存+寫緩存”的技術組合,或者“讀緩存+寫緩存+數據分層”的技術組合。若按照“讀緩存+寫緩存”的技術組合,混合存儲產品中的SSD通常被劃分為兩部分進行使用,分別用于讀緩存和寫緩存,即分別存儲讀緩存數據和寫緩存數據;若按照“讀緩存+寫緩存+數據分層”的技術組合,SSD通常被劃分為三部分來進行使用,分別用于讀緩存、寫緩存和數據分層,即分別存儲讀緩存數據、寫緩存數據和數據分層數據。
對于讀緩存來說,SSD中存儲的數據只是HDD中數據的一個拷貝,對于寫緩存緩存來說,把數據暫時存儲在SSD里面,這些數據還沒有存儲到HDD里面,對于數據分層來說,存儲在SSD里面的數據并不會存儲到HDD里面。然而對于SSD而言,其中采用的NAND flash有一個很重要的特性,即其Program/Erase cycle(擦寫次數)具有限制,即每個NAND flash只有有限的擦寫次數。比如,目前業界普遍采用的MLC(Multi-Level Cell)NAND flash,其擦寫次數的限制次數是3000至5000次。一旦擦寫次數用完,SSD的使用壽命也就達到極限,會造成SSD中存儲的寫緩存數據和數據分層數據丟失。為了保證數據的安全,就需要周期性的讀取混合存儲產品中各個SSD的剩余壽命,并提前更換使用壽命快到期的SSD。但是取下的SSD實際上還可以進行多次讀寫。并且,讀取到的SSD的剩余壽命只是一個參考值,剩余壽命顯示該SSD的使用壽命到期了,SSD并不一定會損壞,根據測試數據,一些SSD,當讀取到的剩余壽命已經顯示該SSD到期后,還能繼續使用,甚至寫入的數據量已經超過其標稱壽命的100%了,該SSD還沒有損壞。也就是說,即使SSD快到期了,還是有很大的潛力可以挖掘的。
但是,對于快到期的SSD,用來存儲數據又不放心,直接丟棄不用了,又比較浪費。本發明提供的一種基于混合存儲產品的存儲控制方法和存儲控制裝置,用于解決這個兩難的問題。由于SSD中存儲的讀緩存數據只是HDD中數據的一個拷貝,SSD的實際使用壽命到達極限時,用戶的讀緩存數據沒有丟失,因此,在SSD的剩余壽命即將到期時,只要不在該SSD上存儲寫緩存數據和數據分層數據,只用于存儲讀緩存數據,便能安全充分的利用SSD的使用壽命。
為了便于本領域技術人員的理解,本發明通過以下實施例對本發明提供的技術方案的具體實現過程進行說明,需要說明的是,本發明基于的混合存儲產品至少包括。
請參閱圖1,本發明實施例中基于混合存儲產品的存儲控制方法一個實施例包括:
101、獲取第一SSD的剩余壽命;
存儲控制模塊可以周期性的獲取第一SSD的剩余壽命,作為舉例,獲取周期可以為1周。
102、判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若是,則執行步驟103,若否,則執行步驟104;
存儲控制模塊在獲取到第一SSD的剩余壽命之后,可以判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若是,則執行步驟103,若否,則執行步驟104。
103、在第一SSD中不為第一數據分配存儲空間,為第二數據分配存儲空間;
若判定第一SSD的剩余壽命小于或等于第二壽命閾值,則在第一SSD中不為第一數據分配存儲空間,為第二數據分配存儲空間,其中所述第一數據為寫緩存數據和/或數據分層數據,所述第二數據為讀緩存數據。也就是說,將第一SSD中已存儲的第一數據寫入混合存儲產品的其他硬盤中,比如第二SSD或者HDD中,并且不再向第一SSD中寫入第一數據,而為在第一SSD中為第二數據分配的存儲空間,可以為第一SSD的部分或全部存儲空間,可以理解的是,這里所說的存儲空間是指可用于讀緩存、寫緩存或數據分層的可用存儲空間。
104、執行其他操作。
若判定第一SSD的剩余壽命大于第二壽命閾值,則可以執行步驟103以外的其他操作,比如繼續獲取混合存儲產品中其他SSD,如第二SSD的剩余壽命。
本發明實施例在第一SSD的剩余壽命小于或等于第二壽命閾值時,不為第一數據分配存儲空間,為第二數據分配存儲空間,能夠在第一SSD的使用壽命即將達到極限的情況下,不再利用第一SSD存儲第一數據,只存儲第二數據,能夠在保證用戶數據安全的前提下,充分利用第一SSD的擦寫次數,減少浪費。
請參閱圖2,本發明實施例中,混合存儲產品包括HDD、第一SSD和第二SSD,基于混合存儲產品的存儲控制方法另一個實施例包括:
201、獲取第一SSD的剩余壽命;
HDD的存儲控制模塊可以周期性的獲取第一SSD的剩余壽命,作為舉例,獲取周期可以為1周。
將此時第一SSD中讀緩存分區占用的存儲空間稱作第一讀緩存存儲空間,第一SSD中寫緩存分區占用的存儲空間稱作第一寫緩存存儲空間,第一SSD中數據分層分區占用的存儲空間稱作第一數據分層存儲空間,將第一寫緩存存儲空間和第一數據分層存儲空間二者一共占用的存儲空間稱作第一寫數據與數據分層存儲空間。在混合存儲產品中記錄有各個SSD的分區所占用的存儲空間情況,作為舉例,第一SSD中各個分區所占用的存儲空間情況可以采取表1所示的分區標記表來記錄。讀緩存分區所占用的存儲空間由物理塊0、物理塊4、物理塊5、物理塊9等物理塊組成,寫緩存分區所占用的存儲空間由物理塊1、物理塊2、物理塊8等物理塊組成,數據分層分區所占用的存儲空間由物理塊3、物理塊6、物理塊7、物理塊10等物理塊組成。可見,每個SSD中各個分區的存儲空間可以不連續。將第一讀緩存存儲空間、第一寫緩存存儲空間和第一數據分層存儲空間所占用的總存儲空間稱作可用總空間,假設第一讀緩存存儲空間在可用總空間中所占的比例為20%,第一寫緩存存儲空間在可用總空間中所占的比例為30%,第一數據分層存儲空間在可用總空間所占的比例為50%。
表1
202、判斷第一SSD的剩余壽命是否小于或等于第一壽命閾值,若是,則執行步驟203,若否,則執行步驟204;
獲取到第一SSD的剩余壽命之后,可以將第一SSD的剩余壽命與預存的第一壽命閾值進行比較,判斷第一SSD的剩余壽命是否小于或等于第一壽命閾值,若小于或等于第一壽命閾值,則執行步驟203,若大于第一壽命閾值,則執行步驟204。
203、判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若是,則執行步驟205,若否,則執行步驟208;
若判定第一SSD的剩余壽命小于或等于第一壽命閾值,則將第一SSD的剩余壽命與預存的第二壽命閾值進行比較,其中第二壽命閾值小于第一壽命閾值,判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值。若小于或等于,則執行步驟205,若大于,則執行步驟207。
204、執行其他操作;
若第一SSD的剩余壽命大于第一壽命閾值,則繼續判斷其他SSD的剩余壽命,比如第二SSD的剩余壽命。
205、將第一SSD中的第一數據存儲在HDD中;
若判定第一SSD的剩余壽命小于或等于第二壽命閾值,則判定第一SSD中的數據處于容易丟失的狀態,此時,可以將第一SSD中寫緩存分區和數據分層分區所占用的存儲空間大小降為零,也就是說,在第一SSD中不為寫緩存和數據分層分配存儲空間,相應的,可以將第一SSD中已存儲的第一數據存儲在HDD中,也就是說將第一寫緩存存儲空間和第一數據分層存儲空間中的寫緩存數據和數據分層數據寫入HDD中。具體的,可以為:在判定第一SSD的剩余壽命小于或等于第二壽命閾值之后,此時第一SSD中的數據處于容易丟失的狀態,此時可以按照表1,將標記為寫緩存和數據分層的物理塊中的數據均寫入HDD中。
206、將接收到的第一數據存儲于第二SSD中;
若判定第一SSD的剩余壽命小于或等于第二壽命閾值,則判定第一SSD中的數據處于容易丟失的狀態,此時,可以將第一SSD中寫緩存分區和數據分層分區所占用的存儲空間大小降為零,也就是說,在第一SSD中不為寫緩存和數據分層分配存儲空間,相應的,可以在接收第一數據的存儲請求時,將接收到的第一數據存儲在第二SSD中,而不再存儲到第一SSD中,具體的可以為:按照表1,將標記為寫緩存和數據分層的物理塊的寫緩存分區標記和數據分層分區標記去除,如表2。此時第一寫緩存存儲空間和第一數據分層存儲空間在可用總空間中所占的比例均為0。這樣,在接收第一數據的存儲請求時,將不會將接收到的第一數據存儲在第一SSD中。
表2
207、將第一SSD中的讀緩存分區的存儲空間增大至第三讀緩存存儲空間;
在步驟205之后,第一寫緩存存儲空間和第一數據分層存儲空間為可用存儲空間。為了擴大讀緩存分區的存儲空間,可以將部分或全部第一寫緩存存儲空間和第一數據分層存儲空間分配給讀緩存,將第一SSD中的讀緩存分區的存儲空間增大至第三讀緩存存儲空間。這樣,可以有更多的熱數據寫入讀緩存分區,加快數據讀取速度。為了最大限度的利用第一SSD,可以將全部第一寫緩存存儲空間和第一數據分層存儲空間均分配給讀緩存,具體的,可以將分區標記為空的物理塊標記為讀緩存,參閱表3,或者,也可以在步驟205中,直接將物理塊的寫緩存分區標記和數據分層分區標記改為讀緩存標記。此時第一讀緩存存儲空間在可用總空間中所占的比例為100%。
表3
208、將第一SSD中的寫緩存分區和數據分層分區所占用的存儲空間減小為第二寫數據與數據分層存儲空間;
若判定第一SSD的剩余壽命小于或等于第一壽命閾值,且大于第二壽命閾值,表明此時第一SSD中的數據暫時安全,但是第一SSD的使用壽命即將到達極限,為了避免第一SSD的剩余壽命低于第二壽命閾值時,寫緩存分區和數據分層分區的存儲空間大小被降為零導致的寫緩存和數據分層的性能大幅減退,可以將第一SSD中的寫緩存分區和數據分層分區的存儲空間分別減小為第二寫緩存存儲空間和第二數據分層存儲空間,第二寫緩存存儲空間和第二數據分層存儲空間一共占用的存儲空間稱作第二寫數據與數據分層存儲空間,第二寫數據與數據分層存儲空間的大小小于第一寫數據與數據分層存儲空間的大小,且不為0。若被收回的存儲單元存儲有寫緩存數據或數據分層數據,會將這些數據寫入HDD中。具體的,可以將按照表1,將部分標記為寫緩存和數據分層的物理塊中的數據寫入HDD中(若物理塊中寫有數據),之后,可以將相應的物理塊的寫緩存分區標記和數據分層分區標記去除。假設調整后第一寫緩存存儲空間在可用總空間中所占的比例為10%,第一數據分層存儲空間在可用總空間所占的比例為30%,
209、將第一SSD中的讀緩存分區的存儲空間增大至第二讀緩存存儲空間。
在步驟207之后,寫緩存分區和數據分層分區的存儲空間減小,就會新增一些可用的存儲空間,為了擴大讀緩存分區的存儲空間,可以將部分或全部新增的可用的存儲空間分配給讀緩存,將第一SSD中的讀緩存分區的存儲空間增大至第二讀緩存存儲空間。為了最大限度的利用第一SSD,可以將新增的可用的存儲空間全部分配給讀緩存,參見表4,第一讀緩存存儲空間在可用總空間中所占的比例為60%。
表4
需要說明的是,第一壽命閾值和第二壽命閾值將剩余壽命分成三個區間,即大于第一壽命閾值、小于或等于第一壽命閾值且大于第二壽命閾值、小于或等于第二壽命閾值。在實際使用中,也可以先判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若大于,再判斷剩余壽命是否小于或等于第一壽命閾值,本發明實施例中提到的這兩個判斷過程的先后執行順序,此處不做限定,只要能夠確定獲取的第一SSD的剩余壽命處于哪個區間即可。
由于混合存儲產品包括HDD、第一SSD和第二SSD,即使第一SSD的剩余壽命小于或等于第二壽命閾值,寫緩存和數據分層還可以繼續使用第二SSD中的存儲空間,第二SSD并未限定為一塊SSD,可以為一塊、兩塊或更多的SSD,假設第二SSD的剩余壽命大于第三壽命閾值,第三壽命閾值可以與第一壽命閾值相同,也可以不同,只要第二SSD的剩余壽命大于第三壽命閾值時,能夠表明第二SSD的使用壽命未接近極限即可,具體取值不做限定。為了維持寫緩存和數據分層的性能,本發明可以將第一SSD中寫緩存和數據分層減少的存儲空間在第二SSD中進行補償,盡量維持在所有SSD中所占存儲空間的比例不變。具體過程如下,請參閱圖3,本發明實施例中基于混合存儲產品的存儲控制方法另一個實施例包括:
301、獲取第一SSD的剩余壽命;
HDD的存儲控制模塊可以周期性的獲取第一SSD的剩余壽命,作為舉例,獲取周期可以為1周。
將此時第一SSD中讀緩存分區占用的存儲空間稱作第一SSD的第一讀緩存存儲空間,第一SSD中寫緩存分區占用的存儲空間稱作第一SSD的第一寫緩存存儲空間,第一SSD中數據分層分區占用的存儲空間稱作第一數據分層存儲空間,將第一SSD的第一寫緩存存儲空間和第一SSD的第一數據分層存儲空間二者一共占用的存儲空間稱作第一SSD的第一寫數據與數據分層存儲空間。將此時第二SSD中讀緩存分區占用的存儲空間稱作第二SSD的第一讀緩存存儲空間,將第二SSD中寫緩存分區占用的存儲空間稱作第二SSD的第一寫緩存存儲空間,將第二SSD中數據分層分區占用的存儲空間稱作第二SSD的第一數據分層存儲空間,將第二SSD的第一寫緩存存儲空間和第二SSD的第一數據分層存儲空間二者一共占用的存儲空間稱作第二SSD的第二寫數據與數據分層存儲空間。
302、判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若是,則執行步驟303,若否,則執行步驟307;
獲取到第一SSD的剩余壽命之后,可以將第一SSD的剩余壽命與預存的第二壽命閾值進行比較,判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值,若小于或等于第二壽命閾值,則執行步驟303,若大于第一壽命閾值,則執行步驟306。
303、將第二SSD中的寫緩存分區和數據分層分區的存儲空間增大至第二SSD的第三寫數據與數據分層存儲空間;
在第二SSD中為寫緩存和數據分層分配更多的存儲空間,將第二SSD中的寫緩存分區和數據分層分區的存儲空間分別增大至第二SSD的第三寫緩存存儲空間和第二SSD的第三數據分層存儲空間,第二SSD的第三寫緩存存儲空間和第二SSD的第三數據分層存儲空間一共占用的存儲空間稱作第二SSD的第三寫數據與數據分層存儲空間,相應的,第二SSD的讀緩存分區所占用的第二SSD的第一存儲空間減小為第二SSD的第三存儲空間。
優選的,第二SSD的第三寫緩存存儲空間與第二SSD的第一寫緩存存儲空間大小的差值,為第一SSD的第一寫緩存存儲空間的大小;第二SSD的第三數據分層存儲空間與第二SSD的第一數據分層存儲空間大小的差值,為第一SSD的第一數據分層存儲空間的大小,第二SSD的第一讀緩存存儲空間與第二SSD的第三讀緩存存儲空間的大小的差值,為第二SSD的第三寫數據與數據分層存儲空間與第二SSD的第一寫數據與數據分層存儲空間的大小的差值。相應的,可以將第一寫緩存存儲空間和第一數據分層存儲空間中的寫緩存數據和數據分層數據寫入第二SSD中,寫入的過程可以為先寫入HDD中,然后在第二SSD中的重新分區調整結束后,再將這些數據寫入第二SSD中。
304、將第一SSD中的第一數據存儲在第二SSD中;
若判定第一SSD的剩余壽命小于或等于第二壽命閾值,則判定第一SSD中的數據處于容易丟失的狀態,此時,可以將第一SSD中寫緩存分區和數據分層分區所占用的存儲空間大小降為零,也就是說,在第一SSD中不為寫緩存和數據分層分配存儲空間,相應的,可以將第一SSD中已存儲的第一數據存儲在H第二SSD中,也就是說將第一寫緩存存儲空間和第一數據分層存儲空間中的寫緩存數據和數據分層數據寫入第二SSD中。
305、將接收到的第一數據存儲于第二SSD中;
若判定第一SSD的剩余壽命小于或等于第二壽命閾值,則判定第一SSD中的數據處于容易丟失的狀態,此時,可以將第一SSD中寫緩存分區和數據分層分區所占用的存儲空間大小降為零,也就是說,在第一SSD中不為寫緩存和數據分層分配存儲空間,相應的,可以在接收第一數據的存儲請求時,將接收到的第一數據存儲在第二SSD中,而不再存儲到第一SSD中。
306、將第一SSD中的讀緩存分區的存儲空間增大至第三讀緩存存儲空間;
在步驟305之后,第一SSD的第一寫緩存存儲空間和第一數據分層存儲空間為可用存儲空間,可以將第一SSD的第一寫數據與數據分層存儲空間分配給讀緩存,將第二SSD的讀緩存存儲空間中存儲的讀緩存數據寫入第一SSD中。
307、執行其他操作。
若第一SSD的剩余壽命大于第一壽命閾值,則繼續判斷其他SSD的剩余壽命。
上面對本發明實施例中的方法進行了描述,下面對本發明實施例中的裝置進行描述。
請參閱圖4,本發明實施例中基于混合存儲產品的存儲控制方法的一個實施例包括:
獲取單元401,用于獲取第一SSD的剩余壽命。
第一判斷單元402,用于判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值。
第一分配單元403,用于當第一判斷單元判定第一SSD的剩余壽命小于或等于第二壽命閾值時,在第一SSD中不為第一數據分配存儲空間。
第二分配單元404,用于當第一判斷單元判定第一SSD的剩余壽命小于或等于第二壽命閾值時,在第一SSD中為第二數據分配存儲空間。
本實施例中的存儲控制模塊各單元間的關系參照圖1對應的實施例,此處不再贅述。
請參閱圖5,本發明實施例中存儲控制模塊的另一個實施例包括:
獲取單元501,用于獲取第一SSD的剩余壽命。
第二判斷單元502,用于判斷第一SSD的剩余壽命是否小于或等于第一壽命閾值,所述第一壽命閾值大于所述第二壽命閾值。
第一判斷單元503,用于當第二判斷單元502判定第一SSD的剩余壽命小于或等于第一壽命閾值時,判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值。
第一存儲子單元504,用于當第一判斷單元503判定第一SSD的剩余壽命是否小于或等于第二壽命閾值時,將第一SSD中的第一數據存儲在HDD中。
第二存儲子單元505,用于當第一SSD的剩余壽命是否小于或等于第二壽命閾值時,在接收到第一數據之后,將接收到的第一數據存儲于第二SSD中。
第五分配子單元506,用于當第一SSD的剩余壽命是否小于或等于第二壽命閾值時,將第一SSD中的讀緩存分區的存儲空間增大至第三讀緩存存儲空間。
第三分配單元507,用于將第一SSD中的寫緩存分區和數據分層分區所占用的存儲空間減小為第二寫數據與數據分層存儲空間。
第五分配單元508,用于將第一SSD中的讀緩存分區的存儲空間增大至第二讀緩存存儲空間。
本實施例中的存儲控制模塊各單元間的關系參照圖2對應的實施例,此處不再贅述。
請參閱圖6,本發明實施例中NAND閃存控制器600的一個實施例包括:
獲取單元601,用于獲取第一SSD的剩余壽命。
第一判斷單元602,用于判斷第一SSD的剩余壽命是否小于或等于第二壽命閾值。
第四分配單元603,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值,且所述第二SSD的剩余壽命大于第二SSD的第三壽命閾值時,將第二SSD中的寫緩存分區和數據分層分區的存儲空間增大至第二SSD的第三寫數據與數據分層存儲空間。
第三分配子單元604,用于當所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值時,將第一SSD中的第一數據存儲在第二SSD中。
第四分配子單元605,用于在所述第一判斷單元判定所述第一SSD的剩余壽命小于或等于所述第二壽命閾值之后,在接收到所述第一數據時,將接收到的第一數據存儲于第二SSD中。
第五分配子單元606,用于將第一SSD中的讀緩存分區的存儲空間增大至第三讀緩存存儲空間。
本實施例中的存儲控制模塊各單元間的關系參照圖3對應的實施例,此處不再贅述。
本發明的存儲控制模塊可以安裝于主機中。
在本申請所提供目標區域可以為默認的區域,也可以為用戶預設的區域。并且,所述的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。