亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于緩存盤陣列擴(kuò)容的方法及設(shè)備與流程

文檔序號(hào):12824280閱讀:212來(lái)源:國(guó)知局
用于緩存盤陣列擴(kuò)容的方法及設(shè)備與流程

本公開的各種實(shí)施例總體上涉及存儲(chǔ)領(lǐng)域,并更為具體地涉及用于緩存盤陣列擴(kuò)容的方法及設(shè)備。



背景技術(shù):

快速緩存(fastcache)是emcvnx中的第二級(jí)緩存,其透明地將數(shù)據(jù)從硬盤驅(qū)動(dòng)器(hdd)緩存到固態(tài)硬盤(ssd)中。已知sdd具有比hdd更高的性能。

在之前的快速緩存的實(shí)現(xiàn)方式中,如果希望使用更多的ssd對(duì)快速緩存進(jìn)行擴(kuò)容,用戶必須首先將現(xiàn)有的快速緩存停用,將其中的全部數(shù)據(jù)復(fù)制(promote)到硬盤(harddisk)中,將快速緩存清空,隨后使用更多的ssd來(lái)重建快速緩存。這就意味著之前復(fù)制到快速緩存中的熱點(diǎn)數(shù)據(jù)(hotdata)將會(huì)丟失,而這些熱點(diǎn)數(shù)據(jù)需要很長(zhǎng)的時(shí)間才能夠被再次復(fù)制到快速緩存中。在快速緩存被清空以及創(chuàng)建的過(guò)程中,用戶將無(wú)法從快速緩存中獲益,這甚至將會(huì)對(duì)緩存陣列的整體性能造成更為不良的影響,因?yàn)樵谶@一過(guò)程中將產(chǎn)生更多的內(nèi)部輸入/輸出(io)操作。



技術(shù)實(shí)現(xiàn)要素:

為了解決上述問(wèn)題,本公開的實(shí)施例提供了一種用于緩存盤陣列擴(kuò)容的方法及設(shè)備,該方法使得能夠在不停用已有緩存盤的情況下,向緩存盤陣列中添加新的緩存盤以對(duì)緩存盤陣列進(jìn)行擴(kuò)容。在之前的不具備擴(kuò)容選項(xiàng)的fastcache實(shí)現(xiàn)方式中,如果用戶發(fā)現(xiàn)ssd并不足夠?qū)狳c(diǎn)數(shù)據(jù)進(jìn)行緩存,則用戶需要首先停用/清除fastcache并使用更多的ssd來(lái)重建fastcache,并且該過(guò)程具有一定 的破壞性。本公開實(shí)施例中所示的在線(online)fastcache擴(kuò)容這一特征不具有破壞性,并且由于在fastcache中引入了更多ssd并進(jìn)而能夠緩存更多的熱點(diǎn)數(shù)據(jù),因此其將帶來(lái)比之前的fastcache更加良好的性能。

本公開的第一方面提供了一種用于緩存盤陣列擴(kuò)容的方法,包括:響應(yīng)于檢測(cè)到添加至第一緩存盤陣列中的第一新緩存盤,來(lái)為該第一新緩存盤執(zhí)行初始化,而不停用該第一緩存盤陣列中的其它緩存盤;基于初始化的結(jié)果,為緩存頁(yè)元數(shù)據(jù)分配存儲(chǔ)空間,并將緩存頁(yè)元數(shù)據(jù)保存到初始化的目錄邏輯單元號(hào)(lun)中;響應(yīng)于該存儲(chǔ)空間的分配的完成,將存儲(chǔ)在內(nèi)存中的相同的該緩存頁(yè)元數(shù)據(jù)也保存到該目錄邏輯單元號(hào)lun中,以使得該第一新緩存盤處于就緒狀態(tài);以及響應(yīng)于該第一新緩存盤處于就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。由于可以在不停用已有緩存盤的前提下執(zhí)行上述緩存盤擴(kuò)容操作,因此可以保證之前復(fù)制到快速緩存中的熱點(diǎn)數(shù)據(jù)不會(huì)丟失,并且不會(huì)影響快速緩存的性能。

