OpenStack生存情况

Openstack能走多远——Openstack、VMware浅析

生存还是毁灭?openstack还是VMware?每每提到这个话题,业界总似要争个你死我活方才罢休。在国内,openstack更是风光无限。京东、华为、百度等众多企业纷纷基于openstack投入研发,推出各层云服务,构建自身业务相关的云计算生态圈。面对openstack的强劲攻势,VMware真的会败下阵来吗惊讶?
本文基于openstack、VMware的应用场景,结合二者设计理念、技术实现,进行简单分析。

设计理念

云生态系统存在云感知应用和传统应用两种应用模式。

云感知应用主要有如下特征

(1)   分布式;
(2)   无状态或者软状态;
(3)   支持水平扩展;
(4)   支持故障切换;

所以,对于云感知应用模式,应用自身处理HA(high availability)和DR(Data Recovery)。

传统模式应用特征为

(1)   C/S架构;
(2)   应用自身难于水平扩展,依赖基础框架保障可扩展性;
(3)   依赖基础框架实现故障切换;

对于传统模式,底层框架需要提供FT(容错)、虚拟机HA和自动病毒扫描等一系列特性,保障虚拟机稳态运行。而对于云感知应用,这一切由应用自身维护。即便虚拟机发生故障,启动新的虚拟机取而代之即可。
因为服务器虚拟化而名声大噪的Vmware,近些年来,依托服务器虚拟化的绝对优势在hypervisor上持续构建新的增值特性,不断向上延伸产品栈以夺取更大的市场份额。

Vmware产品分层

(1) 最底层ESXi hypervisor,Vmware免费提供裸金属hypervisor ESXi,通过vsphere bundle扩展ESXi功能,提供增值服务;
(2) vSphere ,实际上是ESXi的商业版本。除了ESXi hypervisor,还提供一组企业工具包,如在线迁移,高级安全,网络和存储IO控制等;
(3) vCenter是多节点vsphere环境中的配置、置备、管理的中央控制点。除vCenter Server,Vmware还提供Site Recovery Manager(在线备份),operation management suite(自动运营管理)等插件;
(4) vCloud Director,把基于Vmware的虚拟化数据中心转化为IaaS服务,以完整虚拟数据中心形态提供软件定义的数据中心服务,包括快速置备,数分钟使基础框架可用,包括安全性和资源使用控制。

从Vmware的产品演进脉络,可以看到Vmware更关注数据中心的自动化,资源的自动调度和管理,以及应用交付等。Vmware出售VM Recovery Manager,charge back等软件,而并不出售弹性计算、弹性存储,所以,Vmware的设计理念是cloud out的 — 企业CIO或IT经理是其典型用户,企业中大部分应用是传统模式应用,无法水平扩展,不具备自我发现并切换故障的能力。VMware聚焦具体企业痛点,围绕痛点寻找能够满足丰富应用负载模式的有效方案。
openstack一类的云基础设施,既不是提供增值服务的hypervisor副产品,也不打算解决CIO或IT经理的痛点。从设计之初,openstack就不关注传统应用模式的需求,其设计理念是cloud in — Openstack主张不背负任何传统应用的包袱,抛弃所有当前企业应用,从头做起。构建基础架构IaaS需要周全的考虑如何以统一的方式构建基础架构。openstack聚焦对底层逻辑资源,如计算、对象存储、块存储、网络等资源的逻辑封装,而并不围绕安全、数据可用性、资源审计等企业痛点,这些统统由云感知应用自己负责。
微软William Baker的著名的宠物和牲畜理论也形象的表达了Vmware和Openstack设计理念之间的差异。在传统应用模型中,我们对待服务器就象对待宠物,每个宠物有一个可爱而别致的名字,我们宠爱呵护它们,当它们生病时,我们细心照顾直至它们完全康复。而在云感知应用模型中,每个虚拟机降级成牲畜——虚拟机用编号简单区分,每个虚拟机地位相等,当一台故障时,我们粗暴地将它剔除,并引入另一台虚拟机取代它。

技术实现

Openstack、VMware都是庞大的分布式系统。Openstack Nova是openstack的核心模块,swift、Quantum等项目都是从nova中分离独立出来。Nova主要负责控制、计算虚拟化,和Vmware vCenter对应。
本文从可扩展性、可用性、一致性对Openstack Nova和vCenter做浅显的分析。

(1) 可扩展性

对于分布式来说,架构决定了系统所能支撑的规模。1000台主机,一般来说是单个独立管理域是极限。vCenterServer可管理多达1000台主机和10,000个运行的虚拟机。而Openstack受限于rabbitMQ和数据库,独立管理域一般在200个节点以内,还是有比较大的优化空间的。

(2) 可用性

分布式系统的可用性看似很简单,而实际上分布式系统设计就是design for failure。在分布式系统中,不存在一个点,单单从这个点就可以俯瞰全局,给出确切的系统故障的诊断信息。因为,分布式系统就是由一个个不可靠环节构成的。当一个关节点意识到另一个环节可能故障时,故障的可能恰恰是意识到故障的那个关节点。
Openstack目前采用最原始最直接的方式判断节点管理进程的故障,对于网络、管理中心、虚拟机等故障的自动发现和切换都考虑的不太周全。而Vmware HA采用了一个很简单巧妙的设计,将多种检测方式统一起来,可以系统有效地识别主机故障、虚拟机故障、管理进程故障、主机隔离、网络分割等多种故障。Vmware vCenter 5.5App HA进一步加强了对虚拟机Guest OS和虚拟机内应用的可用性保障。

(3) 一致性

Openstack采用共享数据库保障数据一致性。所有主机和控制中心读写唯一数据库。这种一致性保障方式在分布式系统,或者说IaaS平台似乎比较少见。单机和控制中心共同维护数据库,数据库必然会成为瓶颈。在实际运行中,由于数据库主机、虚拟机状态修改操作不当,而导致VM数据残留的情况也时有发生,需要手动从后台操作数据库,刷新VM信息。而Vmware通过分布式事务始终保持数据一致性。甚至,从外观表现来看,Vmware像是一个去中心化的分布式系统。做过分布式系统都会知道,实现去中心化分布式系统的复杂程度,目前大多数分布式系统都采用中心化的方式简化设计实现。而VMware用户可以从任一单机操作,譬如删除虚拟机,操作引起的数据变化可以实时同步到管理中心。当管理中心故障时,用户的单机操作也不会被拒绝。管理中心恢复的第一时间,单机和管理中心会达到数据一致。
有人说,未来云感知应用模式会是主导,主要采用牲畜模式,Vmware保护VM的特性在牲畜服务模型中不再重要。但是我认为,传统企业的存在不容忽视,如果对现有问题不予解决,又怎能真的让人信服。Vmware的模式抽象资源,对应用要求更少,让用户更关注应用逻辑。Openstack虽然受到众多的厂家支持,但是这也意味着被众多的厂家牵制,未来并不明朗。多少IaaS平台都已渐渐淡出人们的视线,谁又知道它是否会成为下一个。

×

谢谢客官

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. Openstack能走多远——Openstack、VMware浅析
  2. 2. 设计理念
    1. 2.1. 云感知应用主要有如下特征
    2. 2.2. 传统模式应用特征为
    3. 2.3. Vmware产品分层
  3. 3. 技术实现
    1. 3.1. (1) 可扩展性
    2. 3.2. (2) 可用性
    3. 3.3. (3) 一致性
,