云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng)及其管理方法
【專利摘要】本發(fā)明公開了一種云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng),包括由主控服務器、日志服務器和物料存儲服務器構成的管理系統(tǒng),以及由若干從屬物理機器組成的服務器集群的被管理系統(tǒng);以及管理方法維護了一個實時的監(jiān)控器用來監(jiān)測虛擬機的運行狀態(tài),從而為調(diào)度模塊提供資源占用依據(jù)。本發(fā)明有效提高用戶體驗,減少20%的網(wǎng)絡帶寬抖動。
【專利說明】云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng)及其管理方法
【技術領域】
[0001]本發(fā)明涉及分布式系統(tǒng)中帶寬資源分配【技術領域】,具體是一種云游戲分布式系統(tǒng)中網(wǎng)絡帶寬資源分配系統(tǒng)及其方法。
【背景技術】
[0002]隨著虛擬化技術的迅速發(fā)展,多種方案被部署應用在云計算領域。比如VMware,虛擬化市場的領軍者,為整個業(yè)界提供商業(yè)虛擬機產(chǎn)品,另外在非商業(yè)化的開源社區(qū)中,KVM和XEN是兩款免費但強大的虛擬化方案。雖然虛擬化基礎解決方案日益成熟,但是在具體的應用場景中依然存在很多待解決的問題,這其中之一就是資源的調(diào)度問題。在虛擬化領域針對CPU資源的調(diào)度問題已經(jīng)有很多成熟有效方法和策略,但是有關GPU網(wǎng)絡帶寬的資源調(diào)度依然還在初始階段。
[0003]以云游戲為例,云游戲模式簡單地說是指客戶端使用遠程連接軟件,與運行在云端的虛擬機進行長時連接,云端虛擬機進行游戲的邏輯計算、圖像渲染,并最終把圖像數(shù)據(jù)傳回客戶端,這樣用戶就可以在僅僅擁有顯示器、鍵盤、鼠標等硬件的情況下體驗3D游戲,省去了頻繁更新高端游戲顯卡等已經(jīng)設備帶來的高額費用。但是這其中存在一些問題影響用戶的游戲體驗,亟待解決。
[0004]通過實驗發(fā)現(xiàn)了以下幾點現(xiàn)象和規(guī)律:1、帶寬資源的占用是和用戶的數(shù)量成正相關的。2、各個虛擬機占用的帶寬上下抖動很大。3、合適的帶寬分配策略是對游戲流暢度的保證??傊?,當用戶數(shù)量比較大時,網(wǎng)絡帶寬已經(jīng)成為整個系統(tǒng)的主要瓶頸,而這個問題現(xiàn)今一直沒有得到很好的解決。
【發(fā)明內(nèi)容】
[0005]本發(fā)明針對現(xiàn)有的云平臺中網(wǎng)絡帶寬資源調(diào)度方法存在的不足,提出了一種分布式系統(tǒng)中帶寬資源分配管理的系統(tǒng)與方法。通過運用網(wǎng)絡編程技術,在若干集群中搭建分布式的框架,稱之為BAM(Bandwidth Allocat1n Management),負責整個網(wǎng)絡中每個從機(slave)帶寬資源的分配。整個框架核心運行在主機(master)上,核心用到的技術涉及到Linux下的epoll和異步1多路復用等。除了這個通用的調(diào)度框架外,本發(fā)明還隨框架集成了兩種新的網(wǎng)絡帶寬調(diào)度方法,用來在總網(wǎng)絡帶寬和單個虛擬機中游戲的流暢度之間做權衡。這兩種方法分別是基于公平的分配方法(Fairness-allocat1n scheduling)和基于共享的分配方法(Sharing-allocat1n scheduling),具體來說前者是基于公平性的自適應調(diào)度方法,嚴格為每個虛擬機分配相等的帶寬資源;后者是基于共享模式的,每一時刻占用網(wǎng)絡帶寬資源少的虛擬機會把剩余帶寬資源分配給需求多的虛擬機,實現(xiàn)了資源的共享,效率更高但網(wǎng)絡波動會更大。這兩種方法適用于不同的應用場景。
[0006]本發(fā)明的技術解決方案如下:
[0007]—種云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng),其特點在于,包括由主控服務器、日志服務器和物料存儲服務器構成的管理系統(tǒng),以及由若干從屬物理機器組成的服務器集群的被管理系統(tǒng);
[0008]所述的主控服務器分別與所述的日志服務器和物料存儲服務器連接;
[0009]所述的主控服務器,用于獲取來自用戶的請求,并解析請求,對請求做出響應,為用戶分配合適的虛擬機,運行相應的游戲,調(diào)度虛擬機之間的寬帶資源分配;
[0010]所述的日志服務器,用于記錄虛擬機的運行狀態(tài),CPU、GPU、帶寬資源的使用情況,以及玩家信息;
[0011]所述的物料存儲服務器,用于存儲游戲虛擬機鏡像文件;
[0012]所述的被管理系統(tǒng)是若干的從物理機器組成的服務器集群,每個從物理機器里運行了若干的虛擬機,每個虛擬機里都有一個游戲和遠程桌面軟件。
[0013]所述的主控服務器由連接管理模塊、可擴展策略模塊組成;
[0014]所述的連接管理器,用于接收從用戶發(fā)出的游戲請求,判斷處理后選擇后續(xù)接入的從屬物理機器,并最終和其中的虛擬機相連,從而將用戶和虛擬機連接起來了 ;
[0015]所述的可擴展策略模塊,用于人工干預的接口。
[0016]所述的連接管理模塊包括虛擬機堆和集成網(wǎng)絡帶寬調(diào)度方法兩個子結構;
[0017]所述的虛擬機堆從日志服務器中得到所有從物理機器的CPU、GPU、網(wǎng)絡帶寬資源使用狀況,并按照總體情況維護一個從物理機器資源占有情況的最小堆,占用資源最少的從物理機器位于堆頂;
[0018]集成網(wǎng)絡寬帶調(diào)度方法包括基于公平的分配方法和基于共享的分配方法。
[0019]一種云游戲分布式系統(tǒng)中帶寬資源分配管理方法,其特點在于,該方法包括如下步驟:
[0020]步驟1、游戲開始時,主控服務器獲取用戶啟動游戲請求、解析請求,并開始為用戶部署相應的虛擬機;
[0021]步驟2、主控服務器從自身的虛擬機堆中選取資源最充裕的物理機器上的虛擬機,啟動該虛擬機;
[0022]步驟3、主控服務器啟動虛擬機上的游戲和遠程桌面軟件,用戶和虛擬機通過遠程桌面軟件建立連接;
[0023]步驟4、連接建立后,虛擬機畫面通過網(wǎng)絡傳送至用戶,虛擬機也通過網(wǎng)絡獲取用戶的操作反饋,使用戶得以操作游戲;
[0024]步驟5、游戲中,主控服務器實時監(jiān)測虛擬機的網(wǎng)絡流量,通過集成網(wǎng)絡帶寬調(diào)度方法來保證每個用戶玩游戲的流暢性;
[0025]步驟6、游戲結束后,連接管理器主動斷開用戶和從屬物理機器間的連接,并暫停虛擬機的運行,更新虛擬機堆的資源信息。
[0026]所述的步驟5中集成網(wǎng)絡帶寬調(diào)度方法供連接管理器選擇,分為基于公平的帶寬資源分配方法和基于公平的帶寬資源分配方法:
[0027]所述的基于公平的帶寬資源分配方法:即為每一個運行的虛擬機分配定額的網(wǎng)絡帶寬,該寬帶足以滿足游戲流暢運行的最低要求,預設這個網(wǎng)絡帶寬的大小,當用戶使用的寬帶資源超過預設時,主控服務器通過降低游戲質量的方式,降低用戶的寬帶資源使用;
[0028]所述的基于公平的帶寬資源分配方法:即所有的虛擬機共享一條總網(wǎng)絡帶寬,某一時刻若干虛擬機如果占用帶寬資源下降,則主控服務器會迅速將多余的帶寬分配給那些需要帶寬資源多的虛擬機。
[0029]與現(xiàn)有技術相比,本發(fā)明的有益效果是:
[0030](I)有效提高用戶體驗,減少20%的網(wǎng)絡帶寬抖動。
[0031](2)在保障用戶游戲質量的同時,可以為服務提供商節(jié)約資源。
[0032](3)為服務提供商提供了額外的收費方式,即按額定帶寬付費。
[0033](4)在用戶較多,服務提供商資源緊缺的情況下,可以緩解其對用戶服務質量的影響。
【專利附圖】
【附圖說明】
[0034]圖1分布式云游戲系統(tǒng)的拓撲圖
[0035]圖2已有的網(wǎng)絡帶寬資源調(diào)度方法下的游戲帶寬資源使用情況
[0036]圖3基于公平的帶寬資源分配方法
[0037]圖4基于共享的帶寬資源分配方法
【具體實施方式】
[0038]下面針對本發(fā)明的實施例作詳細說明,本實施例在本發(fā)明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,本發(fā)明的適用平臺不限于下述的實施例。
[0039]云游戲分布式系統(tǒng)中負責帶寬資源分配管理的系統(tǒng)包括主控服務器、日志服務器、物料存儲服務器,而被管理系統(tǒng)是若干的從屬物理機器(slave)組成的服務器集群。該系統(tǒng)的拓撲圖如圖1所示。圖2是本發(fā)明的中分布式系統(tǒng)網(wǎng)絡帶寬資源調(diào)度系統(tǒng)與方法的架構示意圖,本發(fā)明系統(tǒng)的模塊主要部署在主控制機器上,包括連接管理器、可擴展策略、物料存儲器、日志服務器,所述的連接管理器由虛擬機堆和集成網(wǎng)絡帶寬調(diào)度方法組成。
[0040]所述的主控服務器里由連接管理模塊(connect manager)、可擴展策略模塊(scalable strategy)組成。連接管理模塊負責接收從用戶(client)發(fā)出的游戲請求,判斷處理后選擇后續(xù)接入的從屬物理機器(slave),并最終和其中的虛擬機相連,從而將用戶和虛擬機連接起來了 ;可擴展策略模塊是指支持人工操控整個系統(tǒng)運行的能力,一般來說該分布式系統(tǒng)是自適應的系統(tǒng)由程序保證過程有序運行,但是如果遇到意外,則需要人工干預,該發(fā)明預留了可擴展策略模塊。
[0041]以上所述的連接管理模塊(connect manager)中擁有兩個重要的子結構:虛擬機堆和集成網(wǎng)絡帶寬調(diào)度方法。虛擬機堆從日志服務器中得到所有從機器的CPU、GPU、網(wǎng)絡帶寬資源使用狀況,并按照總體情況維護一個從機器資源占有情況的最小堆,占用資源最少的從機器位于堆頂。每次連接管理器接收來自用戶的請求后都會從虛擬機堆中選擇堆頂?shù)膹膶傥锢頇C器(即資源占有最少的從屬物理機器),并在該從機器中運行游戲虛擬機;集成網(wǎng)絡寬帶調(diào)度方法有兩種:基于公平的分配方法和基于共享的分配方法。
[0042]所述的日志服務器主要負責記錄虛擬機的運行狀態(tài)和CPU、GPU、帶寬資源等使用情況,以及玩家訪問時間、持續(xù)時間、結束時間等詳細的玩家信息。該服務器旨在做數(shù)據(jù)的持久化,為后期的數(shù)據(jù)分析以及用戶行為分析提供海量數(shù)據(jù)。本發(fā)明中日志服務器采用Mysql和Redis的組合。日志服務器和主控服務器相連接。
[0043]所述的物料存儲服務器負責游戲虛擬機鏡像文件的存儲。虛擬機初始化時,從屬物理機器會從物料存儲服務器拷貝虛擬機鏡像。當從物理機器中的虛擬機鏡像文件損壞、難以恢復時可以從物料服務器拷貝原始虛擬機鏡像文件至從物理機器中,完成虛擬機鏡像文件的恢復。
[0044]所述的被管理系統(tǒng)是若干的從物理機器組成的服務器集群,里面運行了若干的虛擬機。每個虛擬機里都有一個游戲和遠程桌面軟件Teamviewer,也就是說云端中負責游戲的邏輯計算和畫面渲染,而Teamviewer負責將畫面拍錄下來,打包通過網(wǎng)絡傳輸給用戶。
[0045]日志服務器定期對被管理的集群進行狀態(tài)采樣,讀取各個從物理機器的GPU、CPU、網(wǎng)絡帶寬資源狀況。連接管理器中的虛擬機堆從日志服務器中讀取資源使用信息,然后計算出每個機器的資源空閑度,按照堆排序形成虛擬機堆。當有用戶發(fā)起游戲請求時,連接管理器接收該請求并解析它,然后從虛擬機堆中讀取資源空限度最大的從物理機器編號,在該從物理機器上運行游戲虛擬機,虛擬機內(nèi)主要有游戲和遠程連接軟件。從而將該機器和用戶建立起長連接。遠程連接軟件源源不斷地把游戲錄像傳輸?shù)接脩舳说娘@示器上,同時又源源不斷地把用戶的鍵盤和鼠標指令傳送回虛擬機,供虛擬機進行游戲邏輯計算和圖像渲染。
[0046]—種云游戲分布式系統(tǒng)中帶寬資源分配管理方法,包括步驟:
[0047]步驟1、游戲開始時,主控服務器獲取用戶啟動游戲請求、解析請求,并開始為用戶部署相應的虛擬機;
[0048]步驟2、主控服務器從自身的虛擬機堆中選取資源最充裕的物理機器上的虛擬機,啟動該虛擬機;
[0049]步驟3、主控服務器啟動虛擬機上的游戲和遠程桌面軟件,用戶和虛擬機通過遠程桌面軟件建立連接;
[0050]步驟4、連接建立后,虛擬機畫面通過網(wǎng)絡傳送至用戶,虛擬機也通過網(wǎng)絡獲取用戶的操作反饋,使用戶得以操作游戲;
[0051]步驟5、游戲中,主控服務器實時監(jiān)測虛擬機的網(wǎng)絡流量,通過集成網(wǎng)絡帶寬調(diào)度方法來保證每個用戶玩游戲的流暢性;
[0052]步驟6、游戲結束后,連接管理器主動斷開用戶和從屬物理機器間的連接,并暫停虛擬機的運行,更新虛擬機堆的資源信息。
[0053]集成網(wǎng)絡帶寬調(diào)度方法是供連接管理器選擇的,分為基于公平和基于共享兩種方式,支持后期再加入新的策略方法。前者方便云游戲運營商在實際應用中可以按照網(wǎng)絡帶寬情況收費;后者能提高資源的利用率,適用于多用戶,資源吃緊的情況。
[0054]本發(fā)明維護了一個實時的監(jiān)控器用來監(jiān)測虛擬機的運行狀態(tài),從而為調(diào)度模塊提供資源占用依據(jù)。實際測試試驗表明本發(fā)明能夠提高用戶體驗,并減少20%的網(wǎng)絡帶寬抖動。
【權利要求】
1.一種云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng),其特征在于,包括由主控服務器、日志服務器和物料存儲服務器構成的管理系統(tǒng),以及由若干從屬物理機器組成的服務器集群的被管理系統(tǒng); 所述的主控服務器分別與所述的日志服務器和物料存儲服務器連接; 所述的主控服務器,用于獲取來自用戶的請求,并解析請求,對請求做出響應,為用戶分配合適的虛擬機,運行相應的游戲,調(diào)度虛擬機之間的寬帶資源分配; 所述的日志服務器,用于記錄虛擬機的運行狀態(tài),CPU、GPU、帶寬資源的使用情況,以及玩家信息; 所述的物料存儲服務器,用于存儲游戲虛擬機鏡像文件; 所述的被管理系統(tǒng)是若干的從物理機器組成的服務器集群,每個從物理機器里運行了若干的虛擬機,每個虛擬機里都有一個游戲和遠程桌面軟件。
2.根據(jù)權利要求1所述的云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng),其特征在于,所述的主控服務器由連接管理模塊、可擴展策略模塊組成; 所述的連接管理器,用于接收從用戶發(fā)出的游戲請求,判斷處理后選擇后續(xù)接入的從屬物理機器,并最終和其中的虛擬機相連,從而將用戶和虛擬機連接起來了 ; 所述的可擴展策略模塊,用于人工干預的接口。
3.根據(jù)權利要求2所述的云游戲分布式系統(tǒng)中帶寬資源分配管理系統(tǒng),其特征在于,所述的連接管理模塊包括虛擬機堆和集成網(wǎng)絡帶寬調(diào)度方法兩個子結構; 所述的虛擬機堆從日志服務器中得到所有從物理機器的CPU、GPU、網(wǎng)絡帶寬資源使用狀況,并按照總體情況維護一個從物理機器資源占有情況的最小堆,占用資源最少的從物理機器位于堆頂; 集成網(wǎng)絡寬帶調(diào)度方法包括基于公平的分配方法和基于共享的分配方法。
4.一種云游戲分布式系統(tǒng)中帶寬資源分配管理方法,其特征在于,該方法包括如下步驟: 步驟1、游戲開始時,主控服務器獲取用戶啟動游戲請求、解析請求,并開始為用戶部署相應的虛擬機; 步驟2、主控服務器從自身的虛擬機堆中選取資源最充裕的物理機器上的虛擬機,啟動該虛擬機; 步驟3、主控服務器啟動虛擬機上的游戲和遠程桌面軟件,用戶和虛擬機通過遠程桌面軟件建立連接; 步驟4、連接建立后,虛擬機畫面通過網(wǎng)絡傳送至用戶,虛擬機也通過網(wǎng)絡獲取用戶的操作反饋,使用戶得以操作游戲; 步驟5、游戲中,主控服務器實時監(jiān)測虛擬機的網(wǎng)絡流量,通過集成網(wǎng)絡帶寬調(diào)度方法來保證每個用戶玩游戲的流暢性; 步驟6、游戲結束后,連接管理器主動斷開用戶和從屬物理機器間的連接,并暫停虛擬機的運行,更新虛擬機堆的資源信息。
5.根據(jù)權利要求1所述的帶寬資源分配管理方法,其特征在于,所述的步驟5中集成網(wǎng)絡帶寬調(diào)度方法供連接管理器選擇,分為基于公平的帶寬資源分配方法和基于公平的帶寬資源分配方法: 所述的基于公平的帶寬資源分配方法:即為每一個運行的虛擬機分配定額的網(wǎng)絡帶寬,該寬帶足以滿足游戲流暢運行的最低要求,預設這個網(wǎng)絡帶寬的大小,當用戶使用的寬帶資源超過預設時,主控服務器通過降低游戲質量的方式,降低用戶的寬帶資源使用; 所述的基于公平的帶寬資源分配方法:即所有的虛擬機共享一條總網(wǎng)絡帶寬,某一時刻若干虛擬機如果占用帶寬資源下降,則主控服務器會將多余的帶寬分配給那些需要帶寬資源多的虛擬機。
【文檔編號】H04L29/08GK104363277SQ201410636059
【公開日】2015年2月18日 申請日期:2014年11月13日 優(yōu)先權日:2014年11月13日
【發(fā)明者】薛墨池, 王潤澤, 余章曲, 戚正偉, 管海兵 申請人:上海交通大學