集群系統及用于在集群系統中提供服務可用性的方法
【專利摘要】本發明公開了一種集群系統及用于在集群系統中提供服務可用性的方法。所述集群系統包括注冊有活動(active)虛擬機的第一物理服務器;及多個物理服務器,所述多個物理服務器包括對應于所述活動虛擬機且注冊有在所述第一物理服務器發生故障時對所述活動虛擬機進行故障轉移(failover)的備用(standby)虛擬機的第二物理服務器,在發生所述故障時,所述多個物理服務器中的每個存儲故障后(post-failure)的注冊信息,所述故障后的注冊信息將所述活動虛擬機與所述多個物理服務器中的一個物理服務器關聯起來,所述一個物理服務器與所述第二物理服務器不同。
【專利說明】集群系統及用于在集群系統中提供服務可用性的方法
【技術領域】
[0001]本發明涉及一種用于在集群系統中提供服務可用性的方法,更具體地講,涉及一種在集群系統中基于虛擬化環境提供高水平的服務可用性的方法及其集群系統。
【背景技術】
[0002]在提供服務的計算機環境中,存在多種高可用性(High Aval lability: HA)技術以減少因發生物理故障(failure)而無法利用服務的停機時間(downtime)。例如,包括被連接為能夠進行通信的多個服務器計算機的集群(cluster)系統提供預定服務的活動(active)服務器和所述活動服務器產生故障時用于恢復服務的備用(standby)服務器。
[0003]如上所述,在活動服務器發生故障的情況下,在備用服務器進行故障轉移(failover)的期間,系統的管理員通過掌握在活動服務器中發生的故障的主要原因來修復活動服務器或者代替為新的服務器。
[0004][現有技術文獻]
[0005][專利文獻]
[0006]第930576號韓國授權專利
【發明內容】
[0007]如前述的HA技術,在活動服務器和備用服務器成為冗余的情況下,如果在備用服務器發生故障之后,在管理員對所述故障采取措施之前在活動服務器發生故障,則無法持續由活動服務器提供的服務。
[0008]此外,如果表示這種活動服務器和備用服務器的冗余的信息不準確,則在活動服務器發生故障時備用服務器無法正常進行故障轉移。
[0009]公開的實施例涉及一種在包括多個物理服務器的集群系統中基于虛擬化環境(virtualized environment)提供高水平的服務可用性的方法,無論集群系統中的哪個物理服務器發生故障,也使得活動虛擬機和與其對應的備用虛擬機的對(pair)存在,進而可將表示這種對的信息基于物理服務器的可用資源來進行更新。
[0010]根據一個實施例,提供一種集群系統,所述集群系統包括:注冊有活動(active)虛擬機的第一物理服務器;及多個物理服務器,所述多個物理服務器包括對應于所述活動虛擬機且注冊有在所述第一物理服務器發生故障時對所述活動虛擬機進行故障轉移(failover)的備用(standby)虛擬機的第二物理服務器,在發生所述故障時,所述多個物理服務器中的每一個存儲故障后(post-failure)的注冊信息,所述故障后的注冊信息將所述活動虛擬機與所述多個物理服務器中的一個物理服務器關聯起來,所述一個物理服務器與所述第二物理服務器不同。
[0011]根據所述集群系統的一方面,為了構成所述故障后的注冊信息,所述一個物理服務器基于與所述多個物理服務器中的與所述第二物理服務器不同的物理服務器中的每一個的可用資源,從與所述第二物理服務器不同的所述物理服務器中被選擇。
[0012]根據所述集群系統的一方面,所述活動虛擬機根據所述故障后的注冊信息被注冊到所述一個物理服務器。
[0013]根據所述集群系統的一方面,所述故障后的注冊信息將注冊到所述第一物理服務器的其他的備用虛擬機與所述多個物理服務器中的另一個物理服務器關聯起來,所述另一個物理服務器與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的物理服務器不同。
[0014]根據所述集群系統的一方面,為了構成所述故障后的注冊信息,所述另一個物理服務器基于所述多個物理服務器中的與注冊有所述其他的活動虛擬機的物理服務器不同的物理服務器中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的物理服務器不同的所述物理服務器中被選擇。
[0015]根據所述集群系統的一方面,所述其他的備用虛擬機根據所述故障后的注冊信息被注冊到所述另一個物理服務器。
[0016]根據所述集群系統的一方面,在發生所述故障之前,所述第一物理服務器及所述多個物理服務器中的每一個存儲故障前(pre-failure)的注冊信息,所述故障后的注冊信息通過更新所述故障前的注冊信息來構成,所述故障前的注冊信息表示在發生所述故障之前注冊到所述第一物理服務器及所述多個物理服務器中的每一個的虛擬機。
[0017]根據所述集群系統的一方面,在發生所述故障之前,可基于所述第一物理服務器的狀態及所述多個物理服務器中的每一個的狀態而變更所述故障前的注冊信息。
[0018]根據所述集群系統的一方面,所述故障前的注冊信息還表示所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源。
[0019]根據所述集群系統的一方面,所述故障前的注冊信息的變更在所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
[0020]根據其他的實施例,提供一種服務可用性提供方法,所述方法用于在集群系統中提供服務可用性,包括如下步驟:在注冊有活動虛擬機的第一物理服務器中發生故障時,使得注冊到多個物理服務器中的第二物理服務器并與所述活動虛擬機對應的備用虛擬機對所述活動虛擬機進行故障轉移;在發生所述故障時,將故障后的注冊信息存儲到所述多個物理服務器中的每一個,其中,所述故障后的注冊信息將所述活動虛擬機與所述多個物理服務器中的一個物理服務器關聯起來,所述一個物理服務器與所述第二物理服務器不同。
[0021]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:為了構成所述故障后的注冊信息,所述一個物理服務器基于所述多個物理服務器中的與所述第二物理服務器不同的物理服務器中的每一個的可用資源,從與所述第二物理服務器不同的所述物理服務器中被選擇。
[0022]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:將所述活動虛擬機注冊到所述一個物理服務器。
[0023]根據所述服務可用性提供方法的一方面,所述故障后的注冊信息還將注冊到所述第一物理服務器的其他的備用虛擬機與所述多個物理服務器中的另一個物理服務器關聯起來,所述另一個物理服務器與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的物理服務器不同。
[0024]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:為了構成所述故障后的注冊信息,所述另一個物理服務器基于所述多個物理服務器中的與注冊有所述其他的活動虛擬機的物理服務器不同的物理服務器中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的物理服務器不同的所述物理服務器中被選擇。
[0025]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:所述其他的備用虛擬機根據所述故障后的注冊信息被注冊到所述另一個物理服務器。
[0026]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:在發生所述故障之前,所述第一物理服務器及所述多個物理服務器中的每一個存儲故障前的注冊信息;通過更新所述故障前的注冊信息來構成所述故障后的注冊信息,其中,所述故障前的注冊信息表示在發生所述故障之前注冊到所述第一物理服務器及所述多個物理服務器中的每一個的虛擬機。
[0027]根據所述服務可用性提供方法的一方面,所述服務可用性提供方法還包括如下步驟:在發生所述故障之前,可基于所述第一物理服務器的狀態及所述多個物理服務器中的每一個的狀態而變更所述故障前的注冊信息。
[0028]根據所述服務可用性提供方法的一方面,所述故障前的注冊信息還表示所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源。
[0029]根據所述服務可用性提供方法的一方面,所述故障前的注冊信息的變更在所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
[0030]根據其他的實施例,提供一種服務器計算機,所述服務器計算機包括處理器及存儲器,所述存儲器包括:注冊信息,表示注冊到包括所述服務器計算機的多個服務器計算機及其他的服務器計算機中的每一個的虛擬機;備用虛擬機,與注冊到所述其他的服務器計算機的活動虛擬機對應;及計算機可執行命令,在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:響應于判定所述其他服務器計算機發生故障,所述備用虛擬機對所述活動虛擬機進行故障轉移;響應于所述判定,執行更新所述注冊信息,其中,更新的所述注冊信息將所述活動虛擬機與所述多個服務器計算機中的一個服務器計算機關聯起來,所述一個服務器計算機與所述服務器計算機不同。
[0031]根據所述服務器計算機的一方面,在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:為了更新所述注冊信息,基于所述多個服務器計算機中的與所述服務器計算機不同的服務器計算機中的每一個的可用資源,從與所述服務器計算機不同的服務器計算機中選擇所述一個服務器計算機。
[0032]根據所述服務器計算機的一方面,所述其他的服務器計算機還注冊有其他的備用虛擬機,更新的所述注冊信息也將所述其他的備用虛擬機與所述多個服務器計算機中的另一個服務器計算機關聯起來,所述另一個服務器計算機與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的服務器計算機不同。
[0033]根據所述服務器計算機的一方面,在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:為了更新所述注冊信息,基于所述多個服務器計算機中的與注冊有所述其他的活動虛擬機的服務器計算機不同的服務器計算機中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的服務器計算機不同的服務器計算機中選擇所述另一個服務器計算機。
[0034]根據所述服務器計算機的一方面,在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:在發生所述故障之前,可基于所述多個服務器計算機中的每一個的狀態及所述其他的服務器計算機的狀態而變更所述注冊信息。
[0035]根據所述服務器計算機的一方面,所述注冊信息還表示所述其他的服務器計算機的可用資源及所述多個服務器計算機中的每一個的可用資源。
[0036]根據所述服務器計算機的一方面,變更所述注冊信息的操作在所述多個服務器計算機中的每一個的可用資源及所述其他的服務器計算機的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
[0037]根據本發明的多個實施例的其他具體事項在以下的詳細說明及附圖中被揭示。
[0038]根據預定的實施例,包括多個物理服務器的集群系統中提供更高的服務可用性,因此可最小化在集群系統中的任一物理服務器發生故障時的服務的停機時間。
【專利附圖】
【附圖說明】
[0039]圖1示出根據本發明的實施例的包括多個服務器計算機的集群(cluster)系統;
[0040]圖2示出本發明的實施例中的包含于物理服務器中的信息表的示例;
[0041]圖3是示出根據本發明的實施例而在集群系統中提供服務可用性的過程的順序圖。
[0042]符號說明:
[0043]100:集群系統
[0044]110、120、130、140:物理服務器
[0045]111、121、131、141:活動虛擬機
[0046]112、122、132、142 ;備用虛擬機
[0047]116、126、136、146 ;信息表
【具體實施方式】
[0048]以下,將參照附圖對本發明的【具體實施方式】進行描述。然而,這只不過是示例,并且本發明不限于此。
[0049]在對本發明進行描述時,在對與本發明相關的公知技術的具體描述被認為是會使本發明的主旨不清楚的情況下,省略其詳細描述。并且,后述的術語作為考慮本發明中的功能而定義的術語,可根據使用者、運用者的意圖或者慣例等而不同。因此,其定義應基于貫穿整個本說明書的內容而做出。
[0050]本發明的技術構思由權利要求書確定,并且以下的實施例只是用于有效地將本發明的技術思想解釋給本發明所屬的【技術領域】中具有普通的知識的技術人員的一種方式而已。
[0051]圖1示出根據本發明的實施例的包括多個服務器計算機的集群(cluster)系統。
[0052]如圖1所示,示例性的集群系統100包括第一物理服務器110、第二物理服務器120、第三物理服務器130及第四物理服務器140。各個物理服務器110、120、130、140被連接為能夠通過網絡180進行通信。例如,各個物理服務器110、120、130、140可通過網絡180相互交換包含表示各自的狀態的信息的信號(例如,心跳(heartbeat)信號)。網絡180可以是環(ring)型、星(star)型、總線(bus)型、網(mesh)型或樹(tree)型,但這畢竟是示例性的。
[0053]作為計算裝置的各個物理服務器110、120、130、140包括:一個以上的處理器、一個以上的存儲器、一個以上的存儲裝置(例如,硬盤驅動器)、一個以上的網絡接口及一個以上的輸入輸出適配器之類的硬件。存儲器可包括計算機可執行的命令,處理器可執行存儲于存儲器中的命令。在存儲于存儲器中的命令由處理器執行的情況下可執行根據以下記載的實施例的操作。
[0054]各個物理服務器110、120、130、140可提供虛擬化環境。例如,各個物理服務器110、120、130、140可注冊有虛擬機(Virtual Machine:VM)。各個注冊的虛擬機被分配有虛擬化的CPU、存儲器等的資源。此外,各個物理服務器110、120、130、140包括用于運行虛擬機的軟件、固件和/或操作系統組件。從而,存儲于各個物理服務器110、120、130、140的存儲器中的虛擬機可被運行。
[0055]根據預定的實施例,在集群系統100中基于虛擬化環境提供供高水平的服務可用性。如圖1所示,在集群系統100中正常工作中的物理服務器110、120、130、140中的每個包括至少一個活動(active)虛擬機111、121、131、141。例如,活動虛擬機111、121、131、141中的每個根據復制(replicat1n)/反射(mirroring)到與自己對應的備用(standby)虛擬機112、122、132、142的方式而被備份(backup),從而活動虛擬機111、121、131、141和備用虛擬機112、122、132、142可同步。與各個活動虛擬機111、121、131、141對應的備用虛擬機112、122、132、142位于與包括活動虛擬機111、121、131、141的物理服務器不同的物理服務器。作為一個示例,與第一物理服務器110的第一活動虛擬機111對應的第一備用虛擬機122包含于第二物理服務器120。
[0056]可在各個物理服務器110、120、130、140中存儲表示包含于該物理服務器110、120、130、140的虛擬機的注冊信息。換句話說,注冊到各個物理服務器110、120、130、140的虛擬機被記錄于這樣的注冊信息中。因此,該注冊信息可用于在集群系統100中確認注冊到某個物理服務器的虛擬機是什么或者注冊有某個虛擬機的物理服務器是什么。
[0057]在另一方面,該注冊信息可用于將其他的虛擬機添加到各個物理服務器110、120、130,140或者刪除現有的虛擬機。例如,在各個物理服務器110、120、130、140的注冊信息被改變/更新之后,物理服務器110、120、130、140中的至少一個可根據這樣的注冊信息將之前沒有注冊的虛擬機注冊到自身上。
[0058]包含于各個物理服務器110、120、130、140的注冊信息可以是表形態。根據圖1,物理服務器110、120、130、140中的每個包括信息表116、126、136、146。信息表116、126、136、146可被構成為都包括相同的信息。
[0059]圖2示出本發明的實施例中的包含于物理服務器中的信息表的示例。
[0060]示例性的信息表200包括用于識別物理服務器的信息210及用于識別包含于各個物理服務器中的虛擬機的信息220。信息表200還可包括用于識別與由信息220識別的虛擬機對應的虛擬機所在的物理服務器的信息230。
[0061]例如,信息表200可被構成為如下。以下舉例示出的信息表200在圖1中所示的集群系統100中可被用作包含于各個物理服務器110、120、130、140中的信息表116、126、136,146ο
[0062]信息210( S卩,名為“物理服務器”的標題的列)表示集群系統100的第一物理服務器110、第二物理服務器120、第三物理服務器130及第四物理服務器140。
[0063]信息220(即,名為“虛擬機(VM) ”的標題的列)表示注冊到由信息210識別的各個物理服務器的虛擬機。具體地講,信息220將第一活動虛擬機111及第四備用虛擬機112與第一物理服務器110關聯起來而表示,將第二活動虛擬機121及第一備用虛擬機122與第二物理服務器120關聯起來而表示,將第三活動虛擬機131及第二備用虛擬機132與第三物理服務器130關聯起來而表示,將第四活動虛擬機141及第三備用虛擬機142與第四物理服務器140關聯起來而表示。
[0064]信息230 (即,名為“對應的虛擬機所在的物理服務器”的標題的列)表示包含與由信息220表示的虛擬機對應的虛擬機的物理服務器。例如,與第一活動虛擬機111同步的第一備用虛擬機122包含于第二物理服務器120,信息230將第二物理服務器120與第一活動虛擬機111關聯起來而表示。作為另一示例,與第四備用虛擬機112同步的第四活動虛擬機141包含于第四物理服務器140,信息230將第四物理服務器140與第四備用虛擬機112關聯起來而表示。以同樣的方式,信息230是與包含于信息220中的其他虛擬機關聯起來而表示預定的物理服務器。
[0065]此外,信息表200可包括表示信息210所表示的物理服務器的可用資源的信息(未示出)。例如,預定的物理服務器的可用資源可包括該物理服務器可用的CPU和/或存儲器。
[0066]信息表200可變更。在信息表200變更的情況下,物理服務器110、120、130、140中的至少一個可根據變更的信息表200將之前沒有注冊到自身上的虛擬機注冊到自身上。
[0067]信息表200在第一物理服務器110、第二物理服務器120、第三物理服務器130及第四物理服務器140中的任意一個生成和/或變更之后,可被提供到其余的物理服務器。生成和/或變更信息表200的物理服務器可動態變更。例如,如果第一物理服務器110在負責信息表200的變更的過程中在第一物理服務器110中發生故障,則至少一個其他的物理服務器(例如,第二物理服務器120)可負責信息表200的變更。與此不同,信息表200的生成和/或變更可由物理服務器110、120、130、140中的每個分別執行。
[0068]此外,如圖2中所示,生成的信息表200可基于各個物理服務器110、120、130、140的狀態而變更。表示各個物理服務器110、120、130、140的狀態的信息可被包含于各個物理服務器110、120、130、140發送的信號(例如,各個物理服務器110、120、130、140可周期性地發送的心跳信號)中。例如,假設由第一物理服務器110負責信息表200的變更。第二物理服務器120、第三物理服務器130及第四物理服務器140中的每個可發送心跳信號,第一物理服務器110可變更信息表200,以基于包含于各個心跳信號的物理服務器的狀態及自身的狀態來再分配包含于物理服務器110、120、130、140中的全部或者一部分的虛擬機。進而,第二物理服務器120、第三物理服務器130及第四物理服務器140中的每個可將關于自己的可用資源的信息與心跳信號一起進行發送。在這種情況下,第一物理服務器110可基于各個物理服務器110、120、130、140的可用資源信息來變更信息表200。
[0069]信息表200變更的時間點可根據預定的策略來確定。例如,為了防止由于信息表200過于頻繁地更新而導致的開銷,可在各個物理服務器110、120、130、140的可用資源中的至少一個的變化量為臨界值(例如,現有的可用資源的10% )以上的情況下變更信息表200。
[0070]再次參照圖1,來說明在集群系統100中的預定物理服務器發生故障時提供服務可用性的方法。
[0071]將在注冊有第一活動虛擬機111的第一物理服務器110中發生故障的情況為例。假設在發生故障之前存儲于各個物理服務器110、120、130、140的信息表116、126、136、146包含圖2中所不的信息表200。
[0072]在第一物理服務器110發生故障的情況下,第一備用虛擬機122對第一活動虛擬機111進行故障轉移(failover)。這樣的故障轉移可參照信息表116、126、136、146而揭不。根據信息表116、126、136、146,集群系統100的第二物理服務器120注冊有與第一活動虛擬機111對應的第一備用虛擬機122。例如,第二物理服務器120通過感測沒有來自第一物理服務器110的針對從第二物理服務器120發送的心跳信號的響應,來判定在第一物理服務器110中發生故障。此外,第二物理服務器120參照自己的信息表126使得第一備用虛擬機122對第一活動虛擬機111進行故障轉移。
[0073]如上所述,如果第一備用虛擬機122對第一活動虛擬機111進行故障轉移,則原本由第一活動虛擬機111提供的服務被轉移到第一備用虛擬機122,從而由第一備用虛擬機122來進行恢復。
[0074]此外,在第一物理服務器110發生故障時,信息表200被更新/重新構成。執行這樣的更新以使注冊在發生故障的第一物理服務器110中的虛擬機被適當地再分配到其余的物理服務器120、130、140。通過第一備用虛擬機122而被故障轉移之后,除發生故障的第一物理服務器110以外的其余的物理服務器120、130、140中的至少一個物理服務器可更新信息表200。這樣的更新可基于構成注冊信息的邏輯,以免某個活動虛擬機和與之對應的備用虛擬機被注冊到相同的物理服務器。
[0075]作為一個示例,更新的信息表200將第一活動虛擬機111與物理服務器120、130、140中的一個物理服務器關聯起來。只是,如上所述,與第一活動虛擬機111相關聯的物理服務器與第二物理服務器120不同。例如,根據更新的信息表200,第三物理服務器130與第一活動虛擬機111相關聯。此外,更新的信息表200將注冊到第一物理服務器110的第四備用虛擬機112與物理服務器120、130、140中的一個物理服務器關聯起來。只是,如上所述,與第四備用虛擬機112相關聯的物理服務器與注冊有對應于第四備用虛擬機112的第四活動虛擬機141的第四物理服務器140不同。例如,根據更新的信息表200,第三物理服務器130與第一活動虛擬機111相關聯。
[0076]進而,為了更新信息表200,與第一活動虛擬機111相關聯的物理服務器及與第四備用虛擬機112相關聯的物理服務器可基于物理服務器110、120、130、140中的一部分的可用資源而被選擇。具體地講,與第一活動虛擬機111相關聯的物理服務器可基于除發生故障的第一物理服務器110及第一備用虛擬機122對第一活動虛擬機111進行故障轉移的第二物理服務器120之外的其余物理服務器130、140中的每個的可用資源而由物理服務器130,140選擇。例如,在第三物理服務器130比第四物理服務器140具有更充足的可用資源的情況下,將第一活動虛擬機111與第三物理服務器130關聯起來。與第四備用虛擬機112相關聯的物理服務器可基于除發生故障的第一物理服務器110及注冊有第四活動虛擬機141的第四物理服務器140之外的其余物理服務器120、130中的每個的可用資源而由物理服務器120、130選擇。例如,在第二物理服務器120比第三物理服務器130具有更充足的可用資源的情況下,將第四備用虛擬機112與第二物理服務器120關聯起來。
[0077]概括而言,圖2所示的信息表200根據如上所述的更新,作為與第二物理服務器120對應的虛擬機而在現有的第二活動虛擬機121及第一備用虛擬機122的基礎上還顯示第四備用虛擬機112,作為與第三物理服務器130對應的虛擬機而在現有的第三活動虛擬機131及第二備用虛擬機132的基礎上還顯示第一活動虛擬機111。此外,更新的信息表200作為對應于第四物理服務器140的虛擬機而與更新之前一樣表示第四活動虛擬機141及第二備用虛擬機142。
[0078]根據更新的信息表200,注冊在發生故障的第一物理服務器110的第一活動虛擬機111及第四備用虛擬機112分別被注冊到其他的物理服務器。在前述的示例中,第一活動虛擬機111被注冊到第三物理服務器130,第四備用虛擬機112被注冊到第二物理服務器120。這樣的注冊可伴隨著在第一物理服務器110發生故障之前對第一活動虛擬機111及第四備用虛擬機112中的每個的存儲器快照或者對應的虛擬機進行復制。例如,將第一活動虛擬機111注冊到第三物理服務器130可伴隨著從共享存儲器獲取第一活動虛擬機111的最終快照,或者伴隨著對包含于第二物理服務器120的存儲器中的第一備用虛擬機122進行反射。
[0079]圖3是示出根據本發明的實施例而在集群系統中提供服務可用性的過程的順序圖。
[0080]一旦開始服務可用性提供過程300,則集群系統100中的物理服務器110、120、130、140周期性地發送分別表示自己的狀態的心跳信號(310)。表示注冊到各個物理服務器110、120、130、140的虛擬機的注冊信息可包含于各個物理服務器110、120、130、140。這樣的注冊信息可具有前述的信息表200的格式。
[0081]如果不存在不對心跳信號響應的物理服務器(320),則各個物理服務器110、120、130、140繼續發送心跳信號(310)。
[0082]如果存在不對心跳信號響應的物理服務器(320),則可判定在相關的物理服務器中發生了故障。在這種情況下,在與注冊到發生故障的物理服務器的活動虛擬機對應且注冊到其他的物理服務器的備用虛擬機中進行故障轉移(330)。例如,響應于判定在第一物理服務器110中發生了故障,第二物理服務器120使得與第一活動虛擬機111對應且注冊到第二物理服務器120的第一備用虛擬機122對第一活動虛擬機111進行故障轉移。
[0083]在進行這樣的故障轉移之后,針對除發生故障的物理服務器之外的其余的物理服務器重新構成注冊信息(340)。這樣的重新構成可基于如下的邏輯:使得活動虛擬機和與之對應的備用虛擬機不被注冊到相同的物理服務器,并且將發生故障的物理服務器的虛擬機優先與可用資源充足的物理服務器關聯起來而進行注冊。為了方便起見,將發生故障之前的注冊信息稱為故障前(pre-failure)的注冊信息,將發生故障之后被重新構成/更新的注冊信息稱為故障后(post-failure)的注冊信息。
[0084]例如,在第一物理服務器110中發生故障時,故障后的注冊信息將第一物理服務器110的第一活動虛擬機111與其他的物理服務器中的一個物理服務器關聯起來,并將第一物理服務器110的第四備用虛擬機112與其他的物理服務器中的另一個物理服務器關聯起來,只是,與第一活動虛擬機111相關聯的物理服務器與注冊有對第一活動虛擬機111進行故障轉移的第一備用虛擬機122的第二物理服務器120不同,與第四備用虛擬機112相關聯的物理服務器與注冊有對應于第四備用虛擬機112的第四活動虛擬機141的第四物理服務器140不同。如上所述,為了構成故障后的注冊信息,與發生故障的第一物理服務器110的活動虛擬機111、112相關聯的物理服務器可基于物理服務器120、130、140中的一部分的可用資源而被選擇。
[0085]這樣的故障后的注冊信息分別被存儲到第二物理服務器120、第三物理服務器130及第四物理服務器140。在發生故障之后第一物理服務器110重新正常運行的情況下,故障后的注冊信息(在故障后的注冊信息動態變更的情況下則是和它一起變更的注冊信息)也可被存儲到第一物理服務器110。
[0086]根據故障后的注冊信息(即,重新構成的信息),將發生故障的物理服務器中的各個虛擬機注冊到其他的物理服務器(350)。如果在除發生故障的物理服務器以外的其余的物理服務器中的每個中存在沒有根據重新構成的注冊信息而進行注冊的虛擬機(360),則繼續將該虛擬機注冊到相關的物理服務器(350)。如果根據重新構成的注冊信息注冊到與虛擬機相關的物理服務器(350),則過程300終止。
[0087]此外,本發明的實施例可包括記錄有用于在計算機上執行本說明書中記載的方法的程序的計算機可讀記錄介質。所述計算機可讀記錄介質可單獨地包括程序命令、本地數據文件、本地數據結構等,或者包括它們的組合。所述介質可以是為本發明而專門設計并構成的介質,或者可以是計算機軟件領域的普通技術人員所公知而可以使用的介質。所述計算機可讀記錄介質的示例包括為了存儲并執行程序命令而專門構成的硬件裝置:諸如硬盤、軟盤及磁帶的磁介質、諸如CD-ROM、DVD的光記錄介質、諸如軟盤的磁光介質及ROM、RAM、閃存等。程序命令的示例可包括:由編譯器編寫的機器語言代碼以及使用解釋器等而由計算機來執行的高級語言代碼。
[0088]雖然已通過代表性實施例對本發明進行了詳細描述,但本發明所屬的【技術領域】中具有公知常識的技術人員應該理解在不脫離本發明的范圍的情況下可對上述實施例進行各種變形。
[0089]因此,本發明的權利范圍不應局限于所描述的實施例而確定,而是應當由權利要求書及其等同物來確定。
【權利要求】
1.一種集群系統,包括: 注冊有活動虛擬機的第一物理服務器;及 多個物理服務器, 所述多個物理服務器包括對應于所述活動虛擬機且注冊有在所述第一物理服務器發生故障時對所述活動虛擬機進行故障轉移的備用虛擬機的第二物理服務器, 在發生所述故障時,所述多個物理服務器中的每一個存儲故障后的注冊信息,所述故障后的注冊信息將所述活動虛擬機與所述多個物理服務器中的一個物理服務器關聯起來,且所述一個物理服務器與所述第二物理服務器不同。
2.根據權利要求1所述的集群系統,其中, 所述一個物理服務器基于與所述多個物理服務器中的、與所述第二物理服務器不同的物理服務器中的每一個的可用資源,從與所述第二物理服務器不同的所述物理服務器中被選擇,以構成所述故障后的注冊信息。
3.根據權利要求1所述的集群系統,其中, 所述活動虛擬機根據所述故障后的注冊信息被注冊到所述一個物理服務器。
4.根據權利要求1所述的集群系統,其中, 所述故障后的注冊信息還將注冊到所述第一物理服務器的其他的備用虛擬機與所述多個物理服務器中的另一個物理服務器關聯起來,且所述另一個物理服務器與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的物理服務器不同。
5.根據權利要求4所述的集群系統,其中, 所述另一個物理服務器基于所述多個物理服務器中的、與注冊有所述其他的活動虛擬機的物理服務器不同的物理服務器中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的物理服務器不同的所述物理服務器中被選擇,以構成所述故障后的注冊信息。
6.根據權利要求4所述的集群系統,其中, 所述其他的備用虛擬機根據所述故障后的注冊信息被注冊到所述另一個物理服務器。
7.根據權利要求1所述的集群系統,其中, 在發生所述故障之前,所述第一物理服務器及所述多個物理服務器中的每一個存儲故障前的注冊信息,所述故障后的注冊信息通過更新所述故障前的注冊信息來構成,所述故障前的注冊信息表示在發生所述故障之前注冊到所述第一物理服務器及所述多個物理服務器中的每一個的虛擬機。
8.根據權利要求7所述的集群系統,其中, 在發生所述故障之前,所述故障前的注冊信息能夠基于所述第一物理服務器的狀態及所述多個物理服務器中的每一個的狀態而變更。
9.根據權利要求7所述的集群系統,其中, 所述故障前的注冊信息還表示所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源。
10.根據權利要求8所述的集群系統,其中, 所述故障前的注冊信息的變更在所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
11.一種服務可用性提供方法,所述方法用于在集群系統中提供服務可用性,包括如下步驟: 在注冊有活動虛擬機的第一物理服務器中發生故障時,使得注冊到多個物理服務器中的第二物理服務器并與所述活動虛擬機對應的備用虛擬機對所述活動虛擬機進行故障轉移; 在發生所述故障時,將故障后的注冊信息存儲到所述多個物理服務器中的每一個, 其中,所述故障后的注冊信息將所述活動虛擬機與所述多個物理服務器中的一個物理服務器關聯起來,且所述一個物理服務器與所述第二物理服務器不同。
12.根據權利要求11所述的服務可用性提供方法,還包括如下步驟: 所述一個物理服務器基于所述多個物理服務器中的與所述第二物理服務器不同的物理服務器中的每一個的可用資源,從與所述第二物理服務器不同的所述物理服務器中被選擇,以構成所述故障后的注冊信息。
13.根據權利要求11所述的服務可用性提供方法,還包括如下步驟: 根據故障后的注冊信息,將所述活動虛擬機注冊到所述一個物理服務器。
14.根據權利要求11所述的服務可用性提供方法,其中, 所述故障后的注冊信息還將注冊到所述第一物理服務器的其他的備用虛擬機與所述多個物理服務器中的另一個物理服務器關聯起來,且所述另一個物理服務器與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的物理服務器不同。
15.根據權利要求14所述的服務可用性提供方法,還包括如下步驟: 所述另一個物理服務器基于所述多個物理服務器中的與注冊有所述其他的活動虛擬機的物理服務器不同的物理服務器中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的物理服務器不同的所述物理服務器中被選擇,以構成所述故障后的注冊信息。
16.根據權利要求11所述的服務可用性提供方法,還包括如下步驟: 所述其他的備用虛擬機根據所述故障后的注冊信息被注冊到所述另一個物理服務器。
17.根據權利要求11所述的服務可用性提供方法,還包括如下步驟: 發生所述故障之前,在所述第一物理服務器及所述多個物理服務器中的每一個存儲故障前的注冊信息; 通過更新所述故障前的注冊信息來構成所述故障后的注冊信息, 其中,所述故障前的注冊信息表示在發生所述故障之前注冊到所述第一物理服務器及所述多個物理服務器中的每一個的虛擬機。
18.根據權利要求17所述的服務可用性提供方法,還包括如下步驟: 在發生所述故障之前,基于所述第一物理服務器的狀態及所述多個物理服務器中的每一個的狀態而變更所述故障前的注冊信息。
19.根據權利要求17所述的服務可用性提供方法,其中, 所述故障前的注冊信息還表示所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源。
20.根據權利要求18所述的服務可用性提供方法,其中, 所述故障前的注冊信息的變更在所述第一物理服務器的可用資源及所述多個物理服務器中的每一個的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
21.一種服務器計算機,包括處理器及存儲器,所述存儲器包括: 注冊信息,表示注冊到包括所述服務器計算機的多個服務器計算機及其他的服務器計算機中的每一個的虛擬機; 備用虛擬機,與注冊到所述其他的服務器計算機的活動虛擬機對應;及 計算機可執行命令, 在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作: 響應于所述其他服務器計算機發生故障的判定,使所述備用虛擬機對所述活動虛擬機進行故障轉移; 響應于所述判定,執行更新所述注冊信息, 其中,更新的所述注冊信息將所述活動虛擬機與所述多個服務器計算機中的一個服務器計算機關聯起來,且所述一個服務器計算機與所述服務器計算機不同。
22.根據權利要求21所述的服務器計算機,其中, 在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:基于所述多個服務器計算機中的與所述服務器計算機不同的服務器計算機中的每一個的可用資源,從與所述服務器計算機不同的服務器計算機中選擇所述一個服務器計算機,以更新所述注冊信息。
23.根據權利要求21所述的服務器計算機,其中, 所述其他的服務器計算機還注冊有其他的備用虛擬機, 更新的所述注冊信息還將所述其他的備用虛擬機與所述多個服務器計算機中的另一個服務器計算機關聯起來,所述另一個服務器計算機與注冊有對應于所述其他的備用虛擬機的其他的活動虛擬機的服務器計算機不同。
24.根據權利要求23所述的服務器計算機,其中, 在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:基于所述多個服務器計算機中的與注冊有所述其他的活動虛擬機的服務器計算機不同的服務器計算機中的每一個的可用資源,從與注冊有所述其他的活動虛擬機的服務器計算機不同的服務器計算機中選擇所述另一個服務器計算機,以更新所述注冊信息。
25.根據權利要求21所述的服務器計算機,其中, 在所述計算機可執行命令由所述處理器執行的情況下,被構成為執行如下操作:在發生所述故障之前,基于所述多個服務器計算機中的每一個的狀態及所述其他的服務器計算機的狀態而變更所述注冊信息。
26.根據權利要求21所述的服務器計算機,其中, 所述注冊信息還表示所述其他的服務器計算機的可用資源及所述多個服務器計算機中的每一個的可用資源。
27.根據權利要求25所述的服務器計算機,其中, 變更所述注冊信息的操作在所述多個服務器計算機中的每一個的可用資源及所述其他的服務器計算機的可用資源中的至少一個的變化量為臨界值以上的情況下執行。
【文檔編號】H04L29/08GK104427002SQ201410455215
【公開日】2015年3月18日 申請日期:2014年9月9日 優先權日:2013年9月9日
【發明者】樸誠美, 李光炫, 崔光民 申請人:三星Sds株式會社