應(yīng)用于雙控存儲系統(tǒng)的緩存同步方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)存儲領(lǐng)域,特別是涉及一種應(yīng)用于雙控存儲系統(tǒng)的緩存同步方法及系統(tǒng)。
【背景技術(shù)】
[0002]磁盤高速緩存是一種軟件機(jī)制,其可以讓系統(tǒng)把一些平時(shí)儲存在磁盤上的數(shù)據(jù)存放在RAM(Random-Access Memory,隨機(jī)存取存儲器)中,使得后續(xù)對該數(shù)據(jù)存取時(shí)直接從RAM中存取,而無需存取磁盤,使得系統(tǒng)的快速讀寫迅速得到滿足,以此提高系統(tǒng)的效率。Cache Miiror(緩存鏡像)是在雙控系統(tǒng)運(yùn)行時(shí),讓兩邊的控制器的快速讀取同步,當(dāng)?shù)谝豢刂破鞒霈F(xiàn)故障時(shí),第二控制器能夠馬上接替第一控制器的工作,由于兩臺控制器的快取一致,因此系統(tǒng)能夠繼續(xù)正常運(yùn)行,且數(shù)據(jù)也不會丟失。
[0003]傳統(tǒng)的緩存鏡像(Cache Mirror),主要有以下幾種運(yùn)作情況,分別為MirrorPage (鏡像頁面),Cache Writeback (緩存回寫)、Read Shipping (讀傳遞)、Failover 及faiIback(故障轉(zhuǎn)移及故障恢復(fù)),其中Mirror Pager能夠達(dá)到鏡像的目的,但卻多了許多頁面同步的過程,同時(shí),鏡像頁面是以頁面大小(4K)為單位寫入數(shù)據(jù)的,造成鏡像緩存的效率不佳、性能較差。
【發(fā)明內(nèi)容】
[0004]針對緩存鏡像運(yùn)作時(shí)效率不佳、性能較差的問題,本發(fā)明提供了一種應(yīng)用于雙控存儲系統(tǒng)的緩存同步方法及系統(tǒng),不需鏡像緩存,還能夠大大提高運(yùn)作效率,且性能較好。
[0005]為達(dá)到發(fā)明目的,本發(fā)明提供一種應(yīng)用于雙控存儲系統(tǒng)的緩存同步方法,包括以下步驟:
[0006]主機(jī)發(fā)送寫請求信號到第一控制器;
[0007]判斷所述第一控制器是否為所述寫請求信號對應(yīng)邏輯卷的預(yù)設(shè)主控制器;
[0008]若所述第一控制器為所述預(yù)設(shè)主控制器,則所述第一控制器將所述寫請求信號對應(yīng)的數(shù)據(jù)緩存至所述第一控制器的第一緩存中,并將所述寫請求信號傳遞到第二控制器;
[0009]所述第二控制器接收到所述寫請求信號后,將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第二控制器的第二緩存中,使得所述第二緩存的數(shù)據(jù)與所述第一緩存的數(shù)據(jù)同步,并在同步后發(fā)送確認(rèn)信號到所述第一控制器,所述第一控制器接收到所述確認(rèn)信號后返回同步完成信號到所述主機(jī);
[0010]若所述第一控制器不是所述預(yù)設(shè)主控制器,則所述第一控制器將寫請求信號傳遞給作為所述邏輯卷預(yù)設(shè)主控制器的第二控制器,所述第二控制器將所述寫請求信號對應(yīng)的數(shù)據(jù)緩存至所述第二控制器的第二緩存中,發(fā)送確認(rèn)信號到所述第一控制器;
[0011]所述第一控制器接收所述確認(rèn)信號后,將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第一控制器的第一緩存中,使得所述第一緩存的數(shù)據(jù)與所述第二緩存的數(shù)據(jù)同步,并在同步后返回同步完成信號到所述主機(jī)。
[0012]作為一種可實(shí)施例,若所述第一控制器為所述預(yù)設(shè)主控制器,且所述第一控制器接收所述確認(rèn)信號后,包括如下步驟:
[0013]所述第一控制器用已寫緩存標(biāo)記將所述第一緩存標(biāo)記為已寫緩存,將所述已寫緩存中與所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述邏輯卷對應(yīng)的磁盤中,將所述已寫緩存中已寫入所述磁盤的數(shù)據(jù)刪除,并將所述第一緩存中的所述已寫緩存標(biāo)記清空。
[0014]作為一種可實(shí)施例,所述第一控制器用已寫緩存標(biāo)記將所述第一緩存標(biāo)記為已寫緩存,將所述已寫緩存中與所述寫請求對應(yīng)的數(shù)據(jù)寫入所述邏輯卷對應(yīng)的磁盤中,將所述已寫緩存中已寫入所述磁盤的數(shù)據(jù)刪除,并將所述第一緩存中的所述已寫緩存標(biāo)記清空之后,還包括如下步驟:
[0015]所述第二控制器輪詢所述第一緩存的狀態(tài),若獲得所述已寫緩存標(biāo)記已清空,則所述第二控制器將所述第二緩存中與所述第一緩存中已寫入所述磁盤的數(shù)據(jù)對應(yīng)的數(shù)據(jù)刪除,從而使所述第二緩存的數(shù)據(jù)與所述第一緩存的數(shù)據(jù)同步。
[0016]作為一種可實(shí)施例,若所述第二控制器為所述預(yù)設(shè)主控制器,且所述第一控制器將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第一緩存之后,包括如下步驟:
[0017]所述第二控制器用已寫緩存標(biāo)記將所述第二緩存標(biāo)記為已寫緩存,所述第二控制器將所述已寫緩存中與所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述邏輯卷對應(yīng)的磁盤中,將所述已寫緩存中已寫入所述磁盤的數(shù)據(jù)刪除,并將所述第二緩存中的所述已寫緩存標(biāo)記清空。
[0018]作為一種可實(shí)施例,所述第二控制器用已寫緩存標(biāo)記將所述第二緩存標(biāo)記為已寫緩存,所述第二控制器將所述已寫緩存中與所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述邏輯卷對應(yīng)的磁盤中,將所述已寫緩存中已寫入所述磁盤的數(shù)據(jù)刪除,并將所述第二緩存中的所述已寫緩存標(biāo)記清空之后,還包括如下步驟:
[0019]所述第一控制器輪詢所述第二緩存的狀態(tài),若獲得所述已寫緩存標(biāo)記已清空,則所述第一控制器將所述第一緩存中與所述第二緩存中已寫入所述磁盤的數(shù)據(jù)對應(yīng)的數(shù)據(jù)刪除,從而使所述第一緩存的數(shù)據(jù)與所述第二緩存的數(shù)據(jù)同步。
[0020]本發(fā)明還提供一種應(yīng)用于雙控存儲系統(tǒng)的緩存同步系統(tǒng),包括第一控制器,第二控制器和主機(jī),所述第一控制器和所述第二控制器均包括接收模塊,判斷模塊,第一緩存模塊,第一同步模塊,第二緩存模塊,第二同步模塊和返回模塊,其中:
[0021]所述第一控制器,被配置以通過所述接收模塊接收主機(jī)發(fā)送的寫請求信號,通過所述判斷模塊判斷所述第一控制器是否為所述寫請求信號對應(yīng)邏輯卷的預(yù)設(shè)主控制器;
[0022]所述第一控制器,被配置以若所述第一控制器為所述預(yù)設(shè)主控制器,則通過所述第一緩存模塊將所述寫請求信號對應(yīng)的數(shù)據(jù)緩存至所述第一控制器的第一緩存中,并將所述寫請求信號傳遞到第二控制器;
[0023]所述第二控制器,被配置以若所述第二控制器接收到所述寫請求信號后,通過所述第一同步模塊將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第二控制器的第二緩存中,使得所述第二緩存的數(shù)據(jù)與所述第一緩存的數(shù)據(jù)同步,并在同步后發(fā)送確認(rèn)信號到所述第一控制器,所述第一控制器接收到所述確認(rèn)信號后,通過所述返回模塊返回同步完成信號到所述主機(jī);
[0024]所述第二控制器,被配置以若所述第二控制器為所述預(yù)設(shè)主控制器,則通過所述第二緩存模塊接收所述第一控制器傳遞的寫請求信號,并將所述寫請求信號對應(yīng)的數(shù)據(jù)緩存至所述第二控制器的第二緩存中,發(fā)送確認(rèn)信號到所述第一控制器;
[0025]所述第一控制器,被配置以若接收到所述確認(rèn)信號后,通過所述第二同步模塊將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第一控制器的第一緩存中,使得所述第一緩存的數(shù)據(jù)與所述第二緩存的數(shù)據(jù)同步,并在同步后通過所述返回模塊返回同步完成信號到所述主機(jī)。
[0026]作為一種可實(shí)施例,還包括第一標(biāo)記模塊;
[0027]所述第一控制器,被配置以若所述第一控制器為所述預(yù)設(shè)主控制器,且接收到所述確認(rèn)信號后,通過所述第一標(biāo)記模塊用已寫緩存標(biāo)記將所述第一緩存標(biāo)記為已寫緩存,將所述已寫緩存中與所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述邏輯卷對應(yīng)的磁盤中,將所述已寫緩存中已寫入所述磁盤的數(shù)據(jù)刪除,并將所述第一緩存中的所述已寫緩存標(biāo)記清空。
[0028]作為一種可實(shí)施例,還包括第一輪詢模塊;
[0029]所述第二控制器,被配置以通過所述第一輪詢模塊輪詢所述第一緩存的狀態(tài),若獲得所述已寫緩存標(biāo)記已清空,則將所述第二緩存中與所述第一緩存中已寫入所述磁盤的數(shù)據(jù)對應(yīng)的數(shù)據(jù)刪除,從而使所述第二緩存的數(shù)據(jù)與所述第一緩存的數(shù)據(jù)同步。
[0030]作為一種可實(shí)施例,還包括第二標(biāo)記模塊;
[0031]所述第二控制器,被配置以若所述第二控制器為所述預(yù)設(shè)主控制器,且獲得所述第一控制器將所述寫請求信號對應(yīng)的數(shù)據(jù)寫入所述第一緩存后,通過所述第二標(biāo)記模塊用已寫緩存標(biāo)記將所述第二緩存標(biāo)記為已寫緩存,將所述已寫緩存中與所述寫請求信號對應(yīng)的數(shù)據(jù)