本發(fā)明涉及服務(wù)器技術(shù)領(lǐng)域,特別涉及一種四控服務(wù)器及四控服務(wù)器通信方法。
背景技術(shù):
目前傳統(tǒng)的存儲(chǔ)服務(wù)器主要有兩種:雙控和四控。雙控包括兩個(gè)控制器,兩個(gè)控制器可以并行的IO業(yè)務(wù)流,允許其中一個(gè)節(jié)點(diǎn)出現(xiàn)故障而不影響正常的業(yè)務(wù)操作;四控包括四個(gè)控制器,四個(gè)控制器可以并行的處理IO業(yè)務(wù)流,允許最多三個(gè)控制器出現(xiàn)故障而不影響正常的業(yè)務(wù)。四控較雙控具有更高的容錯(cuò)性和更高的效率,故高端服務(wù)器系統(tǒng)一般都以四控。
四控服務(wù)器為實(shí)現(xiàn)其并行處理效果,在硬件連接方式和軟件通信方式上都比較復(fù)雜。硬件連接上需要四個(gè)控制器間任意兩個(gè)都有鏈路連接,這樣任意兩點(diǎn)之間都可以通過(guò)直接鏈路通信。軟件上四個(gè)節(jié)點(diǎn)要保持一致的狀態(tài),能夠進(jìn)行狀態(tài)交換,相互之間還要一定的通信機(jī)制進(jìn)行通信。即四控服務(wù)器連接方式及通信機(jī)制復(fù)雜度較高,增加了設(shè)計(jì)難度及成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種四控服務(wù)器及四控服務(wù)器通信方法,提高四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí)的效率,簡(jiǎn)化四控服務(wù)器的通信過(guò)程,且具有高效性和高容錯(cuò)性。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種四控服務(wù)器,包括:兩組控制器;其中,每組控制器中包含兩個(gè)相互連接的控制器;組間兩兩控制器之間均相互連接。
可選的,每組內(nèi)的兩個(gè)控制器之間通過(guò)PEX 8733鏈路連接;組間兩兩控制器之間均通過(guò)PEX 8796鏈路連接。
本發(fā)明還提供一種四控服務(wù)器通信方法,基于上述所述的四控服務(wù)器,包括:
當(dāng)四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí),兩組控制器并行執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步;當(dāng)各組組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步完成后,執(zhí)行組間控制器的數(shù)據(jù)同步。
可選的,兩組控制器并行執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步,包括:
兩組控制器并行利用CMS模式執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步。
可選的,當(dāng)?shù)谝唤M內(nèi)的兩個(gè)控制器為第一控制器和第二控制器,第二組內(nèi)的兩個(gè)控制器為第三控制器和第四控制器,執(zhí)行組間控制器的數(shù)據(jù)同步,包括:
第一控制器與第四控制器和第二控制器與第三控制器并行執(zhí)行數(shù)據(jù)同步。
可選的,當(dāng)按照優(yōu)先級(jí)從高到低的順序設(shè)置第一控制器、第二控制器、第三控制器和第四控制器的優(yōu)先級(jí),還包括:
當(dāng)四控服務(wù)器接收到請(qǐng)求后,按照控制器的優(yōu)先級(jí)由高到低依次判斷各控制器是否能響應(yīng)所述請(qǐng)求;若能,則執(zhí)行所述請(qǐng)求,若不能,則判斷下一控制器。
可選的,該四控服務(wù)器通信方法還包括:
當(dāng)存在一個(gè)控制器加入集群時(shí),其他控制器同步加入到所述集群中。
本發(fā)明所提供的一種四控服務(wù)器,包括:兩組控制器;其中,每組控制器中包含兩個(gè)相互連接的控制器;組間兩兩控制器之間均相互連接;該四控服務(wù)器具有雙控存儲(chǔ)服務(wù)器中控制器連接方式簡(jiǎn)單的優(yōu)點(diǎn);該四控服務(wù)器的通信方法為當(dāng)四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí),兩組控制器并行執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步;當(dāng)各組組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步完成后,執(zhí)行組間控制器的數(shù)據(jù)同步;能夠提高四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí)的效率,簡(jiǎn)化四控服務(wù)器的通信過(guò)程,且具有高效性和高容錯(cuò)性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的四控服務(wù)器的結(jié)構(gòu)框圖;
圖2為本發(fā)明實(shí)施例所提供的另一四控服務(wù)器的結(jié)構(gòu)框圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種四控服務(wù)器及四控服務(wù)器通信方法,提高四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí)的效率,簡(jiǎn)化四控服務(wù)器的通信過(guò)程,且具有高效性和高容錯(cuò)性。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例所提供的四控服務(wù)器的結(jié)構(gòu)框圖;包括:兩組控制器(例如圖1中的第一組和第二組,這里也可以成組為pair);其中,每組控制器中包含兩個(gè)相互連接的控制器(例如第一組內(nèi)包括第一控制器和第二控制器,第二組內(nèi)包括第三控制器和第四控制器);組間兩兩控制器之間均相互連接。每個(gè)組中兩個(gè)控制器之間可以直接通信,兩組之間也可以通信,這樣兩組共四個(gè)控制器互聯(lián)形成一個(gè)完整的四控互聯(lián)存儲(chǔ)服務(wù)器即上述四控服務(wù)器。
具體的,該實(shí)施例中四控服務(wù)器將四個(gè)控制器分為兩組,且四個(gè)控制器兩兩相連即需要六條連接線連接,即可以實(shí)現(xiàn)任意兩個(gè)控制器之間的鏈路進(jìn)行通信。這里六條連接線可以是同一種總線(例如PEX 8733鏈路,或者PEX 8796鏈路),也可以是不同種總線(例如六條連接線可以使用PEX 8733鏈路以及PEX 8796鏈路)。由于現(xiàn)有技術(shù)中雙控服務(wù)器的兩個(gè)控制器之間是通過(guò)PEX 8733鏈路連接的,因此,為了有雙控存儲(chǔ)服務(wù)器中控制器連接方式簡(jiǎn)單的優(yōu)點(diǎn),且盡量對(duì)控制器做出小的改變可以將每組內(nèi)的兩個(gè)控制器之間通過(guò)PEX 8733鏈路連接。為了使四控服務(wù)器的四個(gè)控制器之間的通信更方便,即四控通信機(jī)制更加簡(jiǎn)單可靠,可以使組間兩兩控制器之間均通過(guò)PEX 8796鏈路連接。即優(yōu)選的,請(qǐng)參考圖2,圖2為本發(fā)明實(shí)施例所提供的另一四控服務(wù)器的結(jié)構(gòu)框圖;每組內(nèi)的兩個(gè)控制器之間通過(guò)PEX 8733鏈路連接;組間兩兩控制器之間均通過(guò)PEX 8796鏈路連接。即通過(guò)六條鏈路將四個(gè)控制器兩兩互聯(lián)。但是在pair內(nèi)兩個(gè)控制器采用PEX 8733鏈路連接,pair之間的節(jié)點(diǎn)通過(guò)PEX 8796鏈路連接,總共需要兩條PEX 8733鏈路和四條PEX 8796鏈路。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的四控服務(wù)器,將四控存儲(chǔ)服務(wù)器的四個(gè)控制器分為兩組,每組包含兩個(gè)控制器(或者成服務(wù)器為節(jié)點(diǎn))稱為pair(即組),pair內(nèi)兩個(gè)節(jié)點(diǎn)相互連接通信,pair之間再相互連接通信,最終形成包含四個(gè)控制器的四控互聯(lián)存儲(chǔ)服務(wù)器。充分利用現(xiàn)有的雙控存儲(chǔ)服務(wù)器,進(jìn)行最小改動(dòng),實(shí)現(xiàn)四控通信機(jī)制,從而節(jié)約成本,并提高存儲(chǔ)服務(wù)器性能。
下面對(duì)本發(fā)明實(shí)施例提供的四控服務(wù)器通信方法進(jìn)行介紹,下文描述的四控服務(wù)器通信方法與上文描述的四控服務(wù)器可相互對(duì)應(yīng)參照。
本發(fā)明還提供一種四控服務(wù)器通信方法,基于上述所述的四控服務(wù)器的硬件基礎(chǔ)上即將四個(gè)控制器分為兩組的方式,該方法可以包括:
當(dāng)四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí),兩組控制器并行執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步;當(dāng)各組組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步完成后,執(zhí)行組間控制器的數(shù)據(jù)同步。
具體的,傳統(tǒng)的四控服務(wù)器的通信中四個(gè)節(jié)點(diǎn)(即四個(gè)控制器)都是平等的,任意兩個(gè)節(jié)點(diǎn)都采用相同的通信方式。本實(shí)施例中將四個(gè)控制器兩兩一對(duì)分為兩個(gè)pair(即分為兩個(gè)組例如圖1中的第一組和第二組)。pair內(nèi)先進(jìn)行通信,然后進(jìn)行pair間的通信。就如同將兩個(gè)傳統(tǒng)雙控連接起來(lái),但又不是直接連接兩個(gè)傳統(tǒng)雙控,需要任意兩個(gè)節(jié)點(diǎn)都能進(jìn)行通信即兩組之間通過(guò)四條連接線連接。這樣相比傳統(tǒng)的四控服務(wù)器兩個(gè)組內(nèi)可以并行的進(jìn)行組內(nèi)通信,最后在進(jìn)行組間通信提高數(shù)據(jù)通信的速率和效率。根據(jù)組內(nèi)和組間的連接總線確定它們的通信方式。例如pair內(nèi)和pair間可以采用不同的通信方式,pair內(nèi)是PEX 8733鏈路通信,pair間是PEX 8796鏈路通信。其中,兩組控制器并行利用CMS模式執(zhí)行組內(nèi)的兩個(gè)控制器之間的數(shù)據(jù)同步。即每個(gè)pair內(nèi)通過(guò)CMS(控制狀態(tài)機(jī))模式進(jìn)行消息傳遞和保持狀態(tài)一致性。
例如圖1,當(dāng)?shù)谝唤M內(nèi)的兩個(gè)控制器為第一控制器和第二控制器,第二組內(nèi)的兩個(gè)控制器為第三控制器和第四控制器,執(zhí)行組間控制器的數(shù)據(jù)同步,可以是由第一控制器或第二控制器向第二組中兩個(gè)控制器同步第一組的數(shù)據(jù)信息,由第三控制器或第四控制器向第一組中兩個(gè)控制器同步第二組的數(shù)據(jù)信息,完成后在進(jìn)行第一組和第二組的組內(nèi)通信,也可以是由第一組的兩個(gè)控制器分別對(duì)應(yīng)第二組中的一個(gè)控制器進(jìn)行相互之間的數(shù)據(jù)同步,例如第一控制器與第三控制器對(duì)應(yīng)通信,第二控制器與第四控制器對(duì)應(yīng)通信;或者是第一控制器與第四控制器對(duì)應(yīng)通信,第二控制器與第三控制器對(duì)應(yīng)通信;請(qǐng)參考圖1,可以是第一控制器與第四控制器和第二控制器與第三控制器并行執(zhí)行數(shù)據(jù)同步。以便進(jìn)一步實(shí)現(xiàn)四個(gè)控制器之間的數(shù)據(jù)同步。相比前一種方式可以減少組間通信后的又一次組內(nèi)通信。
傳統(tǒng)的四控服務(wù)器中的四個(gè)控制器之間沒(méi)有優(yōu)先級(jí)之分,這樣不能夠利用簡(jiǎn)單的通信方式實(shí)現(xiàn)四控服務(wù)器之間的冗余等其他控制,因此,本實(shí)施例可以將四個(gè)控制器分為一個(gè)主控制器和三個(gè)從控制器。當(dāng)服務(wù)器接收到請(qǐng)求后,若主控制器能響應(yīng)該操作,則執(zhí)行服務(wù)響應(yīng)操作;如果不能,則轉(zhuǎn)發(fā)給其從控制器響應(yīng)該操作。還可以進(jìn)一步將四個(gè)控制器均設(shè)置一個(gè)優(yōu)先級(jí)例如當(dāng)按照優(yōu)先級(jí)從高到低的順序設(shè)置第一控制器、第二控制器、第三控制器和第四控制器的優(yōu)先級(jí)即四個(gè)控制器的優(yōu)先級(jí)排序?yàn)榈谝豢刂破?gt;第二控制器>第三控制器>第四控制器,還該方法包括:當(dāng)四控服務(wù)器接收到請(qǐng)求后,按照控制器的優(yōu)先級(jí)由高到低依次判斷各控制器是否能響應(yīng)所述請(qǐng)求;若能,則執(zhí)行所述請(qǐng)求,若不能,則判斷下一控制器。
具體的,服務(wù)器內(nèi)的4個(gè)節(jié)點(diǎn)都運(yùn)行相同的軟件棧,并且能夠監(jiān)察所有的IO業(yè)務(wù)流。當(dāng)服務(wù)器接收到請(qǐng)求后,若第一控制器能響應(yīng)該操作,則執(zhí)行服務(wù)響應(yīng)操作;如果不能,則轉(zhuǎn)發(fā)給其控制器響應(yīng)該操作。轉(zhuǎn)發(fā)過(guò)程就是判斷第二控制器能響應(yīng)該操作,則執(zhí)行服務(wù)響應(yīng)操作;如果不能,則判斷第三控制器能響應(yīng)該操作,則執(zhí)行服務(wù)響應(yīng)操作;如果不能,則判斷第四控制器能響應(yīng)該操作,則執(zhí)行服務(wù)響應(yīng)操作;若不能,則報(bào)錯(cuò)。
基于上述實(shí)施例,該四控服務(wù)器通信方法還包括:當(dāng)存在一個(gè)控制器加入集群時(shí),其他控制器同步加入到所述集群中。具體的,當(dāng)服務(wù)器中一個(gè)控制器加入集群時(shí),其它控制器自動(dòng)加入集群。
當(dāng)四個(gè)控制器設(shè)置優(yōu)先級(jí)后,傳統(tǒng)雙控中確定一個(gè)控制器之后,通過(guò)PCIe端口直接查找與其互聯(lián)控制器,有且只有一個(gè),但由于其他四個(gè)控制器地位一致所以查找過(guò)程復(fù)雜。本實(shí)施例中確定一個(gè)控制器后,通過(guò)PEX8733端口找同一個(gè)pair內(nèi)的另一個(gè)控制器,通過(guò)PEX8796端口找不同pair內(nèi)的兩個(gè)控制器。在每個(gè)pair內(nèi)通過(guò)CMS(控制狀態(tài)機(jī))模式進(jìn)行消息傳遞和保持狀態(tài)一致性的情況下,還需要進(jìn)行兩個(gè)pair的消息傳遞和4個(gè)控制器的一致性狀態(tài),pair內(nèi)可以并行執(zhí)行,完成后再進(jìn)行pair間的消息傳遞和一致性狀態(tài)變換。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的四控服務(wù)器通信方法,擁有雙控存儲(chǔ)服務(wù)器中控制器連接方式簡(jiǎn)單的優(yōu)點(diǎn),實(shí)現(xiàn)了四控服務(wù)器中四個(gè)控制器共同處理IO業(yè)務(wù)流,提高四控服務(wù)器進(jìn)行數(shù)據(jù)同步時(shí)的效率,簡(jiǎn)化四控服務(wù)器的通信過(guò)程,具有傳統(tǒng)四控的高效性和高容錯(cuò)性。
以上對(duì)本發(fā)明所提供的四控服務(wù)器及四控服務(wù)器通信方法進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。