本發(fā)明涉及存儲系統(tǒng)緩存技術(shù)領(lǐng)域,特別是涉及一種IO請求的處理方法。
背景技術(shù):
目前,在存儲系統(tǒng)中,快照、克隆、遠(yuǎn)程復(fù)制、自精簡卷等高級特性是高端存儲系列產(chǎn)品中必不可少的高級特性,這些高級特性對IO處理的過程需要通過緩存加速,但存儲系統(tǒng)中,只存在一個緩存層,在一定程度上就會影響存儲系統(tǒng)的性能。一般情況下,存儲系統(tǒng)中只有一層緩存,而快照、克隆、遠(yuǎn)程復(fù)制、自精簡卷等高級特性又需要緩存進(jìn)行加速,否則造成性能衰減,主機(jī)端下發(fā)的IO請求就需要經(jīng)過上述高級特性的處理過程以后才能下發(fā)到緩存中,即主機(jī)端下發(fā)的IO請求需要流進(jìn)這些高級特性以后,才能最終被寫入到緩存,主機(jī)IO寫請求的響應(yīng)時(shí)間會受到高級特性處理過程的影響,這樣勢必會造成主機(jī)IO延時(shí)長尾,延長時(shí)間過長。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種IO請求的處理方法,以實(shí)現(xiàn)降低IO延時(shí)。
為解決上述技術(shù)問題,本發(fā)明提供一種IO請求的處理方法,包括:
當(dāng)主機(jī)端下發(fā)IO寫請求數(shù)據(jù)到本端控制器時(shí),本端控制器中的上層緩存模塊接收所述IO寫請求數(shù)據(jù),并將所述IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份;
所述partner端控制器向所述本端控制器發(fā)送反饋信息,通知本端控制器所述IO寫請求數(shù)據(jù)已成功備份;
所述本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息;
所述本端控制器將所述IO寫請求數(shù)據(jù)寫入內(nèi)存中。
優(yōu)選的,所述本端控制器包括上層緩存模塊,高級特性模塊和下層緩存模塊,所述高級特性模塊位于所述上層緩存模塊和下層緩存模塊之間。
優(yōu)選的,所述高級特性模塊包括:快照模塊、克隆模塊、遠(yuǎn)程復(fù)制模塊或者自精簡模塊。
優(yōu)選的,所述本端控制器將所述IO寫請求數(shù)據(jù)寫入內(nèi)存中,包括:
本端控制器中的上層緩存模塊將所述IO寫請求數(shù)據(jù)傳遞到本端控制器中的高級特性模塊;
本端控制器中的高級特性模塊對所述IO寫請求數(shù)據(jù)進(jìn)行處理,處理完成后將所述IO寫請求數(shù)據(jù)傳遞至本端控制器中的下層緩存模塊,寫入下層緩存模塊中。
優(yōu)選的,所述本端控制器與所述partner端控制器之間通過NTB通道連接。
優(yōu)選的,所述本端控制器中的上層緩存模塊接收所述IO寫請求數(shù)據(jù),并將所述IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份,包括:
所述本端控制器中的上層緩存模塊接收所述IO寫請求數(shù)據(jù),并將所述IO請求數(shù)據(jù)鏡像到同伴partner端控制器中的上層緩存模塊上進(jìn)行數(shù)據(jù)備份。
優(yōu)選的,所述partner端控制器向所述本端控制器發(fā)送反饋信息,包括:
所述partner端控制器中的上層緩存模塊向所述本端控制器中的上層緩存模塊發(fā)送反饋信息。
優(yōu)選的,所述方法還包括:
當(dāng)本端控制器出現(xiàn)宕機(jī)事件,本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息,將所述IO寫請求數(shù)據(jù)傳遞至本端控制器中的高級特性模塊。
本發(fā)明所提供的一種IO請求的處理方法,當(dāng)主機(jī)端下發(fā)IO寫請求數(shù)據(jù)到本端控制器時(shí),本端控制器中的上層緩存模塊接收所述IO寫請求數(shù)據(jù),并將所述IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份;所述partner端控制器向所述本端控制器發(fā)送反饋信息,通知本端控制器所述IO寫請求數(shù)據(jù)已成功備份;所述本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息;所述本端控制器將所述IO寫請求數(shù)據(jù)寫入內(nèi)存中??梢?,該方法引入了雙層緩存,當(dāng)系統(tǒng)接收到主機(jī)端的IO請求即IO寫請求數(shù)據(jù)后,IO寫請求數(shù)據(jù)首先進(jìn)入到上層緩存即上層緩存模塊,上層緩存模塊將IO寫請求數(shù)據(jù)鏡像到partner端,接收partner端的反饋信息后就會向主機(jī)端返回表示IO處理完成的響應(yīng)信息,這樣告知主機(jī)端IO處理完成即IO寫請求數(shù)據(jù)的復(fù)制完成,如此讓IO寫請求數(shù)據(jù)直接進(jìn)入上層緩存就完成IO處理完成,及時(shí)向主機(jī)反饋IO處理完成,能夠屏蔽掉高級特性的IO處理過程,加速系統(tǒng)性能,這樣通過上層緩存可以屏蔽掉由于高級特性的IO處理過程造成的主機(jī)IO延時(shí),所以該方法實(shí)現(xiàn)降低IO延時(shí),加速系統(tǒng)性能。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明所提供的一種IO請求的處理方法的流程圖;
圖2為本端控制器和partner端控制器的結(jié)構(gòu)示意圖;
圖3為IO流處理示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種IO請求的處理方法,以實(shí)現(xiàn)降低IO延時(shí)。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請參考圖1,圖1為本發(fā)明所提供的一種IO請求的處理方法的流程圖,該包括:
S11:當(dāng)主機(jī)端下發(fā)IO寫請求數(shù)據(jù)到本端控制器時(shí),本端控制器中的上層緩存模塊接收IO寫請求數(shù)據(jù),并將IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份;
S12:partner端控制器向本端控制器發(fā)送反饋信息,通知本端控制器IO寫請求數(shù)據(jù)已成功備份;
S13:本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息;
S14:本端控制器將IO寫請求數(shù)據(jù)寫入內(nèi)存中。
可見,該方法引入了雙層緩存,當(dāng)系統(tǒng)接收到主機(jī)端的IO請求即IO寫請求數(shù)據(jù)后,IO寫請求數(shù)據(jù)首先進(jìn)入到上層緩存即上層緩存模塊,上層緩存模塊將IO寫請求數(shù)據(jù)鏡像到partner端,接收partner端的反饋信息后就會向主機(jī)端返回表示IO處理完成的響應(yīng)信息,這樣告知主機(jī)端IO處理完成即IO寫請求數(shù)據(jù)的復(fù)制完成,如此讓IO寫請求數(shù)據(jù)直接進(jìn)入上層緩存就完成IO處理完成,及時(shí)向主機(jī)反饋IO處理完成,能夠屏蔽掉高級特性的IO處理過程,加速系統(tǒng)性能,這樣通過上層緩存可以屏蔽掉由于高級特性的IO處理過程造成的主機(jī)IO延時(shí),所以該方法實(shí)現(xiàn)降低IO延時(shí),加速系統(tǒng)性能。
基于上述方法,具體的,本端控制器包括上層緩存模塊,高級特性模塊和下層緩存模塊,高級特性模塊位于上層緩存模塊和下層緩存模塊之間。
引入了雙層緩存即上層緩存模塊和下層緩存模塊,上層的緩存即上層緩存模塊在接收到IO寫請求后,會將其鏡像到partner端,也就是復(fù)制備份到partner端控制器,隨后會向主機(jī)端反饋IO處理完成,隨后在進(jìn)行上述高級特性的數(shù)據(jù)處理過程,可以屏蔽掉這些高級特性造成的系統(tǒng)延時(shí)。本方法打破傳統(tǒng)單層緩存的實(shí)現(xiàn)方法,在存儲系統(tǒng)中引入了雙層緩存,通過上層緩存可以屏蔽掉由于高級特性的數(shù)據(jù)處理過程造成的主機(jī)IO延時(shí)。本方法應(yīng)用于存儲系統(tǒng)中,應(yīng)用在2路、4路、8路等多路存儲系統(tǒng)中,能夠有效降低系統(tǒng)IO延時(shí),提升系統(tǒng)性能,同時(shí)保證數(shù)據(jù)安全。
具體的,高級特性模塊包括:快照模塊、克隆模塊、遠(yuǎn)程復(fù)制模塊或者自精簡模塊。
其中,本端控制器與partner端控制器之間通過NTB通道連接。
步驟S14優(yōu)選采用以下步驟實(shí)現(xiàn):
S21:本端控制器中的上層緩存模塊將IO寫請求數(shù)據(jù)傳遞到本端控制器中的高級特性模塊;
S22:本端控制器中的高級特性模塊對IO寫請求數(shù)據(jù)進(jìn)行處理,處理完成后將IO寫請求數(shù)據(jù)傳遞至本端控制器中的下層緩存模塊,寫入下層緩存模塊中。
步驟S11中,本端控制器中的上層緩存模塊接收IO寫請求數(shù)據(jù),并將IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份的過程具體為:本端控制器中的上層緩存模塊接收IO寫請求數(shù)據(jù),并將IO請求數(shù)據(jù)鏡像到同伴partner端控制器中的上層緩存模塊上進(jìn)行數(shù)據(jù)備份。
步驟S12中,partner端控制器向本端控制器發(fā)送反饋信息的過程具體為:partner端控制器中的上層緩存模塊向本端控制器中的上層緩存模塊發(fā)送反饋信息。
其中,partner端控制器也包括上層緩存模塊,高級特性模塊和下層緩存模塊,高級特性模塊位于上層緩存模塊和緩存模塊之間。
進(jìn)一步的,當(dāng)本端控制器出現(xiàn)宕機(jī)事件,本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息,將IO寫請求數(shù)據(jù)傳遞至本端控制器中的高級特性模塊。
本方法引入了雙層緩存,當(dāng)系統(tǒng)接收到主機(jī)端的IO請求后,首先進(jìn)入到上層緩存,上層緩存將IO數(shù)據(jù)鏡像到partner端后,就會向主機(jī)端返回IO處理完成,就能夠屏蔽掉高級特性的IO處理過程,加速系統(tǒng)性能。上層緩存在接收到主機(jī)IO寫請求后,在將IO寫請求傳遞到上述高級特性模塊進(jìn)行處理之前,將IO寫請求數(shù)據(jù)鏡像到partner端,依次保證數(shù)據(jù)安全,然后就會通知主機(jī)端IO處理完成,從而屏蔽了上述高級特性的IO處理延時(shí),加速系統(tǒng)性能。通過上層緩存屏蔽快照、克隆、遠(yuǎn)程復(fù)制和自精簡卷這些高級特定的IO處理延時(shí),實(shí)現(xiàn)系統(tǒng)性能提升。
如圖2所示,存儲系統(tǒng)中每個控制器包含兩層緩存模塊,快照、克隆、遠(yuǎn)程復(fù)制和自精簡等高級特性位于兩層緩存之間。本端控制器包括上層緩存模塊,高級特性模塊和下層緩存模塊,高級特性模塊位于上層緩存模塊和緩存模塊之間。partner端控制器也包括上層緩存模塊,高級特性模塊和下層緩存模塊,高級特性模塊位于上層緩存模塊和緩存模塊之間。
如圖3所示,圖中的S1-S6數(shù)字標(biāo)記表示IO流流向的步驟,也就是IO寫請求數(shù)據(jù)的流向過程,IO寫請求數(shù)據(jù)從S1標(biāo)記的流向步驟開始,依次經(jīng)過S2、S3、S4、S5、S6這些標(biāo)記的流向,圖中的快照/克隆/遠(yuǎn)程復(fù)制/自精簡卷模塊即表示快照模塊、克隆模塊、遠(yuǎn)程復(fù)制模塊或者自精簡模塊,這些模塊都是高級特性模塊,具有快照模塊、克隆模塊、遠(yuǎn)程復(fù)制模塊或者自精簡這些高級特性。具體的,S1過程是主機(jī)端下發(fā)IO寫請求數(shù)據(jù)到本端控制器中的上層緩存模塊,S2過程是本端控制器中的上層緩存模塊IO請求數(shù)據(jù)鏡像到同伴partner端控制器中的上層緩存模塊上進(jìn)行數(shù)據(jù)備份,S3過程是partner端控制器中的上層緩存模塊向本端控制器中的上層緩存模塊發(fā)送反饋信息來通知本端控制器IO寫請求數(shù)據(jù)已成功備份,S4過程是本端控制器中的上層緩存模塊向主機(jī)端返回表示IO處理完成的響應(yīng)信息,S5過程是本端控制器中的上層緩存模塊將IO寫請求數(shù)據(jù)傳遞至本端控制器中的快照/克隆/遠(yuǎn)程復(fù)制/自精簡卷模塊,S6過程是本端控制器中的快照/克隆/遠(yuǎn)程復(fù)制/自精簡卷模塊將IO寫請求數(shù)據(jù)傳遞至本端控制器中的下層緩存模塊。
圖3中,通過S1至S6的流程,當(dāng)主機(jī)端下發(fā)IO寫請求到本端時(shí),上層緩存模塊接收IO寫請求,并通過控制器之間的NTB通道,將數(shù)據(jù)鏡像到partner端的控制器上進(jìn)行數(shù)據(jù)備份,隨后partner端控制器會向本端反饋信息,通知本端數(shù)據(jù)已經(jīng)成功備份,然后本端控制器會將IO寫請求數(shù)據(jù)寫入到內(nèi)存中。如果在這之后,本端控制器出現(xiàn)了宕機(jī)事件,這些IO數(shù)據(jù)也不會丟失,所以此時(shí)認(rèn)為主機(jī)端下發(fā)的IO寫請求數(shù)據(jù)時(shí)安全的,所以會向主機(jī)端返回IO處理完成。隨后該IO才會被提交到快照、克隆、遠(yuǎn)程復(fù)制或者自精簡模塊這些高級特性模塊進(jìn)行后續(xù)處理。這樣做也能屏蔽掉這些高級特性數(shù)據(jù)處理過程中的延時(shí)。
傳統(tǒng)單層緩存模塊的弊端是:主機(jī)IO寫請求的響應(yīng)時(shí)間會受到高級特性處理過程的影響,而本方法屏蔽掉,快照、克隆、遠(yuǎn)程復(fù)制和自精簡這些高級特性對主機(jī)IO寫請求的延時(shí),上層緩存模塊將IO寫請求數(shù)據(jù)寫入到內(nèi)存后,高級特性模塊對IO的處理過程可以基于指針進(jìn)行,也能夠加快處理的效率。
綜上,本發(fā)明所提供的一種IO請求的處理方法,當(dāng)主機(jī)端下發(fā)IO寫請求數(shù)據(jù)到本端控制器時(shí),本端控制器中的上層緩存模塊接收IO寫請求數(shù)據(jù),并將IO請求數(shù)據(jù)鏡像到同伴partner端控制器上進(jìn)行數(shù)據(jù)備份;partner端控制器向本端控制器發(fā)送反饋信息,通知本端控制器IO寫請求數(shù)據(jù)已成功備份;本端控制器向主機(jī)端返回表示IO處理完成的響應(yīng)信息;本端控制器將IO寫請求數(shù)據(jù)寫入內(nèi)存中。可見,該方法引入了雙層緩存,當(dāng)系統(tǒng)接收到主機(jī)端的IO請求即IO寫請求數(shù)據(jù)后,IO寫請求數(shù)據(jù)首先進(jìn)入到上層緩存即上層緩存模塊,上層緩存模塊將IO寫請求數(shù)據(jù)鏡像到partner端,接收partner端的反饋信息后就會向主機(jī)端返回表示IO處理完成的響應(yīng)信息,這樣告知主機(jī)端IO處理完成即IO寫請求數(shù)據(jù)的復(fù)制完成,如此讓IO寫請求數(shù)據(jù)直接進(jìn)入上層緩存就完成IO處理完成,及時(shí)向主機(jī)反饋IO處理完成,能夠屏蔽掉高級特性的IO處理過程,加速系統(tǒng)性能,這樣通過上層緩存可以屏蔽掉由于高級特性的IO處理過程造成的主機(jī)IO延時(shí),所以該方法實(shí)現(xiàn)降低IO延時(shí),加速系統(tǒng)性能。
以上對本發(fā)明所提供的一種IO請求的處理方法進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。