根據(jù)本公開的實(shí)施例,對(duì)該第一新緩存盤執(zhí)行的初始化包括:創(chuàng)建目錄邏輯單元號(hào)lun和數(shù)據(jù)邏輯單元號(hào)lun。

根據(jù)本公開的實(shí)施例,該方法還包括:在檢測(cè)被添加到該第一緩存盤陣列中的該第一新緩存盤之前,確定是否向該第一緩存盤陣列中插入該第一新緩存盤。這有利于向用戶提供更為友好的界面,以使得用戶在做出對(duì)現(xiàn)有緩存盤陣列的擴(kuò)容決定之前就能夠判斷是否有必要進(jìn)行擴(kuò)容操作,或者進(jìn)行該擴(kuò)容操作是否能夠帶來(lái)性能上的改善。

根據(jù)本公開的實(shí)施例,確定是否向該第一緩存盤陣列中添加該第一新緩存盤包括:設(shè)置第一計(jì)數(shù)值和第二計(jì)數(shù)值,其中該第一計(jì)數(shù)值表示對(duì)被訪問(wèn)且被緩存到該第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值,并且該第二計(jì)數(shù)值表示對(duì)被訪問(wèn)但未被復(fù)制到第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值;以及當(dāng)該第一計(jì)數(shù)值小于該第二計(jì)數(shù)值時(shí),確定向該 第一緩存盤陣列中添加該第一新緩存盤。上述計(jì)數(shù)值的設(shè)定有利于對(duì)是否執(zhí)行擴(kuò)容操作進(jìn)行量化的判斷。

根據(jù)本公開的實(shí)施例,響應(yīng)于該第一新緩存盤處于就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容包括:響應(yīng)于將該第一新緩存盤置于就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤也處于就緒狀態(tài),來(lái)完成對(duì)該第一新緩存盤陣列的擴(kuò)容,其中該第二緩存盤陣列被配置為該第一緩存盤陣列的對(duì)等緩存盤陣列。

根據(jù)本公開的實(shí)施例,響應(yīng)于將該第一新緩存盤置于就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤也處于就緒狀態(tài),來(lái)完成對(duì)第一新緩存盤陣列的擴(kuò)容包括:響應(yīng)于將該第一新緩存盤置于就緒狀態(tài),從該第一緩存盤陣列向第二緩存盤陣列發(fā)送指示該第一新緩存盤處于就緒狀態(tài)的通知;以及響應(yīng)于該第一緩存盤陣列從該第二緩存盤陣列接收到指示該第二新緩存盤也處于就緒狀態(tài)的通知,將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。該額外的來(lái)自例如第二緩存盤陣列的對(duì)等的緩存盤陣列的確認(rèn)步驟尤其有利于確保數(shù)據(jù)的安全性。

根據(jù)本公開的實(shí)施例,該方法還包括:在該方法的任一步驟發(fā)生故障時(shí):響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除。

根據(jù)本公開的實(shí)施例,響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除包括:在該方法的任一步驟發(fā)生故障時(shí):從該第一緩存盤陣列向該第二緩存盤陣列發(fā)送故障消息,以指示該第一緩存盤陣列的擴(kuò)容步驟中的該任一步驟中發(fā)生故障;以及響應(yīng)于該第二緩存盤陣列接受該故障消息,將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除,否則響應(yīng)于該第二緩存盤陣列拒絕該故障消息,將 該第一緩存盤陣列置為等待狀態(tài),以等待該第二緩存盤陣列接受所述故障消息,其中在所述第二緩存盤陣列未完成擴(kuò)容的情況下,所述第二緩存盤陣列拒絕來(lái)自所述第一緩存盤陣列的所述故障消息,并且其中在所述第二緩存盤陣列完成擴(kuò)容的情況下,所述第二緩存盤陣列接受來(lái)自所述第一緩存盤陣列的所述故障消息。在發(fā)生故障的情況下,該額外的來(lái)自例如第二緩存盤陣列的對(duì)等的緩存盤陣列的確認(rèn)步驟同樣有利于確保數(shù)據(jù)的安全性。

