为什么说KVM是手游理想的虚拟化平台

2019-06-28 12:52:00 浏览数 (1)

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相关信息,有重要补丁发布,及时更新补丁。

0 人点赞