冗余的系統(tǒng)架構(gòu)方法
【專利摘要】本發(fā)明涉及一種計(jì)算機(jī)系統(tǒng)架構(gòu)方法,公開了一種冗余的系統(tǒng)架構(gòu)方法,包括以下具體步驟:使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群;所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求。本發(fā)明的優(yōu)點(diǎn)在于,采用無中心節(jié)點(diǎn)節(jié)點(diǎn)的對(duì)稱結(jié)構(gòu),無單點(diǎn)故障缺陷,存儲(chǔ)容量和性能可以線性擴(kuò)展,且支持?jǐn)?shù)據(jù)自動(dòng)恢復(fù),自動(dòng)化程度高。
【專利說明】
冗余的系統(tǒng)架構(gòu)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種計(jì)算機(jī)系統(tǒng)架構(gòu)方法,特別涉及一種冗余的系統(tǒng)架構(gòu)方法。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)上面,網(wǎng)站為用戶提供原始的內(nèi)容訪問,同時(shí)為用戶提供交互操作。提供穩(wěn)定可靠的服務(wù),可以給用戶帶來良好的體驗(yàn),保證用戶的正常訪問使用,在網(wǎng)站的可靠性方面,有很多的技術(shù)可以來提供,這類技術(shù)可以分為:
[0003]高可用:保證服務(wù)的可靠,穩(wěn)定,實(shí)現(xiàn)故障的屏蔽,避免了單點(diǎn)故障。
[0004]高性能:多臺(tái)服務(wù)器連接起來,處理一個(gè)復(fù)雜的計(jì)算問題。
[0005]負(fù)載均衡:將用戶請(qǐng)求引導(dǎo)到后端多臺(tái)服務(wù)器,實(shí)現(xiàn)服務(wù)器請(qǐng)求的負(fù)載。
[0006]具體而言,現(xiàn)有技術(shù)中已經(jīng)存在基于單點(diǎn)的故障轉(zhuǎn)移切換的負(fù)載均衡技術(shù),從而提供高可用的網(wǎng)絡(luò)接入。但現(xiàn)有技術(shù)中基于單點(diǎn)故障轉(zhuǎn)移切換容易造成系統(tǒng)資源浪費(fèi),同時(shí)還存在的問題包括系統(tǒng)不穩(wěn)定,處理數(shù)據(jù)量大,切換較慢。
【發(fā)明內(nèi)容】
[0007]本發(fā)明針對(duì)現(xiàn)有技術(shù)基于單點(diǎn)故障轉(zhuǎn)移切換容易造成系統(tǒng)資源浪費(fèi)的缺點(diǎn),提供了一種冗余的系統(tǒng)架構(gòu)方法,能夠有效地解決上述目的并實(shí)現(xiàn)提高系統(tǒng)利用率的問題。
[0008]為實(shí)現(xiàn)上述目的,本發(fā)明可采取下述技術(shù)方案:
[0009]一種冗余的系統(tǒng)架構(gòu)方法,包括以下具體步驟:
[0010]使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群;所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求;為了能夠確認(rèn)負(fù)載集群中的服務(wù)器故障,所述負(fù)載集群中的任一服務(wù)器在等待一段時(shí)間后尚未收到負(fù)載集群中的其他服務(wù)器發(fā)來的轉(zhuǎn)換通告且自己并不具有最高優(yōu)先級(jí)的情況下,將自己設(shè)置為主要處理狀態(tài)并向負(fù)載集群中的其他服務(wù)器發(fā)出轉(zhuǎn)換通告;當(dāng)所述負(fù)載集群中的服務(wù)器在接到用戶請(qǐng)求時(shí),依據(jù)設(shè)置為主要處理狀態(tài)的服務(wù)器的數(shù)量平均地分配用戶請(qǐng)求。
[0011]于本申請(qǐng)的實(shí)施例中,還包括以下具體步驟:為了能夠?qū)崿F(xiàn)用戶請(qǐng)求在負(fù)載集群的服務(wù)器中的平均分配,將一定數(shù)量的節(jié)點(diǎn)與所述負(fù)載集群相連接,將待處理的數(shù)據(jù)分塊后分發(fā)至所述節(jié)點(diǎn)分別進(jìn)行存儲(chǔ)和處理,所述節(jié)點(diǎn)依據(jù)其所對(duì)應(yīng)的被設(shè)置為主要處理狀態(tài)的服務(wù)器發(fā)送用戶請(qǐng)求和數(shù)據(jù)。
[0012]一種冗余的系統(tǒng)架構(gòu)方法,包括以下具體步驟:
[0013]使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群;所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求;為了能夠確認(rèn)負(fù)載集群中的服務(wù)器故障,所述負(fù)載集群中的任一服務(wù)器在等待一段時(shí)間后尚未收到負(fù)載集群中的其他服務(wù)器發(fā)來的轉(zhuǎn)換通告且自己并不具有最高優(yōu)先級(jí)的情況下,將自己設(shè)置為主要處理狀態(tài)并向負(fù)載集群中的其他服務(wù)器發(fā)出轉(zhuǎn)換通告;當(dāng)所述負(fù)載集群中的服務(wù)器在接到用戶請(qǐng)求時(shí),依據(jù)設(shè)置為主要處理狀態(tài)的服務(wù)器的數(shù)量在服務(wù)器之間分配用戶請(qǐng)求;將一定數(shù)量的節(jié)點(diǎn)與所述負(fù)載集群相連接,將待處理的數(shù)據(jù)分塊后分發(fā)至所述節(jié)點(diǎn)分別進(jìn)行存儲(chǔ)和處理,所述節(jié)點(diǎn)依據(jù)其所對(duì)應(yīng)的被設(shè)置為主要處理狀態(tài)的服務(wù)器發(fā)送用戶請(qǐng)求和數(shù)據(jù)。
[0014]本發(fā)明具有以下的顯著技術(shù)效果:
[0015]可以較好地提高系統(tǒng)資源的利用率,發(fā)生單點(diǎn)故障時(shí)切換速度快,反應(yīng)迅速,具有高可用的特征。
【具體實(shí)施方式】
[0016]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0017]實(shí)施例1
[0018]一種冗余的系統(tǒng)架構(gòu)方法,本實(shí)施例所記載方法一般情況下更為適用于路由器或者三層交換機(jī)的冗余設(shè)計(jì),但經(jīng)過稍許調(diào)整,也可以用于其他的場(chǎng)合,其特點(diǎn)是在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,負(fù)載均衡提供了一種廉價(jià)有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性,利用集群管理軟件,當(dāng)主服務(wù)器故障時(shí),備份服務(wù)器能夠自動(dòng)接管主服務(wù)器的工作,并及時(shí)切換過去,以實(shí)現(xiàn)對(duì)用戶的不間斷服務(wù),充分利用集群中的每一臺(tái)計(jì)算機(jī)的資源,實(shí)現(xiàn)復(fù)雜運(yùn)算的并行處理,把負(fù)載壓力根據(jù)某種算法合理分配到集群中的每一臺(tái)計(jì)算機(jī)上,以減輕主服務(wù)器的壓力,降低對(duì)主服務(wù)器的硬件和軟件要求,包括以下具體步驟:
[0019]使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群,集群就是一組連在一起的計(jì)算機(jī),從外部看它是一個(gè)系統(tǒng),各節(jié)點(diǎn)可以是不同的操作系統(tǒng)或不同硬件構(gòu)成的計(jì)算機(jī)。如一個(gè)提供166服務(wù)的集群,對(duì)外界來看是一個(gè)大166服務(wù)器。不過集群的節(jié)點(diǎn)也可以單獨(dú)提供服務(wù)。較為特殊的是,與通常的服務(wù)器不同,本實(shí)施例中所述的負(fù)載集群中的服務(wù)器對(duì)用戶請(qǐng)求的處理僅限于對(duì)外部網(wǎng)絡(luò)接口的帶寬的分配和管理,一旦確定了用戶請(qǐng)求所請(qǐng)求的外部網(wǎng)絡(luò)地址,則將該請(qǐng)求的內(nèi)容轉(zhuǎn)發(fā)至相應(yīng)的網(wǎng)絡(luò)地址并代為接收反饋,作為內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)接口的橋梁。具體而言,該兩臺(tái)服務(wù)器均具有各自獨(dú)立的網(wǎng)絡(luò)地址/1?地址,但同時(shí),每臺(tái)服務(wù)器分別與另一個(gè)網(wǎng)絡(luò)地址相對(duì)應(yīng),該網(wǎng)絡(luò)地址是給定的,通常由預(yù)設(shè)的配置文件給出,且是對(duì)內(nèi)部網(wǎng)絡(luò)可見的并作為內(nèi)部網(wǎng)絡(luò)中的節(jié)點(diǎn)訪問外部網(wǎng)絡(luò)的地址,本實(shí)施例中稱之為訪問地址。為了能夠提供足夠的冗余量,訪問地址的數(shù)量較多,至少不應(yīng)當(dāng)少于負(fù)載集群中的服務(wù)器的數(shù)量,負(fù)載集群中的每個(gè)服務(wù)器均保有上述訪問地址的列表,作為一種可選的方式,需要將上述訪問地址加入負(fù)載集群的服務(wù)器與內(nèi)部網(wǎng)絡(luò)節(jié)點(diǎn)之間進(jìn)行通訊的數(shù)據(jù)表頭,從而將訪問地址在負(fù)載集群中散布分發(fā)。
[0020]所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求;為了能夠確認(rèn)負(fù)載集群中的服務(wù)器故障,所述負(fù)載集群中的任一服務(wù)器在等待一段時(shí)間后尚未收到負(fù)載集群中的其他服務(wù)器發(fā)來的轉(zhuǎn)換通告且自己并不具有最高優(yōu)先級(jí)的情況下,將自己設(shè)置為主要處理狀態(tài)并向負(fù)載集群中的其他服務(wù)器發(fā)出轉(zhuǎn)換通告;當(dāng)所述負(fù)載集群中的服務(wù)器在接到用戶請(qǐng)求時(shí),依據(jù)設(shè)置為主要處理狀態(tài)的服務(wù)器的數(shù)量平均地分配用戶請(qǐng)求。
[0021]上述的具體步驟的一個(gè)可用的示例為,將內(nèi)部網(wǎng)絡(luò)中的節(jié)點(diǎn),或者是PC機(jī)進(jìn)行分組設(shè)置,通常將不同的組對(duì)應(yīng)不同的服務(wù)器即網(wǎng)段中,換而言之令不同的組處于不同的網(wǎng)段中,作為另一種可選的方案,不同的組也可以位于同樣的網(wǎng)段中。例如,辦公網(wǎng)絡(luò)的網(wǎng)絡(luò)為192.168.222.0,設(shè)置的缺省網(wǎng)關(guān)為192.168.222.100,而多媒體教室的網(wǎng)絡(luò)地址為192.168.223.0,設(shè)置的缺省網(wǎng)關(guān)為192.168.223.100。進(jìn)一步地,在負(fù)載集群的服務(wù)器中,將服務(wù)器A對(duì)應(yīng)節(jié)點(diǎn)組1的優(yōu)先級(jí)設(shè)置為一個(gè)較高的數(shù)值,例如120,需要注意的是,初始優(yōu)先級(jí)不能設(shè)置為最高的255,而應(yīng)當(dāng)設(shè)置在100-200之間,其他作為保留值。將服務(wù)器B對(duì)應(yīng)節(jié)點(diǎn)組1的優(yōu)先級(jí)設(shè)置為一個(gè)較低的數(shù)字,例如100 ;因此節(jié)點(diǎn)組1自動(dòng)地按照優(yōu)先級(jí),選擇較高的服務(wù)器A進(jìn)行網(wǎng)絡(luò)通訊。同樣地,服務(wù)器B的對(duì)應(yīng)節(jié)點(diǎn)組2的優(yōu)先級(jí)設(shè)置為一個(gè)相同的數(shù)字,也是120,服務(wù)器A的對(duì)應(yīng)節(jié)點(diǎn)組2的優(yōu)先級(jí)設(shè)置為一個(gè)較低的數(shù)值,例如100,應(yīng)當(dāng)指出的是,盡管在這里服務(wù)器A與服務(wù)器B所對(duì)應(yīng)的優(yōu)先級(jí)是相同的,但作為一種可選的方案,可以使用一種具有一定梯度間隔的優(yōu)先級(jí)設(shè)置方式,例如,在一定程度上錯(cuò)開服務(wù)器A以及服務(wù)器B的可能的優(yōu)先級(jí)上下浮動(dòng)范圍,從而得到一個(gè)能夠體現(xiàn)負(fù)載集群的服務(wù)器的相對(duì)優(yōu)先的順序。此外還包括一個(gè)額外的監(jiān)測(cè)進(jìn)程,該檢測(cè)進(jìn)程位于負(fù)載集群的服務(wù)器上,當(dāng)檢查到MASTER上服務(wù)不可用了,就會(huì)通知本機(jī)上的兄弟子進(jìn)程,讓他刪除通告,并且去掉該MASTER上所對(duì)應(yīng)的訪問地址,將其轉(zhuǎn)換為BACKUP狀態(tài),即非主要處理狀態(tài)。
[0022]進(jìn)一步地,為了能夠搭建一個(gè)具有高可擴(kuò)展性,高可用性的負(fù)債均衡方案,所述的冗余的系統(tǒng)架構(gòu)方法還包括以下具體步驟,下述步驟是為了能夠配合上文所記載的服務(wù)器設(shè)置方法,提高服務(wù)器的整體性能而制定的:為了能夠?qū)崿F(xiàn)用戶請(qǐng)求在負(fù)載集群的服務(wù)器中的平均分配,將一定數(shù)量的節(jié)點(diǎn)與所述負(fù)載集群相連接,將待處理的數(shù)據(jù)分塊后分發(fā)至所述節(jié)點(diǎn)分別進(jìn)行存儲(chǔ)和處理,所述節(jié)點(diǎn)依據(jù)其所對(duì)應(yīng)的被設(shè)置為主要處理狀態(tài)的服務(wù)器發(fā)送用戶請(qǐng)求和數(shù)據(jù)。作為負(fù)載集群管理的一部分,在傳遞信息的時(shí)候可以通過一個(gè)簡(jiǎn)單的配置文件來定義信息傳遞的方式和協(xié)議,實(shí)現(xiàn)HA心跳信息傳輸,最終完成負(fù)載集群成員的管理和成員間的通訊傳遞。上述用戶請(qǐng)求在負(fù)載集群的服務(wù)器中的平均分配由數(shù)據(jù)分塊實(shí)現(xiàn)。在負(fù)載集群的服務(wù)器和內(nèi)部網(wǎng)絡(luò)的節(jié)點(diǎn)之間增設(shè)一個(gè)新的中間層,將數(shù)據(jù)的存儲(chǔ)形式由文件變更為塊。作為一種可以選擇的策略,可以采用分塊打散策略以及觸發(fā)式增量分塊搬遷策略。具體而言,為了實(shí)現(xiàn)上述的分塊打散策略,從邏輯層次上建立三個(gè)層,第一層為面向客戶端的塊驅(qū)動(dòng)層,負(fù)責(zé)建立一個(gè)基于虛擬機(jī)的塊虛擬設(shè)備。第二層是一個(gè)基于定長(zhǎng)數(shù)據(jù)段,且用一個(gè)足夠長(zhǎng)度的對(duì)象標(biāo)識(shí)進(jìn)行標(biāo)識(shí)的存儲(chǔ)系統(tǒng),該存儲(chǔ)系統(tǒng)以對(duì)象的形式存儲(chǔ)數(shù)據(jù),其要點(diǎn)在于,所有的數(shù)據(jù)以對(duì)象而非文件的形式進(jìn)行存儲(chǔ)。第三層為集群管理層,負(fù)責(zé)檢測(cè)節(jié)點(diǎn)故障,處理節(jié)點(diǎn)加入和退出,保證所有服務(wù)器看到一致的集群成員關(guān)系,此外,該層還負(fù)責(zé)全局協(xié)調(diào)和同步,在不同的節(jié)點(diǎn)之間進(jìn)行狀態(tài)同步,實(shí)現(xiàn)集群管理。上述的對(duì)象存儲(chǔ)至少應(yīng)當(dāng)包括以下步驟:接收客戶端請(qǐng)求,且根據(jù)一致性哈希計(jì)算定位目標(biāo)節(jié)點(diǎn),并路由請(qǐng)求到這些節(jié)點(diǎn);以及,在對(duì)象的基礎(chǔ)上實(shí)現(xiàn)對(duì)本地對(duì)象的存儲(chǔ)管理,同時(shí)進(jìn)行對(duì)象的讀取操作,即對(duì)DataObject的讀寫操作。具體而言,上述的數(shù)據(jù)分塊和對(duì)象劃分要求將所有數(shù)據(jù)以定長(zhǎng),通常可以是4M長(zhǎng)度劃分為數(shù)據(jù)塊,數(shù)據(jù)塊至少包括一個(gè)足夠長(zhǎng)度的對(duì)象標(biāo)識(shí)進(jìn)行標(biāo)識(shí),包括4位對(duì)象類型,24位虛擬磁盤映像標(biāo)識(shí),用于表示數(shù)據(jù)段所在的虛擬磁盤,32位本地對(duì)象標(biāo)識(shí),用于標(biāo)識(shí)數(shù)據(jù)段在虛擬磁盤中的位置。在此基礎(chǔ)上,每個(gè)節(jié)點(diǎn)劃分成多個(gè)虛擬節(jié)點(diǎn),虛擬節(jié)點(diǎn)和013』601:10 —樣,采用64位整數(shù)唯一標(biāo)識(shí),每個(gè)虛擬節(jié)點(diǎn)負(fù)責(zé)一段包含節(jié)點(diǎn)10在內(nèi)的046(^10區(qū)間。副本存在046(^10對(duì)應(yīng)的虛擬節(jié)點(diǎn),及在后續(xù)的幾個(gè)節(jié)點(diǎn)上。采用一致性哈希的好處是,無需維護(hù)映射表,節(jié)點(diǎn)加入或者失效時(shí)受影響的數(shù)據(jù)較小——只影響到哈希環(huán)上相鄰的兩個(gè)節(jié)點(diǎn)。為了增加數(shù)據(jù)遷移和恢復(fù)的速度,一致性哈希一般搭配虛擬節(jié)點(diǎn)使用,避免對(duì)某一個(gè)物理服務(wù)器造成很大壓力。
[0023]進(jìn)一步地,在數(shù)據(jù)存儲(chǔ)方面,上述單獨(dú)存儲(chǔ)成一個(gè)文件,路徑是/81:01-6^(111-/0)3^/^6150011/10]。直接讀寫在進(jìn)行直接讀寫的基礎(chǔ)上,更新時(shí)使用數(shù)據(jù)日志以保證一致性。
[0024]此外,還包括空間延遲分配的步驟:0社21013』601:中維護(hù)一個(gè)整數(shù)數(shù)組
1(1 ^1^X^0^1^08181,該數(shù)組第V項(xiàng)記錄第V個(gè)所對(duì)應(yīng)的虛擬磁盤映像標(biāo)識(shí),如果(131:11(11?等于零,說明第&個(gè)尚未分配,寫數(shù)據(jù)時(shí)要事先創(chuàng)建0^1:8013^601:,并設(shè)置(131:11(1?]。
[0025]在上述的數(shù)據(jù)塊存儲(chǔ)和對(duì)象存儲(chǔ)的基礎(chǔ)上,基于的?開發(fā)框架管理集群成員關(guān)系,以支持全局有序且可靠的消息投遞,特別是在負(fù)載集群的服務(wù)器之間的通告分發(fā),節(jié)點(diǎn)加入或者退出集群作為一種消息按序投遞到所有節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)看到的集群成員關(guān)系最終能達(dá)到一致。在此過程中,需要維護(hù)集群成員關(guān)系歷史,存儲(chǔ)路徑是/81:0^6^111761)0011/
[61)0011 11111111361-] , 61)0(^是一個(gè)全局遞增的數(shù)值,用以描述集群成員關(guān)系的版本,每當(dāng)節(jié)點(diǎn)加入和退出時(shí),需要增加印0也?;谟?也可以快速判斷兩個(gè)節(jié)點(diǎn)是否擁有相同的集群成員關(guān)系視圖。
[0026]進(jìn)一步地,節(jié)點(diǎn)加入分為兩個(gè)階段,第一階段新加入節(jié)點(diǎn)向'發(fā)送加入請(qǐng)求,所述的'可以被視為設(shè)置為主要處理狀態(tài)的服務(wù)器,但在實(shí)際運(yùn)行中,一臺(tái)服務(wù)器可以同時(shí)被設(shè)置為或者非狀態(tài),第二階段,1112181:61~檢查節(jié)點(diǎn)是否可以加入,如果可以加入廣播節(jié)點(diǎn)加入消息到集群其它節(jié)點(diǎn)。節(jié)點(diǎn)故障時(shí),另外一個(gè)節(jié)點(diǎn)自動(dòng)成為111881:61~的負(fù)載很低,遷移很快,不會(huì)帶來性能瓶頸和可用性問題。
[0027]節(jié)點(diǎn)退出時(shí),馬上進(jìn)行處理故障,如果節(jié)點(diǎn)假死,可能造成網(wǎng)絡(luò)和磁盤資源浪費(fèi)。
[0028]節(jié)點(diǎn)加入和退出都會(huì)導(dǎo)致數(shù)據(jù)遷移,大致流程是:首先從其他節(jié)點(diǎn)得到集群中的01^6(:1:10 集合,將屬于本節(jié)點(diǎn)的 01^6(:1:10 保存到 /81:0^6^11:^/01^/111:116 0111-1-0111:61)0011] /1181:,根據(jù)上一個(gè)61)0011的集群成員關(guān)系確定0社21013』601:的源,發(fā)送讀請(qǐng)求到源節(jié)點(diǎn)讀取數(shù)據(jù),寫入到遷移與讀寫請(qǐng)求不能并發(fā)進(jìn)行,如果0社未遷移完成,則讀寫請(qǐng)求被阻塞。為了降低阻塞時(shí)間,需要優(yōu)先恢復(fù)即將被訪問的存儲(chǔ)對(duì)象。每個(gè)副本完全保證一致,讀操作可以在任意副本完成,更新操作并行的發(fā)往所有副本,當(dāng)所有副本都更新成功之后,網(wǎng)關(guān)才告訴客戶端更新操作成功。1/0請(qǐng)求中帶有網(wǎng)關(guān)的6?0也信息,如果副本印0也版本不同于網(wǎng)關(guān),則請(qǐng)求處理失敗,網(wǎng)關(guān)重試請(qǐng)求直到印0也匹配為止(僅僅重試出錯(cuò)節(jié)點(diǎn)可能是有問題的,因?yàn)榫W(wǎng)關(guān)的印0也可能是錯(cuò)誤的)。值的注意是的,網(wǎng)關(guān)故障可能導(dǎo)致部分副本更新成功,使用讀時(shí)修復(fù)機(jī)制處理這種不一致性:網(wǎng)關(guān)初次讀取0社21013』601:的時(shí)候,讀取整個(gè)0社21013』601:,并覆蓋所有其他副本。讀時(shí)修復(fù)機(jī)制帶來幾個(gè)問題:1)第一次讀取的響應(yīng)時(shí)間非常長(zhǎng);2)網(wǎng)關(guān)需要記錄讀過的ObjectlDo
[0029]由于一個(gè)虛擬磁盤映像在同一個(gè)時(shí)刻只能為一個(gè)客戶端或者節(jié)點(diǎn)所掛載,因此還包括以下具體步驟:對(duì)虛擬磁盤映像進(jìn)行加鎖,可保證虛擬磁盤映像同時(shí)只能被一個(gè)客戶端或者節(jié)點(diǎn)所訪問。由于消息投遞順序是全局有序的,最后k個(gè)lock volume b請(qǐng)求在所有服務(wù)器上都會(huì)被拒絕。
[0030]總之,以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所作的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。
【權(quán)利要求】
1.一種冗余的系統(tǒng)架構(gòu)方法,其特征在于,包括以下具體步驟: 使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群;所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求;為了能夠確認(rèn)負(fù)載集群中的服務(wù)器故障,所述負(fù)載集群中的任一服務(wù)器在等待一段時(shí)間后尚未收到負(fù)載集群中的其他服務(wù)器發(fā)來的轉(zhuǎn)換通告且自己并不具有最高優(yōu)先級(jí)的情況下,將自己設(shè)置為主要處理狀態(tài)并向負(fù)載集群中的其他服務(wù)器發(fā)出轉(zhuǎn)換通告;當(dāng)所述負(fù)載集群中的服務(wù)器在接到用戶請(qǐng)求時(shí),依據(jù)設(shè)置為主要處理狀態(tài)的服務(wù)器的數(shù)量平均地分配用戶請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的系統(tǒng)架構(gòu)方法,其特征在于,還包括以下具體步驟: 為了能夠?qū)崿F(xiàn)用戶請(qǐng)求在負(fù)載集群的服務(wù)器中的平均分配,將一定數(shù)量的節(jié)點(diǎn)與所述負(fù)載集群相連接,將待處理的數(shù)據(jù)分塊后分發(fā)至所述節(jié)點(diǎn)分別進(jìn)行存儲(chǔ)和處理,所述節(jié)點(diǎn)依據(jù)其所對(duì)應(yīng)的被設(shè)置為主要處理狀態(tài)的服務(wù)器發(fā)送用戶請(qǐng)求和數(shù)據(jù)。
3.—種冗余的系統(tǒng)架構(gòu)方法,其特征在于,包括以下具體步驟: 使用至少兩臺(tái)分別使用不同的網(wǎng)絡(luò)地址且相互連接的服務(wù)器作為處理用戶請(qǐng)求的負(fù)載集群;所述負(fù)載集群中的服務(wù)器分別獨(dú)立地接收用戶的請(qǐng)求,并在其中一臺(tái)服務(wù)器發(fā)生故障時(shí),將故障服務(wù)器接收的用戶請(qǐng)求轉(zhuǎn)移到另一臺(tái)服務(wù)器并由該服務(wù)器處理轉(zhuǎn)移得到的用戶請(qǐng)求;為了能夠確認(rèn)負(fù)載集群中的服務(wù)器故障,所述負(fù)載集群中的任一服務(wù)器在等待一段時(shí)間后尚未收到負(fù)載集群中的其他服務(wù)器發(fā)來的轉(zhuǎn)換通告且自己并不具有最高優(yōu)先級(jí)的情況下,將自己設(shè)置為主要處理狀態(tài)并向負(fù)載集群中的其他服務(wù)器發(fā)出轉(zhuǎn)換通告;當(dāng)所述負(fù)載集群中的服務(wù)器在接到用戶請(qǐng)求時(shí),依據(jù)設(shè)置為主要處理狀態(tài)的服務(wù)器的數(shù)量在服務(wù)器之間分配用戶請(qǐng)求;將一定數(shù)量的節(jié)點(diǎn)與所述負(fù)載集群相連接,將待處理的數(shù)據(jù)分塊后分發(fā)至所述節(jié)點(diǎn)分別進(jìn)行存儲(chǔ)和處理,所述節(jié)點(diǎn)依據(jù)其所對(duì)應(yīng)的被設(shè)置為主要處理狀態(tài)的服務(wù)器發(fā)送用戶請(qǐng)求和數(shù)據(jù)。
【文檔編號(hào)】H04L12/24GK104410531SQ201410764728
【公開日】2015年3月11日 申請(qǐng)日期:2014年12月11日 優(yōu)先權(quán)日:2014年12月11日
【發(fā)明者】許小龍, 倪凱俊 申請(qǐng)人:上海百事通信息技術(shù)股份有限公司