本公開的第二方面提供了一種用于緩存盤陣列擴(kuò)容的設(shè)備,包括:初始化裝置,用于響應(yīng)于檢測(cè)到添加至第一緩存盤陣列中的第一新緩存盤,來(lái)為所述第一新緩存盤執(zhí)行初始化,而不停用該第一緩存盤陣列中的其它緩存盤;存儲(chǔ)空間分配裝置,用于基于初始化的結(jié)果,為緩存頁(yè)元數(shù)據(jù)分配存儲(chǔ)空間,并將緩存頁(yè)元數(shù)據(jù)保存到初始化的目錄邏輯單元號(hào)lun中;緩存頁(yè)元數(shù)據(jù)保存裝置,用于響應(yīng)于存儲(chǔ)空間的分配的完成,將存儲(chǔ)在內(nèi)存中的相同的該緩存頁(yè)元數(shù)據(jù)也保存到該目錄邏輯單元號(hào)lun中,以使得該第一新緩存盤處于就緒狀態(tài);以及擴(kuò)容確定裝置,用于響應(yīng)于該第一新緩存盤處于該就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,該初始化裝置被配置為創(chuàng)建目錄邏輯單元號(hào)lun和數(shù)據(jù)邏輯單元號(hào)lun。

根據(jù)本公開的實(shí)施例,該設(shè)備還包括:判斷裝置,用于在檢測(cè)被添加到該第一緩存盤陣列中的該第一新緩存盤之前,確定是否向該第一緩存盤陣列中插入該第一新緩存盤。

根據(jù)本公開的實(shí)施例,該判斷裝置包括:計(jì)數(shù)值設(shè)置裝置,用于設(shè)置第一計(jì)數(shù)值和第二計(jì)數(shù)值,其中該第一計(jì)數(shù)值表示對(duì)被訪問(wèn)且被緩存到該第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值,并且該第二計(jì)數(shù)值表示對(duì)被訪問(wèn)但未被復(fù)制到第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值;以及判斷單元,用于當(dāng)該第一計(jì)數(shù)值小于該第二計(jì)數(shù)值時(shí),確定向該第一緩存盤陣列中添加該第一新緩存盤。

根據(jù)本公開的實(shí)施例,該擴(kuò)容確定裝置包括:確定單元,用于響應(yīng)于將該第一新緩存盤置于就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤也處于就緒狀態(tài),來(lái)完成對(duì)該第一新緩存盤陣列的擴(kuò)容,其中該第二緩存盤陣列被配置為該第一緩存盤陣列的對(duì)等緩存盤陣列。

根據(jù)本公開的實(shí)施例,該確定單元包括:發(fā)送單元,用于響應(yīng)于將該第一新緩存盤置于就緒狀態(tài),從該第一緩存盤陣列向第二緩存盤陣列發(fā)送指示該第一新緩存盤處于就緒狀態(tài)的通知;以及接收單元,用于響應(yīng)于該第一緩存盤陣列從該第二緩存盤陣列接收到指示該第二新緩存盤也處于就緒狀態(tài)的通知,將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,該設(shè)備還包括故障檢測(cè)裝置,用于在該設(shè)備的任一裝置發(fā)生故障時(shí):響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除。

根據(jù)本公開的實(shí)施例,該故障檢測(cè)裝置包括:故障消息發(fā)送單元,用于從該第一緩存盤陣列向該第二緩存盤陣列發(fā)送故障消息,以指示該第一緩存盤陣列的擴(kuò)容步驟中的任一步驟中發(fā)生故障;以及標(biāo)識(shí)單元,響應(yīng)于該第二緩存盤陣列接受該故障消息,將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除,否則響應(yīng)于該第二緩存盤陣列拒絕該故障消息,將該第一緩存盤陣列置為等待狀態(tài),以等待該第二緩存盤陣列接受該故障消息,其中在該第二緩存盤陣列未完成擴(kuò)容的情況下,該第二緩存盤陣列拒絕來(lái)自該第一緩存盤陣列的該故障消息,并且其中在該第二緩存盤陣列完成擴(kuò)容的情況下,該第二緩存盤陣列接受來(lái)自該第一緩存盤陣列的該故障消息。

