XenServer简介

XenServer是一款虚拟机软件,它的免费版本功能相对强大,所以现在很多企业都还在用这款软件,以减小 开支。一般虚拟化之后,一台宿主机上面都会运行多个guestOS,可是当guestOS太多的时 候,会影响主机的性能。因此我们需要对其进行优化,来达到最佳的资源利用率。目前,XenServer是唯一同时支持linux和windows容器的平台,XenServer 7.0版本和XenServer 6.5版本相比,有以下几个特性:
在XenServer 7.0中,单台主机可支持5T内存,单台VM可支持1.5T。
在XenServer 7.0中,单台VM最多可分配32个vCPU,单台主机物理CPU从XenServer 6.5支持的160核增加到288核。
在XenServer 7.0中,单台VM可支持255个,单台主机可支持4096个。
XenServer 6.5使用的是SSLv3。XenServer 7.0 使用的是TLS1.2。
XenServer 7.0管理控制台中,可以直观看到Windows Server 和Linux Docker相关信息,在虚拟化平台上搭建容器的管理也是非常的方便。
XenServer7.0支持Windows Server 2016以及主流的Linux Docker平台。

具体优化方法

1、安装虚拟化驱动xs-tools.iso
为了保证VM性能,我们通常会安装XenServer Tools。然而,大规模更新升级XenServer Tools,传统做法需要对每一台VM逐一进行挂载IOS文件,进而升级XenServer Tools,然后重启VM才能生效——这是一件令管理员头疼的工作。
XenServer 7.0简化了对XenServer Tools的更新管理步骤,可以通过Windows Update方式进行更新。如果企业VM不能直接连接互联网 ,可以在企业内网中搭建WSUS服务器和官方服务器连接同步,从而对企业VM进行更新。(注意:若是首次安装,建议使用传统方式安装XenServer Tools。)
没有安装虚拟化驱动之前,很多硬件是模拟出来的,并不能发挥硬件的真实特性,特别是I/O这块的硬件。譬如网卡,在标准安装的虚拟机中,只有100M的速率,但是安装虚拟化驱动之后,系统会使用名为Citrix的PV网卡,有2.0Gbps带宽。

2、开启CPU硬件支持
目前有些服务器的CMOS设置里面,默认是没有开启VT功能的,因此你在上面安装的虚拟机,运行起来会非常缓慢,有些虚拟机甚至无法运行。对于这种情况, 一定要开启CPU的VT功能,以提升虚拟化性能。如果是老式CPU,赶紧升级吧,如果不想升级,那不建议上虚拟化了。可以通过查看/proc /cpuinfo,执行命令:grep -E '(vmx|svm)' /proc/cpuinfo。如果支持的话,会输出类似下面的信息:
flags: fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc up pni vmx est ssse3 sse4_1

3、增加内存
由于虚拟机本身运行的dom0需要内存,一般会占用700M左右,每个虚拟机都需要自己的内存,因此对内存要求是很大的。一般要求宿主机至少得配置16G 以上内存,如果上面需要运行很多guestOS的话,那内存可以考虑增加到48G甚至更高。同时建议尽可能给guestOS多的内存,防止虚拟机内存不 够,频繁读写磁盘文件。

4、有效利用资源池
XenServer免费版比VMware的一个重要特性就是资源池功能,一个资源池允许运行16台宿主机(要求CPU是近似的,使用强迫方式加入池的,可 能会造成系统不稳定)。再利用iSCSI的存储特性,我们就可以在一台机器上安装系统之后,运行在另外一台机器上,避免了VMware中的导入和导出时间 (这个时间还是不少的,特别是百M网络)。如果组内的guestOS安装了虚拟化驱动之后,还可以在运行状态迁移,从当前负载重的宿主机迁移到负载轻的物 理机上,非常的方便。

5、磁盘存储与iSCSI
使用本地磁盘存储,无法利用上XenServer的很多特性,如:虚拟机迁移等。因此建议本地磁盘只用来安装XenServer,虚拟机则保存在iSCSI上。经过我的测试,发现很多应用,如多媒体之类的,使用iSCSI的性能比本地磁盘还好一些。

6、虚拟机文件和数据文件分开存储
所谓的虚拟机文件,就是用来安装操作系统用的那个磁盘文件。在规划的时候,可以考虑把所有的虚拟机文件存放在一个存储上面(一般虚拟机文件在5G以内,很 少会超过10G的),可以考虑使用NFS之类的,方便以后的管理。而虚拟机使用的数据存储,一般可以考虑存放在iSCSI上,方便迁移和维护。

7、网络扁平化
由于虚拟机使用的网络端口是利用宿主机上的网络端口,所以一般要求宿主机尽可能多的网卡,一般要求是千兆网卡,至少2张,因此对交换机的端口数依赖不是很大,因此可以将网络进行扁平化设计,减少不必要的网络开销。

8、尽量少用windows
由于Xen是属于半虚拟化技术,底层使用的是linux系统,因此对guestOS的性能支持对linux要好很多,windows的支持则必须是CPU 开启虚拟化支持才可以运行。同时windows的GUI是基于内核设计的,因此造成windows服务器会使用额外的不少资源,因此个人建议,能在linux 下面搞定的东西,尽量在linux下面搞定。