Raid子系統(tǒng)及其數(shù)據(jù)讀寫方法
【專利摘要】本發(fā)明實施例提供了一種獨立磁盤冗余陣列RAID子系統(tǒng),包括第一控制器和第二控制器和M個磁盤;M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元;第一控制器和第二控制器分別包含緩存空間,緩存空間被劃分為與條帶一一映射的條帶空間;第一控制器為N個條帶中的X個條帶的主控制器,同時為N個條帶中其余的N-X個條帶的從控制器;第二控制器為N個條帶中的X個條帶的從控制器,同時為N個條帶中其余的N-X個條帶的主控制器。本發(fā)明實施例可實現(xiàn)在RAID子系統(tǒng)中,Active-Active模式下兩個控制器在同時讀寫磁盤同一局域時不產(chǎn)生沖突。
【專利說明】RAID子系統(tǒng)及其數(shù)據(jù)讀寫方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,具體涉及一種RAID子系統(tǒng)及其數(shù)據(jù)讀寫方法。
【背景技術(shù)】
[0002]具有冗余特性的磁盤陣列(RedundantArrays of Inexpensive Disks, RAID)技術(shù)是將多個獨立的磁盤連接到同一個主機或磁盤控制器下,形成一個磁盤陣列,由同一個磁盤控制器進行管理和讀寫調(diào)度,從而可實現(xiàn)并發(fā)讀寫和冗余容錯。雙控制器RAID系統(tǒng)擁有兩個控制器,一個控制器出現(xiàn)故障時,另外一個控制器能夠繼續(xù)對外提供數(shù)據(jù)服務(wù),避免服務(wù)中斷,大幅提高了 RAID子系統(tǒng)的可用性。雙控制器磁盤陣列系統(tǒng)的架構(gòu)如圖1所示,主機通過兩個硬件和軟件均相同的控制器訪問磁盤組,兩個控制器互為鏡像冗余。這種架構(gòu)主要有兩種運行模式,一種稱為活躍-備份(Active-backup)模式,在Active-backup模式下,系統(tǒng)正常運行時只有一個主控制器能對磁盤陣列下發(fā)讀寫請求,另一個控制器始終處于備用狀態(tài),僅當主控制器發(fā)生故障時,備用控制器才會接管;另一種稱為活躍-活躍(Active-Active)模式,在Active-Active模式下,系統(tǒng)正常運行時兩個控制器均處于活動狀態(tài),來自主機的讀寫請求可以通過兩個控制器并行下發(fā)到磁盤陣列。
[0003]顯然,在Active-Active模式下,存在兩個控制器同時讀寫磁盤同一區(qū)域的可能,這樣就會發(fā)生讀寫沖突,可能導致數(shù)據(jù)不一致。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種獨立磁盤冗余陣列RAID子系統(tǒng),以實現(xiàn)在雙控制器的RAID子系統(tǒng)中,Active-Active模式下兩個控制器在同時讀寫磁盤同一局域時不產(chǎn)生沖關(guān)。
[0005]第一方面,本發(fā)明實施例提供了一種獨立磁盤冗余陣列RAID子系統(tǒng),所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像;
[0006]所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元;
[0007]所述第一控制器和所述第二控制器分別包含緩存空間,所述緩存空間被劃分為與所述條帶一一映射的條帶空間;
[0008]所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器。
[0009]基于第一方面,在第一種可能的實施方式中,所述M個磁盤通過一個串行連接小型計算機接口擴展卡組成一個磁盤陣列;
[0010]所述第一控制器和第二控制器進一步包括:[0011]中央處理器;
[0012]光纖卡,用于通過光纖在所述第一控制器和第二控制器之間傳遞數(shù)據(jù);
[0013]第一網(wǎng)卡,用于與外部交換機連接,所述交換機連接主機;
[0014]第二網(wǎng)卡,用于在所述第一控制器和第二控制器之間傳遞同步信號;
[0015]小型計算機接口擴展卡,用于和所述串行連接小型計算機接口擴展卡連接,在所述第一控制器、第二控制器與所述磁盤陣列之間進行數(shù)據(jù)傳輸。
[0016]第二方面,本發(fā)明實施例提供了一種RAID子系統(tǒng)數(shù)據(jù)寫入方法,所述方法包括:
[0017]當前控制器接收主機發(fā)送的寫數(shù)據(jù)請求,所述寫數(shù)據(jù)請求中包含所述寫入數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶,所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像;所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元,所述第一條帶為所述N個條帶中的一個,所述第一控制器和所述第二控制器分別包含緩存,所述緩存被可以被動態(tài)映射到為與所述條帶一一對應(yīng)的條帶空間;所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器;
[0018]若當前控制器的緩存中是否存在空閑空間;則將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間;
[0019]若在當前控制器的緩存中不存在空閑空間時,則獲取空閑空間;
[0020]將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間;
[0021]將所述寫入數(shù)據(jù)緩存在所述第一條帶的條帶空間中;
[0022]判斷當前控制器是否為所述第一條帶的主控制器,
[0023]若是,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的從控制器,與所述從控制器進行數(shù)據(jù)同步;
[0024]在接收到從控制器返回的數(shù)據(jù)同步完成的響應(yīng)之后,將所述第一條帶的條帶空間中的寫入數(shù)據(jù)寫入所述第一條帶。
[0025]基于第二方面,在第一種可能的實施方式中,在判斷當前控制器是否為所述第一條帶的主控制器,之后,
[0026]若當前控制器不是所述第一條帶的主控制器,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的主控制器;
[0027]所述第一條帶的主控制器將所述寫數(shù)據(jù)請求中的所述寫入數(shù)據(jù)寫入所述第一條帶。
[0028]基于第二方面,在第二種可能的實施方式中,所述若在當前控制器的緩存中不存在空閑空間時,則獲取空閑空間,進一步包括:
[0029]判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中;
[0030]若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述寫入數(shù)據(jù);[0031]若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中;
[0032]將所述第二條帶空間釋放,獲取用于緩存搓成寫入數(shù)據(jù)的空閑空間。
[0033]基于第二方面的第二種可能的實施方式,在第三種可能的實施方式中,所述選擇第二條帶空間進行倒盤進一步包括:
[0034]選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器;
[0035]向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求;
[0036]所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶;
[0037]當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間;
[0038]向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
[0039]基于第二方面的第三種可能的實施方式,在第四種可能的實施方式中,所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值;
[0040]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài);
[0041]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為臟狀態(tài)。
[0042]第三方面,本發(fā)明實施例提供了一種RAID子系統(tǒng)數(shù)據(jù)讀取方法,所述方法包括:
[0043]接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求中包含所述目標數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶,所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像;所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元,所述第一條帶為所述N個條帶中的一個,所述第一控制器和所述第二控制器分別包含緩存空間,所述緩存空間被可以被動態(tài)映射到為與所述條帶一一對應(yīng)的條帶空間;所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器;
[0044]若所述目標數(shù)據(jù)沒有存儲在當前控制器的緩存中與該條帶對應(yīng)的條帶空間中,貝U,判斷所述當前控制器是否為所述第一條帶的主控制器;
[0045]若當前控制器不是所述第一條帶的主控制器,則,當前控制器將所述讀數(shù)據(jù)請求發(fā)送給所述第一條帶的從控制器;
[0046]接收所述從控制器返回的目標數(shù)據(jù);
[0047]將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中;
[0048]當前控制器向所述主機返回所述緩存中存儲的所述目標數(shù)據(jù)。[0049]基于第三方面,在第一種可能的實施方式,所述接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求中包含所述目標數(shù)據(jù)的地址,之后:
[0050]若所述目標數(shù)據(jù)存儲在當前控制器的緩存中與該第一條帶對應(yīng)的條帶空間中,則當前控制器在所述條帶空間中讀取所需數(shù)據(jù);
[0051]之后,當前控制器向所述主機返回所述緩存中存儲的所述目標數(shù)據(jù)的步驟。
[0052]基于第三方面,在第二種可能的實施方式中,在判斷所述當前控制器是否為所述第一條帶的主控制器,之后:
[0053]若當前控制器為所述條帶的主控制器,則當前控制器在所述磁盤的所述第一條帶中讀取所需數(shù)據(jù);
[0054]之后,執(zhí)行將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中的步驟。
[0055]基于第三方面,或第三方面的第二種可能的實施方式,在第三種可能的實施方式中,所述的,將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中,進一步包括:
[0056]在當前控制器的緩存中存在空閑空間時,將所述數(shù)據(jù)緩存在所述空閑空間中;
[0057]之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟;
[0058]在當前控制器的緩存中沒有空閑空間時,判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中;
[0059]若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述數(shù)據(jù);
[0060]之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。
[0061]若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中;
[0062]將所述第二條帶空間釋放,獲取空閑空間;
[0063]將所述目標數(shù)據(jù)緩存在所述空閑空間中;
[0064]之后,當前控制器執(zhí)行當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。
[0065]基于第三方面的第三種可能的實施方式,在第四種可能的實施方式中,所述選擇第二條帶空間進行倒盤進一步包括:
[0066]選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器;
[0067]向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求;
[0068]所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶;
[0069]當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間;
[0070]向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
[0071]基于第三方面的第四種可能的實施方式,在第五種可能的實施方式中,所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值;
[0072]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài);
[0073]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為臟狀態(tài)。
[0074]通過本發(fā)明實施例提供的RAID子系統(tǒng)中,兩個控制器互為鏡像冗余,共同管理一個磁盤陣列,為磁盤陣列的每個STRIPE設(shè)置主控制器和從控制器,只有STRIPE的主控制器能對該STRIPE進行讀寫,兩個控制器中對緩存中每個條帶空間維護寫計數(shù)器,從控制器的計數(shù)器記錄著主機發(fā)下來的寫請求次數(shù),屬主控制器的計數(shù)器記錄著來自從控制器的寫同步次數(shù);當運行于Active-Active模式時,兩個控制器可同時對磁盤陣列下發(fā)讀寫請求,可以避免兩個控制器同時讀寫地盤中的統(tǒng)一區(qū)域沖突的情況,并且降低系統(tǒng)開銷。
【專利附圖】
【附圖說明】
[0075]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0076]圖1是雙控制器RAID子系統(tǒng)的架構(gòu)圖;
[0077]圖2是本發(fā)明實施例提供的RAID子系統(tǒng)的結(jié)構(gòu)圖;
[0078]圖3是本發(fā)明實施例中磁盤陣列存儲空間劃分的示意圖;
[0079]圖4是本發(fā)明實施例提供的
[0080]圖5是本發(fā)明實施例提供的[0081 ] 圖6是本發(fā)明實施例提供的
[0082]圖7是本發(fā)明實施例提供的
【具體實施方式】
[0083]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
[0084]如圖2所示,本發(fā)明實施例提供了一種獨立磁盤冗余陣列RAID子系統(tǒng),所述RAID子系統(tǒng)包括第一控制器A和第二控制器B和M個磁盤,所述第一控制器A和所述第二控制器B互為鏡像。
[0085]所述第一控制器和第二控制器進一步包括:中央處理器(Central ProcessingUnit, CPU),用于通過光纖在所述第一控制器和第二控制器之間傳遞數(shù)據(jù)的光纖卡、用于與外部交換機連接的第一網(wǎng)卡,用于在所述第一控制器和第二控制器之間傳遞同步信號的第二網(wǎng)卡,小型計算機接口擴展卡,通過第一網(wǎng)卡與交換機連接,進一步連接主機;通過小型計算機接口擴展卡SCSI和串行連接小型計算機接口擴展卡連接,在所述第一控制器、第二控制器與所述磁盤陣列之間進行數(shù)據(jù)傳輸。此外還包括緩存RAW以及硬盤。
[0086]所述M個磁盤構(gòu)成一個磁盤陣列,在本發(fā)明實施例中,M個磁盤均為即串行連接SCSI (Serial Attached SCSI, SAS)硬盤,M個SAS硬盤通過一個所述M個磁盤通過一個串行連接小型計算機接口擴展卡(SAS Expander)組成一個磁盤陣列,SAS Expander和兩個控制器A和B的SCSI卡連接。
[0087]SAS Expander是SAS端口交換和擴展芯片,一方面擴展接口數(shù)量,使控制器可以掛接更多的磁盤來組成磁盤陣列,另一方面它具有端口交換能力,能使兩個控制器A和B都能根據(jù)SAS地址訪問到磁盤陣列中的任意一個磁盤;兩個控制器A和B均為內(nèi)部實現(xiàn)了RAID算法的磁盤陣列控制器,它們的硬件配置完全相同,互為冗余,由于它們完全相同,互為鏡像,一個控制器是另一個控制器的鏡像控制器;千兆以太網(wǎng)交換機用于對外提供數(shù)據(jù)訪問鏈路,也就是說,外部的主機通過網(wǎng)線連接到該交換機并配置好網(wǎng)絡(luò)IP后就可以使用雙控制器系統(tǒng)提供的數(shù)據(jù)存取服務(wù)。
[0088]所述的第一網(wǎng)卡和第二網(wǎng)卡均為千兆網(wǎng)卡,兩個控制器是系統(tǒng)的硬件核心部分,控制器A和控制B內(nèi)部通過千兆網(wǎng)卡對外提供高速數(shù)據(jù)服務(wù)鏈路。每個控制器內(nèi)部采用SCSI卡連接到相同的磁盤組。控制器內(nèi)置高容量的RAW作為Cache (緩存),用于緩存熱點數(shù)據(jù)。兩個控制器Cache中的數(shù)據(jù)互為熱備份,也就是說在系統(tǒng)運行過程中Cache實時緩存了主機正在進行讀寫的數(shù)據(jù),且兩個鏡像控制器的Cache中保存的數(shù)據(jù)相同,互為備份,這樣當一個控制器發(fā)生故障時,就可以從另一個控制器中恢復(fù)緩存數(shù)據(jù)。兩個控制器作為一個整體對外提供服務(wù),并且兩者的硬件配置完全相同,互為硬件冗余,當其中一個控制器出現(xiàn)單點故障時,另外一個控制器能夠接管,繼續(xù)對外提供數(shù)據(jù)服務(wù),且Cache熱備份確保了不會出現(xiàn)數(shù)據(jù)丟失??刂破髦g的Cache數(shù)據(jù)同步是采用光纖通道(Fibre Channel, FC)進行數(shù)據(jù)傳輸,具有高速率和高可靠性,能夠提高兩個控制器之間的數(shù)據(jù)傳輸速率,降低系統(tǒng)整體的請求響應(yīng)時間。兩個控制器之間采用千兆網(wǎng)卡進行心跳溝通,心跳是用來向?qū)Ψ綀蟾姹究刂破鞯臓顟B(tài)的數(shù)據(jù)包,控制器之間通過心跳能夠判斷對方上線、下線、故障等情況。
[0089]如圖3所示,所述M個磁盤構(gòu)成一個磁盤陣列,所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元(stripe unit, SU),所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元;
[0090]所述第一控制器和所述第二控制器分別包含緩存空間,所述緩存空間被劃分為與所述條帶一一映射的條帶空間;
[0091]所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器。
[0092]對于條帶的主控制器和從控制器劃分,一種較為簡單的實施方式為,控制器A作為序號為奇數(shù)的條帶的主控制器,控制器A作為序號為偶數(shù)的條帶的從控制器,同時控制器B作為序號為偶數(shù)的條帶的主控制器,控制器B作為序號為奇數(shù)的條帶的從控制器。
[0093]用戶也可以選擇相反的實施方式,例如,將控制器A作為序號為偶數(shù)的條帶的主控制器,不多贅述。
[0094]控制器緩存(Cache)中對緩存數(shù)據(jù)的管理也是以條帶為基本單位,緩存中的條帶空間與磁盤陣列中的條帶大小是一樣的,而且可以被動態(tài)地被配置為是一一映射。與條帶類似,Cache中維護的緩存數(shù)據(jù)結(jié)構(gòu)中的每個條帶空間也由多個SU (STRIPE UNIT)構(gòu)成,每一個SU也與一個條帶中的一個條帶單元大小相同,是指一個條帶在某一塊磁盤中所占用的地址空間,如圖所示,每一個條帶空間可能會出現(xiàn)既有臟數(shù)據(jù)(Dirty Su),干凈數(shù)據(jù)(Clean Su),也有沒有緩存數(shù)據(jù)的??刂破魇盏竭B續(xù)的讀寫請求后,將讀寫請求按照STRIPE大小進行劃分成小任務(wù),然后控制器處理每一個以STRIPE為單位的任務(wù),然后完成每一個STRIPE 任務(wù)。
[0095]如圖4所示,基于上述的實施例,本發(fā)明實施例提供了一種RAID子系統(tǒng)數(shù)據(jù)寫入方法,所述方法包括:
[0096]401,當前控制器接收主機發(fā)送的寫數(shù)據(jù)請求,所述寫數(shù)據(jù)請求中包含所述寫入數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶;
[0097]具體而言,當前控制器接收主機發(fā)來的寫數(shù)據(jù)請求,在寫數(shù)據(jù)請求中攜帶有需要寫入磁盤的寫入數(shù)據(jù)和寫入數(shù)據(jù)的地址,該地址對應(yīng)于磁盤陣列中的一段存儲空間,該存儲空間即一個條帶或者一個條帶中的一個條帶單元。
[0098]在接收到寫數(shù)據(jù)請求之后,當前控制器判斷緩存cache中是否存在空閑空間。
[0099]402,若當前控制器的緩存中存在空閑空間,則將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間;
[0100]403,若在當前控制器的緩存中不存在空閑空間時,則獲取空閑空間;
[0101]具體的,如果不存在空閑空間,則需要在緩存中獲取空閑空間,以存儲寫入數(shù)據(jù),具體的,獲取空閑空間的方法可參考圖6為:
[0102]判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中;
[0103]若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述寫入數(shù)據(jù);
[0104]若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中;
[0105]將所述第二條帶空間釋放,獲取用于緩存所述寫入數(shù)據(jù)的空閑空間。
[0106]更進一步的,在圖6中可以看到,所述選擇第二條帶空間進行倒盤進一步包括:
[0107]選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器;
[0108]具體而言,當前控制器可以通過熱點數(shù)據(jù)淘汰算法選擇一個訪問次數(shù)比較少,或者長時間每天訪問的條帶空間作為備選條帶空間,并且該條帶空間對應(yīng)的條帶的主控制器為當前控制器。
[0109]向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求;
[0110]所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶;
[0111]當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間;
[0112]向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
[0113]所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值;
[0114]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài);
[0115]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為臟狀態(tài)。
[0116]再通過圖6所示的方法獲取到空閑空間之后,當前控制器執(zhí)行步驟404。
[0117]404,將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間;
[0118]具體而言,圖6中所示的方法只是獲取一段緩存中的空閑空間,此時需要重新為寫入數(shù)據(jù)的地址對應(yīng)的條帶與緩存中的空閑空間建立對應(yīng)關(guān)系,以方便后續(xù)的數(shù)據(jù)寫入操作。
[0119]405,將所述寫入數(shù)據(jù)緩存在所述第一條帶的條帶空間中;
[0120]406,判斷當前控制器是否為所述第一條帶的主控制器,
[0121]407,若是,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的從控制器,與所述從控制器進行數(shù)據(jù)同步;
[0122]若當前控制器不是所述第一條帶的主控制器,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的主控制器;
[0123]所述第一條帶的主控制器將所述寫數(shù)據(jù)請求中的所述寫入數(shù)據(jù)寫入所述第一條帶。
[0124]408,在接收到從控制器`返回的數(shù)據(jù)同步完成的響應(yīng)之后,將所述第一條帶的條帶空間中的寫入數(shù)據(jù)寫入所述第一條帶。
[0125]結(jié)合圖5,將使得本發(fā)明實施例更容易理解。
[0126]相應(yīng)的,基于圖2所示的RAID子系統(tǒng),本發(fā)明實施例還提供了一種RAID子系統(tǒng)數(shù)據(jù)讀取方法,所述方法可參考圖7,包括:
[0127]701,接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求中包含所述目標數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶;
[0128]在接收到讀數(shù)據(jù)請求之后,當前控制器先要判斷該讀數(shù)據(jù)請求的地址對應(yīng)的第一條帶對應(yīng)的條帶空間中是否仍存儲有所需的目標數(shù)據(jù),也就是說是否能夠命中cache,若所述目標數(shù)據(jù)存儲在當前控制器的緩存中與該第一條帶對應(yīng)的條帶空間中,則執(zhí)行702。
[0129]若所述目標數(shù)據(jù)沒有存儲在當前控制器的緩存中與該條帶對應(yīng)的條帶空間中,貝U,執(zhí)行703.判斷所述當前控制器是否為所述第一條帶的主控制器;
[0130]702,當前控制器在所述條帶空間中讀取所需數(shù)據(jù).[0131]703,判斷所述當前控制器是否為所述第一條帶的主控制器;
[0132]若當前控制器不是所述第一條帶的主控制器,則,執(zhí)行704.[0133]若當前控制器是所述第一條帶的主控制器,則執(zhí)行步驟705。
[0134]704,當前控制器將所述讀數(shù)據(jù)請求發(fā)送給所述第一條帶的從控制器;
[0135]在本發(fā)明實施例中,當前條帶的鏡像控制器即為所述第一條帶的從控制器.[0136]705,當前控制器讀取第一條帶中的數(shù)據(jù),之后執(zhí)行所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中
[0137]7056接收所述從控制器返回的目標數(shù)據(jù),將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中;[0138]707,當前控制器向所述主機返回所述緩存中存儲的所述目標數(shù)據(jù)。
[0139]更進一步的,在將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間時:
[0140]當前控制器需要判斷緩存中是夠具有空閑空間,在當前控制器的緩存中存在空閑空間時,將所述數(shù)據(jù)緩存在所述空閑空間中;
[0141]之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟;
[0142]在當前控制器的緩存中沒有空閑空間時,判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中;
[0143]若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述數(shù)據(jù);
[0144]之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。
[0145]若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中;
[0146]將所述第二條帶空間釋放,獲取空閑空間;
[0147]將所述目標數(shù)據(jù)緩存在所述空閑空間中;
[0148]之后,當前控制器執(zhí)行當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。
[0149]倒盤的方法和圖6所示的是實施例相同,因此不多贅述。
[0150]選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器;
[0151]向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求;
[0152]所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶;
[0153]當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間;
[0154]向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
[0155]所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值;
[0156]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài);
[0157]在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為臟狀態(tài)。
[0158]通過本發(fā)明實施例提供的RAID子系統(tǒng)中,兩個控制器互為鏡像冗余,共同管理一個磁盤陣列,為磁盤陣列的每個STRIPE設(shè)置主控制器和從控制器,只有STRIPE的主控制器能對該STRIPE進行讀寫,兩個控制器中對緩存中每個條帶空間維護寫計數(shù)器,從控制器的計數(shù)器記錄著主機發(fā)下來的寫請求次數(shù),屬主控制器的計數(shù)器記錄著來自從控制器的寫同步次數(shù);當運行于Active-Active模式時,兩個控制器可同時對磁盤陣列下發(fā)讀寫請求,可以避免兩個控制器同時讀寫地盤中的統(tǒng)一區(qū)域沖突的情況,并且降低系統(tǒng)開銷。[0159]專業(yè)人員應(yīng)該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
[0160]結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、緩存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0161]以上所述的【具體實施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種獨立磁盤冗余陣列RAID子系統(tǒng),其特征在于,所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像; 所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元;所述第一控制器和所述第二控制器分別包含緩存空間,所述緩存空間被劃分為與所述條帶一一映射的條帶空間; 所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器。
2.如權(quán)利要求1所述的RAID子系統(tǒng),其特征在于,所述M個磁盤通過一個串行連接小型計算機接口擴展卡組成一個磁盤陣列; 所述第一控制器和第二控制器進一步包括: 中央處理器; 光纖卡,用于通過光纖在所述第一控制器和第二控制器之間傳遞數(shù)據(jù); 第一網(wǎng)卡,用于與外部交換機連接,所述交換機連接主機; 第二網(wǎng)卡,用于在所述第一控制器和第二控制器之間傳遞同步信號; 小型計算機接口擴展卡,用于和所述串行連接小型計算機接口擴展卡連接,在所述第一控制器、第二控制器與所述磁盤陣列之間進行數(shù)據(jù)傳輸。
3.—種RAID子系統(tǒng)數(shù)`據(jù)寫入方法,其特征在于,所述方法包括: 當前控制器接收主機發(fā)送的寫數(shù)據(jù)請求,所述寫數(shù)據(jù)請求中包含所述寫入數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶,所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像;所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元,所述第一條帶為所述N個條帶中的一個,所述第一控制器和所述第二控制器分別包含緩存,所述緩存被可以被動態(tài)映射到為與所述條帶一一對應(yīng)的條帶空間;所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器; 若當前控制器的緩存中是否存在空閑空間;則將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間; 若在當前控制器的緩存中不存在空閑空間時,則獲取空閑空間; 將所述空閑空間與所述第一條帶建立映射關(guān)系,將所述空閑空間作為所述第一條帶的條帶空間; 將所述寫入數(shù)據(jù)緩存在所述第一條帶的條帶空間中; 判斷當前控制器是否為所述第一條帶的主控制器, 若是,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的從控制器,與所述從控制器進行數(shù)據(jù)同步; 在接收到從控制器返回的數(shù)據(jù)同步完成的響應(yīng)之后,將所述第一條帶的條帶空間中的寫入數(shù)據(jù)寫入所述第一條帶。
4.如權(quán)利要求3所述的數(shù)據(jù)寫入方法,在判斷當前控制器是否為所述第一條帶的主控制器,之后, 若當前控制器不是所述第一條帶的主控制器,則將所述寫數(shù)據(jù)請求轉(zhuǎn)發(fā)給所述第一條帶的主控制器; 所述第一條帶的主控制器將所述寫數(shù)據(jù)請求中的所述寫入數(shù)據(jù)寫入所述第一條帶。
5.如權(quán)利要求3所述的數(shù)據(jù)寫入方法,其特征在于,所述若在當前控制器的緩存中不存在空閑空間時,則獲取空閑空間,進一步包括: 判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中; 若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述寫入數(shù)據(jù); 若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中; 將所述第二條帶空間釋放,獲取用于緩存搓成寫入數(shù)據(jù)的空閑空間。
6.如權(quán)利要求5所述的數(shù)據(jù)寫入方法,其特征在于,所述選擇第二條帶空間進行倒盤進一步包括: 選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器; 向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求; 所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶; 當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間; 向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
7.如權(quán)利要求6所述的方法,其特征在于,所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值; 在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài); 在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為臟狀態(tài)。
8. —種RAID子系統(tǒng)數(shù)據(jù)讀取方法,其特征在于,所述方法包括: 接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求中包含所述目標數(shù)據(jù)的地址,所述地址對應(yīng)磁盤中的第一條帶,所述RAID子系統(tǒng)包括第一控制器和第二控制器和M個磁盤,所述第一控制器和所述第二控制器互為鏡像;所述M個磁盤的全部存儲空間被劃分為N個條帶,每個條帶進一步包括M個條帶單元,所述M個條帶單元分別屬于不同的磁盤,每個磁盤的存儲空間被劃分為N個條帶單元,所述第一條帶為所述N個條帶中的一個,所述第一控制器和所述第二控制器分別包含緩存空間,所述緩存空間被可以被動態(tài)映射到為與所述條帶一一對應(yīng)的條帶空間;所述第一控制器為所述N個條帶中的X個條帶的主控制器,同時為所述N個條帶中其余的N-X個條帶的從控制器;所述第二控制器為所述N個條帶中的X個條帶的從控制器,同時為所述N個條帶中其余的N-X個條帶的主控制器; 若所述目標數(shù)據(jù)沒有存儲在當前控制器的緩存中與該條帶對應(yīng)的條帶空間中,則,判斷所述當前控制器是否為所述第一條帶的主控制器; 若當前控制器不是所述第一條帶的主控制器,則,當前控制器將所述讀數(shù)據(jù)請求發(fā)送給所述第一條帶的從控制器; 接收所述從控制器返回的目標數(shù)據(jù); 將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中; 當前控制器向所述主機返回所述緩存中存儲的所述目標數(shù)據(jù)。
9.如權(quán)利要求8所述的數(shù)據(jù)讀取方法,其特征在于,所述接收主機發(fā)送的讀數(shù)據(jù)請求,所述讀數(shù)據(jù)請求中包含所述目標數(shù)據(jù)的地址,之后: 若所述目標數(shù)據(jù)存儲在當前控制器的緩存中與該第一條帶對應(yīng)的條帶空間中,則當前控制器在所述條帶空間中讀取所需數(shù)據(jù); 之后,當前控制器向所述主機返回所述緩存中存儲的所述目標數(shù)據(jù)的步驟。
10.如權(quán)利要求8所述的數(shù)據(jù)讀取方法,其特征在于,在判斷所述當前控制器是否為所述第一條帶的主控制器,之后: 若當前控制器為所述條帶的主控制器,則當前控制器在所述磁盤的所述第一條帶中讀取所需數(shù)據(jù); 之后,執(zhí)行將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中的步驟。
11.如權(quán)利要求8或10所述的數(shù)據(jù)讀取方法,其特征在于,所述的,將所述目標數(shù)據(jù)緩存在當前控制器的緩存中的空閑空間中,進一步包括: 在當前控制器的緩存中存在空閑空間時,將所述數(shù)據(jù)緩存在所述空閑空間中; 之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟; 在當前控制器的緩存中沒有空閑空間時,判斷所述緩存中是否存在第一條帶空間,所述第一條帶空間位干凈的條帶空間,該第一條帶空間中的數(shù)據(jù)已經(jīng)被存儲到磁盤中;若存在第一條帶空間,則釋放第一條帶空間為空閑空間,用于緩存所述數(shù)據(jù); 之后,當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。 若不存在所述第一條帶空間,則選擇第二條帶空間進行倒盤,所述第二條帶空間為臟的條帶空間,所述第二條帶空間中的數(shù)據(jù)沒有被存儲到該第二條帶空間對應(yīng)的磁盤中的條帶中,所述倒盤是指將所述第二條帶空間中的數(shù)據(jù)存儲到所述磁盤中與該第二條帶空間對應(yīng)的條帶中; 將所述第二條帶空間釋放,獲取空閑空間; 將所述目標數(shù)據(jù)緩存在所述空閑空間中; 之后,當前控制器執(zhí)行當前控制器執(zhí)行通過所述緩存向所述主機返回所述數(shù)據(jù)的步驟。
12.如權(quán)利要求11所述的方法,其特征在于,所述選擇第二條帶空間進行倒盤進一步包括: 選取訪問次數(shù)和訪問時間都滿足設(shè)定閾值的一個備選條帶空間作為第二條帶空間,當前控制器為該備選條帶空間對應(yīng)的條帶的主控制器; 向所述備選條帶空間對應(yīng)的磁盤中的條帶發(fā)送寫數(shù)據(jù)請求; 所述磁盤中的條帶將所述備選條帶中的數(shù)據(jù)寫入所述條帶; 當前控制器在接收到所述磁盤中的所述條帶的寫操作完成的響應(yīng)之后,釋放所述備選條帶空間; 向所述備選條帶空間對應(yīng)的條帶的從控制器發(fā)送倒盤通知,所述倒盤通知中攜帶有當前控制器的計數(shù)器值。
13.如權(quán)利要求11所述的方法,其特征在于,所述備選條帶空間對應(yīng)的條帶的從控制器接收到所述備選條帶空間對應(yīng)的條帶的主控制器發(fā)送的倒盤通知后,將從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值; 在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條帶空間置為干凈狀態(tài); 在從控制器的計數(shù)值減去所述倒盤通知中的計數(shù)器值不相等時,將所述從控制器中與所述備選條帶空間對應(yīng)的條 帶空間置為臟狀態(tài)。
【文檔編號】G06F3/06GK103488435SQ201310440116
【公開日】2014年1月1日 申請日期:2013年9月24日 優(yōu)先權(quán)日:2013年9月24日
【發(fā)明者】李佳瞵, 萬繼光, 姜濤 申請人:華為技術(shù)有限公司