本公開的第三方面提供了一種用于緩存盤陣列擴(kuò)容的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品被有形地存儲(chǔ)在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上并且包括機(jī)器可執(zhí)行指令,該機(jī)器可執(zhí)行指令在被執(zhí)行時(shí)使機(jī)器 執(zhí)行根據(jù)本公開的第一方面該的方法的步驟。

附圖說(shuō)明

圖1示出了根據(jù)本公開實(shí)施例的快速緩存(fastcache)的設(shè)備關(guān)系圖。

圖2示出了根據(jù)本公開實(shí)施例的用于緩存盤陣列擴(kuò)容的方法的流程圖。

圖3圖示了根據(jù)本公開另一實(shí)施例的用于緩存盤陣列擴(kuò)容的方法的框圖。

圖4示出了根據(jù)本公開實(shí)施例的用于緩存盤陣列擴(kuò)容的設(shè)備的框圖。

具體實(shí)施方式

下面將參考附圖中示出的若干示例實(shí)施例來(lái)描述本公開的原理。雖然附圖中顯示了本公開的優(yōu)選實(shí)施例,但應(yīng)當(dāng)理解,描述這些實(shí)施例僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本公開,而并非以任何方式限制本公開的范圍。

圖1示出了根據(jù)本公開實(shí)施例的快速緩存(fastcache)的設(shè)備關(guān)系圖。

根據(jù)本公開的實(shí)施例,如圖1所示,兩個(gè)ssd盤(也稱為ssd對(duì))作為一個(gè)raid組(即,raid1)被提供給快速緩存,并且將這一對(duì)ssd盤視為快速緩存的物理設(shè)備(fastcachedevice)(1、2),其被用于為用戶存儲(chǔ)熱點(diǎn)數(shù)據(jù)。

根據(jù)本公開的實(shí)施例,每個(gè)緩存頁(yè)中包括元數(shù)據(jù),元數(shù)據(jù)存儲(chǔ)ssd和hdd中的頁(yè)的映射信息,以及指示該頁(yè)是否未被復(fù)制(dirty)的信息,該映射信息被存儲(chǔ)在如圖1所示的緩存頁(yè)哈希表(3)中。

根據(jù)本公開的實(shí)施例,每個(gè)設(shè)備(如圖1中所示的設(shè)備0或設(shè)備1)可以緩存特定數(shù)目的緩存頁(yè),例如可以緩存n個(gè)緩存頁(yè)(4a、4b)。此外,快速緩存還相應(yīng)地被分配了n個(gè)影子頁(yè)(shadowpages) (5a、5b)以跟蹤被訪問(wèn)過(guò)但未被緩存到ssd中的輸入/輸出(i/o)歷史信息。

需要指出,根據(jù)圖1的實(shí)施例并不旨在限定設(shè)備的具體數(shù)目,更多數(shù)目的設(shè)備(例如,設(shè)備2、設(shè)備3…、設(shè)備n)可以被包含在該快速緩存結(jié)構(gòu)中。

根據(jù)本公開的實(shí)施例,該快速緩存還包括空閑列表,例如,圖1中所示的設(shè)備0/設(shè)備1空閑列表(6、7)指示出可用于復(fù)制(promote)數(shù)據(jù)的頁(yè)的數(shù)目。

圖2示出了根據(jù)本公開實(shí)施例的用于緩存盤陣列擴(kuò)容的方法200。方法200包括步驟s210到步驟s240:

在步驟s210,響應(yīng)于檢測(cè)到添加至第一緩存盤陣列中的第一新緩存盤,來(lái)為該第一新緩存盤執(zhí)行初始化,而不停用該第一緩存盤陣列中的其它緩存盤;

在步驟s220,基于該初始化的結(jié)果,為緩存頁(yè)元數(shù)據(jù)分配存儲(chǔ)空間,并將緩存頁(yè)元數(shù)據(jù)保存到初始化的目錄邏輯單元號(hào)(lun)中;

在步驟s230,響應(yīng)于該存儲(chǔ)空間的分配的完成,將存儲(chǔ)在內(nèi)存中的相同的該緩存頁(yè)元數(shù)據(jù)也保存到該目錄邏輯單元號(hào)(dirlun)中,以使得該第一新緩存盤處于就緒狀態(tài)(ready);以及

