虛擬機狀態控制方法與系統的制作方法
【技術領域】
[0001]本發明涉及云計算技術,尤其是一種虛擬機狀態控制方法與系統。
【背景技術】
[0002]隨著我國云計算技術及應用進入實質性發展階段,基礎持續夯實。互聯網公司、基礎運營商、軟硬件IT企業及各地政府等多方力量都在積極推動云計算技術及應用發展。各大基礎運營商主推的云計算應用包括云主機、云存儲、云桌面等。
[0003]服務器虛擬化是指在一臺物理宿主機上虛擬出多個虛擬機(Virtual Machine,簡稱VM),各個虛擬機之間相互隔離,并能同時運行相互獨立的一種技術。該技術可以將一臺物理宿主機拆分成數十個獨立的虛擬機,各虛擬機能獨立運行業務,以實現提高服務器資源利用率,提高管理效率的目標。作為云計算的基礎類技術,服務器虛擬化技術在近年來得到了大量的應用和推廣。例如,互聯網數據中心(Internet Data Center, IDC)服務商將一臺物理宿主機虛擬成20臺左右的虛擬機,每臺虛擬機具備獨立的操作系統、網絡環境,再將其出租給用戶。
[0004]其中的云桌面也稱為虛擬桌面。虛擬桌面技術是基于服務器虛擬化技術,將PC服務器虛擬化,并分割成多個虛擬桌面供不同用戶使用的一種云計算技術。用戶打開云終端,啟動虛擬桌面瀏覽器或客戶端后,可以請求連接服務器端的虛擬桌面,從而登錄使用相應的虛擬機。
[0005]在實現本發明的過程中,發明人發現,目前虛擬桌面的連接會話僅支持正常和注銷兩種狀態。相應地,虛擬機也僅有啟動和關機兩種狀態。虛擬桌面連接會話和虛擬機狀態都過于簡單。用戶登錄虛擬機后,只有在手動關機、注銷會話、或者斷開連接一段時間后,會話才會終止,虛擬機才會關機,無法實現虛擬資源的快速釋放。而虛擬機關機后,用戶再次登錄虛擬機時,需要等待虛擬機啟動,無法實現虛擬機的快速恢復。
【發明內容】
[0006]本發明實施例所要解決的技術問題是:提供一種虛擬機狀態控制方法與系統,以實現根據用戶行為管理虛擬桌面的會話狀態,從而控制虛機的狀態。
[0007]本發明實施例提供的一種虛擬機狀態控制方法,包括:
[0008]監控用戶通過用戶終端上的虛擬桌面對虛擬機的輸入操作行為;
[0009]根據所述虛擬桌面上連接會話的當前會話狀態和用戶的輸入操作行為確定需要將所述虛擬桌面切換到的目標會話狀態;其中,連接會話的會話狀態包括活躍、靜默、沉睡、注銷;
[0010]將連接會話由當前會話狀態切換到所述目標會話狀態,并根據預先設置的會話狀態與虛擬機狀態之間的對應關系,將所述虛擬機切換到與所述目標會話狀態對應的虛擬機狀態;其中,虛擬機狀態為虛擬機的運行狀態,包括分別與活躍、靜默、沉睡、注銷會話狀態對應的運行、待機、休眠、停止狀態。
[0011]在本發明上述方法的一個具體實施例中,虛擬機狀態為待機狀態時,虛擬機將占用少于運行狀態所需的中央處理器CPU和內存資源;
[0012]虛擬機狀態為休眠狀態時,虛擬機將完全釋放所占用的CPU和內存資源。
[0013]在本發明上述方法的一個具體實施例中,所述監控用戶通過用戶終端上的虛擬桌面對虛擬機的輸入操作行為包括:
[0014]用戶行為監控單元監控從所述用戶的用戶終端到虛擬機之間是否具有輸入操作行為,并向虛擬桌面管理平臺上報監控到的用戶的輸入操作行為,所述監控到的用戶的輸入操作行為包括監控到從所述用戶終端到虛擬機之間具有輸入操作行為、在第一預設時間內未監控到用戶輸入操作行為、在第二預設時間內未監控到用戶輸入操作行為、或者在第三預設時間內未監控到用戶輸入操作行為;其中,第一預設時間小于第二預設時間,第二預設時間小于第三預設時間;
[0015]根據所述虛擬桌面上連接會話的當前會話狀態和用戶的輸入操作行為確定需要將所述虛擬桌面切換到的目標會話狀態包括:所述虛擬桌面管理平臺接收到用戶行為監控單元上報的用戶針對所述虛擬機的輸入操作行為時,獲取所述虛擬桌面上連接會話的當前會話狀態,并通過如下方式由用戶針對所述虛擬機的輸入操作行為和當前會話狀態確定所述虛擬桌面的目標會話狀態:
[0016]若當前會話狀態為活躍或注銷,且從所述用戶終端到虛擬機之間具有輸入操作行為,則確定目標會話狀態為當前會話狀態;
[0017]若當前會話狀態為靜默或沉睡,且從所述用戶終端到虛擬機之間具有輸入操作行為,則確定目標會話狀態為活躍;
[0018]若當前會話狀態為活躍,且在第一預設時間內未監控到用戶輸入操作行為,則確定目標會話狀態為靜默;
[0019]若當前會話狀態為靜默,且在第二預設時間內未監控到用戶輸入操作行為,則確定目標會話狀態為沉睡;
[0020]若當前會話狀態為沉睡,且在第三預設時間內未監控到用戶輸入操作行為,則確定目標會話狀態為注銷。
[0021]在本發明上述方法的一個具體實施例中,所述監控用戶通過用戶終端上的虛擬桌面對虛擬機的輸入操作行為包括:
[0022]用戶行為監控單元監控到從所述用戶的用戶終端到虛擬機之間具有輸入操作行為時,向虛擬桌面管理平臺上報監控到用戶的輸入操作行為的上報消息;
[0023]根據所述虛擬桌面上連接會話的當前會話狀態和用戶的輸入操作行為確定需要將所述虛擬桌面切換到的目標會話狀態包括:所述虛擬桌面管理平臺實時獲取所述虛擬桌面上連接會話的當前會話狀態,并通過如下方式,由獲取到的當前會話狀態和是否接收到用戶行為監控單元上報的用戶針對所述虛擬機的輸入操作行為確定所述虛擬桌面的目標會話狀態:
[0024]若當前會話狀態為活躍或注銷,且接收到所述上報消息,則確定目標會話狀態為當前會話狀態;
[0025]若當前會話狀態為靜默或沉睡,且接收到所述上報消息,則確定目標會話狀態為活躍;
[0026]若當前會話狀態為活躍,且在第四預設時間內未接收到所述上報消息,則確定目標會話狀態為靜默;
[0027]若當前會話狀態為靜默,且在第五預設時間內未接收到所述上報消息,則確定目標會話狀態為沉睡;
[0028]若當前會話狀態為沉睡,且在第六預設時間內未接收到所述上報消息,則確定目標會話狀態為注銷。
[0029]在本發明上述方法的一個具體實施例中,將連接會話由當前會話狀態切換到所述目標會話狀態包括:
[0030]判斷確定的目標會話狀態是否為當前會話狀態;
[0031]在目標會話狀態不是當前會話狀態時,將連接會話由當前會話狀態切換到所述目標會話狀態。
[0032]在本發明上述方法的一個具體實施例中,還包括:
[0033]所述虛擬桌面管理平臺在監管的虛擬機發生虛擬機狀態變化時,根據虛擬機切換到的虛擬機狀態,對所述虛擬機進行相應的資源回收或分配。
[0034]本發明實施例提供的一種虛擬機狀態控制系統,包括:
[0035]用戶行為監控單元,設置在服務器的虛擬化層中,用于監控用戶通過用戶終端上的虛擬桌面對所述服務器上虛擬機的輸入操作行為;
[0036]虛擬桌面管理平臺,用于根據所述虛擬桌面上連接會話的當前會話狀態和用戶行為監控單元監控到的用戶的輸入操作行為,確定需要將所述虛擬桌面切換到的目標會話狀態;其中,連接會話的會話狀態包括活躍、靜默、沉睡、注銷;以及將連接會話由當前會話狀態切換到所述目標會話狀態,并根據預先設置的會話狀態與虛擬機狀態之間的對應關系,將所述虛擬機切換到與所述目標會話狀態對應的虛擬機狀態;其中,虛擬機狀態包括分別與活躍、靜默、沉睡、注銷會話狀態對應的運行、待機、休眠、停止狀態。
[0037]在本發明上述系統的一個具體實施例中,虛擬機狀態為待機狀態時,虛擬機將占用少于運行狀態所需的中央處理器CPU和內存資源;
[0038]虛擬機狀態為休眠狀態時,虛擬機將完全釋放所占用的CPU和內存資源。
[0039]在本發明上述系統的一個具體實施例中,所述用戶行為監控單元具體監控從所述用戶的用戶終端到虛擬機之間是否具有輸入操作行為,并向虛擬桌面管理平臺中的會話狀態控制單元上報虛擬機標識ID和監控到的用戶的輸入操作行為,所述虛擬機ID用于唯一標識一個虛擬機,所述監控到的用戶的輸入操作行為包括監控到從所述用戶終端到虛擬機之間具有輸入操作行為、在第一預設時間內未監控到用戶輸入操作行為、在第二預設時間內未監控到用戶輸入操作行為、或者在第三預設時間內未監控到用戶輸入操作行為;其中,第一預設時間小于第二預設時間,第二預設時間小于第三預設時間;
[0040]所述虛擬桌面管理平臺包括:
[0041]會話狀態管理單元,用于管理用戶對虛擬機進行操作的虛擬桌面上連接會話的會話狀態,存儲有虛擬機ID與對應虛擬桌面上連接會話的當前會話狀態信息;
[0042]會話狀態控制單元,用于在接收到用戶行為監控單元上報的用戶針對所述虛擬機的輸入操作行為時,根據虛擬機ID從會話狀態管理單元獲取所述虛擬桌面上連接會話的當前會話狀態,并通過如下方式由用戶針對所述虛擬機的輸入操作行為和當前會話狀態確定所述虛擬桌面的目標會話狀態:若當前會話狀態為活躍或注銷,且從所述用戶終端到虛擬機之間具有輸入操作行為,則確定目標會話狀態為當前會話狀態;若當前會話狀態為靜默或沉睡,且從所述用戶終端到虛擬機