XenServer和VMware vSphere技术比较
此次将Citrix XenServer7.1和VMware ESXi 6.5从技术角度进行比较,并从企业角度对企业关心的项进行比较。主要包含市场地位、服务器虚拟化底层稳定性、管理架构、兼容性上进行分析。
市场地位
VMware在虚拟化的地位类似于大型存储中的EMC、小型机中IBM、网络中的思科、虚拟桌面中的Citirx、数据库中的Oracle ,长期以来一直处于服务器虚拟化中的垄断地位,具有绝对性优势,这点可以从2016年的Gartner服务器虚拟化魔力象限中可以看出。
服务器虚拟化底层稳定性
先看看两个服务器虚拟化介质大小。
从最新版下载的介质来看,XenServer比VMware大了近一倍,意味着代码可能是VMware的两倍。更小的代码库意味着“受***面”更小,需要修补的代码也更少,从而提高可靠性和安全性。ESXi的前身是ESX,ESX依靠Linux系统进行管理功能,管理功能包含执行脚本,以及安装用于硬件监控、备份或者系统管理的第三方代理。
VMware为了系统更加稳定,从ESXi开始把管理功能全部删除,上收到vCenter进行管理,这样的好处是可以用最少的性能运行底层,功能更加单一,所需的磁盘容量最少,所以ESXi支持在SD卡安装运行、在U盘安装运行。甚至把SD卡、U盘拔掉,ESXi依然可以运行,虚拟机照样提供服务。这是XenServer无法实现的。下图可以看到VMware ESXi只有一层Hypervisor。
再来看下XenServer为什么这么大,而且必须要使用硬盘来安装它的系统。
从上图可以看到,除了Xen提供的Hypervisor之外,XenServer安装完成后还有一个Control Domain,一般我们称为Domain0,Domian0其实是一个Centos系统,7.0以前是32位的,7.0以后用了64位的Centos。所以一直都有一个说法,XenServer安装完成后的第一个虚拟机是Domain0,这就是XenServer需要这么大介质的原因。
那再来看看这个虚拟机是用于什么用途的,主要用于模拟虚拟机的硬件,包含常见的虚拟机网络和虚拟磁盘,还有一些其它驱动,CPU和内存是直接通过Hypervisor调用的,这和VMware是一致的。但这里就有一个致命的缺点了,所有的性能瓶颈,都在这个Domian0上,磁盘和网卡都需要先通过Domain0,再通过Hypervisor才能调用到底层的网卡和磁盘,所有我们一般在安装XenServer的时候,都需要给Domian0分配4个vcpu,还有20-40GB左右的磁盘空间,用于存放日志。
了解到上面的一些基本原理后,我们再分析下,这个架构还可能会导致那些问题,让我们的用户无法接受。
1.驱动问题,一般的硬件厂商都会针对不同的操作系统有不同的驱动,举个例子,某公司的一块光纤网卡,VMware和XenServer都不带这个驱动。这个时候我们只需要问厂商要针对于VMware的驱动,这个一般都可以要的到,目前还没有碰到过要不到的情况。但XenServer驱 动就很难要到,一般需要用户自己编译,或者用已经编译好的CentOS驱动。 经过千辛万苦,编译好了。打一些大的补丁的时候,或者做服务器虚拟化底层升级的时候,驱动会丢失,还要再去重新编译下。所以在日常工作中,如果XenServer不带驱动,需要自己去打,那么在打补丁和升级版本的时候,需要小心了!
2.网卡速率问题,VMware提供几种网卡类型,主流的E1000和VMXNET3两种,VMXNET3是最常用的,需要安装VMware tools才能正常工作,它是10GB的,传输效率也会更高,而XenServer虚拟机最大支持1GB,为了提高带宽,Citrix建议用多个网络隔开,或者用微软自带的软件进行网卡绑定。
3.磁盘精简置备,XenServer7.1无法对虚拟机磁盘进行精简置备,XenServer7.6开始支持了,2018年9月6日发布的,不在此次XenServer7.1的比较。精简置备可以帮助用户节省大量的存储空间,在某些项目上面,可以帮助用户节省近百万的成本。
精简置备(thin provision):无论虚拟机磁盘分配多大,以实际占用多少空间为准,即用多少算多少。在某些核心的业务系统上面,VMware是不建议用户开启这项功能的,但在虚拟桌面环境里面,这可以大大的提升磁盘的使用率。因为桌面降低点性能用户是可能无法感知的。下图是某用户的精简置备使用情况。容量一共7TB,分配出去的虚拟机占用了13TB,实际使用数据约6TB。已经提升了近一倍的利用率。
不好地方在于可能会有IO延迟。但实际环境中,存储加了高速缓存,还有SSD做加速,IO已经可以满足虚拟桌面的要求。这个时候我们更要关心的是如何提升存储的利用率。精简置备的磁盘还支持虚拟机磁盘的在线扩容,虚拟机磁盘扩容可以做到不停机操作。
管理架构
vSphere是由ESXi+vCenter组成,XenServer采用master机制,就是从各XenServer里面选择一个XenServer作为总管理节点,管理员只需要连接master就可以了,默认情况下第一台XenServer会成为master,也可以通过设置优先级的方式指定。这种机制有个很大的弊端在于,有时候master意外宕机后,会出现其它XenServer主机进入紧急模式,然后XenServer网卡会丢失,虚拟机网络中断。所以项目中我们很怕XenServer的网络不稳定,一旦出现这种情况就需要去XenServer上打命令, 详见KB https://support.citrix.com/article/CTX129815,这种情况目前也没有很好的解释,但由于master出现问题导致成员机器上的虚拟机停止服务是管理员无法接受的。
相反,vCenter+ESXi的机制却很稳定,这里一定要纠正一个问题,vCenter只是一把开启功能的钥匙,功能并不在vCenter上,而是在ESXi本身的。什么意思呢,vCenter挂了,ESXi的功能依然可以正常运行,比如HA、DRS都在正常工作,一台主机坏了,HA依然生效。现在很多项目中,vCenter就直接部署在集群里面,vCenter所在主机坏了,vCenter马上会在另外的主机上运行起来,管理依旧。在早期,很多管理员会多创建一个vCenter,当主的vCenter挂掉的时候,用备用的vCenter去接管,属于一种冷备。在vSphere6.5中,引入了vCenter HA机制,可以直接利用vCenter里面的功能,复制一个影像系统出来,当主的vCenter挂了后,影像系统直接接管,属于HA热备机制。
兼容性
服务器虚拟化只是桌面虚拟化的基石,桌面虚拟化是其中的一种功能,好比大楼建好了,里面各个房间也可以用了。这个时候,消防、逃生通道成为日后管理的重点。在系统建好后,我们需要更多的考虑备份、杀毒安全。
从实际项目中和官方文档显示,领导者象限中仅有Commvault支持XenServer备份,其余厂商都不支持XenServer虚拟机备份。 针对于VMware ESXi的备份,几乎所有的备份厂商都支持VMware虚拟机备份。用户有充足的选择空间,选择一款最适合企业的备份解决方案。 杀毒软件就不举例了,和备份类似。
总结:
此次比较主要针对一些企业常用的特性进行比较,其它如NSX、vSAN、FT还有很多特性就不一一举例。
XenServer现在主要的价值在于价格了,在开源的道路上面,更多的厂商已经偏向于KVM。在商业软件上面,VMware依然是不二之选,能够让企业更轻松的步入企业私有云。
目前会XenServer排错和问题修复的人已经越来越少,更多的是依靠思杰800厂商,而VMware已经从学校开始培养了大批的管理员,更适合企业未来管理员的引进。
转载于:https://blog.51cto.com/318787/2320686
相关文章:

阿里巴巴开源的缓存框架JetCache创建缓存
官网:https://github.com/alibaba/jetcache/wiki/CacheAPI_CN ======================= 多层嵌套缓存无效的问题: https://github.com/alibaba/jetcache/issues/424 某个service的方法加缓存注解,然后引用同一个类的另一个加缓存注解service的方法,这样必须在类里面注入…

【Python】百度翻译的爬虫实现(前篇)
该程序只能实现中文到英文的翻译 import requestsimport jsonurl "http://fanyi.baidu.com/basetrans"query_str input("请输入要翻译成英文的内容:")data{ "query": query_str,"from": "zh","to"…

github每次推送都要输入用户名和密码
/****************************************************************************** github每次推送都要输入用户名和密码* 说明:* 今天开始使用github管理一些东西,但是每次提交都出现要输入用户名和密码,* 这简直让人…

ELASTIC SEARCH 性能调优
ELASTICSEARCH 性能调优建议 创建索引调优 1.在创建索引的使用使用批量的方式导入到ES。 2.使用多线程的方式导入数据库。 3.增加默认刷新时间。 默认的刷新时间是1秒钟,这样会产生太多小的SEGMENT,导致未来的合并压力,如果调整这个大小&…

Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout
左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个,osc的ScrollLayout就是自己定义的View 和Viewpager的区别还是不小的 代码不是很多不…
【Python】有道翻译的爬虫实现(前篇)
import requestsimport jsonurl "http://fanyi.youdao.com/translate_o?smartresultdict&smartresultrule"data {"i": "我喜欢学习", "from": "AUTO", "to": "AUTO", "smartresult":&q…

自动生成纯文本表格的工具
https://tableconvert.com/?outputtext 有时候需要写文档的时候生成这种纯文本表格,这个工具真的很方便,贴上数据就可以了。

《Java编程思想》笔记13.字符串
点击进入我的博客 字符串操作是计算机程序设计中最常见的行为 13.1 不可变String String底层是由char[]实现的,是不可变的。看起来会改变String的方法,实际上都是创建了一个新的String对象,任何指向它的引用都不可能改变它本身的值。 13.2 重…
【Python】有道翻译的爬虫实现(后篇)
前面说到,有道翻译和百度翻译不同 (百度翻译是模拟iPhone手机,可能百度翻译用Pc端也会有类似的问题,有道翻译的User—Agent是Pc端) 每一次的salt和sign都不一样,这是什么原因产生的呢? 一、每…

Redis客户端JetCache的单机版和集群版的配置
jetcache基础应用参考这个:阿里巴巴开源的缓存框架JetCache创建缓存 1.JetCache的jedis配置 https://github.com/alibaba/jetcache/wiki/Config_CN jedis配置:apollo版 jetcache.remote.default.type = redis jetcache.remote.default.keyConvertor = fastjson jetcache.r…

5 分钟一次理解 Spring IOC !
今天我们分析一下 spring 的 IOC,梳理一下 IOC 和 DI 的概念与原理。在网上看到开涛有篇文章写的不错,提取其中一部分精华内容并做一些解读。 1.1.IOC是什么? Ioc—Inversion of Control,即“控制反转”,不是什么技术&…

工作两年的编程感想
2019独角兽企业重金招聘Python工程师标准>>> 工作已有两年了,两年不长也不短了,程序员的辛酸苦乐也都体验了一些,故写此博客既为留念,也为接下来的两年留下一个参考点。 首先需要声明的是,本人的工作是Java…

微服务重构心得
现在都在做微服务,看起来就是做服务拆分比较简单,但是实际上真正重构起来又遇到许许多多的问题。 微服务重构常见问题 1.领域驱动模型的困扰 比如听到很多理论比如领域驱动,那么到底需要不需要学习或者使用领域驱动呢? 2.系统的复杂性 重构的时候发现系统之间调用非常…

【Python】百度翻译的爬虫实现(后篇)
这个程序可以实现中英文的自动识别然后进行翻译 看着程序就很好理解。 import requestsimport jsonclass Translation():翻译def __init__(self,content):self.content contentself.url "http://fanyi.baidu.com/basetrans"self.headers {"User-Agent"…

美团即时物流的分布式系统架构设计
背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验。最主要的收获包括两点: 即时物流业务对故障和高延迟的容忍度极低,在业务复…

Intellij IDEA单元测试提示Test events were not received
Intellij IDEA单元测试时提示Test events were not received 也就是可以运行test方法,也提示成功,但是看不到具体的执行结果。 Intellij IDEA从2019.2.1版本开始,会将Gradle管理的项目的测试代码,默认使用Gradle来运行࿰…

Linux下task_struct详解
背景:为了管理进程,操作系统必须对每个进程所做的事情进行清楚地描述,为此,操作系统使用数据结构来代表处理不同的实体,这个数据结构就是通常所说的进程描述符或进程控制块。在linux系统中,这就是task_stru…

【Python】数据提取xpath和lxml模块(豆瓣电影排行榜的爬虫)
xpath xpath:一门从html中提取数据的语言 xpath语法 1、选择节点(标签) /html/head/meta :能够选中html下的head下的所有的meta标签 2、// :能够从任意节点开始选择 //li:当前页面上所有的li标签 //html/head/link &a…

qt5.6.3下使用firebird
有人把firebird比作数据库界的瑞士军刀,想学习一下其在QT5.6中的使用,于是便开始了一场自己挖坑,自己埋的旅程。 环境说明:win7 64位QT5.6 mingw4.9 32位(好像官网上也没有64位,当然mingw也是32位的&#x…

【Python】数据提取xpath和lxml模块(糗事百科的爬虫)
程序中用到的一些零碎知识点: 一、列表推导式:帮助我们快速生成一堆数据的列表 1、format:字符串格式化的一种方式 >>> ["10月{}日".format(i) for i in range(1,10)] [10月1日, 10月2日, 10月3日, 10月4日, 10月5日, 1…

Linux Performance
性能专家Brendan Gregg的网站。 Linux性能 该页面链接到我创建的各种Linux性能材料,包括右侧的工具图。它们使用大字体来适合滑盖。您也可以将它们打印出来用于办公室墙壁。它们显示:Linux可观察性工具, Linux静态性能分析工具,…

07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器
LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 先看在LoT.UI里面的应用效果图: 完整Demo:(https://gith…

workerman结合laravel开发在线聊天应用的示例代码
项目背景: 最近由于公司的业务需求,需要用到聊天功能。而且有比较多的个性化需求需要定制。之前使用别人的聊天组件是基于微擎的。如果要移植到普通的H5在逻辑修改还有定制上存在比较多的困难。为此只能克服困难,自己搭建一个吧 什么是Worker…

复杂系统设计 企业开发的困境
复杂系统设计源自我多年对企业复杂系统的设计的一些思考,类似日记吧,不断完善。 为什么从一个大公司的引入架构师甚至架构师组还是很难架构企业开发中的很多问题? 这些问题表现出架构上的复杂性,和业务上的复杂性。 有时候架构…

数据库服务器跟网站服务器间传输慢的问题
数据库服务器和网站服务器是分开的,现在从网站服务器这边查数据比较慢,什么原因??? 一、首先确定服务器之间的网络有没有问题 可以简单的在网站服务器上ping数据库服务器(反过来也可以)…
【Python】百度贴吧图片的爬虫实现(努力努力再努力)
学会爬取图片以后,第一时间去了张艺兴吧,哈哈哈哈哈哈 一定要放上一张爬取的照片,哼唧 import reimport requestsimport urllibclass Baidutieba():def __init__(self):self.url "http://tieba.baidu.com/p/4876047826?pn{}"#u…

cin、cout的重载
一、cin重载 1.cin为ostream类的成员 2.cin重载应为全局函数(毕竟ostream是别人写好的) 3.代码 a.核心代码 ostream & operator<<(ostream &os,const A &a)//const A &a是为了避免复制函数的调用 ;ostream &o 相当…

第二次冲刺第十天
第二次冲刺今天就结束了,这十天来学会了不少的东西。 简单说一下昨天做的:整合各个部件的功能。 今天:小组进行总结,加强性能。 这十天来遇到的问题: 一,对于网络云端,之前都是其他小组成员在使…

说透泛型类和泛型方法以及Class<T>和Class<?>的差异
泛型类和泛型方法看起来似乎可以实现类似的功能,但是很多人并未真正掌握泛型方法,网上很多文章说了很多还是似是而非,特别是初学者还是搞不明白。 一.关于泛型方法 1.泛型方法可以独立于泛型类 2.泛型方法等效于泛型类里泛型参数方法&…
win10 +python 3.6.4安装scrapy
第一步: 首先,我们先在电脑上安装好python3.6并且配置好环境变量,以可以直接在命令行界面输入python命令可以出现如图的界面为主。 第二步: 升级pip ,在cmd窗口中会有提示,没有提示的话就已经是最新版本了…