在步驟s240,響應(yīng)于該第一新緩存盤處于該就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)(initialized)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,對(duì)該第一新緩存盤執(zhí)行的該初始化包括:創(chuàng)建目錄邏輯單元號(hào)(dirlun)和數(shù)據(jù)邏輯單元號(hào)(datalun)。

根據(jù)本公開的實(shí)施例,在當(dāng)快速緩存被熱點(diǎn)數(shù)據(jù)接近填滿時(shí),才需要向緩存盤陣列添加更多的ssd以對(duì)緩存盤陣進(jìn)行擴(kuò)容。因此,為了提供更為友好的用戶接口以使得用戶獲知是否需要對(duì)緩存盤陣進(jìn)行擴(kuò)容以獲得更大的益處,該緩存盤陣列擴(kuò)容的方法200可以額外地包括:在檢測(cè)被添加到該第一緩存盤陣列中的該第一新緩存盤 之前,確定是否向該第一緩存盤陣列中插入該第一新緩存盤。

根據(jù)本公開的實(shí)施例,確定是否向該第一緩存盤陣列中添加該第一新緩存盤包括:設(shè)置第一計(jì)數(shù)值和第二計(jì)數(shù)值,其中該第一計(jì)數(shù)值可以表示對(duì)被訪問(wèn)且被緩存到該第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值。例如,第一計(jì)數(shù)值可以是緩存頁(yè)命中計(jì)數(shù)值(cachehitcount)。該第二計(jì)數(shù)值可以表示對(duì)被訪問(wèn)但未被復(fù)制到第一緩存盤陣列中的頁(yè)(即,影子頁(yè))的計(jì)數(shù)值。例如,第二計(jì)數(shù)值可以是影子頁(yè)命中計(jì)數(shù)值(shadowhitcount),其中影子頁(yè)命中被視為“虛擬的”緩存命中。當(dāng)該第一計(jì)數(shù)值小于該第二計(jì)數(shù)值時(shí),例如,當(dāng)cachehitcount<shadowhitcount時(shí),可以確定向該第一緩存盤陣列中添加該第一新緩存盤。

在實(shí)踐中,根據(jù)一個(gè)具體示例,可以利用緩存的大小x(即,在該緩存中可存儲(chǔ)的最大緩存頁(yè)的數(shù)目),來(lái)將例如作為第一計(jì)數(shù)值的緩存頁(yè)命中計(jì)數(shù)值進(jìn)行歸一化處理,以獲得下面等式(1):

其中,y相應(yīng)地表示第一緩存頁(yè)命中率。

同樣根據(jù)該具體示例,可以將影子緩存的大小設(shè)定為等于緩存的大小,即,兩者的大小均被設(shè)定為x,來(lái)將影子頁(yè)命中計(jì)數(shù)值的影響也考慮到整體的緩存命中率的計(jì)算中,并將例如作為第一計(jì)數(shù)值的緩存頁(yè)命中計(jì)數(shù)值與例如作為第二計(jì)數(shù)值的影子緩存命中計(jì)數(shù)值一起進(jìn)行與上面等式(1)中類似地歸一化處理,以獲得下面等式(2):

其中,z相應(yīng)地表示第二緩存頁(yè)命中率。

這樣,在數(shù)學(xué)上可以證明,如果z大于y,則表示許多頁(yè)被訪問(wèn)多次但并沒有被復(fù)制到快速緩存中。因此,這時(shí)用戶將有必要擴(kuò)展快速緩存以獲得更多的益處。

圖3更為具體地圖示了根據(jù)本公開另一實(shí)施例的用于緩存盤陣 列擴(kuò)容的方法300的框圖,方法300包括步驟s310至步驟s340。其中設(shè)備0為已有緩存盤,而設(shè)備1為待添加至緩存盤陣列的新的緩存盤設(shè)備。下面將通過(guò)圖3并結(jié)合圖1和圖2進(jìn)行詳細(xì)描述。

