一種云計(jì)算系統(tǒng)以及云計(jì)算系統(tǒng)的處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,特別是指一種云計(jì)算系統(tǒng)以及云計(jì)算系統(tǒng)的處理方法和裝置。
【背景技術(shù)】
[0002]目前,云計(jì)算(Cloud Computing)是網(wǎng)格計(jì)算(Grid Computing)、分布式計(jì)算(Distributed Computing)、并行計(jì)算(Parallel Computing)、效用計(jì)算(UtilityComputing)、網(wǎng)絡(luò)存儲(chǔ)(Network Storage Technologies)虛擬化(Virtualizat1n)、負(fù)載均衡(Load Balance)等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。它旨在通過網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體,整合成一個(gè)具有強(qiáng)大計(jì)算能力的系統(tǒng)。分布式緩存是云計(jì)算范疇中的一個(gè)領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲(chǔ)服務(wù)以及高速讀寫訪問的能力。
[0003]分布式緩存系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)和客戶端互相連接構(gòu)成的;服務(wù)器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),客戶端可以對(duì)服務(wù)器做數(shù)據(jù)的寫入、讀取、更新、刪除等操作。一般來說,數(shù)據(jù)不可能只保存在單個(gè)服務(wù)器節(jié)點(diǎn)(以下簡(jiǎn)稱“節(jié)點(diǎn)”)上,而是在多臺(tái)節(jié)點(diǎn)上保存同一個(gè)數(shù)據(jù)的副本,互為備份。最常見的存儲(chǔ)模式為主備模式,其中一個(gè)節(jié)點(diǎn)做為主節(jié)點(diǎn)(master),其他節(jié)點(diǎn)作為備節(jié)點(diǎn)(slave),主節(jié)點(diǎn)的身份通過選舉或其他算法獲取。為簡(jiǎn)化流程,數(shù)據(jù)更新一般發(fā)生在主節(jié)點(diǎn)上,備節(jié)點(diǎn)從主節(jié)點(diǎn)獲取數(shù)據(jù)進(jìn)行同步,而數(shù)據(jù)訪問可以從主節(jié)點(diǎn)中獲取數(shù)據(jù),也可以從備節(jié)點(diǎn)中獲取數(shù)據(jù),具體看該訪問的一致性策略。
[0004]在分布式緩存系統(tǒng)中,根據(jù)一致性及可用性的要求,一般將該數(shù)據(jù)存儲(chǔ)方式按NRW進(jìn)行分類,其中N表示數(shù)據(jù)的副本數(shù)、R表示一次數(shù)據(jù)訪問請(qǐng)求中獲取的數(shù)據(jù)副本數(shù),W表示一次數(shù)據(jù)更新請(qǐng)求的最少參與節(jié)點(diǎn)數(shù)(即多少個(gè)節(jié)點(diǎn)上的數(shù)據(jù)更新完成)。
[0005]當(dāng)分布式緩存系統(tǒng)實(shí)現(xiàn)持久化功能時(shí),分布在該服務(wù)器上的數(shù)據(jù)保存在磁盤上。在實(shí)際情況下,如果磁盤發(fā)生故障,該服務(wù)器就無法提供讀寫服務(wù)了。由于分布式緩存系統(tǒng)數(shù)據(jù)保存有多個(gè)副本的特性,這時(shí),只要其他服務(wù)器處于正常狀態(tài),系統(tǒng)依然可以通過其他節(jié)點(diǎn)的副本正常提供讀寫服務(wù)。
[0006]如果分布式緩存系統(tǒng)節(jié)點(diǎn)掛接了多塊磁盤,其中只有一個(gè)或者少數(shù)幾個(gè)磁盤由于某種原因損壞,導(dǎo)致該服務(wù)器不能正常提供服務(wù),根據(jù)前述,由于其他服務(wù)器為正常可用,整個(gè)集群還是可用的。假定在這段時(shí)間內(nèi),另一個(gè)服務(wù)器也發(fā)生了類似情況,那個(gè)節(jié)點(diǎn)也不能正常提供服務(wù),很可能使得副本數(shù)無法滿足NRW策略,那么分布式緩存集群就徹底無法提供服務(wù)了。典型的情況是在比較常用的NRW為3/2/2的條件下,兩個(gè)節(jié)點(diǎn)宕掉,只有一個(gè)節(jié)點(diǎn)正常,讀寫操作都無法滿足最小在兩個(gè)副本上操作的要求。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題是,提供一種云計(jì)算系統(tǒng)以及云計(jì)算系統(tǒng)的處理方法和裝置,能夠提高系統(tǒng)對(duì)磁盤故障的容忍性。
[0008]為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供一種能耗監(jiān)測(cè)系統(tǒng),包括:
[0009]一方面,提供一種云計(jì)算系統(tǒng)的處理方法,包括:
[0010]接收客戶端對(duì)云計(jì)算系統(tǒng)的操作請(qǐng)求;
[0011]根據(jù)所述操作請(qǐng)求,獲取所述云計(jì)算系統(tǒng)中待操作的數(shù)據(jù)標(biāo)識(shí);
[0012]根據(jù)所述云計(jì)算系統(tǒng)的節(jié)點(diǎn)磁盤狀態(tài)報(bào)告,查找所述云計(jì)算系統(tǒng)的各個(gè)節(jié)點(diǎn)中存儲(chǔ)所述數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)數(shù)據(jù)的各個(gè)磁盤以及各個(gè)所述磁盤的狀態(tài);所述節(jié)點(diǎn)磁盤狀態(tài)報(bào)告包括:所述云計(jì)算系統(tǒng)的各個(gè)節(jié)點(diǎn)中磁盤的狀態(tài)、所述磁盤中存儲(chǔ)的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí);
[0013]根據(jù)所述云計(jì)算系統(tǒng)中的各個(gè)節(jié)點(diǎn)中存儲(chǔ)所述數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)數(shù)據(jù)的各個(gè)所述磁盤的狀態(tài),進(jìn)行相應(yīng)的操作。
[0014]所述根據(jù)各個(gè)所述磁盤的狀態(tài),進(jìn)行相應(yīng)的操作的步驟包括:
[0015]所述操作請(qǐng)求為更新請(qǐng)求;當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)更新請(qǐng)求的最少參與節(jié)點(diǎn)數(shù)量時(shí),則響應(yīng)所述更新請(qǐng)求;否則,拒絕所述更新請(qǐng)求;或者
[0016]所述操作請(qǐng)求為數(shù)據(jù)訪問請(qǐng)求;當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)訪問請(qǐng)求獲取的數(shù)據(jù)副本數(shù)量時(shí),則響應(yīng)所述數(shù)據(jù)訪問請(qǐng)求;否則,拒絕所述數(shù)據(jù)訪問請(qǐng)求。
[0017]所述當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)更新請(qǐng)求的最少參與節(jié)點(diǎn)數(shù)量時(shí),則響應(yīng)所述更新請(qǐng)求的步驟包括:
[0018]當(dāng)所述操作請(qǐng)求為更新請(qǐng)求,并且存儲(chǔ)所述數(shù)據(jù)的主節(jié)點(diǎn)的磁盤的狀態(tài)為正常時(shí),所述云計(jì)算系統(tǒng)的主節(jié)點(diǎn)向主節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤進(jìn)行數(shù)據(jù)更新;所述云計(jì)算系統(tǒng)的從節(jié)點(diǎn)從所述主節(jié)點(diǎn)獲取待同步的數(shù)據(jù),所述從節(jié)點(diǎn)向所述從節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤進(jìn)行數(shù)據(jù)更新;
[0019]當(dāng)所述操作請(qǐng)求為更新請(qǐng)求,并且存儲(chǔ)所述數(shù)據(jù)的主節(jié)點(diǎn)的磁盤的狀態(tài)為故障時(shí),所述云計(jì)算系統(tǒng)的第一從節(jié)點(diǎn)向所述第一從節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤進(jìn)行數(shù)據(jù)更新;所述云計(jì)算系統(tǒng)的第二從節(jié)點(diǎn)從所述第一從節(jié)點(diǎn)獲取待同步的數(shù)據(jù);所述第二節(jié)點(diǎn)向所述第二從節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤進(jìn)行數(shù)據(jù)更新;所述第一從節(jié)點(diǎn)和所述第二從節(jié)點(diǎn)的存儲(chǔ)所述數(shù)據(jù)的磁盤的狀態(tài)為正常。
[0020]所述當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)訪問請(qǐng)求獲取的數(shù)據(jù)副本數(shù)量時(shí),則響應(yīng)所述數(shù)據(jù)訪問請(qǐng)求的步驟包括:
[0021]當(dāng)所述操作請(qǐng)求為數(shù)據(jù)訪問請(qǐng)求,并且存儲(chǔ)所述數(shù)據(jù)的主節(jié)點(diǎn)的磁盤的狀態(tài)為正常時(shí),從所述云計(jì)算系統(tǒng)的主節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤中獲取所述數(shù)據(jù)的第一副本,從所述云計(jì)算系統(tǒng)的至少一個(gè)從節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤中獲取所述數(shù)據(jù)的第二副本;從所述第一副本和所述第二副本中,選取最新版本的副本;并將所述最新版本的副本發(fā)送給所述客戶端;所述第二從節(jié)點(diǎn)的存儲(chǔ)所述數(shù)據(jù)的磁盤的狀態(tài)為正常;
[0022]當(dāng)所述操作請(qǐng)求為數(shù)據(jù)訪問請(qǐng)求,并且存儲(chǔ)所述數(shù)據(jù)的主節(jié)點(diǎn)的磁盤的狀態(tài)為故障時(shí),從所述云計(jì)算系統(tǒng)的至少一個(gè)從節(jié)點(diǎn)的所述數(shù)據(jù)所在磁盤中獲取所述數(shù)據(jù)的第三副本;從至少一個(gè)所述第三副本中,選取最新版本的副本,并將所述最新版本的副本發(fā)送給所述客戶端;所述第二從節(jié)點(diǎn)的存儲(chǔ)所述數(shù)據(jù)的磁盤的狀態(tài)為正常。
[0023]所述接收客戶端的操作請(qǐng)求的步驟之前,所述方法還包括:
[0024]從節(jié)點(diǎn)獲取所述云計(jì)算系統(tǒng)的節(jié)點(diǎn)磁盤狀態(tài)報(bào)告。
[0025]另一方面,提供一種云計(jì)算系統(tǒng)的處理裝置,包括:
[0026]第一接收單元,接收客戶端對(duì)云計(jì)算系統(tǒng)的操作請(qǐng)求;
[0027]獲取單元,根據(jù)所述操作請(qǐng)求,獲取所述云計(jì)算系統(tǒng)中待操作的數(shù)據(jù)標(biāo)識(shí);
[0028]查找單元,根據(jù)所述云計(jì)算系統(tǒng)的節(jié)點(diǎn)磁盤狀態(tài)報(bào)告,查找所述云計(jì)算系統(tǒng)的各個(gè)節(jié)點(diǎn)中存儲(chǔ)所述數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)數(shù)據(jù)的各個(gè)磁盤以及各個(gè)所述磁盤的狀態(tài);所述節(jié)點(diǎn)磁盤狀態(tài)報(bào)告包括:所述云計(jì)算系統(tǒng)的各個(gè)節(jié)點(diǎn)中磁盤的狀態(tài)、所述磁盤中存儲(chǔ)的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí);
[0029]操作單元,根據(jù)所述云計(jì)算系統(tǒng)中的各個(gè)節(jié)點(diǎn)中存儲(chǔ)所述數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)數(shù)據(jù)的各個(gè)所述磁盤的狀態(tài),進(jìn)行相應(yīng)的操作。
[0030]所述操作單元包括:
[0031]所述操作單元包括:
[0032]第一響應(yīng)子單元,所述操作請(qǐng)求為更新請(qǐng)求;當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)更新請(qǐng)求的最少參與節(jié)點(diǎn)數(shù)量時(shí),則響應(yīng)所述更新請(qǐng)求;
[0033]第一拒絕子單元,當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量小于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)更新請(qǐng)求的最少參與節(jié)點(diǎn)數(shù)量時(shí),拒絕所述更新請(qǐng)求;
[0034]第二響應(yīng)子單元,所述操作請(qǐng)求為數(shù)據(jù)訪問請(qǐng)求;當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量大于或等于所述云計(jì)算系統(tǒng)預(yù)定的一次數(shù)據(jù)訪問請(qǐng)求獲取的數(shù)據(jù)副本數(shù)量時(shí),則響應(yīng)所述數(shù)據(jù)訪問請(qǐng)求;
[0035]第二拒絕子單元,當(dāng)所述云計(jì)算系統(tǒng)中存儲(chǔ)所述數(shù)據(jù)且處于正常狀態(tài)的所述磁盤的數(shù)量小于所述云計(jì)算系統(tǒng)預(yù)定的一次