本發(fā)明涉及計(jì)算機(jī),具體涉及一種緩存模式設(shè)置方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、存儲(chǔ)集群對(duì)于緩存數(shù)據(jù)的處理,有不同的緩存模式,包括緩存數(shù)據(jù)回寫和緩存數(shù)據(jù)透寫。緩存模式為緩存數(shù)據(jù)回寫時(shí),數(shù)據(jù)在寫入緩存后返回,不需要下刷,有助于降低時(shí)延、提高數(shù)據(jù)讀寫性能;緩存模式為緩存數(shù)據(jù)透寫時(shí),數(shù)據(jù)在寫入緩存后需要進(jìn)行下刷,并且始終維持最大刷盤速率,這種模式下數(shù)據(jù)讀寫的性能會(huì)有所下降,但能夠保證一定的數(shù)據(jù)安全性。
2、目前對(duì)于不同存儲(chǔ)集群控制器的緩存模式設(shè)置策略為根據(jù)存儲(chǔ)集群中控制器的冗余狀態(tài)調(diào)節(jié)存儲(chǔ)集群的緩存模式,如果有多個(gè)控制器冗余時(shí),就設(shè)置緩存模式為緩存數(shù)據(jù)回寫,并且在緩存模塊鏡像存儲(chǔ)數(shù)據(jù);如果只有一個(gè)控制器時(shí),就設(shè)置緩存模式為緩存數(shù)據(jù)透寫,將數(shù)據(jù)保存到下層盤中。緩存模式設(shè)置策略單一,在單控狀態(tài)時(shí)固定開啟透寫模式,導(dǎo)致性能下降,對(duì)于多控制器場(chǎng)景的適應(yīng)能力較低。
3、因此,相關(guān)技術(shù)存在緩存模式設(shè)置策略單一,對(duì)于多控制器場(chǎng)景的適應(yīng)能力較低的問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提供了一種緩存模式設(shè)置方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì),以解決緩存模式設(shè)置策略單一,對(duì)于多控制器場(chǎng)景的適應(yīng)能力較低的問題。
2、第一方面,本發(fā)明提供了一種緩存模式設(shè)置方法,包括:
3、確定存儲(chǔ)集群中控制器的數(shù)量;
4、在控制器的數(shù)量小于或等于第一預(yù)設(shè)值的情況下,確定回寫模式的設(shè)置時(shí)長,如果設(shè)置時(shí)長大于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,并在設(shè)置時(shí)長內(nèi)保持存儲(chǔ)集群的緩存模式為回寫模式;
5、在設(shè)置時(shí)長之后,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式;
6、在設(shè)置時(shí)長小于或等于第二預(yù)設(shè)值的情況下,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式。
7、本實(shí)施例提供的緩存模式設(shè)置方法,在控制器的數(shù)量小于或等于第一預(yù)設(shè)值的情況下,通過設(shè)置回寫模式不同的設(shè)置時(shí)長,調(diào)節(jié)存儲(chǔ)集群的緩存模式,使得緩存模式可以在回寫/透寫兩種模式下靈活切換,并由用戶設(shè)置回寫模式的持續(xù)時(shí)間,并在設(shè)置時(shí)長之后,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式。提高了應(yīng)對(duì)故障和故障恢復(fù)場(chǎng)景的冗余機(jī)制,將緩存模式設(shè)置為回寫模式有助于提高存儲(chǔ)集群在單控狀態(tài)下的性能,便于用戶選擇緩存模式,提高用戶體驗(yàn)。解決了緩存模式設(shè)置策略單一,對(duì)于多控制器場(chǎng)景的適應(yīng)能力較低的問題。
8、在一些可選的實(shí)施方式中,確定回寫模式的設(shè)置時(shí)長,如果設(shè)置時(shí)長大于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,包括:
9、響應(yīng)于用于配置設(shè)置時(shí)長的命令行修改指令,利用第一回調(diào)函數(shù),獲取第一變量結(jié)構(gòu)體的值,將第一變量結(jié)構(gòu)體的值作為設(shè)置時(shí)長;
10、如果設(shè)置時(shí)長大于第二預(yù)設(shè)值,判斷存儲(chǔ)集群的緩存模式是否為回寫模式;
11、如果是,則根據(jù)設(shè)置時(shí)長重新設(shè)置回寫模式的持續(xù)時(shí)間;
12、如果不是,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,并將設(shè)置時(shí)長設(shè)置為回寫模式的持續(xù)時(shí)間。
13、在本實(shí)施方式中,利用第一回調(diào)函數(shù),獲取第一變量結(jié)構(gòu)體的值,將第一變量結(jié)構(gòu)體的值作為設(shè)置時(shí)長,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,并將設(shè)置時(shí)長設(shè)置為回寫模式的持續(xù)時(shí)間。通過回調(diào)函數(shù)識(shí)別變量結(jié)構(gòu)體的值,根據(jù)變量結(jié)構(gòu)體數(shù)值變化來調(diào)整存儲(chǔ)集群的緩存模式,更好地適應(yīng)用戶需求和調(diào)節(jié)數(shù)據(jù)性能。
14、在一些可選的實(shí)施方式中,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,并在設(shè)置時(shí)長內(nèi)保持存儲(chǔ)集群的緩存模式為回寫模式,包括:
15、通過將第二變量結(jié)構(gòu)體設(shè)置為第三預(yù)設(shè)值,存儲(chǔ)集群被配置為當(dāng)?shù)诙兞拷Y(jié)構(gòu)體為第三預(yù)設(shè)值時(shí),將緩存模式設(shè)置為回寫模式;
16、設(shè)置第三變量結(jié)構(gòu)體為第四預(yù)設(shè)值;
17、當(dāng)?shù)谌兞拷Y(jié)構(gòu)體為第四預(yù)設(shè)值時(shí),調(diào)用第二回調(diào)函數(shù);
18、根據(jù)第二回調(diào)函數(shù)和設(shè)置時(shí)長,設(shè)置定時(shí)器,并標(biāo)記緩存模式為回寫模式,其中,定時(shí)器用于確定回寫模式的持續(xù)時(shí)間;
19、在定時(shí)器的時(shí)間小于設(shè)置時(shí)長的情況下,保持緩存模式為回寫模式。
20、在本實(shí)施方式中,通過將第二變量結(jié)構(gòu)體設(shè)置為第三預(yù)設(shè)值,將緩存模式設(shè)置為回寫模式,通過回調(diào)函數(shù)識(shí)別變量結(jié)構(gòu)體的值,根據(jù)變量結(jié)構(gòu)體數(shù)值變化來調(diào)整存儲(chǔ)集群的緩存模式,更好地適應(yīng)用戶需求和調(diào)節(jié)數(shù)據(jù)性能。據(jù)第二回調(diào)函數(shù)和設(shè)置時(shí)長,設(shè)置定時(shí)器,確定回寫模式的持續(xù)時(shí)間,便于控制緩存模式。
21、在一些可選的實(shí)施方式中,在設(shè)置時(shí)長之后,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式,包括:
22、當(dāng)定時(shí)器的時(shí)間等于設(shè)置時(shí)長時(shí),調(diào)用第三回調(diào)函數(shù);
23、利用第三回調(diào)函數(shù)將第四變量結(jié)構(gòu)體設(shè)置為第五預(yù)設(shè)值;
24、當(dāng)?shù)谒淖兞拷Y(jié)構(gòu)體為第五預(yù)設(shè)值時(shí),通過將第二變量結(jié)構(gòu)體設(shè)置為第六預(yù)設(shè)值,存儲(chǔ)集群被配置為當(dāng)?shù)诙兞拷Y(jié)構(gòu)體為第六預(yù)設(shè)值時(shí),將緩存模式設(shè)置為透寫模式。
25、在本實(shí)施方式中,利用第三回調(diào)函數(shù)將第四變量結(jié)構(gòu)體設(shè)置為第五預(yù)設(shè)值,將第二變量結(jié)構(gòu)體設(shè)置為第六預(yù)設(shè)值,使得緩存模式設(shè)置為透寫模式。通過回調(diào)函數(shù)識(shí)別變量結(jié)構(gòu)體的值,根據(jù)變量結(jié)構(gòu)體數(shù)值變化來調(diào)整存儲(chǔ)集群的緩存模式,更好地適應(yīng)用戶需求和調(diào)節(jié)數(shù)據(jù)性能。
26、在一些可選的實(shí)施方式中,在設(shè)置時(shí)長小于或等于第二預(yù)設(shè)值的情況下,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式,包括:
27、在設(shè)置時(shí)長小于或等于第二預(yù)設(shè)值的情況下,判斷緩存模式是否為回寫模式;
28、如果是,則通過將第二變量結(jié)構(gòu)體設(shè)置為第六預(yù)設(shè)值,存儲(chǔ)集群被配置為當(dāng)?shù)诙兞拷Y(jié)構(gòu)體為第六預(yù)設(shè)值時(shí),將緩存模式設(shè)置為透寫模式;
29、如果不是,將緩存模式設(shè)置為透寫模式。
30、在一些可選的實(shí)施方式中,在確定存儲(chǔ)集群中控制器的數(shù)量之后,方法還包括:
31、在控制器的數(shù)量大于第一預(yù)設(shè)值的情況下,判斷存儲(chǔ)集群是否發(fā)生故障;
32、如果存儲(chǔ)集群未發(fā)生故障,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式;
33、如果存儲(chǔ)集群發(fā)生故障,從控制器中確定目標(biāo)控制器,將存儲(chǔ)集群設(shè)置為基于目標(biāo)控制器的控制模式;
34、確定回寫模式的設(shè)置時(shí)長;
35、如果設(shè)置時(shí)長大于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式;
36、如果設(shè)置時(shí)長小于或等于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式;
37、判斷是否接收到命令行修改指令,如果接收到,則根據(jù)命令行修改指令確定回寫模式的修改時(shí)長;
38、如果修改時(shí)長大于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式;
39、如果修改時(shí)長小于或等于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式;
40、如果存儲(chǔ)集群故障恢復(fù),將存儲(chǔ)集群設(shè)置為基于控制器的數(shù)量個(gè)控制器的控制模式,并將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式。
41、在本實(shí)施方式中,如果存儲(chǔ)集群未發(fā)生故障,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式;如果存儲(chǔ)集群發(fā)生故障,將存儲(chǔ)集群設(shè)置為基于目標(biāo)控制器的控制模式;并根據(jù)回寫模式的設(shè)置時(shí)長和修改時(shí)長,設(shè)置回寫模式的持續(xù)時(shí)間。如果存儲(chǔ)集群故障恢復(fù),將存儲(chǔ)集群設(shè)置為基于控制器的數(shù)量個(gè)控制器的控制模式,并將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式。提高了應(yīng)對(duì)故障和故障恢復(fù)場(chǎng)景的冗余機(jī)制,默認(rèn)的回寫模式也有助于整體提高存儲(chǔ)集群在單控狀態(tài)下的性能,結(jié)合了節(jié)點(diǎn)故障/故障恢復(fù)的場(chǎng)景,能夠根據(jù)場(chǎng)景變換和用戶設(shè)置來提供不同的緩存模式,提高整體的處理效能和流暢體驗(yàn)。
42、在一些可選的實(shí)施方式中,方法還包括:
43、在控制器的數(shù)量小于或等于第一預(yù)設(shè)值的情況下,生成設(shè)置時(shí)長查詢命令,通過設(shè)置時(shí)長查詢命令獲取回寫模式對(duì)應(yīng)的標(biāo)識(shí)字段和時(shí)間戳;
44、根據(jù)標(biāo)識(shí)字段確定存儲(chǔ)集群的緩存模式是否為回寫模式;
45、如果存儲(chǔ)集群的緩存模式是回寫模式,則根據(jù)時(shí)間戳確定是否結(jié)束回寫模式。
46、第二方面,本發(fā)明提供了一種緩存模式設(shè)置裝置,包括:
47、確定模塊,用于確定存儲(chǔ)集群中控制器的數(shù)量;
48、第一設(shè)置模塊,用于在控制器的數(shù)量小于或等于第一預(yù)設(shè)值的情況下,確定回寫模式的設(shè)置時(shí)長,如果設(shè)置時(shí)長大于第二預(yù)設(shè)值,將存儲(chǔ)集群的緩存模式設(shè)置為回寫模式,并在設(shè)置時(shí)長內(nèi)保持存儲(chǔ)集群的緩存模式為回寫模式;
49、第二設(shè)置模塊,用于在設(shè)置時(shí)長之后,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式;
50、第三設(shè)置模塊,用于在設(shè)置時(shí)長小于或等于第二預(yù)設(shè)值的情況下,將存儲(chǔ)集群的緩存模式設(shè)置為透寫模式。
51、第三方面,本發(fā)明提供了一種計(jì)算機(jī)設(shè)備,包括:存儲(chǔ)器和處理器,存儲(chǔ)器和處理器之間互相通信連接,存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)指令,處理器通過執(zhí)行計(jì)算機(jī)指令,從而執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的緩存模式設(shè)置方法。
52、第四方面,本發(fā)明提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的緩存模式設(shè)置方法。
53、第五方面,本發(fā)明提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對(duì)應(yīng)的任一實(shí)施方式的緩存模式設(shè)置方法。