如圖3所示的具體示例中,使用了雙存儲(chǔ)處理器(sp)系統(tǒng),即如圖3所示的具體示例中的本地sp和對(duì)等(peer)sp。該系統(tǒng)使用消息傳遞服務(wù)(mps)來(lái)在兩個(gè)sp之間進(jìn)行通信,其中示出的同步(sync)事務(wù)是一種在兩個(gè)sp之間更新/保留數(shù)據(jù)的機(jī)制。

如圖3所示的具體示例中,方法300中的步驟s310至步驟s340基本上分別與圖2中的步驟s210至步驟s240相對(duì)應(yīng)。具體而言:

-在步驟s310處,首先發(fā)送“擴(kuò)容”命令,以開始添加設(shè)備1,并且然后為設(shè)備1設(shè)置dirlun和datalun;

-在步驟s320處,為設(shè)備1分配存儲(chǔ)空間,設(shè)置緩存頁(yè)元數(shù)據(jù)和影子數(shù)據(jù)列表;

-在步驟s330處,將緩存頁(yè)元數(shù)據(jù)寫入到dirlun,并與對(duì)等sp進(jìn)行同步;

-在步驟s340處,完成擴(kuò)容,使得能夠向設(shè)備1中復(fù)制數(shù)據(jù)。

在如圖3所示的具體示例中,與方法200的不同之處在于,方法300在步驟s330處包括了如下額外的處理,即,將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容還包括:響應(yīng)于將該第一新緩存盤(例如本地sp中的設(shè)備1)置于該就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤(例如對(duì)等sp中的設(shè)備1)也處于就緒狀態(tài),來(lái)完成對(duì)該第一新緩存盤陣列的擴(kuò)容,其中該第二緩存盤陣列(例如,對(duì)等sp)被配置為該第一緩存盤陣列(例如,本地sp)的對(duì)等緩存盤陣列。

根據(jù)本公開的實(shí)施例,響應(yīng)于將該第一新緩存盤置于該就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤也處于就緒狀態(tài),來(lái)完成對(duì)該第一新緩存盤陣列的擴(kuò)容還包括:響應(yīng)于將該第一新緩存盤,例如本地sp中的設(shè)備1,置于該就緒狀態(tài),從該第一緩存盤陣列向第二緩存盤陣列發(fā)送指示該第一新緩存盤處于就緒狀 態(tài)的通知,如圖3中所示的同步(sync)狀態(tài);以及響應(yīng)于該第一緩存盤陣列(例如,本地sp)從該第二緩存盤陣列(例如,對(duì)等sp)接收到指示該第二新緩存盤也處于就緒狀態(tài)的通知,將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,該方法200和方法300還可以包括:在該方法的任一步驟發(fā)生故障時(shí):響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除。

根據(jù)本公開的具體示例,當(dāng)在方法200或方法300中任意步驟發(fā)生故障的情況下,本地sp與對(duì)等sp進(jìn)行狀態(tài)同步,以使得能夠?qū)⒗缭O(shè)備1的第一新緩存盤從例如本地sp的該第一緩存盤陣列中移除。

根據(jù)本公開的一個(gè)具體示例,響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除包括:在該方法的任一步驟發(fā)生故障時(shí):從該第一緩存盤陣列(例如,本地sp)向該第二緩存盤陣列(例如,對(duì)等sp)發(fā)送故障消息,以指示該第一緩存盤陣列的擴(kuò)容步驟中的該任一步驟中發(fā)生故障;以及響應(yīng)于該第二緩存盤陣列接受該故障消息,將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除,否則響應(yīng)于該第二緩存盤陣列拒絕該故障消息,將該第一緩存盤陣列置為等待狀態(tài),以等待該第二緩存盤陣列接受該故障消息,其中在該第二緩存盤陣列未完成擴(kuò)容的情況下,該第二緩存盤陣列拒絕來(lái)自該第一緩存盤陣列的該故障消息,并且其中在該第二緩存盤陣列完成擴(kuò)容的情況下,該第二緩存盤陣列接受來(lái)自該第一緩存盤陣列的該故障消息。

