1. 手遊的特點

1) 基本都是linux系統;

2) gs伺服器CPU、網路壓力高、磁碟壓力低;

3) db伺服器CPU壓力低、磁碟、網路壓力高;

4) 生命週期相對較短;

5) 遊戲開組並組頻繁;

2. 手遊方案設計目標

1) 滿足效能的前提下,保證穩定、可靠;

2) 最大程度的平衡排程資源,提高資源利用率,以達到節省成本的目的;

3) 靈活快速,比如可以在幾個小時之內提供數百臺主機。

4) 方案生命週期長,從整體角度,綜合多個遊戲專案,長遠來看,能節省大量重複性硬體投入成本;

5) 擴充套件靈活,可以設計成以1-2個機櫃的模組,根據業務靈活擴充套件;

6) 管理方便,平臺化、自動化的主機生命週期管理。

手遊方案的技術特點:

1) 硬體和軟體解決高效能的磁碟io;

2) 硬體和軟體解決高效能的網路吞吐和發包;

3) 硬體和軟體解決較高的cpu壓力。

綜上所述,如果要滿足手遊方案的設計要求,必須選擇虛擬化,因為只有虛擬化才能實現資源池的概念,實現資源的靈活調配,充分利用;只有虛擬化才能實現業務的靈活部署,快速定製。

3. 虛擬化收益

a) 費用方面

費用方面收益非常明顯,如果實現1虛10的比例,原來用10臺伺服器,現在用1臺就可以,原來用10個機櫃,現在用1個就可以。

b) 管理方面

因為虛擬機器從本質上說就是硬碟上的一個檔案,虛擬機器生成、維護、銷燬、轉移要比物理機快速和方便許多,一臺虛擬機器的建立只需要幾分鐘,而一臺物理機的上架至少需要一個小時,速度可以提升幾十倍;

結合遊戲專案的需求,為遊戲專案的遊戲程式的自動化部署等,甚至可以向一鍵開區的方向去努力,通過虛擬化可以提高遊戲運維的效率。

4. 虛擬引擎的選擇

目前企業級常用的虛擬化引擎有4種

1) VMWware ESXi系列;

2) 微軟的Hyper-V;

3) Xen;

4) KVM;

Hyper-V:

微軟的Hyper-V是為windows系統準備的,對微軟的產品具有更好的相容性和整合,手遊的系統都是linux,Hyper-V不適合做手遊的虛擬化引擎;

Xen

Xen成熟,使用的時間也比較長,但是Xen 3.x 沒有進kernel upstream,而4.0 雖然進去核心,但是要求核心版本比較高(kernel 3.0),而且使用維護複雜;

VMWare

VMWware ESXi系列是x86平臺上最早的虛擬化引擎,成熟穩定,管理方便,但是費用昂貴,軟體的授權費用甚至高過硬體,如果使用VMWware ESXi的免費版,記憶體只能支援到32G,而且隨著數量的增加,管理是個很大的問題;

KVM

KVM架構簡單 (Linux核心的一個driver),kvm是Linux核心的一部分,KVM在Linux核心內部部署,這樣可以很容易控制虛擬化程式;

KVM在Linux整合中要優於Xen。它不需要重新編譯核心,也不需要對當前kernel做任何修改,它只是幾個可以動態載入的.ko模組。它結構更加精簡、程式碼量更小。所以,出錯的可能性更小。

KVM程式模組能直接與硬體互動,不需要修改虛擬化作業系統。因此效能更好,並且補丁包能夠和Linux核心相容,輕鬆控制虛擬化程式,同時減輕管理的負擔。

KVM是Linux上的標準虛擬化技術 (從 kernel 2.6.20),天生就是為linux系統虛擬化,目前許多的遊戲平臺都使用kvm作為虛擬化引擎,尤其是頁遊和手遊;管理方面也有許多基於KVM的開源免費管理平臺可以使用,比如ovirt convirt等;最要的是kvm開源免費,在軟體授權方面不會有任何費用。

綜上所述,手遊的虛擬化引擎選擇使用kvm

5. 虛擬化方式選擇

目前有三種虛擬化方式可以選擇:

1) 單機虛擬化:

一臺宿主機虛擬幾臺虛擬機器,虛擬機器的計算、儲存、網路都在這臺宿主機內;

2) 叢集虛擬化:

由商業儲存和若干計算節點組成,虛擬機器映象在商業儲存上,虛擬機器使用計算節點的計算、記憶體、網路資源;

3) 分散式檔案系統虛擬化:

實際也是虛擬化叢集的一種,由若干計算節點和用分散式檔案系統組成,用分散式檔案系統代替昂貴的商業儲存,虛擬機器映象儲存在分散式檔案系統上,虛擬機器使用計算節點的計算、記憶體、網路資源;

三種虛擬化方式的詳細對比

單機虛擬化

叢集虛擬化

分散式虛擬化

部署方式

靈活,可以在任意地點部署

有限制,必須整體部署

有限制,必須整體部署

容納虛擬機器數量

單臺 1-10臺

50-100臺

50-200臺

成本

低 單臺宿主機成本

高 需要商業化儲存

中 使用PC SERVER搭建

高可用

不支援

支援

支援

線上遷移

不支援

支援

支援

資源池化

有限支援

支援

支援

虛擬機器自動部署

需要管理平臺支援

需要管理平臺支援

需要管理平臺支援

彈性擴充套件

有限支援

支援

支援

適用業務場景

GS DB

GS DB

GS

6. 虛擬化實施方案

1) 業務效能分析,提煉業務的cpu 磁碟 網路 記憶體模型

2) 虛擬化方案設計,根據效能分析,確定虛擬化比例和方案

3) 基本的效能測試,主要測試虛擬機器效能

4) 業務模擬測試,業務部門在試驗環境上測試

5) 小規模部署:

6) 全面部署階段

7. 虛擬化運維方案

虛擬化開始部署,就進入虛擬機器運維階段,虛擬化運維包含以下幾個方面:

1) 持續的效能監控和報警

效能監控包括一些內容

a) 宿主機效能(CPU,記憶體,io, 網路流量,功耗)

b) 虛擬機器效能(CPU,io,網路流量)

c) 網路(流量)

d) 故障監控和告警

e) 伺服器硬體故障

2) 持續的優化,發現業務變化導致的效能瓶頸

通過效能監控手段,不斷的發現系統瓶頸,並和開發、業務一起持續優化;

3) 日常備份

a) 虛擬機器的配置資料

b) 關鍵虛擬機器的資料備份

c) 宿主機mbr metadata等資料備份

4) 應急響應預案

5) 模板管理

根據要求,定製虛擬機器模版。

6) 系統補丁

關注KVM相關資訊,有重要補丁釋出,及時更新補丁。