1.一種處理虛擬機(jī)集群的方法,其特征在于,所述虛擬機(jī)集群包括N個(gè)虛擬機(jī),所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)保存虛擬機(jī)列表,并以對(duì)等方式作為第一虛擬機(jī)進(jìn)行工作,所述虛擬機(jī)列表包括所述N個(gè)虛擬機(jī)的信息,所述方法包括:
所述第一虛擬機(jī)向所述N個(gè)虛擬機(jī)中的至少兩個(gè)鄰居虛擬機(jī)發(fā)送第一心跳消息,以便所述至少兩個(gè)鄰居虛擬機(jī)檢測(cè)所述第一心跳消息,其中所述第一心跳消息的檢測(cè)結(jié)果用于確定所述第一虛擬機(jī)的狀態(tài),所述第一虛擬機(jī)根據(jù)所述N個(gè)虛擬機(jī)的信息與所述至少兩個(gè)鄰居虛擬機(jī)建立了鄰居關(guān)系;
所述第一虛擬機(jī)作為所述至少兩個(gè)虛擬機(jī)中的第二虛擬機(jī)的鄰居虛擬機(jī),檢測(cè)所述第二虛擬機(jī)發(fā)送的第二心跳消息,其中所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果用于確定所述第二虛擬機(jī)的狀態(tài)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
所述第一虛擬機(jī)向所述至少兩個(gè)鄰居虛擬機(jī)發(fā)送第一同步信息,所述第一同步信息用于指示所述第一虛擬機(jī)中保存的所述虛擬機(jī)列表的更新,以便所述至少兩個(gè)鄰居虛擬機(jī)更新各自保存的虛擬機(jī)列表;
所述第一虛擬機(jī)接收所述第二虛擬機(jī)發(fā)送的第二同步信息,所述第二同步信息用于指示所述第二虛擬機(jī)中保存的虛擬機(jī)列表的更新;
所述第一虛擬機(jī)根據(jù)所述第二同步信息更新所述第一虛擬機(jī)保存的所述虛擬機(jī)列表。
3.如權(quán)利要求1所述的方法,其特征在于,所述至少兩個(gè)鄰居虛擬機(jī)包括所述N個(gè)虛擬機(jī)中具備與所述第一虛擬機(jī)直接交互信息的能力的二至六個(gè)虛擬機(jī)。
4.根據(jù)權(quán)利要求1至3中的任一個(gè)所述方法,其特征在于,還包括:
所述第一虛擬機(jī)在確定所述第二虛擬機(jī)的狀態(tài)為故障的情況下,所述第二虛擬機(jī)觸發(fā)所述第二虛擬機(jī)重啟或觸發(fā)所述第二虛擬機(jī)從所述第二虛擬機(jī)的源主機(jī)遷移至目標(biāo)主機(jī),其中所述源主機(jī)為故障主機(jī),所述目標(biāo)主機(jī)為正常主機(jī)。
5.根據(jù)權(quán)利要求1至3中的任一項(xiàng)所述方法,其特征在于,還包括:
所述第一虛擬機(jī)在確定所述第二虛擬機(jī)的狀態(tài)為故障且無(wú)法重啟的情況下,所述第一虛擬機(jī)觸發(fā)所述第二虛擬機(jī)從所述第二虛擬機(jī)所在的源主機(jī)遷移至目標(biāo)主機(jī),其中所述源主機(jī)為故障主機(jī),所述目標(biāo)主機(jī)為正常主機(jī)。
6.根據(jù)權(quán)利要求2至5中的任一項(xiàng)所述的方法,其特征在于,還包括:
所述第一虛擬機(jī)在確定所述第二虛擬機(jī)的狀態(tài)為離開(kāi)的情況下,所述第一虛擬機(jī)觸發(fā)所述第二虛擬機(jī)從所述第二虛報(bào)機(jī)所在的源主機(jī)上刪除。
7.根據(jù)權(quán)利要求1至6中的任一項(xiàng)所述的方法,其特征在于,所述方法還包括:
所述第一虛擬機(jī)向所述N個(gè)虛擬機(jī)的上層節(jié)點(diǎn)發(fā)送所述第二心跳消息的檢測(cè)結(jié)果,以便所述上層節(jié)點(diǎn)根據(jù)所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)發(fā)送給所述第二虛擬機(jī)的其它鄰居虛擬機(jī)的心跳消息的檢測(cè)結(jié)果確定所述第二虛擬機(jī)的狀態(tài);
所述第一虛擬機(jī)接收所述上層節(jié)點(diǎn)發(fā)送的指示消息,所述指示消息用于指示第二虛擬機(jī)的狀態(tài)。
8.根據(jù)權(quán)利要求1至6中的任一項(xiàng)所述的方法,其特征在于,所述方法還包括:
所述第一虛擬機(jī)接收所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果;
所述第一虛擬機(jī)根據(jù)所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果確定所述第二虛擬機(jī)的狀態(tài)。
9.如權(quán)利要求1至8中任一項(xiàng)所述的方法,其特征在于,在所述第一虛擬機(jī)加入所述虛擬機(jī)集群時(shí),所述方法還包括:
所述第一虛擬機(jī)向所述N個(gè)虛擬機(jī)中的其它虛擬機(jī)發(fā)送所述第一虛擬機(jī)的信息;
所述第一虛擬機(jī)接收所述N虛擬機(jī)中其它虛擬機(jī)發(fā)送的各自的信息,以生成所述虛擬機(jī)列表。
10.如權(quán)利要求1至8中的任一項(xiàng)所述的方法,其特征在于,在所述第一虛擬機(jī)加入所述虛擬機(jī)集群時(shí),所述方法還包括:
所述第一虛擬機(jī)向索引服務(wù)器發(fā)送注冊(cè)信息,所述注冊(cè)信息包括所述第一虛擬機(jī)的信息,其中所述索引服務(wù)器為所述虛擬機(jī)集群的注冊(cè)中心,用于 為所述虛擬機(jī)集群中的虛擬機(jī)提供注冊(cè)服務(wù);
所述第一虛擬機(jī)接收所述索引服務(wù)器發(fā)送的所述N個(gè)虛擬機(jī)中的其它虛擬機(jī)的信息,以生成所述虛擬機(jī)列表。
11.如權(quán)利要求1至10中的任一項(xiàng)所述的方法,其特征在于,還包括:
所述第一虛擬機(jī)采用鄰居關(guān)系算法,根據(jù)所述虛擬機(jī)列表中保存的所述N個(gè)虛擬機(jī)的信息,從所述N個(gè)虛擬機(jī)中選擇至少兩個(gè)作為鄰居虛擬機(jī)。
12.如權(quán)利要求1至11中的任一項(xiàng)所述的方法,其特征在于,所述N個(gè)虛擬機(jī)的信息包括:所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的狀態(tài)信息、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的鄰居關(guān)系信息、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的啟動(dòng)次數(shù)、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的心跳值、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的配置信息以及所述虛擬機(jī)集群的配置信息中的任意一個(gè)或多個(gè)的組合。
13.一種計(jì)算機(jī)系統(tǒng),其特征在于,所述計(jì)算機(jī)系統(tǒng)包括至少一個(gè)計(jì)算機(jī)節(jié)點(diǎn)的物理硬件層,在所述至少一個(gè)計(jì)算機(jī)節(jié)點(diǎn)的物理硬件層之上運(yùn)行虛擬機(jī)集群,所述虛擬機(jī)集群包括N個(gè)虛擬機(jī),所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)保存虛擬機(jī)列表,并以對(duì)等方式作為第一虛擬機(jī)進(jìn)行工作,所述虛擬機(jī)列表包括所述N個(gè)虛擬機(jī)的信息,所述第一虛擬機(jī)包括:
發(fā)送模塊,用于向所述N個(gè)虛擬機(jī)中的至少兩個(gè)鄰居虛擬機(jī)發(fā)送第一心跳消息,以便所述至少兩個(gè)鄰居虛擬機(jī)檢測(cè)所述第一心跳消息,其中所述第一心跳消息的檢測(cè)結(jié)果用于確定所述第一虛擬機(jī)的狀態(tài),所述第一虛擬機(jī)根據(jù)所述N個(gè)虛擬機(jī)的信息與所述至少兩個(gè)鄰居虛擬機(jī)建立了鄰居關(guān)系;
接收模塊,用于檢測(cè)所述至少兩個(gè)虛擬機(jī)中的第二虛擬機(jī)發(fā)送的第二心跳消息,其中所述第一虛擬機(jī)為所述第二虛擬機(jī)的鄰居虛擬機(jī),所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果用于確定所述第二虛擬機(jī)的狀態(tài)。
14.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述發(fā)送模塊還向所述至少兩個(gè)鄰居虛擬機(jī)發(fā)送第一同步信息,所述第一同步信息用于指示所述第一虛擬機(jī)中保存的所述虛擬機(jī)列表的更新,以便所述至少兩個(gè)鄰居虛擬機(jī)更新各自保存的虛擬機(jī)列表,所述接收模塊還接收所述第二虛擬機(jī)發(fā)送的第二同步信息,所述第二同步信息用于指示所述第二虛擬機(jī)中保存的虛擬機(jī)列表的更新,所述第一虛擬機(jī)還包括更新模塊,用于根據(jù)所述第二同步信 息更新所述第一虛擬機(jī)保存的所述虛擬機(jī)列表。
15.如權(quán)利要求13或14所述的方法,其特征在于,所述至少兩個(gè)鄰居虛擬機(jī)包括所述N個(gè)虛擬機(jī)中具備與所述第一虛擬機(jī)直接交互信息的能力的二至六個(gè)虛擬機(jī)。
16.根據(jù)權(quán)利要求13至15中的任一項(xiàng)所述計(jì)算機(jī)系統(tǒng),其特征在于,還包括:
觸發(fā)模塊,用于在確定所述第二虛擬機(jī)的狀態(tài)為故障的情況下,觸發(fā)所述第二虛擬機(jī)重啟或觸發(fā)所述第二虛擬機(jī)從所述第二虛擬機(jī)的源主機(jī)遷移至目標(biāo)主機(jī),其中所述源主機(jī)為故障主機(jī),所述目標(biāo)主機(jī)為正常主機(jī)。
17.根據(jù)權(quán)利要求13至15中的任一項(xiàng)所述計(jì)算機(jī)系統(tǒng),其特征在于,還包括:
觸發(fā)模塊,用于在確定所述第二虛擬機(jī)的狀態(tài)為故障且無(wú)法重啟的情況下,觸發(fā)所述第二虛擬機(jī)從所述第二虛擬機(jī)所在的源主機(jī)遷移至目標(biāo)主機(jī),其中所述源主機(jī)為故障主機(jī),所述目標(biāo)主機(jī)為正常主機(jī)。
18.根據(jù)權(quán)利要求13至17中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括:
觸發(fā)模塊,用于在確定所述第二虛擬機(jī)的狀態(tài)為離開(kāi)的情況下,觸發(fā)所述第二虛擬機(jī)從所述第二虛報(bào)機(jī)所在的源主機(jī)上刪除。
19.根據(jù)權(quán)利要求13至18中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述發(fā)送模塊還向所述N個(gè)虛擬機(jī)的上層節(jié)點(diǎn)發(fā)送所述第二心跳消息的檢測(cè)結(jié)果,以便所述上層節(jié)點(diǎn)根據(jù)所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)發(fā)送給所述第二虛擬機(jī)的其它鄰居虛擬機(jī)的心跳消息的檢測(cè)結(jié)果確定所述第二虛擬機(jī)的狀態(tài),所述接收模塊還接收所述上層節(jié)點(diǎn)發(fā)送的指示消息,所述指示消息用于指示第二虛擬機(jī)的狀態(tài)。
20.根據(jù)權(quán)利要求13至18中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述接收模塊還接收所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果,所述接收模塊還根據(jù)所述第二心跳消息的檢測(cè)結(jié)果和所述第二虛擬機(jī)的其它鄰居虛擬機(jī)檢測(cè)所述第二虛擬機(jī)發(fā)送的心跳消息得到的檢測(cè)結(jié)果確定所述第二虛擬機(jī)的狀態(tài)。
21.如權(quán)利要求13至20中任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述發(fā)送模塊還在所述第一虛擬機(jī)加入所述虛擬機(jī)集群時(shí),向所述N個(gè)虛擬機(jī) 中的其它虛擬機(jī)發(fā)送所述第一虛擬機(jī)的信息,所述接收模塊還接收所述N虛擬機(jī)中其它虛擬機(jī)發(fā)送的各自的信息,以生成所述虛擬機(jī)列表。
22.如權(quán)利要求13至20中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述發(fā)送模塊還在所述第一虛擬機(jī)加入所述虛擬機(jī)集群時(shí),向索引服務(wù)器發(fā)送注冊(cè)信息,所述注冊(cè)信息包括所述第一虛擬機(jī)的信息,其中所述索引服務(wù)器為所述虛擬機(jī)集群的注冊(cè)中心,用于為所述虛擬機(jī)集群中的虛擬機(jī)提供注冊(cè)服務(wù),所述接收模塊還接收所述索引服務(wù)器發(fā)送的所述N個(gè)虛擬機(jī)中的其它虛擬機(jī)的信息,以生成所述虛擬機(jī)列表。
23.如權(quán)利要求13至22中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括:
選擇模塊,用于采用鄰居關(guān)系算法,根據(jù)所述虛擬機(jī)列表中保存的所述N個(gè)虛擬機(jī)的信息,從所述N個(gè)虛擬機(jī)中選擇至少兩個(gè)作為鄰居虛擬機(jī)。
24.如權(quán)利要求13至23中的任一項(xiàng)所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述N個(gè)虛擬機(jī)的信息包括:所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的狀態(tài)信息、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的鄰居關(guān)系信息、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的啟動(dòng)次數(shù)、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的心跳值、所述N個(gè)虛擬機(jī)中的每個(gè)虛擬機(jī)的配置信息以及所述虛擬機(jī)集群的配置信息中的任意一個(gè)或多個(gè)的組合。