金山运维肖力:如何将业务迁移到虚拟化环境并稳定运行(1)
2016-02-20 19:33:25 来源: 高招CTO训练营 51CTO.com 评论:0 点击:
那么如何建立压力模型呢?这个要用数据说话,数据来自于长期的监控指标及高峰时的数据收集。
一般我们会去看监控系统至少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了