冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng)。該方法包括:向每個存儲節(jié)點(diǎn)發(fā)送數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令;接收每個存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息;對接收到的每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值;根據(jù)各個存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊?shù)據(jù)塊的大小、IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿熱數(shù)據(jù)存儲介質(zhì)時,高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。本發(fā)明實現(xiàn)了存儲系統(tǒng)中各個存儲節(jié)點(diǎn)獨(dú)立但協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲。
【專利說明】冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲【技術(shù)領(lǐng)域】,尤其涉及一種冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著存儲技術(shù)的發(fā)展,人們對存儲系統(tǒng)的容量和性能的要求也越來越高,但是容量大、性能高的存儲系統(tǒng)價格也高。以低價格滿足存儲系統(tǒng)的性能和容量的需求催生了分層存儲技術(shù)。
[0003]數(shù)據(jù)分層存儲技術(shù)是應(yīng)對數(shù)據(jù)生命周期管理需求的主流技術(shù),通過監(jiān)控業(yè)務(wù)數(shù)據(jù),可以記錄數(shù)據(jù)的訪問頻率、IO計數(shù)等參數(shù)值。依據(jù)監(jiān)控到的IO等參數(shù)值可以決定業(yè)務(wù)數(shù)據(jù)應(yīng)該存儲在存儲系統(tǒng)的哪一層,熱點(diǎn)數(shù)據(jù)可遷往存儲系統(tǒng)的高性能層級,冷點(diǎn)數(shù)據(jù)可遷往存儲系統(tǒng)中的低性能層級,由此可實現(xiàn)以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0004]分層存儲技術(shù)主要包括數(shù)據(jù)監(jiān)控、數(shù)據(jù)冷熱識別和數(shù)據(jù)遷移三部分。在現(xiàn)有技術(shù)下,數(shù)據(jù)監(jiān)控功能模塊、數(shù)據(jù)冷熱識別功能模塊和數(shù)據(jù)遷移功能模塊分布在存儲系統(tǒng)各個存儲節(jié)點(diǎn)中,但是整個存儲系統(tǒng)沒有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),因此分層存儲功能只能在存儲系統(tǒng)中單個存儲節(jié)點(diǎn)內(nèi)完成,不能跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,導(dǎo)致了存儲系統(tǒng)的分層存儲功能的實用性和可用性大大降低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng),以實現(xiàn)存儲系統(tǒng)中各個存儲節(jié)點(diǎn)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),能獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,增加了存儲系統(tǒng)分層存儲功能的實用性和可用性。
[0006]第一方面,本發(fā)明實施例提供了一種冷熱數(shù)據(jù)識別門限值計算方法,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,所述存儲控制服務(wù)器執(zhí)行以下步驟:
[0007]向每個所述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令;
[0008]接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù);
[0009]對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值;
[0010]根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?、所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
[0011]在第一種可能的實現(xiàn)方式中,所述IO統(tǒng)計信息還包括有至少一個順序度字段值,每個所述順序度字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0012]根據(jù)第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述方法還包括:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值;所述根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?、所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值之前還包括具體為:根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?,所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
[0013]第二方面,本發(fā)明實施例還提供了一種冷熱數(shù)據(jù)識別門限值計算方法,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,每個存儲節(jié)點(diǎn)執(zhí)行以下步驟:
[0014]接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令;
[0015]根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值;
[0016]向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值;
[0017]接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
[0018]在第一種可能的實現(xiàn)方式中,所述監(jiān)控信息還包括數(shù)據(jù)塊的IO順序度、或者數(shù)據(jù)塊的IO讀寫比例,其中,所述順序度為每個數(shù)據(jù)塊的順序IO計數(shù)占總的IO計數(shù)的比例,所述IO讀寫比例為每個數(shù)據(jù)塊的IO讀操作的次數(shù)與IO寫操作的次數(shù)的比例;所述IO統(tǒng)計信息還包括有至少一個順序度字段值,其中每個所述順序讀字段值記錄有本地存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0019]根據(jù)第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值具體包括:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
[0020]根據(jù)第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值具體包括:根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值;獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ;確定IO計數(shù)字段值的個數(shù)N ;對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍;統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
[0021]第三方面,本發(fā)明實施例提供了一種存儲控制服務(wù)器,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,所述存儲控制服務(wù)器包括:
[0022]發(fā)送單元,用于向每個所述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令;
[0023]接收單元,用于接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù);
[0024]生成單元,用于對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值;
[0025]確定單元,用于根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊⑺鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
[0026]在第一種可能的實現(xiàn)方式中,所述IO統(tǒng)計信息還包括有至少一個順序度字段值,每個所述順序度字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0027]根據(jù)第三方面的第一種可能的實現(xiàn)方式中,在第二種可能的實現(xiàn)方式中,所述生成單元還用于:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值;所述確定單元具體用于:根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘浚鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
[0028]第四方面,本發(fā)明實施例提供了一種存儲節(jié)點(diǎn),存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,每個存儲節(jié)點(diǎn)包括:
[0029]接收單元,用于接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令;
[0030]統(tǒng)計單元,用于根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值;
[0031]發(fā)送單元,用于向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值;
[0032]所述接收單元,還用于接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值;
[0033]實現(xiàn)單元,用于接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。[0034]在第一種可能的實現(xiàn)方式中,所述監(jiān)控信息還包括數(shù)據(jù)塊的IO順序度、或者數(shù)據(jù)塊的IO讀寫比例,其中,所述順序度為每個數(shù)據(jù)塊的順序IO計數(shù)占總的IO計數(shù)的比例,所述IO讀寫比例為每個數(shù)據(jù)塊的IO讀操作的次數(shù)與IO寫操作的次數(shù)的比例;所述IO統(tǒng)計信息還包括有至少一個順序度字段值,其中每個所述順序讀字段值記錄有本地存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0035]根據(jù)第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述統(tǒng)計單元具體用于:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
[0036]根據(jù)第四方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述統(tǒng)計單元統(tǒng)計得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值的過程具體包括:根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值;獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ;確定IO計數(shù)字段值的個數(shù)N ;對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍;統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
[0037]第五方面,本發(fā)明實施例提供了一種存儲系統(tǒng),所述系統(tǒng)包括上述存儲控制服務(wù)器,以及多個如上所述的存儲節(jié)點(diǎn)
[0038]本發(fā)明實施例提供的冷熱數(shù)據(jù)識別門限值計算方法、裝置和系統(tǒng)中,通過對存儲系統(tǒng)中的某個時間段內(nèi)的各個存儲節(jié)點(diǎn)的監(jiān)控信息進(jìn)行統(tǒng)計、計算,可以得出整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,從而實現(xiàn)存儲系統(tǒng)中各個存儲節(jié)點(diǎn)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),能獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
【專利附圖】
【附圖說明】
[0039]圖1為本發(fā)明實施例提供的一種存儲系統(tǒng)的示意圖;
[0040]圖2為本發(fā)明實施例提供的一種冷熱數(shù)據(jù)識別門限值計算方法流程圖;
[0041]圖3為本發(fā)明實施例提供的另一冷熱數(shù)據(jù)識別門限值計算方法流程圖;
[0042]圖4為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)的數(shù)據(jù)統(tǒng)計結(jié)果示意圖;
[0043]圖5為本發(fā)明實施例提供的一種存儲控制服務(wù)器示意圖;
[0044]圖6為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)不意圖;
[0045]圖7為本發(fā)明實施例提供的另一存儲控制服務(wù)器示意圖;
[0046]圖8為本發(fā)明實施例提供的另一存儲節(jié)點(diǎn)示意圖。
【具體實施方式】
[0047]以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之類的具體細(xì)節(jié),以便透切理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
[0048]本發(fā)明實施例提供的冷熱數(shù)據(jù)識別門限值計算方法可以應(yīng)用于如圖1所示的存儲系統(tǒng)中,如圖1所示,本發(fā)明實施例提供的存儲系統(tǒng)中,包括存儲控制服務(wù)器和多個存儲節(jié)點(diǎn),其中存儲控制服務(wù)器與存儲系統(tǒng)組網(wǎng),組網(wǎng)后,存儲控制服務(wù)器可以與其中的各個存儲節(jié)點(diǎn)進(jìn)行通信。存儲控制服務(wù)器可向每個存儲節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控程序發(fā)送IO統(tǒng)計信息查詢命令,數(shù)據(jù)監(jiān)控程序?qū)Ρ敬鎯?jié)點(diǎn)的主機(jī)IO信息進(jìn)行分段統(tǒng)計后得到數(shù)據(jù)量較小的IO統(tǒng)計信息,然后將該信息反饋給存儲控制服務(wù)器,用于存儲控制服務(wù)器確定整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,然后將該門限值反饋給存儲節(jié)點(diǎn),由每個存儲節(jié)點(diǎn)根據(jù)該冷熱數(shù)據(jù)識別門限值識別出冷熱數(shù)據(jù),進(jìn)而實現(xiàn)數(shù)據(jù)的分層存儲。由此實現(xiàn)存儲系統(tǒng)中各個存儲節(jié)點(diǎn)獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,增加了存儲系統(tǒng)分層存儲功能的實用性和可用性。需要說明的是,本存儲系統(tǒng)中,存儲控制服務(wù)器可以位于某個存儲節(jié)點(diǎn)中,也可以單獨(dú)位于一個功能實體中,而每個存儲節(jié)點(diǎn)中也可以單獨(dú)設(shè)置一個執(zhí)行器程序,用來與存儲控制服務(wù)器進(jìn)行信息交互,當(dāng)然也可以不設(shè)置該執(zhí)行器程序,而使存儲控制服務(wù)器與存儲節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序等進(jìn)行信息交互。
[0049]圖2為本發(fā)明實施例提供的一種冷熱數(shù)據(jù)識別門限值計算方法流程圖,該實施例的執(zhí)行主體是存儲控制服務(wù)器,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)和冷數(shù)據(jù)存儲介質(zhì),每個存儲節(jié)點(diǎn)中存儲有數(shù)據(jù)塊,該實施例詳細(xì)描述了存儲控制服務(wù)器確定整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值的方法,如圖所示,存儲控制服務(wù)器可執(zhí)行以下步驟:
[0050]步驟201,向所述多個存儲節(jié)點(diǎn)中的每個存儲節(jié)點(diǎn)發(fā)送IO統(tǒng)計信息查詢命令。
[0051]本發(fā)明實施例提供的存儲系統(tǒng)中,存儲控制服務(wù)器可以位于某個存儲節(jié)點(diǎn)中,也可以單獨(dú)位于一個功能實體中,而每個存儲節(jié)點(diǎn)中也可以單獨(dú)設(shè)置一個分層存儲執(zhí)行器程序,用來與存儲控制服務(wù)器進(jìn)行通信,當(dāng)然也可以不設(shè)置該執(zhí)行器程序,而使存儲控制服務(wù)器與存儲節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序等進(jìn)行通信。
[0052]本發(fā)明實施例以每個存儲節(jié)點(diǎn)中沒有設(shè)置分層存儲執(zhí)行器的存儲系統(tǒng)為例,來描述本發(fā)明的技術(shù)方案,但是本發(fā)明實施例提供的技術(shù)方案同樣適用于上述設(shè)置有分層存儲執(zhí)行器的存儲系統(tǒng)。
[0053]存儲控制服務(wù)器與存儲系統(tǒng)組網(wǎng)后,存儲控制服務(wù)器可以與存儲系統(tǒng)中各個存儲節(jié)點(diǎn)上的分級存儲執(zhí)行器進(jìn)行通信。存儲控制服務(wù)器自行確定時機(jī)向分級存儲執(zhí)行器發(fā)送IO統(tǒng)計信息查詢命令,進(jìn)而根據(jù)各個存儲節(jié)點(diǎn)反饋的IO統(tǒng)計信息確定整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別標(biāo)準(zhǔn)。
[0054]分級存儲執(zhí)行器程序、數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序都在一個存儲節(jié)點(diǎn)內(nèi)工作,與其他存儲節(jié)點(diǎn)沒有聯(lián)系。某個存儲節(jié)點(diǎn)收到主機(jī)10,不需要轉(zhuǎn)發(fā)到其他存儲節(jié)點(diǎn),直接會被本存儲節(jié)點(diǎn)上的數(shù)據(jù)監(jiān)控程序攔截并生成相應(yīng)的監(jiān)控信息,因此數(shù)據(jù)的分層存儲效率提高了很多。
[0055]步驟202,接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0056]其中,IO統(tǒng)計信息包括多個字段,每個字段包括有至少一個字段值,其中每個字段可以以一個數(shù)組的形式實現(xiàn),每個字段值即為該數(shù)據(jù)組中的每個數(shù)組元素;每個字段還可以以表格的形式實現(xiàn),每個字段值即為表格每個單元格的內(nèi)容,圖4為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)的數(shù)據(jù)統(tǒng)計結(jié)果示意圖,圖4給出的是表格形式的統(tǒng)計結(jié)果。
[0057]各個存儲節(jié)點(diǎn)中的存儲控制服務(wù)器接收到IO統(tǒng)計信息查詢命令后,可以通知數(shù)據(jù)監(jiān)控程序?qū)ΡO(jiān)控到的主機(jī)IO信息進(jìn)行分段統(tǒng)計,從而生成一個數(shù)據(jù)量較小的統(tǒng)計結(jié)果,即IO統(tǒng)計信息,這個信息可以反應(yīng)出本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況。
[0058]具體地,存儲節(jié)點(diǎn)可以根據(jù)監(jiān)控信息中的IO計數(shù)、順序度分別進(jìn)行統(tǒng)計,得到本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況,下面以字段以數(shù)組的形式實現(xiàn)為例,描述由監(jiān)控信息中數(shù)據(jù)塊的IO計數(shù)來得到統(tǒng)計信息中的IO計數(shù)字段值的過程:
[0059]存儲節(jié)點(diǎn)中每個數(shù)據(jù)塊的最大IO計數(shù)值為M,在分段統(tǒng)計時可以創(chuàng)建一個元素個數(shù)為M的數(shù)組Array (具體實現(xiàn)方式不限),遍歷存儲節(jié)點(diǎn)的監(jiān)控信息,例如存儲節(jié)點(diǎn)中IO計數(shù)為I的數(shù)據(jù)塊的個數(shù)為NI,則把Array [O]賦值為NI,存儲節(jié)點(diǎn)中IO計數(shù)為2的數(shù)據(jù)塊
的個數(shù)為N2,則把Array [2-1]賦值為N2,......存儲節(jié)點(diǎn)中IO計數(shù)為η的數(shù)據(jù)塊的個數(shù)
為Νη,則把Array [η-1]賦值為Νη,......存儲節(jié)點(diǎn)中IO計數(shù)為M的數(shù)據(jù)塊的個數(shù)為Nm,
則把Array[M-l]賦值為Nm。這樣遍歷完一遍之后,數(shù)組Array中記錄的每個值就可以反映存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0060]其中,存儲系統(tǒng)中某些數(shù)據(jù)塊可能非常熱,IO計數(shù)值很大,即M是一個很大的值,由于資源的限制和計算的性能限制,創(chuàng)建一個元素個數(shù)為M的數(shù)組Array不太合適??梢詫⑸厦娴乃惴ǜ倪M(jìn)一下,具體如下:
[0061]存儲節(jié)點(diǎn)在獲取統(tǒng)計信息數(shù)組Array時,數(shù)組的每個元素可以對應(yīng)一個IO計數(shù)區(qū)間,即IO計數(shù)值在某個范圍的IO計數(shù)值對應(yīng)一個數(shù)組元素,這個范圍的大小可以依據(jù)存儲系統(tǒng)中最大IO計數(shù)值M和數(shù)組Array的元素個數(shù)N確定,IO計數(shù)區(qū)間大小為M/N,記為T (英文interval的縮寫)。數(shù)組每個元素對應(yīng)大小為T的IO計數(shù)區(qū)間,即元素Array[0]記錄IO計數(shù)在[1,T)之間的數(shù)據(jù)塊的個數(shù),元素Array[l]記錄IO計數(shù)在[T,2T)之間的
數(shù)據(jù)塊的個數(shù),......,元素Array [Ν-1]記錄IO計數(shù)在[(N_l) *T,N*T)之間的數(shù)據(jù)塊的個
數(shù)。這樣遍歷完一遍監(jiān)控信息后,就可以用數(shù)組Array反映出存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0062]上述為IO計數(shù)字段每個值的計算方法,其中,順序度字段、IO讀寫比例也可以使用上述方法來統(tǒng)計并得到對應(yīng)的各個值。
[0063]在計算IO計數(shù)字段的各個值時,可以結(jié)合IO讀寫比例進(jìn)行計算,例如,如果某個數(shù)據(jù)塊的寫數(shù)據(jù)消耗是讀數(shù)據(jù)消耗是P倍,則可以將IO訪問次數(shù)按照讀寫比例算出等價的讀IO次數(shù),并且在后面計算門限值時使用這個等價的IO次數(shù)進(jìn)行計算。當(dāng)然,也可以不考慮讀寫比例因素,而只是單純的按照IO訪問次數(shù)來計算IO計數(shù)字段的各個值。
[0064]由此得到IO統(tǒng)計信息之后,可將IO統(tǒng)計信息以圖4所述的形式發(fā)送到存儲控制服務(wù)器。
[0065]步驟203,對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值。
[0066]存儲控制服務(wù)器接收到各個存儲節(jié)點(diǎn)的IO統(tǒng)計信息之后,即可對各個節(jié)點(diǎn)的統(tǒng)計信息進(jìn)行合并,并計算出整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值。
[0067]具體地,合并各個存儲節(jié)點(diǎn)的統(tǒng)計信息得到整個存儲系統(tǒng)的IO統(tǒng)計信息的方法為:存儲控制服務(wù)器可以把所有存儲節(jié)點(diǎn)返回的數(shù)組Array進(jìn)行合并,合并過程為創(chuàng)建一個總的元素個數(shù)為M的數(shù)組CArray。CArray每個元素的值為各個存儲節(jié)點(diǎn)返回的Array的對應(yīng)元素的值的和。需要說明的是,這里只是以IO計數(shù)統(tǒng)計的一個簡單示例進(jìn)行描述,CArray元素的值的如何由多個Array生成,由實現(xiàn)者依據(jù)具體需要來定。
[0068]步驟204,根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?、所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
[0069]識別數(shù)據(jù)冷熱的目的,就是把熱數(shù)據(jù)遷到高性能層級,把冷數(shù)據(jù)放到低性能層級,如果高性能層級的容量可以存放X個數(shù)據(jù)塊,那么通過門限值識別出最熱的X個數(shù)據(jù)塊放入熱數(shù)據(jù)存儲介質(zhì),其他的數(shù)據(jù)塊放入冷數(shù)據(jù)存儲介質(zhì)。因此可以查詢高性能層級的容量和可以容納的數(shù)據(jù)塊的大小,計算出高性能層級可以存放多個數(shù)據(jù)塊。
[0070]其中,數(shù)據(jù)的冷熱主要可以通過IO計數(shù)值的大小來衡量,高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊為熱數(shù)據(jù)塊,非高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊為冷數(shù)據(jù)快。
[0071]但是在實際實現(xiàn)中,存儲系統(tǒng)中數(shù)據(jù)的冷熱不局限于通過IO計數(shù)值來衡量,可以是多項IO參數(shù)值的復(fù)合體。例如IO計數(shù)門限值可以和上文中的順序度值合在一起做為一個確定數(shù)據(jù)冷熱的標(biāo)準(zhǔn)。
[0072]在上文中總的統(tǒng)計信息CArray中按下標(biāo)從大到小的順序遍歷數(shù)組,就能找到一
個下標(biāo) Index,使得 CArray [Index] +CArray [Index+1] +......+CArray [Μ-1]的和等于 X,那
么下標(biāo)Index對應(yīng)的IO計數(shù)值就可以作為高IO計數(shù)統(tǒng)計值中的最小IO計數(shù)統(tǒng)計值,即作為冷熱數(shù)據(jù)識別門限值。如果·一個數(shù)組元素對應(yīng)一個IO計數(shù)區(qū)間,那么按照上面最小IO計數(shù)統(tǒng)計值的確定方法確定最小IO計數(shù)值,只能確定最小IO計數(shù)統(tǒng)計值對應(yīng)的IO計數(shù)區(qū)間,而不能確定到一個具體值,例如只能確定IO計數(shù)門限值在IO計數(shù)區(qū)間[T,2T),而不能確定具體值。為了確定最小IO計數(shù)統(tǒng)計值,需要再創(chuàng)建一個數(shù)組Array2 (Array2的一個元素對應(yīng)區(qū)間[T,2T)的一個子區(qū)間),把監(jiān)控計數(shù)在區(qū)間[Τ,2Τ)中數(shù)據(jù)塊的個數(shù)統(tǒng)計到Array2中。如果結(jié)合Array和Array2依然不能精確確定門限值,貝U可以繼續(xù)創(chuàng)建新的數(shù)組做更細(xì)的分段統(tǒng)計,直到可以精確確定最小IO計數(shù)統(tǒng)計值。
[0073]對應(yīng)的,分層存儲控制中心進(jìn)行分段統(tǒng)計合并時,只合并存儲節(jié)點(diǎn)返回的數(shù)組
Array不夠,需要合并數(shù)組序列Array、Array2、Array3.......最終用合并后的數(shù)組序列確
定整個存儲系統(tǒng)的冷熱識別門限值。
[0074]本發(fā)明實施例提供的方法還包括::對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值。
[0075]由于不同屬性的存儲介質(zhì)對IO順序度值有不同的要求,因此可以首先根據(jù)存儲系統(tǒng)的存儲介質(zhì)的屬性信息來確定順序度門限值,即根據(jù)存儲系統(tǒng)中各種類型的存儲介質(zhì)的大小來確定順序度值高于哪個值時可以將數(shù)據(jù)放入熱數(shù)據(jù)存儲介質(zhì)。如果本存儲系統(tǒng)的固態(tài)硬盤比較大,則可以將順序度門限值設(shè)置的低一些。
[0076]使用IO計數(shù)值來衡量數(shù)據(jù)的冷熱是非常直接的衡量標(biāo)準(zhǔn),IO計數(shù)門限值是判斷數(shù)據(jù)冷熱的標(biāo)準(zhǔn)。如果IO計數(shù)門限值是IO計數(shù)值T,則某一個IO計數(shù)值大于T的數(shù)據(jù)塊為熱數(shù)據(jù),應(yīng)該放到熱數(shù)據(jù)存儲介質(zhì)中,如果某個數(shù)據(jù)塊的IO計數(shù)值小于T,則認(rèn)為該數(shù)據(jù)塊為冷數(shù)據(jù),應(yīng)該放到冷數(shù)據(jù)存儲介質(zhì)。
[0077]存儲控制服務(wù)器把計算得出的冷熱數(shù)據(jù)識別門限值發(fā)送至各個存儲節(jié)點(diǎn)的分層存儲執(zhí)行器,并向分層存儲執(zhí)行器下發(fā)冷熱數(shù)據(jù)識別和數(shù)據(jù)遷移的命令。分層存儲執(zhí)行器把接收到的門限值傳輸至本存儲節(jié)點(diǎn)的數(shù)據(jù)冷熱識別程序,數(shù)據(jù)冷熱識別程序依據(jù)門限值分析本地主機(jī)的監(jiān)控信息,進(jìn)而識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)。然后分層存儲執(zhí)行器通知數(shù)據(jù)遷移程序把熱數(shù)據(jù)遷往熱數(shù)據(jù)存儲介質(zhì),把冷數(shù)據(jù)遷往冷數(shù)據(jù)存儲介質(zhì)。
[0078]其中,數(shù)據(jù)遷移可以在本存儲節(jié)點(diǎn)內(nèi)進(jìn)行,也可以在整個存儲系統(tǒng)內(nèi)進(jìn)行。
[0079]由此,本發(fā)明實施例通過對存儲系統(tǒng)中的某個時間段內(nèi)的各個存儲節(jié)點(diǎn)的監(jiān)控信息進(jìn)行統(tǒng)計、計算,可以得出整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,從而實現(xiàn)存儲系統(tǒng)中各個存儲節(jié)點(diǎn)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),能獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0080]圖3為本發(fā)明實施例提供的另一冷熱數(shù)據(jù)識別門限值計算方法流程圖,本發(fā)明實施例的執(zhí)行主體是存儲節(jié)點(diǎn),存儲節(jié)點(diǎn)和存儲控制服務(wù)器連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,每個存儲節(jié)點(diǎn)執(zhí)行以下步驟:,如圖所示,存儲節(jié)點(diǎn)執(zhí)行以下步驟:
[0081]步驟301,接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令。
[0082]本發(fā)明實施例提供的存儲系統(tǒng)中,存儲控制服務(wù)器可以位于某個存儲節(jié)點(diǎn)中,也可以單獨(dú)位于一個功能實體中,而每個存儲節(jié)點(diǎn)中也可以單獨(dú)設(shè)置一個分層存儲執(zhí)行器程序,用來與存儲控制服務(wù)器進(jìn)行通信,當(dāng)然也可以不設(shè)置該執(zhí)行器程序,而使存儲控制服務(wù)器與存儲節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序等進(jìn)行通信。
[0083]本發(fā)明實施例以每個存儲節(jié)點(diǎn)中沒有設(shè)置分層存儲執(zhí)行器的存儲系統(tǒng)為例,來描述本發(fā)明的技術(shù)方案,但是本發(fā)明實施例提供的技術(shù)方案同樣適用于設(shè)置了分層存儲執(zhí)行器的存儲系統(tǒng)。
[0084]為了實現(xiàn)整個存儲系統(tǒng)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),存儲控制服務(wù)器與存儲系統(tǒng)組網(wǎng)后,存儲控制服務(wù)器可以與存儲系統(tǒng)中各個存儲節(jié)點(diǎn)上的分級存儲執(zhí)行器進(jìn)行通信,并自行確定時機(jī)向分級存儲執(zhí)行器發(fā)送IO統(tǒng)計信息查詢命令,以獲取各個存儲節(jié)點(diǎn)的主機(jī)IO統(tǒng)計信息,由此存儲節(jié)點(diǎn)可以接收到IO統(tǒng)計信息查詢命令。
[0085]步驟302,根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)
字段值。
[0086]各個存儲節(jié)點(diǎn)中的存儲控制服務(wù)器接收到IO統(tǒng)計信息查詢命令后,可以通知數(shù)據(jù)監(jiān)控程序?qū)ΡO(jiān)控到的主機(jī)IO信息進(jìn)行分段統(tǒng)計,從而生成一個數(shù)據(jù)量較小的統(tǒng)計結(jié)果,即IO統(tǒng)計信息,IO統(tǒng)計信息包括多個字段,每個字段包括有至少一個字段值,其中每個字段可以以一個數(shù)組的形式實現(xiàn),每個字段值即為該數(shù)據(jù)組中的每個數(shù)組元素;每個字段還可以以表格的形式實現(xiàn),每個字段值即為表格每個單元格的內(nèi)容,圖4為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)的數(shù)據(jù)統(tǒng)計結(jié)果示意圖,圖4給出的是表格形式的統(tǒng)計結(jié)果,這個信息可以反應(yīng)出本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況。具體地,存儲節(jié)點(diǎn)可以根據(jù)監(jiān)控信息中的IO計數(shù)、順序度分別進(jìn)行統(tǒng)計,得到本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況,下面以字段以數(shù)組的形式實現(xiàn)為例,描述由監(jiān)控信息中數(shù)據(jù)塊的IO計數(shù)來得到統(tǒng)計信息中的IO計數(shù)字段值的過程:
[0087]存儲節(jié)點(diǎn)中每個數(shù)據(jù)塊的最大IO計數(shù)值為M,在分段統(tǒng)計時可以創(chuàng)建一個元素個數(shù)為M的數(shù)組Array (具體實現(xiàn)方式不限),遍歷存儲節(jié)點(diǎn)的監(jiān)控信息,例如存儲節(jié)點(diǎn)中IO計數(shù)為I的數(shù)據(jù)塊的個數(shù)為NI,則把Array [O]賦值為NI,存儲節(jié)點(diǎn)中IO計數(shù)為2的數(shù)據(jù)塊
的個數(shù)為N2,則把Array [2-1]賦值為N2,......存儲節(jié)點(diǎn)中IO計數(shù)為η的數(shù)據(jù)塊的個數(shù)
為Νη,則把Array [η-1]賦值為Νη,......存儲節(jié)點(diǎn)中IO計數(shù)為M的數(shù)據(jù)塊的個數(shù)為Nm,
則把Array[M-l]賦值為Nm。這樣遍歷完一遍之后,數(shù)組Array中記錄的每個值就可以反映存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0088]其中,存儲系統(tǒng)中某些數(shù)據(jù)塊可能非常熱,IO計數(shù)值很大,即M是一個很大的值,由于資源的限制和計算的性能限制,創(chuàng)建一個元素個數(shù)為M的數(shù)組Array不太合適。可以將上面的算法改進(jìn)一下,具體如下:
[0089]存儲節(jié)點(diǎn)在獲取統(tǒng)計信息數(shù)組Array時,數(shù)組的每個元素可以對應(yīng)一個IO計數(shù)區(qū)間,即IO計數(shù)值在某個范圍的IO計數(shù)值對應(yīng)一個數(shù)組元素,這個范圍的大小可以依據(jù)存儲系統(tǒng)中最大IO計數(shù)值M和數(shù)組Array的元素個數(shù)N確定,IO計數(shù)區(qū)間大小為M/N,記為T(英文interval的縮寫)。數(shù)組每個元素對應(yīng)大小為T的IO計數(shù)區(qū)間,即元素Array[0]記錄IO計數(shù)在[1,T)之間的數(shù)據(jù)塊的個數(shù),元素Array[l]記錄IO計數(shù)在[T,2T)之間的
數(shù)據(jù)塊的個數(shù),......,元素Array[N-l]記錄IO計數(shù)在[(N_l) *T,N*T)之間的數(shù)據(jù)塊的個
數(shù)。這樣遍歷完一遍監(jiān)控信息后,就可以用數(shù)組Array反映出存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0090]其中,順序度也可以使用上述方法進(jìn)行統(tǒng)計,并得到順序度的一個統(tǒng)計數(shù)組。
[0091]其中,在統(tǒng)計IO計數(shù)值時,還可以結(jié)合IO讀寫比例進(jìn)行計算,例如,如果某個數(shù)據(jù)塊的寫數(shù)據(jù)消耗是讀數(shù)據(jù)消耗是P倍,則可以將IO訪問次數(shù)按照讀寫比例算出等價的讀IO次數(shù),并且在后面計算門限值時使用這個等價的IO次數(shù)進(jìn)行計算。當(dāng)然,也可以不考慮讀寫比例因素,而只是單純的按照IO訪問次數(shù)來計算IO計數(shù)字段的各個值,即得到數(shù)據(jù)塊的等價IO計數(shù)。
[0092]步驟303,向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值。
[0093]得到IO統(tǒng)計信息,存儲節(jié)點(diǎn)可以通過所包括的分層存儲執(zhí)行器將IO統(tǒng)計信息發(fā)送至存儲控制服務(wù)器。
[0094]步驟304,接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
[0095]存儲節(jié)點(diǎn)將接收到的門限值傳輸至本存儲節(jié)點(diǎn)的數(shù)據(jù)冷熱識別程序,數(shù)據(jù)冷熱識別程序依據(jù)門限值分析本地主機(jī)的監(jiān)控信息,進(jìn)而識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)。然后分層存儲執(zhí)行器通知數(shù)據(jù)遷移程序把熱點(diǎn)數(shù)據(jù)遷往高性能層級,把冷點(diǎn)數(shù)據(jù)遷往低性能層級。
[0096]由此,本發(fā)明實施例可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0097]相應(yīng)地,本發(fā)明實施例還提供了一種存儲控制服務(wù)器,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,圖5為本發(fā)明實施例提供的一種存儲控制服務(wù)器示意圖,如圖所示,該實施例包括以下功能單元:
[0098]發(fā)送單元501,用于向所述多個存儲節(jié)點(diǎn)中的每個存儲節(jié)點(diǎn)發(fā)送IO統(tǒng)計信息查詢命令。
[0099]本發(fā)明實施例提供的存儲系統(tǒng)中,存儲控制服務(wù)器可以位于某個存儲節(jié)點(diǎn)中,也可以單獨(dú)位于一個功能實體中,而每個存儲節(jié)點(diǎn)中也可以單獨(dú)設(shè)置一個分層存儲執(zhí)行器程序,用來與存儲控制服務(wù)器進(jìn)行通信,當(dāng)然也可以不設(shè)置該執(zhí)行器程序,而使存儲控制服務(wù)器與存儲節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序等進(jìn)行通信。
[0100]本發(fā)明實施例以每個存儲節(jié)點(diǎn)中沒有設(shè)置分層存儲執(zhí)行器的存儲系統(tǒng)為例,來描述本發(fā)明的技術(shù)方案,但是本發(fā)明實施例提供的技術(shù)方案同樣適用于上述設(shè)置有分層存儲執(zhí)行器的存儲系統(tǒng)。
[0101]存儲控制服務(wù)器與存儲系統(tǒng)組網(wǎng)后,存儲控制服務(wù)器可以與存儲系統(tǒng)中各個存儲節(jié)點(diǎn)上的分級存儲執(zhí)行器進(jìn)行通信。存儲控制服務(wù)器自行確定時機(jī)向分級存儲執(zhí)行器發(fā)送IO統(tǒng)計信息查詢命令,進(jìn)而根據(jù)各個存儲節(jié)點(diǎn)反饋的IO統(tǒng)計信息確定整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別標(biāo)準(zhǔn)。
[0102]分級存儲執(zhí)行器程序、數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序都在一個存儲節(jié)點(diǎn)內(nèi)工作,與其他存儲節(jié)點(diǎn)沒有聯(lián)系。某個存儲節(jié)點(diǎn)收到主機(jī)10,不需要轉(zhuǎn)發(fā)到其他存儲節(jié)點(diǎn),直接會被本存儲節(jié)點(diǎn)上的數(shù)據(jù)監(jiān)控程序攔截并生成相應(yīng)的監(jiān)控信息,因此數(shù)據(jù)的分層存儲效率提高了很多。
[0103]接收單元502,用于接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0104]其中,IO統(tǒng)計信息包括多個字段,每個字段包括有至少一個字段值,其中每個字段可以以一個數(shù)組的形式實現(xiàn),每個字段值即為該數(shù)據(jù)組中的每個數(shù)組元素;每個字段還可以以表格的形式實現(xiàn),每個字段值即為表格每個單元格的內(nèi)容,圖4為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)的數(shù)據(jù)統(tǒng)計結(jié)果示意圖,圖4給出的是表格形式的統(tǒng)計結(jié)果。
[0105]各個存儲節(jié)點(diǎn)中的存儲控制服務(wù)器接收到IO統(tǒng)計信息查詢命令后,可以通知數(shù)據(jù)監(jiān)控程序?qū)ΡO(jiān)控到的主機(jī)IO信息進(jìn)行分段統(tǒng)計,從而生成一個數(shù)據(jù)量較小的統(tǒng)計結(jié)果,即IO統(tǒng)計信息,這個信息可以反應(yīng)出本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況。
[0106]具體地,存儲節(jié)點(diǎn)可以根據(jù)監(jiān)控信息中的IO計數(shù)、順序度分別進(jìn)行統(tǒng)計,得到本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況,下面以字段以數(shù)組的形式實現(xiàn)為例,描述由監(jiān)控信息中數(shù)據(jù)塊的IO計數(shù)來得到統(tǒng)計信息中的IO計數(shù)字段值的過程:
[0107]存儲節(jié)點(diǎn)中每個數(shù)據(jù)塊的最大IO計數(shù)值為M,在分段統(tǒng)計時可以創(chuàng)建一個元素個數(shù)為M的數(shù)組Array (具體實現(xiàn)方式不限),遍歷存儲節(jié)點(diǎn)的監(jiān)控信息,例如存儲節(jié)點(diǎn)中IO計數(shù)為I的數(shù)據(jù)塊的個數(shù)為NI,則把Array [O]賦值為NI,存儲節(jié)點(diǎn)中IO計數(shù)為2的數(shù)據(jù)塊的個數(shù)為N2,則把Array [2-1]賦值為N2,......存儲節(jié)點(diǎn)中IO計數(shù)為η的數(shù)據(jù)塊的個數(shù)為Nn,則把Array [n-1]賦值為Nn,......存儲節(jié)點(diǎn)中IO計數(shù)為M的數(shù)據(jù)塊的個數(shù)為Nm,
則把Array[M-l]賦值為Nm。這樣遍歷完一遍之后,數(shù)組Array中記錄的每個值就可以反映存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0108]其中,存儲系統(tǒng)中某些數(shù)據(jù)塊可能非常熱,IO計數(shù)值很大,即M是一個很大的值,由于資源的限制和計算的性能限制,創(chuàng)建一個元素個數(shù)為M的數(shù)組Array不太合適??梢詫⑸厦娴乃惴ǜ倪M(jìn)一下,具體如下:
[0109]存儲節(jié)點(diǎn)在獲取統(tǒng)計信息數(shù)組Array時,數(shù)組的每個元素可以對應(yīng)一個IO計數(shù)區(qū)間,即IO計數(shù)值在某個范圍的IO計數(shù)值對應(yīng)一個數(shù)組元素,這個范圍的大小可以依據(jù)存儲系統(tǒng)中最大IO計數(shù)值M和數(shù)組Array的元素個數(shù)N確定,IO計數(shù)區(qū)間大小為M/N,記為T(英文interval的縮寫)。數(shù)組每個元素對應(yīng)大小為T的IO計數(shù)區(qū)間,即元素Array[0]記錄IO計數(shù)在[1,T)之間的數(shù)據(jù)塊的個數(shù),元素Array[l]記錄IO計數(shù)在[T,2T)之間的
數(shù)據(jù)塊的個數(shù),......,元素Array [Ν-1]記錄IO計數(shù)在[(N_l) *T,N*T)之間的數(shù)據(jù)塊的個
數(shù)。這樣遍歷完一遍監(jiān)控信息后,就可以用數(shù)組Array反映出存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0110]上述為IO計數(shù)字段每個值的計算方法,其中,順序度字段、IO讀寫比例也可以使用上述方法來統(tǒng)計并得到對應(yīng)的各個值。
[0111]在計算IO計數(shù)字段的各個值時,可以結(jié)合IO讀寫比例進(jìn)行計算,例如,如果某個數(shù)據(jù)塊的寫數(shù)據(jù)消耗是讀數(shù)據(jù)消耗是P倍,則可以將IO訪問次數(shù)按照讀寫比例算出等價的讀IO次數(shù),并且在后面計算門限值時使用這個等價的IO次數(shù)進(jìn)行計算。當(dāng)然,也可以不考慮讀寫比例因素,而只是單純的按照IO訪問次數(shù)來計算IO計數(shù)字段的各個值。
[0112]由此得到IO統(tǒng)計信息之后,可將IO統(tǒng)計信息以圖4所述的形式發(fā)送到存儲控制服務(wù)器。
[0113]生成單元503,用于對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中IO計數(shù)值相同或者IO計數(shù)值在一個計數(shù)范圍內(nèi)的IO字段值進(jìn)行加運(yùn)算,生成所述存儲系統(tǒng)的IO統(tǒng)計信息中的IO計數(shù)值統(tǒng)計信息。
[0114]存儲控制服務(wù)器接收到各個存儲節(jié)點(diǎn)的IO統(tǒng)計信息之后,即可對各個節(jié)點(diǎn)的統(tǒng)計信息進(jìn)行合并,并計算出整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值。
[0115]具體地,合并各個存儲節(jié)點(diǎn)的統(tǒng)計信息得到整個存儲系統(tǒng)的IO統(tǒng)計信息的方法為:存儲控制服務(wù)器可以把所有存儲節(jié)點(diǎn)返回的數(shù)組Array進(jìn)行合并,合并過程為創(chuàng)建一個總的元素個數(shù)為M的數(shù)組CArray。CArray每個元素的值為各個存儲節(jié)點(diǎn)返回的Array的對應(yīng)元素的值的和。需要說明的是,這里只是以IO計數(shù)統(tǒng)計的一個簡單示例進(jìn)行描述,CArray元素的值的如何由多個Array生成,由實現(xiàn)者依據(jù)具體需要來定。
[0116]確定單元504,用于根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?、所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
[0117]識別數(shù)據(jù)冷熱的目的,就是把熱數(shù)據(jù)遷到高性能層級,把冷數(shù)據(jù)放到低性能層級,如果高性能層級的容量可以存放X個數(shù)據(jù)塊,那么通過門限值識別出最熱的X個數(shù)據(jù)塊放入熱數(shù)據(jù)存儲介質(zhì),其他的數(shù)據(jù)塊放入冷數(shù)據(jù)存儲介質(zhì)。因此可以查詢高性能層級的容量和可以容納的數(shù)據(jù)塊的大小,計算出高性能層級可以存放多個數(shù)據(jù)塊。
[0118]其中,數(shù)據(jù)的冷熱主要可以通過IO計數(shù)值的大小來衡量,高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊為熱數(shù)據(jù)塊,非高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊為冷數(shù)據(jù)快。
[0119]但是在實際實現(xiàn)中,存儲系統(tǒng)中數(shù)據(jù)的冷熱不局限于通過IO計數(shù)值來衡量,可以是多項IO參數(shù)值的復(fù)合體。例如IO計數(shù)門限值可以和上文中的順序度值合在一起做為一個確定數(shù)據(jù)冷熱的標(biāo)準(zhǔn)。
[0120]在上文中總的統(tǒng)計信息CArray中按下標(biāo)從大到小的順序遍歷數(shù)組,就能找到一
個下標(biāo) Index,使得 CArray [Index] +CArray [Index+1] +......+CArray [Μ-1]的和等于 X,那
么下標(biāo)Index對應(yīng)的IO計數(shù)值就可以作為高IO計數(shù)統(tǒng)計值中的最小IO計數(shù)統(tǒng)計值,即作為冷熱數(shù)據(jù)識別門限值。如果一個數(shù)組元素對應(yīng)一個IO計數(shù)區(qū)間,那么按照上面最小IO計數(shù)統(tǒng)計值的確定方法確定最小IO計數(shù)值,只能確定最小IO計數(shù)統(tǒng)計值對應(yīng)的IO計數(shù)區(qū)間,而不能確定到一個具體值,例如只能確定IO計數(shù)門限值在IO計數(shù)區(qū)間[T,2T),而不能確定具體值。為了確定最小IO計數(shù)統(tǒng)計值,需要再創(chuàng)建一個數(shù)組Array2 (Array2的一個元素對應(yīng)區(qū)間[T,2T)的一個子區(qū)間),把監(jiān)控計數(shù)在區(qū)間[Τ,2Τ)中數(shù)據(jù)塊的個數(shù)統(tǒng)計到Array2中。如果結(jié)合Array和Array2依然不能精確確定門限值,貝U可以繼續(xù)創(chuàng)建新的數(shù)組做更細(xì)的分段統(tǒng)計,直到可以精確確定最小IO計數(shù)統(tǒng)計值。
[0121]對應(yīng)的,分層存儲控制中心進(jìn)行分段統(tǒng)計合并時,只合并存儲節(jié)點(diǎn)返回的數(shù)組
Array不夠,需要合并數(shù)組序列Array、Array2、Array3.......最終用合并后的數(shù)組序列確
定整個存儲系統(tǒng)的冷熱識別門限值。
[0122]本發(fā)明實施例提供的方法還包括::對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值。
[0123]由于不同屬性的存儲介質(zhì)對IO順序度值有不同的要求,因此可以首先根據(jù)存儲系統(tǒng)的存儲介質(zhì)的屬性信息來確定順序度門限值,即根據(jù)存儲系統(tǒng)中各種類型的存儲介質(zhì)的大小來確定順序度值高于哪個值時可以將數(shù)據(jù)放入熱數(shù)據(jù)存儲介質(zhì)。如果本存儲系統(tǒng)的固態(tài)硬盤比較大,則可以將順序度門限值設(shè)置的低一些。
[0124]使用IO計數(shù)值來衡量數(shù)據(jù)的冷熱是非常直接的衡量標(biāo)準(zhǔn),IO計數(shù)門限值是判斷數(shù)據(jù)冷熱的標(biāo)準(zhǔn)。如果IO計數(shù)門限值是IO計數(shù)值T,則某一個IO計數(shù)值大于T的數(shù)據(jù)塊為熱數(shù)據(jù),應(yīng)該放到熱數(shù)據(jù)存儲介質(zhì)中,如果某個數(shù)據(jù)塊的IO計數(shù)值小于T,則認(rèn)為該數(shù)據(jù)塊為冷數(shù)據(jù),應(yīng)該放到冷數(shù)據(jù)存儲介質(zhì)。
[0125]存儲控制服務(wù)器把計算得出的冷熱數(shù)據(jù)識別門限值發(fā)送至各個存儲節(jié)點(diǎn)的分層存儲執(zhí)行器,并向分層存儲執(zhí)行器下發(fā)冷熱數(shù)據(jù)識別和數(shù)據(jù)遷移的命令。分層存儲執(zhí)行器把接收到的門限值傳輸至本存儲節(jié)點(diǎn)的數(shù)據(jù)冷熱識別程序,數(shù)據(jù)冷熱識別程序依據(jù)門限值分析本地主機(jī)的監(jiān)控信息,進(jìn)而識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)。然后分層存儲執(zhí)行器通知數(shù)據(jù)遷移程序把熱數(shù)據(jù)遷往熱數(shù)據(jù)存儲介質(zhì),把冷數(shù)據(jù)遷往冷數(shù)據(jù)存儲介質(zhì)。
[0126]其中,數(shù)據(jù)遷移可以在本存儲節(jié)點(diǎn)內(nèi)進(jìn)行,也可以在整個存儲系統(tǒng)內(nèi)進(jìn)行。
[0127]優(yōu)選地,所述生成單元50 3還用于:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值。
[0128]所述確定單元504具體用于:根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?,所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
[0129]由此,本發(fā)明實施例通過對存儲系統(tǒng)中的某個時間段內(nèi)的各個存儲節(jié)點(diǎn)的監(jiān)控信息進(jìn)行統(tǒng)計、計算,可以得出整個存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,從而實現(xiàn)存儲系統(tǒng)中各個存儲節(jié)點(diǎn)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),能獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0130]圖6為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)示意圖,多個存儲節(jié)點(diǎn)和存儲控制服務(wù)器連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,如圖所示,本發(fā)明實施例提供的存儲節(jié)點(diǎn)包括以下功能單元:
[0131]接收單元601,用于接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令。
[0132]為了實現(xiàn)整個存儲系統(tǒng)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),存儲控制服務(wù)器與存儲系統(tǒng)組網(wǎng)后,存儲控制服務(wù)器可以與存儲系統(tǒng)中各個存儲節(jié)點(diǎn)上的分級存儲執(zhí)行器進(jìn)行通信,并自行確定時機(jī)向分級存儲執(zhí)行器發(fā)送IO統(tǒng)計信息查詢命令,以獲取各個存儲節(jié)點(diǎn)的主機(jī)IO統(tǒng)計信息,由此存儲節(jié)點(diǎn)中的接收單元601可以接收到IO統(tǒng)計信息查詢命令。
[0133]統(tǒng)計單元602,用于根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值。
[0134]所述統(tǒng)計單元602具體用于:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
[0135]統(tǒng)計單元602統(tǒng)計得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值的過程具體包括:根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值;獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ;確定IO計數(shù)字段值的個數(shù)N ;對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍;統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
[0136]各個存儲節(jié)點(diǎn)中的存儲控制服務(wù)器接收到IO統(tǒng)計信息查詢命令后,可以通知數(shù)據(jù)監(jiān)控程序?qū)ΡO(jiān)控到的主機(jī)IO信息進(jìn)行分段統(tǒng)計,從而生成一個數(shù)據(jù)量較小的統(tǒng)計結(jié)果,即IO統(tǒng)計信息,IO統(tǒng)計信息包括多個字段,每個字段包括有至少一個字段值,其中每個字段可以以一個數(shù)組的形式實現(xiàn),每個字段值即為該數(shù)據(jù)組中的每個數(shù)組元素;每個字段還可以以表格的形式實現(xiàn),每個字段值即為表格每個單元格的內(nèi)容,圖4為本發(fā)明實施例提供的一種存儲節(jié)點(diǎn)的數(shù)據(jù)統(tǒng)計結(jié)果示意圖,圖4給出的是表格形式的統(tǒng)計結(jié)果,這個信息可以反應(yīng)出本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況。具體地,存儲節(jié)點(diǎn)可以根據(jù)監(jiān)控信息中的IO計數(shù)、順序度分別進(jìn)行統(tǒng)計,得到本存儲節(jié)點(diǎn)大致的冷熱數(shù)據(jù)分布情況,下面以字段以數(shù)組的形式實現(xiàn)為例,描述由監(jiān)控信息中數(shù)據(jù)塊的IO計數(shù)來得到統(tǒng)計信息中的IO計數(shù)字段值的過程:
[0137]存儲節(jié)點(diǎn)中每個數(shù)據(jù)塊的最大IO計數(shù)值為M,在分段統(tǒng)計時可以創(chuàng)建一個元素個數(shù)為M的數(shù)組Array (具體實現(xiàn)方式不限),遍歷存儲節(jié)點(diǎn)的監(jiān)控信息,例如存儲節(jié)點(diǎn)中IO計數(shù)為I的數(shù)據(jù)塊的個數(shù)為NI,則把Array [O]賦值為NI,存儲節(jié)點(diǎn)中IO計數(shù)為2的數(shù)據(jù)塊
的個數(shù)為N2,則把Array [2-1]賦值為N2,......存儲節(jié)點(diǎn)中IO計數(shù)為η的數(shù)據(jù)塊的個數(shù)
為Νη,則把Array [η-1]賦值為Nn,......存儲節(jié)點(diǎn)中IO計數(shù)為M的數(shù)據(jù)塊的個數(shù)為Nm,
則把Array[M-l]賦值為Nm。這樣遍歷完一遍之后,數(shù)組Array中記錄的每個值就可以反映存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0138]其中,存儲系統(tǒng)中某些數(shù)據(jù)塊可能非常熱,IO計數(shù)值很大,即M是一個很大的值,由于資源的限制和計算的性能限制,創(chuàng)建一個元素個數(shù)為M的數(shù)組Array不太合適??梢詫⑸厦娴乃惴ǜ倪M(jìn)一下,具體如下:
[0139]存儲節(jié)點(diǎn)在獲取統(tǒng)計信息數(shù)組Array時,數(shù)組的每個元素可以對應(yīng)一個IO計數(shù)區(qū)間,即IO計數(shù)值在某個范圍的IO計數(shù)值對應(yīng)一個數(shù)組元素,這個范圍的大小可以依據(jù)存儲系統(tǒng)中最大IO計數(shù)值M和數(shù)組Array的元素個數(shù)N確定,IO計數(shù)區(qū)間大小為M/N,記為T(英文interval的縮寫)。數(shù)組每個元素對應(yīng)大小為T的IO計數(shù)區(qū)間,即元素Array[0]記錄IO計數(shù)在[1,T)之間的數(shù)據(jù)塊的個數(shù),元素Array[l]記錄IO計數(shù)在[T,2T)之間的
數(shù)據(jù)塊的個數(shù),......,元素Array[N-l]記錄IO計數(shù)在[(N_l) *T,N*T)之間的數(shù)據(jù)塊的個
數(shù)。這樣遍歷完一遍監(jiān)控信息后,就可以用數(shù)組Array反映出存儲節(jié)點(diǎn)中數(shù)據(jù)冷熱分布情況。
[0140]其中,順序度也可以使用上述方法進(jìn)行統(tǒng)計,并得到順序度的一個統(tǒng)計數(shù)組。
[0141]其中,在統(tǒng)計IO計數(shù)值時,還可以結(jié)合IO讀寫比例進(jìn)行計算,例如,如果某個數(shù)據(jù)塊的寫數(shù)據(jù)消耗是讀數(shù)據(jù)消耗是P倍,則可以將IO訪問次數(shù)按照讀寫比例算出等價的讀IO次數(shù),并且在后面計算門限值時使用這個等價的IO次數(shù)進(jìn)行計算。當(dāng)然,也可以不考慮讀寫比例因素,而只是單純的按照IO訪問次數(shù)來計算IO計數(shù)字段的各個值,即得到數(shù)據(jù)塊的等價IO計數(shù)。
[0142]發(fā)送單元603,用于向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值。
[0143]所述接收單元601,還用于接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值
[0144]實現(xiàn)單元604,用于根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
[0145]存儲節(jié)點(diǎn)把接收到的門限值傳輸至本存儲節(jié)點(diǎn)的數(shù)據(jù)冷熱識別程序,數(shù)據(jù)冷熱識別程序依據(jù)門限值分析本地主機(jī)的監(jiān)控信息,進(jìn)而識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)。然后分層存儲執(zhí)行器通知數(shù)據(jù)遷移程序把熱點(diǎn)數(shù)據(jù)遷往高性能層級,把冷點(diǎn)數(shù)據(jù)遷往低性能層級。
[0146]由此,本發(fā)明實施例可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0147]相應(yīng)地,本發(fā)明實施例還提供了一種存儲控制服務(wù)器,圖7為本發(fā)明實施例提供的另一存儲控制服務(wù)器示意圖,如圖所示,本實施例包括網(wǎng)絡(luò)接口 701、處理器702和存儲器703。系統(tǒng)總線704用于連接網(wǎng)絡(luò)接口 701、處理器702和存儲器703。
[0148]網(wǎng)絡(luò)接口 701用于與存儲節(jié)點(diǎn)通信。[0149]存儲器703可以是永久存儲器,例如硬盤驅(qū)動器和閃存,存儲器703中具有應(yīng)用程序和設(shè)備驅(qū)動程序。應(yīng)用程序用來執(zhí)行本發(fā)明上述技術(shù)方案;設(shè)備驅(qū)動程序可以是網(wǎng)絡(luò)和接口驅(qū)動程序。
[0150]在啟動時,應(yīng)用程序被加載到存儲器703中,然后被處理器702訪問并執(zhí)行如下指令:
[0151]向每個所述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令;
[0152]接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù);
[0153]對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值;
[0154]根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊⑺鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
[0155]其中,IO統(tǒng)計信息還包括有至少一個順序度字段值,每個所述順序度字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0156]進(jìn)一步的,處理器702還可執(zhí)行指令:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值;
[0157]處理器702根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?,所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
[0158]由此,可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0159]相應(yīng)地,本發(fā)明實施例還提供了一種存儲節(jié)點(diǎn),圖8為本發(fā)明實施例提供的另一存儲節(jié)點(diǎn)示意圖,如圖所示,本實施例包括網(wǎng)絡(luò)接口 801、處理器802和存儲器803。系統(tǒng)總線804用于連接網(wǎng)絡(luò)接口 801、處理器802和存儲器803。
[0160]網(wǎng)絡(luò)接口 801用于與存儲節(jié)點(diǎn)通信。
[0161]存儲器803可以是永久存儲器,例如硬盤驅(qū)動器和閃存,存儲器803中具有應(yīng)用程序和設(shè)備驅(qū)動程序。應(yīng)用程序可包括分層存儲執(zhí)行器程序、數(shù)據(jù)監(jiān)控程序、數(shù)據(jù)冷熱識別程序、數(shù)據(jù)遷移程序等,用來執(zhí)行本發(fā)明上述技術(shù)方案;設(shè)備驅(qū)動程序可以是網(wǎng)絡(luò)和接口驅(qū)動程序。
[0162]在啟動時,應(yīng)用程序被加載到存儲器803中,然后被處理器802訪問并執(zhí)行如下指令:
[0163]接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令;
[0164]根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值;
[0165]向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值;
[0166]接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
[0167]其中,監(jiān)控信息還包括數(shù)據(jù)塊的IO順序度、或者數(shù)據(jù)塊的IO讀寫比例,其中,所述順序度為每個數(shù)據(jù)塊的順序IO計數(shù)占總的IO計數(shù)的比例,所述IO讀寫比例為每個數(shù)據(jù)塊的IO讀操作的次數(shù)與IO寫操作的次數(shù)的比例;所述IO統(tǒng)計信息還包括有至少一個順序度字段值,其中每個所述順序讀字段值記錄有本地存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
[0168]進(jìn)一步的,處理器802執(zhí)行對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值的過程具體包括:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
[0169]進(jìn)一步的,處理器802執(zhí)行對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值的過程具體為:
[0170]根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值;
[0171]獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ;
[0172]確定IO計數(shù)字段值的個數(shù)N ;
[0173]對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍;
[0174]統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
[0175]由此,本發(fā)明實施例可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。
[0176]相應(yīng)地,本發(fā)明實施例還提供了一種存儲系統(tǒng),該系統(tǒng)植入了本發(fā)明實施例的冷熱數(shù)據(jù)識別門限值計算方法,包括上述存儲控制服務(wù)器和多個存儲節(jié)點(diǎn),存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊。存儲控制服務(wù)器向每個所述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令;接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù);對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值;根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊⑺鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。由此,本發(fā)明實施例提供的存儲系統(tǒng)實現(xiàn)了存儲系統(tǒng)中各個存儲節(jié)點(diǎn)具有統(tǒng)一的冷熱識別標(biāo)準(zhǔn),能獨(dú)立但是協(xié)調(diào)地完成整個存儲系統(tǒng)的數(shù)據(jù)分層存儲,可以實現(xiàn)存儲系統(tǒng)中跨存儲節(jié)點(diǎn)進(jìn)行數(shù)據(jù)遷移,充分發(fā)揮整個存儲系統(tǒng)的所有高性能存儲介質(zhì)的性能優(yōu)勢,以較低的價格滿足存儲系統(tǒng)的性能和容量需求。因此,本發(fā)明實施例提供的存儲系統(tǒng)也在本發(fā)明實施例的保護(hù)范圍內(nèi)。
[0177]專業(yè)人員應(yīng)該還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0178]結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動存儲介質(zhì)、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0179]以上所述的【具體實施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,所述存儲控制服務(wù)器執(zhí)行以下步驟: 向每個所述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令; 接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù); 對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值; 根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊⑺鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
2.根據(jù)權(quán)利要求1所述的冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,所述IO統(tǒng)計信息還包括有至少一個順序度字段值,每個所述順序度字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
3.根據(jù)權(quán)利要求2所述的冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,所述方法還包括:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值; 所述根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘俊⑺鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值之前還包括具體為:根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?,所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
4.一種冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,每個存儲節(jié)點(diǎn)執(zhí)行以下步驟: 接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令; 根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值; 向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值; 接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
5.根據(jù)權(quán)利要求4所述的冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,所述監(jiān)控信息還包括數(shù)據(jù)塊的IO順序度、或者數(shù)據(jù)塊的IO讀寫比例,其中,所述順序度為每個數(shù)據(jù)塊的順序IO計數(shù)占總的IO計數(shù)的比例,所述IO讀寫比例為每個數(shù)據(jù)塊的IO讀操作的次數(shù)與IO寫操作的次數(shù)的比例;所述IO統(tǒng)計信息還包括有至少一個順序度字段值,其中每個所述順序讀字段值記錄有本地存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
6.根據(jù)權(quán)利要求5所述的冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,所述對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值具體包括:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
7.根據(jù)權(quán)利要求6所述的冷熱數(shù)據(jù)識別門限值計算方法,其特征在于,所述對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值具體包括: 根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值; 獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ; 確定IO計數(shù)字段值的個數(shù)N ; 對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍; 統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
8.一種存儲控制服務(wù)器,其特征在于,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,所述存儲控制服務(wù)器包括: 發(fā)送單元,用于向每個所 述存儲節(jié)點(diǎn)發(fā)送所述數(shù)據(jù)塊的IO統(tǒng)計信息查詢命令; 接收單元,用于接收每個所述存儲節(jié)點(diǎn)發(fā)送的IO統(tǒng)計信息,所述IO統(tǒng)計信息包括有至少一個IO計數(shù)字段值,每個所述IO計數(shù)字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù); 生成單元,用于對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中計數(shù)范圍相同的IO計數(shù)字段值進(jìn)行加運(yùn)算,生成與各個計數(shù)范圍對應(yīng)的IO計數(shù)統(tǒng)計值; 確定單元,用于根據(jù)各個所述存儲節(jié)點(diǎn)中熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘?、所述?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值,其中,所述高IO計數(shù)統(tǒng)計值中的每一個IO計數(shù)統(tǒng)計值,不小于非高IO計數(shù)統(tǒng)計值中的IO計數(shù)統(tǒng)計值。
9.根據(jù)權(quán)利要求8所述的存儲控制服務(wù)器,其特征在于,所述IO統(tǒng)計信息還包括有至少一個順序度字段值,每個所述順序度字段值記錄有發(fā)送所述IO統(tǒng)計信息的存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
10.根據(jù)權(quán)利要求9所述的存儲控制服務(wù)器,其特征在于,所述生成單元還用于:對接收到的所述每個存儲節(jié)點(diǎn)的IO統(tǒng)計信息中順序度范圍相同的順序度字段值進(jìn)行加運(yùn)算,生成與各個順序度范圍對應(yīng)的順序度統(tǒng)計值; 所述確定單元具體用于:根據(jù)所述存儲系統(tǒng)的熱數(shù)據(jù)存儲介質(zhì)的總?cè)萘浚鰯?shù)據(jù)塊的大小、所述IO計數(shù)統(tǒng)計值以及所述順序度統(tǒng)計值,得到將高IO計數(shù)統(tǒng)計值對應(yīng)的數(shù)據(jù)塊存滿所述熱數(shù)據(jù)存儲介質(zhì)時,所述高IO計數(shù)統(tǒng)計值中最小IO計數(shù)統(tǒng)計值對應(yīng)的計數(shù)范圍中的最小IO計數(shù)值作為冷熱數(shù)據(jù)識別門限值。
11.一種存儲節(jié)點(diǎn),其特征在于,存儲控制服務(wù)器和多個存儲節(jié)點(diǎn)連接,至少一個所述存儲節(jié)點(diǎn)中包括熱數(shù)據(jù)存儲介質(zhì)以及冷數(shù)據(jù)存儲介質(zhì),所述存儲節(jié)點(diǎn)存儲有數(shù)據(jù)塊,每個存儲節(jié)點(diǎn)包括: 接收單元,用于接收所述存儲控制服務(wù)器發(fā)送的IO統(tǒng)計信息查詢命令; 統(tǒng)計單元,用于根據(jù)所述IO統(tǒng)計信息查詢命令,對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的監(jiān)控信息中的IO計數(shù)進(jìn)行分段統(tǒng)計,得到IO計數(shù)值在各個計數(shù)范圍內(nèi)的數(shù)據(jù)塊的個數(shù)作為IO計數(shù)字段值; 發(fā)送單元,用于向所述存儲控制服務(wù)器發(fā)送所述IO統(tǒng)計信息,所述IO統(tǒng)計信息中包括有至少一個IO計數(shù)字段值; 所述接收單元,還用于接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值; 實現(xiàn)單元,用于接收所述存儲控制服務(wù)器發(fā)送的存儲系統(tǒng)的冷熱數(shù)據(jù)識別門限值,根據(jù)所述冷熱數(shù)據(jù)識別門限值,識別出熱點(diǎn)數(shù)據(jù)和冷點(diǎn)數(shù)據(jù)并實現(xiàn)所述熱點(diǎn)數(shù)據(jù)和所述冷點(diǎn)數(shù)據(jù)的分層存儲。
12.根據(jù)權(quán)利要求11所述的存儲節(jié)點(diǎn),其特征在于,所述監(jiān)控信息還包括數(shù)據(jù)塊的IO順序度、或者數(shù)據(jù)塊的IO讀寫比例,其中,所述順序度為每個數(shù)據(jù)塊的順序IO計數(shù)占總的IO計數(shù)的比例,所述IO讀寫比例為每個數(shù)據(jù)塊的IO讀操作的次數(shù)與IO寫操作的次數(shù)的比例;所述IO統(tǒng)計信息還包括有至少一個順序度字段值,其中每個所述順序讀字段值記錄有本地存儲節(jié)點(diǎn)中,順序度值在各個順序度范圍內(nèi)的數(shù)據(jù)塊的個數(shù)。
13.根據(jù)權(quán)利要求12所述的存儲節(jié)點(diǎn),其特征在于,所述統(tǒng)計單元具體用于:對本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的IO計數(shù)按照IO讀寫比例進(jìn)行統(tǒng)計,得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值。
14.根據(jù)權(quán)利要求13所述的存儲節(jié)點(diǎn),其特征在于,所述統(tǒng)計單元統(tǒng)計得到IO統(tǒng)計信息中的IO計數(shù)字段的各個值的過程具體包括:根據(jù)數(shù)據(jù)塊被訪問的IO次數(shù),以及IO讀寫比例,計算數(shù)據(jù)塊的IO計數(shù)值;獲取本地存儲節(jié)點(diǎn)中數(shù)據(jù)塊的最高IO計數(shù)M ;確定IO計數(shù)字段值的個數(shù)N ;對所述最高IO計數(shù)M與IO計數(shù)字段值的個數(shù)N進(jìn)行除運(yùn)算,得到所述計數(shù)范圍;統(tǒng)計每個計數(shù)范圍內(nèi)數(shù)據(jù)塊的個數(shù),得到N個IO計數(shù)字段值。
15.一種存儲系統(tǒng),所述系統(tǒng)包括如權(quán)利要求8-10任一項所述的存儲控制服務(wù)器,以及多個如權(quán)利要求11-14任一項所述的存儲節(jié)點(diǎn)。
【文檔編號】G06F3/06GK103631538SQ201310652334
【公開日】2014年3月12日 申請日期:2013年12月5日 優(yōu)先權(quán)日:2013年12月5日
【發(fā)明者】王辰, 林宇 申請人:華為技術(shù)有限公司