国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種存儲系統(tǒng)的緩存鏡像方法

      文檔序號:6398341閱讀:372來源:國知局
      專利名稱:一種存儲系統(tǒng)的緩存鏡像方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及存儲系統(tǒng)的緩存鏡像領(lǐng)域,尤其涉及多控制器存儲系統(tǒng)的緩存鏡像方法。
      背景技術(shù)
      緩存鏡像技術(shù)是針對于存儲處理出現(xiàn)故障時可能產(chǎn)生的緩存中的數(shù)據(jù)丟失而制定的解決方案,他將緩存數(shù)據(jù)同時保存在多個控制器上,系統(tǒng)工作時會自動向其他控制器進(jìn)行備份,是多控制器存儲系統(tǒng)中常用的緩存保護(hù)技術(shù),其基本原理就是在每個控制器上建立緩存鏡像,保證多控制器間的緩存一致性。申請?zhí)枮?00910253317.5的專利文件描述了一種雙控制器存儲系統(tǒng)的緩存鏡像系統(tǒng)及方法。該系統(tǒng)和方法提出了包含有兩個控制器的存儲系統(tǒng),第一控制器和第二控制器之間通過存儲器直接訪問DMA建立直接通訊鏈路,第一控制器在接收到寫請求后將數(shù)據(jù)寫入本地緩存中,然后將數(shù)據(jù)轉(zhuǎn)發(fā)到第二控制器進(jìn)行鏡像,第二控制器回復(fù)鏡像完成后,結(jié)束寫請求。但是,在該發(fā)明中,使用的存儲系統(tǒng)僅限于雙控制器存儲系統(tǒng),不支持多控制器存儲系統(tǒng),并且寫請求只通過第一控制器下發(fā),第二控制器只作為鏡像,并未提及寫請求從兩個控制器同時下發(fā)時的處理方法。

      發(fā)明內(nèi)容
      為了能夠在多控制器存儲系統(tǒng)中,同時通過多個控制器寫數(shù)據(jù)時,保證控制器間的緩存一致性,本發(fā)明提出一種存儲系統(tǒng)的緩存鏡像方法。為了解決上述技術(shù)問題,本發(fā)明提供了一種存儲系統(tǒng)的緩存鏡像方法,所述存儲系統(tǒng)包括η個控制器,其中一個控制器為主控制器,剩余η-l個控制器為從控制器,所述存儲系統(tǒng)的各個控制器之間通過通訊鏈路連接;η > 2 ;任何一個或者多個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存,并且向其他控制器轉(zhuǎn)發(fā)寫請求;收到轉(zhuǎn)發(fā)寫請求的控制器將寫請求的數(shù)據(jù)寫入到本地緩存。進(jìn)一步地,主控制器的功能包括:執(zhí)行緩存鏡像的功能和執(zhí)行對物理存儲設(shè)備讀寫的功能,從控制器的功能包括:執(zhí)行緩存鏡像的功能。進(jìn)一步地,在η個控制器的本地緩存的每一個緩存塊中增加一個標(biāo)記位,所述標(biāo)記位用于記錄所述緩存塊進(jìn)行寫操作的次數(shù),記為count。進(jìn)一步地,當(dāng)收到寫請求的控制器是主控制器時,所述方法包括:A)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器;B)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存;C)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器;D)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存;E)主控制器寫入完成后,返回寫請求執(zhí)行成功。
      進(jìn)一步地,當(dāng)收到寫請求的控制器是從控制器時,所述方法包括:a)從控制器將寫請求對應(yīng)的數(shù)據(jù)寫入到本地緩存,b)從控制器將寫請求轉(zhuǎn)發(fā)到主控制器和其他從控制器;c)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存;d)主控制器和其他從控制器寫入完成后,將備份完成的回復(fù)返回給從控制器;e )從控制器收到所有主控制器和其他從控制器備份完成的回復(fù)后,返回寫請求執(zhí)行成功。進(jìn)一步地,控制器將寫請求的數(shù)據(jù)寫入到本地緩存為:Zl)控制器判斷寫請求指定的寫入位置是否在本地緩存中,若不存在,則執(zhí)行步驟Z2),若存在,則執(zhí)行步驟Z3);Z2)增加新的緩存塊;并將寫請求的數(shù)據(jù)寫入到增加新的緩存塊中;結(jié)束寫入;Z3)根據(jù)寫請求指定的寫入位置定位到對應(yīng)的緩存塊,并將寫請求的數(shù)據(jù)寫入到對應(yīng)的緩存塊中;結(jié)束寫入。進(jìn)一步地,當(dāng)收到寫請求的控制器是主控制器時,所述方法包括:Aff)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器;Bff)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count值加I ;CW)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器;所述備份完成的恢復(fù)中包括所述緩存塊的count值;DW)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中;Eff)主控制器比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若主控制器收到的從控制器返回的緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟FW);否則執(zhí)行步驟GW);Fff)將收到的從控制器返回的緩存塊的count值賦值給主控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功;Gff)主控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。進(jìn)一步地,當(dāng)收到寫請求的控制器是從控制器時,所述方法包括:aw)從控制器將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count值加I ;bw)從控制器將寫請求和本地緩存對應(yīng)緩存塊的count值一并轉(zhuǎn)發(fā)到主控制器和其他從控制器;cw)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中;dw)主控制器和其他從控制器分別比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若收到的從控制器發(fā)送的對應(yīng)緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟ew);否則執(zhí)行步驟fw);
      ew)將收到的從控制器發(fā)送的緩存塊的count值賦值給主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功;fw)主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。進(jìn)一步地,所述方法還包括釋放緩存塊的步驟。進(jìn)一步地,所述釋放緩存塊的步驟包括 I)主控制器釋放一組緩存塊,保存釋放時所述緩存塊的count值;2)主控制器把釋放緩存塊的命令和釋放時緩存塊的count值發(fā)送到從控制器;3)從控制器收到釋放緩存塊的命令,比較釋放緩存塊的命令指定的緩存塊的count值和收到的主控制器緩存塊的count值;若從控制器對應(yīng)緩存塊的count值小于收到的主控制器緩存塊的count值,則執(zhí)行步驟4);否則執(zhí)行步驟5);4)從控制器釋放釋放緩存塊的命令指定的緩存塊;所述緩存塊的count值清零,流程結(jié)束;5)從控制器釋放緩存塊的命令指定的緩存塊不能釋放;流程結(jié)束。與現(xiàn)有技術(shù)相比,本發(fā)明的存儲系統(tǒng)的緩存鏡像方法在多控制器存儲系統(tǒng)中,通過多個控制器同時寫數(shù)據(jù),而不破壞多控制器間的緩存一致性,從而提高存儲系統(tǒng)的讀寫性能。


      圖1為本發(fā)明實(shí)施例的存儲系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例的近端寫的流程圖;圖3為本發(fā)明實(shí)施例的遠(yuǎn)端寫的流程圖;圖4為本發(fā)明實(shí)施例的釋放緩存快的流程圖。
      具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。本發(fā)明實(shí)施例提出了一種存儲系統(tǒng)的緩存鏡像方法,應(yīng)用于存儲系統(tǒng),所述存儲系統(tǒng)包括η個控制器,其中一個控制器為主控制器,剩余η-l個控制器為從控制器,所述存儲系統(tǒng)的各個控制器之間通過通訊鏈路連接;n ^ 2 ;如圖1所示。任何一個或者多個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存,并且向其他控制器轉(zhuǎn)發(fā)寫請求;收到轉(zhuǎn)發(fā)寫請求的控制器將寫請求的數(shù)據(jù)寫入到本地緩存。本發(fā)明實(shí)施例所述控制器分為主控制器和從控制器,這是人為指定的,只有主控制器可以執(zhí)行對物理存儲設(shè)備讀寫的動作,從控制器只執(zhí)行緩存的鏡像功能。無論主控制器還是從控制器中的任何一個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存和向其他控制器轉(zhuǎn)發(fā)寫請求,促使其他控制器進(jìn)行寫鏡像。當(dāng)多個控制器同時收到寫請求時,由于多個控制器不會同時收到對同一位置的寫請求,因此多個控制器可以按照本發(fā)明實(shí)施例的方法各自處理自己收到的寫請求??刂破魇盏綄懻埱蟮臅r候,首先將需要寫的數(shù)據(jù)存到本地緩存中,然后再由本地的緩存模塊將數(shù)據(jù)寫入到物理存儲設(shè)備。第一步,如果存在多個控制器,則要將本身緩存中的數(shù)據(jù)發(fā)送到其他控制器上,進(jìn)行備份,這個過程叫做緩存鏡像。第二步,執(zhí)行對物理存儲設(shè)備的讀寫,是在緩存鏡像過程完成后,再將數(shù)據(jù)寫入實(shí)際的物理存儲設(shè)備。若收到寫請求的控制器是主控制器,主控制器首先將寫請求轉(zhuǎn)發(fā)到從控制器,在從控制器上進(jìn)行鏡像,這個過程稱為近端寫。若收到寫請求的控制器是從控制器,從控制器首先將寫請求對應(yīng)的數(shù)據(jù)保存到本地緩存,然后轉(zhuǎn)發(fā)到其他控制器上進(jìn)行鏡像。這個過程稱為遠(yuǎn)端寫。分別結(jié)合圖2和圖3說明近端寫和遠(yuǎn)端寫的存儲系統(tǒng)的緩存鏡像方法。如圖2所示,對于近端寫,收到寫請求的控制器是主控制器,所述方法包括:A)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器;B)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存;C)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器;D)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存;E)主控制器寫入完成后,返回寫請求執(zhí)行成功。步驟B)和D)將寫請求的數(shù)據(jù)寫入到本地緩存前,控制器首先判斷寫請求指定的寫入位置是否在本地緩存中,若存在,根據(jù)寫請求指定的寫入位置定位到對應(yīng)的緩存塊,并將寫請求的數(shù)據(jù)寫入到對應(yīng)的緩存塊中。若不存在,則增加新的緩存塊,將寫請求的數(shù)據(jù)寫入到增加新的緩存塊中。寫請求執(zhí)行結(jié)果返回給向主控制器發(fā)送寫請求的模塊或者應(yīng)該調(diào)用寫操作的其他模塊。如圖3所示,對于遠(yuǎn)端寫,收到寫請求的控制器是從控制器,所述方法包括:a)從控制器將寫請求對應(yīng)的數(shù)據(jù)寫入到本地緩存,b)從控制器將寫請求轉(zhuǎn)發(fā)到主控制器和其他從控制器;c)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存;d)主控制器和其他從控制器寫入完成后,將備份完成的回復(fù)返回給從控制器;
      e )從控制器收到所有主控制器和其他從控制器備份完成的回復(fù)后,返回寫請求執(zhí)行成功。步驟a)和c)將寫請求的數(shù)據(jù)寫入到本地緩存前,與近端寫的過程一樣,控制器首先判斷寫請求指定的寫入位置是否在本地緩存中,若存在,根據(jù)寫請求指定的寫入位置定位到對應(yīng)的緩存塊,并將寫請求的數(shù)據(jù)寫入到對應(yīng)的緩存塊中。若不存在,則增加新的緩存塊,將寫請求的數(shù)據(jù)寫入到增加新的緩存塊中。寫請求執(zhí)行結(jié)果返回給從主控制器發(fā)送寫請求的模塊或者應(yīng)該調(diào)用寫操作的其他模塊。由于控制器中的緩存塊是有限的,只能暫時存儲數(shù)據(jù),當(dāng)寫請求結(jié)束后,用于暫存數(shù)據(jù)的緩存塊就是可以被釋放的,通過其他的機(jī)制,在必要時候會釋放出來。主控制器釋放緩存塊的時候,會通知從控制器進(jìn)行相應(yīng)的釋放。但是,如果從控制器上正在進(jìn)行一個遠(yuǎn)端寫流程,就會將最新的緩存數(shù)據(jù)也釋放掉,造成多控制器鏡像間數(shù)據(jù)不一致。因此,本發(fā)明實(shí)施例通過記錄緩存塊寫計數(shù)機(jī)制,保證多控制器間緩存一致性。
      在η個控制器的本地緩存的每一個緩存塊中增加一個標(biāo)記位,所述標(biāo)記位用于記錄所述緩存塊進(jìn)行寫操作的次數(shù),記為count。本發(fā)明實(shí)施例對于每一個用于暫存數(shù)據(jù)的緩存塊,增加一個標(biāo)記位,用來記錄該緩存塊進(jìn)行寫操作的計數(shù),主控制器和從控制器在寫數(shù)據(jù)時,通過不同的機(jī)制增加該計數(shù),保證計數(shù)的一致。在釋放緩存塊時,通過比較count值,判斷是否可以釋放該緩存塊。如圖2所示,在近端寫流程中,收到寫請求的控制器是主控制器,所述方法包括:Aff)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器;Bff)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count值加I ;CW)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器;所述備份完成的恢復(fù)中包括所述緩存塊的count值;DW)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中;Eff)主控制器比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若主控制器收到的從控制器返回的緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟FW);否則執(zhí)行步驟GW);Fff)將收到的從控制器返回的緩存塊的count值賦值給主控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功;Gff)主控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。如圖3所示,在遠(yuǎn)端寫流程中,收到寫請求的控制器是從控制器,所述方法包括:aw)從控制器將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count值加I ;bw)從控制器將寫請求和本地緩存對應(yīng)緩存塊的count值一并轉(zhuǎn)發(fā)到主控制器和其他從控制器;cw)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中;dw)主控制器和其他從控制器分別比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若收到的從控制器發(fā)送的對應(yīng)緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟ew);否則執(zhí)行步驟fw);ew)將收到的從控制器發(fā)送的緩存塊的count值賦值給主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功;fw)主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。步驟BW)、DW)、aw)和cw),將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中時,控制器首先判斷寫請求指定的寫入位置是否在本地緩存中,若存在,根據(jù)寫請求指定的寫入位置定位到對應(yīng)的緩存塊,并將寫請求的數(shù)據(jù)寫入到對應(yīng)的緩存塊中。若不存在,則增加新的緩存塊,將寫請求的數(shù)據(jù)寫入到增加新的緩存塊中。當(dāng)存儲系統(tǒng)中主控制器將緩存塊的內(nèi)容寫到物理設(shè)備上以后,會進(jìn)行緩存塊的釋放動作。當(dāng)主控制器釋放一組緩存塊時,記錄這些緩存塊在被釋放時候的count值,主控制器端釋放完成后,向從控制器發(fā)送釋放的命令。步驟EW)和ew),主控制器和其他從控制器分別比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值時,原則上收到一個回復(fù),比較一次,最終的值為最大值。一般情況下,只有兩個控制器做備份,不存在多個從控制器,在有多個控制器存在的情況下,也是做兩兩備份。當(dāng)從控制器收到釋放緩存塊的命令,找到相應(yīng)的緩存塊時,比較該緩存塊當(dāng)前的count值和收到的count值,如果當(dāng)前的count小于收到的count值,則釋放該緩存塊,否貝U,說明該緩存塊比主控制器相應(yīng)的緩存塊內(nèi)容更新,不能釋放。當(dāng)釋放緩存塊時,該緩存塊對應(yīng)的count值清零。具體為:I)主控制器釋放一組緩存塊,保存釋放時所述緩存塊的count值;2)主控制器把釋放緩存塊的命令和釋放時緩存塊的count值發(fā)送到從控制器;3)從控制器收到釋放緩存塊的命令,比較釋放緩存塊的命令指定的緩存塊的count值和收到的主控制器緩存塊的count值;若從控制器對應(yīng)緩存塊的count值小于收到的主控制器緩存塊的count值,則執(zhí)行步驟4);否則執(zhí)行步驟5);4)從控制器釋放釋放緩存塊的命令指定的緩存塊;該緩存塊對應(yīng)的count值清零,流程結(jié)束;5)從控制器釋放緩存塊的命令指定的緩存塊不能釋放;流程結(jié)束。本發(fā)明實(shí)施例的存儲系統(tǒng)的緩存鏡像方法,應(yīng)用于兩個以上控制器的存儲系統(tǒng),每個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存和向其他控制器轉(zhuǎn)發(fā)寫請求,促使其他控制器進(jìn)行寫鏡像。通過記錄緩存塊寫計數(shù)機(jī)制,保證多控制器間緩存一致性。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
      權(quán)利要求
      1.一種存儲系統(tǒng)的緩存鏡像方法,其特征在于:所述存儲系統(tǒng)包括η個控制器,其中一個控制器為主控制器,剩余η-l個控制器為從控制器,所述存儲系統(tǒng)的各個控制器之間通過通訊鏈路連接;η彡2 ; 任何一個或者多個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存,并且向其他控制器轉(zhuǎn)發(fā)寫請求;收到轉(zhuǎn)發(fā)寫請求的控制器將寫請求的數(shù)據(jù)寫入到本地緩存。
      2.按權(quán)利要求1所述的方法,其特征在于:主控制器的功能包括:執(zhí)行緩存鏡像的功能和執(zhí)行對物理存儲設(shè)備讀寫的功能,從控制器的功能包括:執(zhí)行緩存鏡像的功能。
      3.按權(quán)利要求1所述的方法,其特征在于:在η個控制器的本地緩存的每一個緩存塊中增加一個標(biāo)記位,所述標(biāo)記位用于記錄所述緩存塊進(jìn)行寫操作的次數(shù),記為count。
      4.按權(quán)利要求1所述的方法,其特征在于:當(dāng)收到寫請求的控制器是主控制器時,所述方法包括: A)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器; B)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存; C)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器; D)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存; E)主控制器寫入完成后,返回寫請求執(zhí)行成功。
      5.按權(quán)利要求1所述的方法,其特征在于:當(dāng)收到寫請求的控制器是從控制器時,所述方法包括: a)從控制器將寫請求對應(yīng)的數(shù)據(jù)寫入到本地緩存, b)從控制器將寫請求轉(zhuǎn)發(fā)到主控制器和其他從控制器; c)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存; d)主控制器和其他從控制器寫入完成后,將備份完成的回復(fù)返回給從控制器; e )從控制器收到所有主控制器和其他從控制器備份完成的回復(fù)后,返回寫請求執(zhí)行成功。
      6.按權(quán)利要求4或5所述的方法,其特征在于:控制器將寫請求的數(shù)據(jù)寫入到本地緩存為: Zl)控制器判斷寫請求指定的寫入位置是否在本地緩存中,若不存在,則執(zhí)行步驟Z2),若存在,則執(zhí)行步驟Z3); Z2)增加新的緩存塊;并將寫請求的數(shù)據(jù)寫入到增加新的緩存塊中;結(jié)束寫入; Z3)根據(jù)寫請求指定的寫入位置定位到對應(yīng)的緩存塊,并將寫請求的數(shù)據(jù)寫入到對應(yīng)的緩存塊中;結(jié)束寫入。
      7.按權(quán)利要求3所述的方法,其特征在于:當(dāng)收到寫請求的控制器是主控制器時,所述方法包括: Aff)主控制器將寫請求轉(zhuǎn)發(fā)到從控制器; Bff)從控制器收到主控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count值加I ; CW)從控制器寫入完成后,從控制器將備份完成的回復(fù)返回給主控制器;所述備份完成的恢復(fù)中包括所述緩存塊的count值;DW)主控制器收到所有從控制器備份完成的回復(fù)后,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中; Eff)主控制器比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若主控制器收到的從控制器返回的緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟FW);否則執(zhí)行步驟GW); Fff)將收到的從控制器返回的緩存塊的count值賦值給主控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功; Gff)主控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。
      8.按權(quán)利要求3所述的方法,其特征在于:當(dāng)收到寫請求的控制器是從控制器時,所述方法包括: aw)從控制器將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中,并將所述緩存塊的count 值加 I ; bw)從控制器將寫請求和本地緩存對應(yīng)緩存塊的count值一并轉(zhuǎn)發(fā)到主控制器和其他從控制器; cw)主控制器和其他從控制器收到從控制器轉(zhuǎn)發(fā)過來的寫請求,將寫請求的數(shù)據(jù)寫入到本地緩存相應(yīng)的緩存塊中; dw)主控制器和其他從控制器分別比較本地緩存對應(yīng)緩存塊的count值與從控制器返回的緩存塊的count值;若收到的從控制器發(fā)送的對應(yīng)緩存塊的count值大于本地緩存對應(yīng)緩存塊的count值,則執(zhí)行步驟ew);否則執(zhí)行步驟fw); ew)將收到的從控制器發(fā)送的緩存塊的count值賦值給主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值;流程結(jié)束,返回寫請求執(zhí)行成功; fw)主控制器或其他從控制器本地緩存對應(yīng)緩存塊的count值加I ;流程結(jié)束,返回寫請求執(zhí)行成功。
      9.按權(quán)利要求7或8所述的方法,其特征在于:所述方法還包括釋放緩存塊的步驟。
      10.按權(quán)利要求9所述的方法,其特征在于:所述釋放緩存塊的步驟包括 1)主控制器釋放一組緩存塊,保存釋放時所述緩存塊的count值; 2)主控制器把釋放緩存塊的命令和釋放時緩存塊的count值發(fā)送到從控制器; 3)從控制器收到釋放緩存塊的命令,比較釋放緩存塊的命令指定的緩存塊的count值和收到的主控制器緩存塊的count值;若從控制器對應(yīng)緩存塊的count值小于收到的主控制器緩存塊的count值,則執(zhí)行步驟4);否則執(zhí)行步驟5); 4)從控制器釋放釋放緩存塊的命令指定的緩存塊;所述緩存塊的count值清零,流程結(jié)束; 5)從控制器釋放緩存塊的命令指定的緩存塊不能釋放;流程結(jié)束。
      全文摘要
      一種存儲系統(tǒng)的緩存鏡像方法,及存儲系統(tǒng)的緩存鏡像領(lǐng)域,能夠在多控制器存儲系統(tǒng)中,同時通過多個控制器寫數(shù)據(jù)時,保證控制器間的緩存一致性,所述存儲系統(tǒng)包括n個控制器,其中一個控制器為主控制器,剩余n-1個控制器為從控制器,所述存儲系統(tǒng)的各個控制器之間通過通訊鏈路連接;n≥2;所述方法為任何一個或者多個控制器收到寫請求后將對應(yīng)的數(shù)據(jù)寫入本地緩存,并且向其他控制器轉(zhuǎn)發(fā)寫請求;收到轉(zhuǎn)發(fā)寫請求的控制器將寫請求的數(shù)據(jù)寫入到本地緩存。本發(fā)明的存儲系統(tǒng)的緩存鏡像方法在多控制器存儲系統(tǒng)中,通過多個控制器同時寫數(shù)據(jù),而不破壞多控制器間的緩存一致性,從而提高存儲系統(tǒng)的讀寫性能。
      文檔編號G06F12/16GK103092778SQ20131002549
      公開日2013年5月8日 申請日期2013年1月23日 優(yōu)先權(quán)日2013年1月23日
      發(fā)明者王倩 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1