根據(jù)本公開的一個(gè)更為具體的示例,在方法200或方法300中的任意步驟發(fā)生故障的情況下:

在本地sp一側(cè):

-發(fā)起與對(duì)等sp的同步(sync)事務(wù);

-如果對(duì)等sp接受了該sync事務(wù),則將待添加的設(shè)備(即,本地sp中的設(shè)備1)的狀態(tài)標(biāo)識(shí)為故障狀態(tài),并等待用戶發(fā)布命令以將該故障緩存盤設(shè)備移除;

-如果對(duì)等sp拒絕了該sync事務(wù),則本地sp應(yīng)當(dāng)?shù)却龑?duì)等sp中的擴(kuò)容步驟的完成,然后重啟sync事務(wù);

在對(duì)等sp一側(cè):

-當(dāng)對(duì)等sp接收到sync事務(wù)時(shí),該對(duì)等sp首先檢查其自身的狀態(tài);

-如果該對(duì)等sp沒有完成擴(kuò)容步驟,則該對(duì)等sp設(shè)備拒絕來(lái)自本地sp的sync事務(wù),并且在該對(duì)等sp完成自身的擴(kuò)容過(guò)程之后,重啟sync事務(wù);

-如果對(duì)等sp已經(jīng)完成了擴(kuò)容步驟,則該對(duì)等sp設(shè)備接受來(lái)自本地sp的sync事務(wù),并將其狀態(tài)標(biāo)識(shí)為故障狀態(tài)。

在兩側(cè)的擴(kuò)容狀態(tài)被同步之后,用戶可以發(fā)布命令以移除發(fā)生故障的緩存設(shè)備。

本公開的第二方面提供了一種用于緩存盤陣列擴(kuò)容的設(shè)備400,包括:初始化裝置410,用于響應(yīng)于檢測(cè)到添加至第一緩存盤陣列中的第一新緩存盤,來(lái)為該第一新緩存盤執(zhí)行初始化,而不停用該第一緩存盤陣列中的其它緩存盤;存儲(chǔ)空間分配裝置420,用于基于該初始化的結(jié)果,為緩存頁(yè)元數(shù)據(jù)分配存儲(chǔ)空間,并將緩存頁(yè)元數(shù)據(jù)保存到初始化的目錄邏輯單元號(hào)(lun)中;緩存頁(yè)元數(shù)據(jù)保存裝置430,用于響應(yīng)于該存儲(chǔ)空間的分配的完成,將存儲(chǔ)在內(nèi)存中的相同的該緩存頁(yè)元數(shù)據(jù)也保存到該目錄邏輯單元號(hào)(lun)中,以使得該第一新緩存盤處于就緒狀態(tài);以及擴(kuò)容確定裝置440,用于響應(yīng)于該第一新緩存盤處于該就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,該初始化裝置被配置為創(chuàng)建目錄邏輯單元號(hào)(lun)和數(shù)據(jù)邏輯單元號(hào)(lun)。

根據(jù)本公開的實(shí)施例,該設(shè)備還包括:判斷裝置,用于在檢測(cè)被添加到該第一緩存盤陣列中的該第一新緩存盤之前,確定是否向該第一緩存盤陣列中插入該第一新緩存盤。

根據(jù)本公開的實(shí)施例,該判斷裝置包括:計(jì)數(shù)值設(shè)置裝置,用于設(shè)置第一計(jì)數(shù)值和第二計(jì)數(shù)值,其中該第一計(jì)數(shù)值表示對(duì)被訪問(wèn)且被緩存到該第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值,并且該第二計(jì)數(shù)值表示對(duì)被訪問(wèn)但未被復(fù)制到第一緩存盤陣列中的頁(yè)的計(jì)數(shù)值;以及判斷單元,用于當(dāng)該第一計(jì)數(shù)值小于該第二計(jì)數(shù)值時(shí),確定向該第一緩存盤陣列中添加該第一新緩存盤。

根據(jù)本公開的實(shí)施例,該擴(kuò)容確定裝置包括:確定單元,用于響應(yīng)于將該第一新緩存盤置于該就緒狀態(tài),并且響應(yīng)于處于第二緩存盤陣列中的第二新緩存盤也處于就緒狀態(tài),來(lái)完成對(duì)該第一新緩存盤陣列的擴(kuò)容,其中該第二緩存盤陣列被配置為該第一緩存盤陣列的對(duì)等緩存盤陣列。

