一種應(yīng)用獨立緩存系統(tǒng)及方法
【專利摘要】一種應(yīng)用獨立緩存系統(tǒng)及方法,涉及計算機存儲【技術(shù)領(lǐng)域】,具體涉及基于Linux操作系統(tǒng)的存儲性能優(yōu)化領(lǐng)域。本發(fā)明解決了現(xiàn)有基于Linux操作系統(tǒng)的緩存系統(tǒng)存在的對與不同的應(yīng)用不通用、且當多個應(yīng)用同時運行時存在爭搶緩存資源的問題。所述應(yīng)用獨立緩存系統(tǒng)為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備。每個內(nèi)存塊設(shè)備對應(yīng)一個可配置的塊設(shè)備緩存處理策略模塊,所述的塊設(shè)備緩存處理策略模塊包括I/O處理策略模塊、緩存回寫策略模塊、緩存替換策略模塊以及緩存分配管理模塊四大模塊。本發(fā)明適合于基于Linux操作系統(tǒng)的存儲系統(tǒng)性能的優(yōu)化。
【專利說明】一種應(yīng)用獨立緩存系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機存儲【技術(shù)領(lǐng)域】,更具體地,本發(fā)明涉及基于Linux操作系統(tǒng)的存儲性能優(yōu)化領(lǐng)域。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,數(shù)據(jù)存儲量呈指數(shù)級增長,各領(lǐng)域?qū)Υ笕萘看鎯υO(shè)備需求越來越大,同時對存儲系統(tǒng)的I/o性能要求也越來越高。緩存技術(shù)作為優(yōu)化存儲系統(tǒng)I/O性能的重要手段,其對存儲系統(tǒng)性能優(yōu)化作用主要表現(xiàn)在兩個方面:①訪問高速緩存命中可減少對慢速磁盤的訪問包含預(yù)取及回寫在內(nèi)的緩存算法能有效增強磁盤I/o訪問的順序性,提高磁盤帶寬利用率。但基于Linux操作系統(tǒng)的緩存系統(tǒng)存在以下問題:
[0003]1、Linux針對同時運行的所有應(yīng)用提供的統(tǒng)一的緩存系統(tǒng),而不同應(yīng)用I/O特性相差較大,Linux緩存系統(tǒng)無法針對特定應(yīng)用的I/O特性做獨立優(yōu)化,或者針對某個應(yīng)用的優(yōu)化,卻可能導(dǎo)致其他應(yīng)用性能變差;
[0004]2、同時運行的多個應(yīng)用爭搶Linux管理的全局緩存資源,數(shù)據(jù)訪問局部性弱的應(yīng)用將會搶占大多數(shù)緩存資源,卻不能獲得與之相匹配的性能提升;而數(shù)據(jù)訪問局部性強的應(yīng)用由于得不到足夠的緩存,性能急劇下降,導(dǎo)致存儲系統(tǒng)整體性能下降。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有基于Linux操作系統(tǒng)的緩存系統(tǒng)存在的對與不同的應(yīng)用不通用、且當多個應(yīng)用同時運行時存在爭搶緩存資源的問題,本申請?zhí)岢鲆环N應(yīng)用獨立緩存系統(tǒng)及方法。
[0006]本發(fā)明所述的應(yīng)用獨立緩存系統(tǒng)為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備。
[0007]上述每個內(nèi)存塊設(shè)備包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略模塊。
[0008]所述的塊設(shè)備緩存處理策略模塊包括I/O處理策略模塊、緩存回寫策略模塊、緩存替換策略模塊以及緩存分配管理模塊四大模塊,所述四大模塊的功能分別為:
[0009]所述的I/O處理策略模塊用于處理、過濾上層來的讀寫I/O請求;
[0010]所述的緩存回寫策略模塊,用于對待寫入底層物理塊設(shè)備的I/O數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中;
[0011]所述的緩存替換策略模塊:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間;
[0012]所述的緩存分配管理模塊,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
[0013]所述應(yīng)用獨立緩存系統(tǒng)在某個內(nèi)存塊設(shè)備接受來自應(yīng)用的I/O請求時,采用事先配置的、適應(yīng)于該應(yīng)用的I/O特性的緩存管理策略,在內(nèi)存中對來自應(yīng)用的I/O請求采用組合、過濾、排隊等多種方式處理,并將零散的I/o請求聚合成順序的I/O請求,然后經(jīng)Linux緩存系統(tǒng),去訪問底層真正的物理塊設(shè)備。
[0014]本發(fā)明所述的應(yīng)用獨立緩存方法為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備;在應(yīng)用存取數(shù)據(jù)時,訪問該應(yīng)用所單獨訪問的物理塊設(shè)備上所構(gòu)建的內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備虛擬作為中間代理,根據(jù)為該應(yīng)用設(shè)置的獨立緩存策略,對應(yīng)用I/O請求進行進一步處理后,再去訪問真正的物理塊設(shè)備。
[0015]所述的每個應(yīng)用所對應(yīng)的內(nèi)存塊設(shè)備均包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略。
[0016]所述的塊設(shè)備緩存處理策略包括I/O處理策略、緩存回寫策略、緩存替換策略以及緩存分配管理策略。
[0017]所述的I/O處理策略用于處理、過濾上層來的讀寫I/O請求。
[0018]所述的緩存回寫策略,用于對待寫入底層物理塊設(shè)備的I/O數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中。
[0019]所述的緩存替換策略:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間。
[0020]所述的緩存分配管理策略,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
[0021]所述應(yīng)用獨立緩存方法中,當所述內(nèi)存塊設(shè)備接受來自應(yīng)用的I/O請求時,采用事先配置的、適用于該應(yīng)用的I/o特性的緩存管理策略,在該內(nèi)存塊設(shè)備中對來自該應(yīng)用的I/o請求采用組合、過濾、排隊等多種方式處理,并將零散的、小的I/O請求聚合成順序I/O請求,然后經(jīng)Linux緩存系統(tǒng)去訪問底層中與該應(yīng)用對應(yīng)的真正物理塊設(shè)備。
[0022]本發(fā)明所述的應(yīng)用獨立緩存系統(tǒng)及方法是在現(xiàn)有Linux緩存系統(tǒng)的基礎(chǔ)上而設(shè)計的,本發(fā)明所述的緩存系統(tǒng)與現(xiàn)有的Linux緩存系統(tǒng)構(gòu)成二級緩存系統(tǒng)。在二級緩存系統(tǒng)中,可以根據(jù)應(yīng)用不同I/O特性采用不同的緩存策略,對該應(yīng)用存儲性能做獨立優(yōu)化;同時該應(yīng)用能使用的緩存資源由系統(tǒng)獨立為其分配,不會發(fā)生多個應(yīng)用爭搶緩存資源而導(dǎo)致的系統(tǒng)整體性能下降的情況發(fā)生。
[0023]本發(fā)明所述的應(yīng)用獨立緩存系統(tǒng)的緩存框架,使得各個應(yīng)用的緩存空間相互隔離,不會互相影響。另外,作為虛擬的磁盤塊設(shè)備的內(nèi)存塊設(shè)備,可配置單獨緩存處理策略,使不同應(yīng)用可以采用不同的策略來做獨立優(yōu)化。
[0024]采用本發(fā)明所述的應(yīng)用獨立緩存系統(tǒng)及方法,可以針對不同應(yīng)用采用不同的優(yōu)化策略,同時避免各應(yīng)用之間相互干擾,從局部到整體全面提升存儲系統(tǒng)的性能。在同等硬件條件下,采用本緩存系統(tǒng)構(gòu)建的存儲系統(tǒng)具有更高的性價比。
【專利附圖】
【附圖說明】
[0025]圖1是本發(fā)明所述的應(yīng)用獨立緩存系統(tǒng)的框架示意圖。
[0026]圖2是是內(nèi)存塊設(shè)備I/O處理流程及緩存管理模型。
【具體實施方式】
[0027]【具體實施方式】一、參見圖1說明本實施方式。本實施方式所述的應(yīng)用獨立緩存系統(tǒng),為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備。
[0028]所述虛擬的磁盤塊設(shè)備作為一個Linux內(nèi)核塊設(shè)備驅(qū)動程序,對系統(tǒng)提供標準的make_request函數(shù),作為操作系統(tǒng)I/O訪問接口。
[0029]【具體實施方式】二、本實施方式是對【具體實施方式】一所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的每個內(nèi)存塊設(shè)備包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略模塊。
[0030]本實施方式中,針對每個應(yīng)用配置獨立的塊設(shè)備緩存處理策略對應(yīng)用的I/O數(shù)據(jù)進行處理。
[0031]【具體實施方式】三、本實施方式是對【具體實施方式】二所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的塊設(shè)備緩存處理策略模塊包括I/o處理策略模塊、緩存回寫策略模塊、緩存替換策略模塊以及緩存分配管理模塊四大模塊。
[0032]【具體實施方式】四、本實施方式是對【具體實施方式】三所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的I/o處理策略模塊用于處理、過濾上層來的讀寫I/O請求。
[0033]本實施方式所述的I/O處理策略模塊的功能例如:將眾多的小I/O合并成大的I/O請求,進而減少底層的I/O請求數(shù)量,增強I/O的順序性等。在實際應(yīng)用中,該種I/O處理策略是根據(jù)應(yīng)用的I/o特性進行設(shè)定編制的。
[0034]【具體實施方式】五、本實施方式是對【具體實施方式】三所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的緩存回寫策略模塊,用于對待寫入底層物理塊設(shè)備的I/o數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中。
[0035]本實施方式所述的緩存回寫策略模塊并不立即將I/O數(shù)據(jù)寫入到所對應(yīng)的應(yīng)用的底層物理塊設(shè)備中,而是在成功寫入到內(nèi)存塊設(shè)備后,即接收到返回寫入成功標志后,根據(jù)緩存回寫策略,在合適的時機將數(shù)據(jù)真正寫入到相應(yīng)的物理塊設(shè)備,這樣能夠有效提高存儲設(shè)備寫入速度。該緩存回寫策略可根據(jù)各種應(yīng)用的I/O特性而設(shè)定。
[0036]【具體實施方式】六、本實施方式是對【具體實施方式】三所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的緩存替換策略模塊:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間。
[0037]當應(yīng)用寫入數(shù)據(jù)時,會占用內(nèi)存空間進行I/O數(shù)據(jù)緩存,而當應(yīng)用讀取數(shù)據(jù)時,如發(fā)生緩存失效,內(nèi)存塊設(shè)備會從真正的物理塊設(shè)備讀取數(shù)據(jù),并放置到緩存中;當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,需要使用本實施方式所述的緩存替換策略從內(nèi)存中回收緩存資源。
[0038]所述從內(nèi)存中回收緩存資源以釋放內(nèi)存空間的方法,例如:可以將修改后的某些數(shù)據(jù)寫入到物理磁盤后釋放緩內(nèi)存資源,或者直接丟棄部分從物理磁盤讀出但未修改的數(shù)據(jù),進而達到釋放內(nèi)存空間的效果。在實際應(yīng)用中,需要具體釋放哪些內(nèi)存空間,將新數(shù)據(jù)放入哪塊內(nèi)存空間,均由緩存替換策略決定。緩存替換策略需要根據(jù)應(yīng)用的I/o特性來編制。
[0039]【具體實施方式】七、本實施方式是對【具體實施方式】三所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,本實施方式中所述的緩存分配管理模塊,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
[0040]當內(nèi)存塊設(shè)備需要緩存時,該緩存分配管理模塊用于從可用內(nèi)存中分配緩存空間;當緩存替換策略決定從某塊空間回收內(nèi)存資源時,則將數(shù)據(jù)回寫到Linux緩存系統(tǒng)后,然后釋放相應(yīng)的內(nèi)存資源。
[0041]本實施方式所述的應(yīng)用獨立緩存系統(tǒng)能夠為每個應(yīng)用獨立管理自身的緩存空間,因此該系統(tǒng)的塊設(shè)備緩存處理策略可以根據(jù)應(yīng)用的I/o特性設(shè)定獨立的緩存管理策略,同時避免各應(yīng)用之間相互干擾,達到從整體到全局全面優(yōu)化存儲系統(tǒng)性能的目的。
[0042]【具體實施方式】八、參見圖2說明本實施方式。本實施方式是對【具體實施方式】一所述的應(yīng)用獨立緩存系統(tǒng)的進一步限定,所述應(yīng)用獨立緩存系統(tǒng),在某個內(nèi)存塊設(shè)備接受來自應(yīng)用的I/o請求時,采用事先配置的、適應(yīng)于該應(yīng)用的I/O特性的緩存管理策略,在內(nèi)存中對來自應(yīng)用的I/o請求采用組合、過濾、排隊等多種方式處理,并將零散的I/O請求聚合成順序的I/o請求,然后經(jīng)Linux緩存系統(tǒng),去訪問底層真正的物理塊設(shè)備。
[0043]【具體實施方式】九、參見圖1說明本實施方式。本實施方式所述的應(yīng)用獨立緩存方法,該方法為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備;在應(yīng)用存取數(shù)據(jù)時,訪問該應(yīng)用所單獨訪問的物理塊設(shè)備上所構(gòu)建的內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備虛擬作為中間代理,根據(jù)為該應(yīng)用設(shè)置的獨立緩存策略,對應(yīng)用I/O請求進行進一步處理后,再去訪問真正的物理塊設(shè)備。
[0044]本實施方式所述的應(yīng)用獨立緩存方法能夠為每個應(yīng)用獨立管理自身的緩存空間,因此該系統(tǒng)的塊設(shè)備緩存處理策略可以根據(jù)應(yīng)用的I/O特性設(shè)定獨立的緩存管理策略,同時避免各應(yīng)用之間相互干擾,達到從整體到全局全面優(yōu)化存儲系統(tǒng)性能的目的。
[0045]【具體實施方式】十、本實施方式是對【具體實施方式】九所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中,所述的每個應(yīng)用所對應(yīng)的內(nèi)存塊設(shè)備均包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略。
[0046]所述可配置的塊設(shè)備緩存處理策略是根據(jù)所述內(nèi)存塊設(shè)備對應(yīng)的應(yīng)用的性能來編制和設(shè)定的。
[0047]【具體實施方式】十一、本實施方式是對【具體實施方式】十所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中所述的塊設(shè)備緩存處理策略包括I/o處理策略、緩存回寫策略、緩存替換策略以及緩存分配管理策略。
[0048]【具體實施方式】十二、本實施方式是對【具體實施方式】十一所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中所述的I/o處理策略用于處理、過濾上層來的讀寫I/O請求。
[0049]本實施方式所述的I/O處理策略的功能例如:將眾多的小I/O合并成大的I/O請求,進而減少底層的I/o請求數(shù)量,增強I/O的順序性等。在實際應(yīng)用中,該種I/O處理策略是根據(jù)應(yīng)用的I/o特性進行設(shè)定編制的。
[0050]【具體實施方式】十三、本實施方式是對【具體實施方式】十一所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中所述的緩存回寫策略,用于對待寫入底層物理塊設(shè)備的I/o數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中。
[0051]本實施方式所述的緩存回寫策略并不立即將I/O數(shù)據(jù)寫入到所對應(yīng)的應(yīng)用的底層物理塊設(shè)備中,而是在成功寫入到內(nèi)存塊設(shè)備后,即接收到返回寫入成功標志后,根據(jù)緩存回寫策略,在合適的時機將數(shù)據(jù)真正寫入到相應(yīng)的物理塊設(shè)備,這樣能夠有效提高存儲設(shè)備寫入速度。該緩存回寫策略可根據(jù)各種應(yīng)用的I/o特性而設(shè)定。
[0052]【具體實施方式】十四、本實施方式是對【具體實施方式】十一所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中所述的緩存替換策略:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間。
[0053]當應(yīng)用寫入數(shù)據(jù)時,會占用內(nèi)存空間進行I/O數(shù)據(jù)緩存,而當應(yīng)用讀取數(shù)據(jù)時,如發(fā)生緩存失效,內(nèi)存塊設(shè)備會從真正的物理塊設(shè)備讀取數(shù)據(jù),并放置到緩存中;當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,需要使用本實施方式所述的緩存替換策略從內(nèi)存中回收緩存資源。
[0054]所述從內(nèi)存中回收緩存資源以釋放內(nèi)存空間的方法,例如:可以將修改后的某些數(shù)據(jù)寫入到物理磁盤后釋放緩內(nèi)存資源,或者直接丟棄部分從物理磁盤讀出但未修改的數(shù)據(jù),進而達到釋放內(nèi)存空間的效果。在實際應(yīng)用中,需要具體釋放哪些內(nèi)存空間,將新數(shù)據(jù)放入哪塊內(nèi)存空間,均由緩存替換策略決定。緩存替換策略需要根據(jù)應(yīng)用的I/o特性來編制。
[0055]【具體實施方式】十五、本實施方式是對【具體實施方式】十一所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中所述的緩存分配管理策略,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
[0056]當內(nèi)存塊設(shè)備需要緩存時,該緩存分配管理策略用于從可用內(nèi)存中分配緩存空間;當緩存替換策略決定從某塊空間回收內(nèi)存資源時,則將數(shù)據(jù)回寫到Linux緩存系統(tǒng)后,然后釋放相應(yīng)的內(nèi)存資源。
[0057]【具體實施方式】十六、參見圖2說明本實施方式。本實施方式是對【具體實施方式】九所述的應(yīng)用獨立緩存方法的進一步限定,本實施方式中,當所述內(nèi)存塊設(shè)備接受來自應(yīng)用的I/o請求時,采用事先配置的、適用于該應(yīng)用的I/O特性的緩存管理策略,在該內(nèi)存塊設(shè)備中對來自該應(yīng)用的I/o請求采用組合、過濾、排隊等多種方式處理,并將零散的、小的I/O請求聚合成順序I/o請求,然后經(jīng)Linux緩存系統(tǒng)去訪問底層中與該應(yīng)用對應(yīng)的真正物理塊設(shè)備。
[0058]本發(fā)明適合于基于Linux操作系統(tǒng)的存儲系統(tǒng)性能的優(yōu)化,同時為其它類型的存儲系統(tǒng)性能優(yōu)化提供了可借鑒的思路。其優(yōu)點在于:
[0059]I)本緩存系統(tǒng)可根據(jù)應(yīng)用I/O特性,設(shè)置不同的緩存管理策略,以獨立優(yōu)化應(yīng)用存儲性能,同時避免應(yīng)用之間相互干擾,從局部到整體全面提升存儲系統(tǒng)性能;
[0060]2)在同等硬件條件下,存儲設(shè)備采用本緩存框架提供的軟件方法提升存儲系統(tǒng)性能,可開發(fā)具有高性價比的存儲設(shè)備,擴展其應(yīng)用領(lǐng)域,提高設(shè)備競爭力;
[0061]3)本緩存系統(tǒng)采用面向?qū)ο?、開放式思想設(shè)計,將各種管理策略封裝成具有標準接口、可配置的獨立模塊,具有良好的可用性及擴展性。
【權(quán)利要求】
1.一種應(yīng)用獨立緩存系統(tǒng),其特征在于,該系統(tǒng)為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備。
2.根據(jù)權(quán)利要求1所述的一種應(yīng)用獨立緩存系統(tǒng),其特征在于,所述的每個內(nèi)存塊設(shè)備包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略模塊。
3.根據(jù)權(quán)利要求1所述的一種應(yīng)用獨立緩存系統(tǒng),其特征在于,所述的塊設(shè)備緩存處理策略模塊包括I/o處理策略模塊、緩存回寫策略模塊、緩存替換策略模塊以及緩存分配管理模塊四大模塊。
4.根據(jù)權(quán)利要求3所述的一種應(yīng)用獨立緩存系統(tǒng),其特征在于, 所述的I/O處理策略模塊用于處理、過濾上層來的讀寫I/O請求; 所述的緩存回寫策略模塊,用于對待寫入底層物理塊設(shè)備的I/O數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中; 所述的緩存替換策略模塊:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間; 所述的緩存分配管理模塊,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
5.根據(jù)權(quán)利要求1所述的一種應(yīng)用獨立緩存系統(tǒng),其特征在于,所述應(yīng)用獨立緩存系統(tǒng)在某個內(nèi)存塊設(shè)備接受來自應(yīng)用的I/o請求時,采用事先配置的、適應(yīng)于該應(yīng)用的I/O特性的緩存管理策略,在內(nèi)存中對來自應(yīng)用的I/o請求采用組合、過濾、排隊等多種方式處理,并將零散的I/O請求聚合成順序的I/O請求,然后經(jīng)Linux緩存系統(tǒng),去訪問底層真正的物理塊設(shè)備。
6.一種應(yīng)用獨立緩存方法,其特征在于,該方法為每個應(yīng)用分配一塊內(nèi)存作為該應(yīng)用獨立管理的緩存資源,并在該應(yīng)用單獨訪問的物理塊設(shè)備之上構(gòu)建一個內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備在Linux內(nèi)核空間呈現(xiàn)為一個虛擬的磁盤塊設(shè)備;在應(yīng)用存取數(shù)據(jù)時,訪問該應(yīng)用所單獨訪問的物理塊設(shè)備上所構(gòu)建的內(nèi)存塊設(shè)備,該內(nèi)存塊設(shè)備虛擬作為中間代理,根據(jù)為該應(yīng)用設(shè)置的獨立緩存策略,對應(yīng)用I/O請求進行進一步處理后,再去訪問真正的物理塊設(shè)備。
7.根據(jù)權(quán)利要求6所述的一種應(yīng)用獨立緩存方法,其特征在于,所述的每個應(yīng)用所對應(yīng)的內(nèi)存塊設(shè)備均包含三個參數(shù):該內(nèi)存塊設(shè)備所對應(yīng)的真正物理塊設(shè)備、系統(tǒng)分配給的緩存資源、可配置的塊設(shè)備緩存處理策略。
8.根據(jù)權(quán)利要求6所述的一種應(yīng)用獨立緩存方法,其特征在于,所述的塊設(shè)備緩存處理策略包括I/O處理策略、緩存回寫策略、緩存替換策略以及緩存分配管理策略。
9.根據(jù)權(quán)利要求8所述的一種應(yīng)用獨立緩存方法,其特征在于, 所述的I/o處理策略用于處理、過濾上層來的讀寫I/O請求; 所述的緩存回寫策略,用于對待寫入底層物理塊設(shè)備的I/o數(shù)據(jù),在接收到內(nèi)存塊設(shè)備反饋的寫入成功標志之后,再根據(jù)緩存回寫策略將數(shù)據(jù)寫入到對應(yīng)的物理塊設(shè)備中; 所述的緩存替換策略:用于當應(yīng)用寫入數(shù)據(jù)時,當分配給該內(nèi)存塊設(shè)備的緩存空間使用率達到一定限值時,從內(nèi)存中回收緩存資源,以釋放內(nèi)存空間; 所述的緩存分配管理策略,用于維護一個內(nèi)存塊設(shè)備可用及已用緩存資源空間鏈表。
10.根據(jù)權(quán)利要求6所述的一種應(yīng)用獨立緩存方法,其特征在于,當所述內(nèi)存塊設(shè)備接受來自應(yīng)用的I/o請求時,采用事先配置的、適用于該應(yīng)用的I/O特性的緩存管理策略,在該內(nèi)存塊設(shè)備中對來自該應(yīng)用的I/o請求采用組合、過濾、排隊等多種方式處理,并將零散的、小的I/o請求聚合成順序I/O請求,然后經(jīng)Linux緩存系統(tǒng)去訪問底層中與該應(yīng)用對應(yīng)的真正物理塊設(shè)備。
【文檔編號】G06F12/08GK104360955SQ201410742565
【公開日】2015年2月18日 申請日期:2014年12月8日 優(yōu)先權(quán)日:2014年12月8日
【發(fā)明者】何凱, 劉成印, 劉偉, 王雪琪, 高群, 初永麗 申請人:山東工商學(xué)院, 煙臺中用電子科技有限公司