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