首页 > 知识库 > 正文

金山运维肖力:如何将业务迁移到虚拟化环境并稳定运行(1)
2016-02-20 19:33:25   来源: 高招CTO训练营 51CTO.com    评论:0 点击:

肖力,金山西山居系统运维经理,前盛大游戏研究员,有15年工作经验,10年游戏行业运维经验,5年KVM虚拟化运维经验,有40款游戏虚拟化项目成功实施经验。维护有微信订阅号:“KVM虚拟化实践”著有《深度实践KVM》一书。本文介绍肖力在长期的虚拟化项目实践中的经验,主要介绍如何将已有的业务迁移到虚拟化环境。

那么如何建立压力模型呢?这个要用数据说话,数据来自于长期的监控指标及高峰时的数据收集。

一般我们会去看监控系统至少60天之内的数据,尽量做到每台服务器的压力数据都收集下,如果数量比较多,可以抽取压力比较大的一部分机器提炼压力模型。

另外,在业务高峰期的几个小时,可以考虑使用脚本收集比较密集的数据,一般监控平台收集的是1到5分钟的数据,通过脚本可以收集5-30秒间隔的数据,提高我们数据收集的精度,脚本其实就是使用sar、iostat、vmstat等命令编写。

所有的数据收集完成以后,就可以根据数据提炼出业务的压力模型。

有了压力模型,根据压力模型就非常好确定虚拟化的比例和宿主机选型了。

下面再分享一些生产环境的虚拟化技术经验。

虚拟化中CPU技术要点:

我最喜欢的是CPU技术是CPU绑定,CPU绑定是一个非常神奇的技术,最神奇的地方就是可以在线去做,在实战中多次解决了性能问题。

CPUhost-passthrough技术。

CPU host-passthrough技术主要是将物理CPU的特性全部传给虚拟CPU,根据应用的不同,对CPU的性能提升也不同。

另外还有一个好处,就是在虚拟机中可以看到和物理机一模一样品牌型号的CPU,对于一些公有云来说,用户体验比较好。但是使用CPUhost-passthrough技术也要注意,这个技术不支持在不同型号CPU的宿主机之间在线迁移虚拟机。

\

虚拟化中内存技术要点:

KSM相同内存页合并,或者叫内存压缩技术,虚拟化的时候一般建议关掉。为什么呢?一 方面KSM不停在扫描内存,会消耗CPU资源。

另外一方面,分给虚拟机的内存,我们希望是分给多少,能利用多少,打开KSM就是为了内存超用,如果真的超用了,当压力大的时候,就会出现内存不够用的情况,这个使用就会严重影响大量的SWAP交互

\

网络方面主要解决两个问题,可管理性和性能,可管理性主要依靠Open vSwitch这个纯软件的交换机,ovs可以和物理交换机进行协议层面的通讯。

性能有硬件和软件的优化方案,硬件主要是使用万兆万卡和SRIOV,软件是VIRTIO、网卡独占等技术。

\

今天时间关系就不详细介绍了,大家可以看下我的博客:http://xiaoli110.blog.51cto.com/1724/1558984

关于虚拟机时间漂移

所有的虚拟机,比如KVM,包括VMWare,XEN,HyperV,都有一个问题,就是因为虚拟机的时钟是模拟出来的,一般虚拟机的走时要比物理机快一些。

当然,因为虚拟化的流行,这个问题在最新的操作系统上优化的越来越好。一般在生成环境,所有的虚拟机建议都配置精确时钟和NTP,以保证走时准确。有些业务,对时间精度要求非常高,更要注意虚拟机时间的配置。

关于磁盘

\

一般虚拟机磁盘镜像格式建议使用qcow2或者lvm,因为这两种格式有个共同的特定,就是可以动态的扩容,快照,并且支持精简模式,使用管理起来非常方便。

相关热词搜索:虚拟化 业务 运维

上一篇:去哪儿网使用的MySQL自动化运维工具Inception介绍
下一篇:运维朋友们,别再问需不需要学Python了

分享到: 收藏