根據(jù)本公開的實(shí)施例,該確定單元包括:發(fā)送單元,用于響應(yīng)于將該第一新緩存盤置于該就緒狀態(tài),從該第一緩存盤陣列向第二緩存盤陣列發(fā)送指示該第一新緩存盤處于就緒狀態(tài)的通知;以及接收單元,用于響應(yīng)于該第一緩存盤陣列從該第二緩存盤陣列接收到指示該第二新緩存盤也處于就緒狀態(tài)的通知,將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。

根據(jù)本公開的實(shí)施例,該設(shè)備還包括故障檢測(cè)裝置,用于在該設(shè)備的任一裝置發(fā)生故障時(shí):響應(yīng)于該第一緩存盤陣列接收到故障確認(rèn)消息,來(lái)將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第一緩存盤陣列中移除。

根據(jù)本公開的實(shí)施例,該故障檢測(cè)裝置包括:故障消息發(fā)送單元,用于從該第一緩存盤陣列向該第二緩存盤陣列發(fā)送故障消息,以指示該第一緩存盤陣列的擴(kuò)容步驟中的該任一步驟中發(fā)生故障;以及標(biāo)識(shí)單元,響應(yīng)于該第二緩存盤陣列接受該故障消息,將該第一緩存盤陣列置為故障狀態(tài),以使得能夠?qū)⒃摰谝恍戮彺姹P從該第 一緩存盤陣列中移除,否則響應(yīng)于該第二緩存盤陣列拒絕該故障消息,將該第一緩存盤陣列置為等待狀態(tài),以等待該第二緩存盤陣列接受該故障消息,其中在該第二緩存盤陣列未完成擴(kuò)容的情況下,該第二緩存盤陣列拒絕來(lái)自該第一緩存盤陣列的該故障消息,并且其中在該第二緩存盤陣列完成擴(kuò)容的情況下,該第二緩存盤陣列接受來(lái)自該第一緩存盤陣列的該故障消息。

本公開的第三方面提供了一種用于緩存盤陣列擴(kuò)容的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品被有形地存儲(chǔ)在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上并且包括機(jī)器可執(zhí)行指令,該機(jī)器可執(zhí)行指令在被執(zhí)行時(shí)使機(jī)器執(zhí)行根據(jù)本公開的第一方面該的方法的步驟。

綜上所述,本公開的各種實(shí)施例提供了一種用于緩存盤陣列擴(kuò)容的方法及設(shè)備。該方法包括:響應(yīng)于檢測(cè)到添加至第一緩存盤陣列中的第一新緩存盤,來(lái)為該第一新緩存盤執(zhí)行初始化,而不停用該第一緩存盤陣列中的其它緩存盤;基于該初始化的結(jié)果,為緩存頁(yè)元數(shù)據(jù)分配存儲(chǔ)空間,并將緩存頁(yè)元數(shù)據(jù)保存到初始化的目錄邏輯單元號(hào)中;響應(yīng)于該存儲(chǔ)空間的分配的完成,將存儲(chǔ)在內(nèi)存中的相同的該緩存頁(yè)元數(shù)據(jù)也保存到該目錄邏輯單元號(hào)中,以使得該第一新緩存盤處于就緒狀態(tài);以及響應(yīng)于該第一新緩存盤處于該就緒狀態(tài),將該第一新緩存盤置于已初始化狀態(tài)以完成對(duì)該第一緩存盤陣列的擴(kuò)容。該方法使得能夠在不停用已有緩存盤的情況下,向緩存盤陣列中添加新的緩存盤以對(duì)緩存盤陣列進(jìn)行擴(kuò)容。

以上所述僅為本公開的可選實(shí)施例,并不用于限制本公開,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本公開可以有各種更改和變化。凡在本公開的精神和原則之內(nèi),所作的任何修改、等效替換、改進(jìn)等,均應(yīng)包含在本公開的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1