也谈OpenStack中的虚拟机HA

OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。做为云计算IAAS层事实标准,OpenStack广泛的应用与各行各业。到目前为止OpenStack社区并没有一个完整的虚拟机HA解决方案。起初社区认为虚拟机的HA不是云平台层次的特性,不应该在云平台层面来实现,虚拟机的HA应该通过应用层面的HA来实现。但是很多应用不是默认做了应用层面的HA,OpenStack又缺少这样一个重要的特性。所以很多公司针对虚拟机的HA提出了自己的解决方案。最近社区也开始关注虚拟机的HA的是实现。这篇文章针对OpenStack中的虚拟机HA的进展和几个公司的虚拟机HA实现进行介绍。最后在结合各种方案的优点的基础上,介绍了一个虚拟机的HA的实现方案。

一、OpenStack中虚拟机HA的历史和现状

OpenStack中虚拟机的HA的最初讨论可以见这篇文章, 作为Nova项目的重要贡献者,他的文章对虚拟机的HA的实现有着广泛的影响。这篇文章也给出了虚拟机HA实现的基本思路,解决这个问题需要一些关键的部件:

监控(Monitoring)- 系统检测到虚拟化层的故障

隔离(或是围栏,Fencing) - 系统隔离故障计算节点

恢复(Recovery) - 从故障的虚拟化上恢复虚拟机

 

下边是OpenStack中针对虚拟机HA的一些解决方案;

1.      Nova中的支持

Nova已经具备了一些HA的功能。

1)  在nova中提供了Evacuate命令来实现,将VM从失败的Compute节点在目标节点上rebuild。这一功能的实现需要依赖源节点和目标节点间有共享存储。

2)  在VM的HA当中,对于Compute节点是否故障的判断需要非常的精细,目前在Openstack中每个nova-compute服务启动时都会启动一个定时器,定期的将心跳写入到数据库中,这样可以从控制节点方便的知道Compute节点的状态。

 

但是Openstack仅仅拥有这些功能还不足以完成对VM HA功能的完美支持。

1)  只是通过nova-compute服务来确定Compute节点的状态时不可靠的,例如仅仅是nova-compute服务失效,或者网络闪断时,也会造成心跳的过期,从而对是否进行HA不能进行准确的判断。因此需要通过其他方式来确保准确获得节点的状态。最主要是OpenStack的最佳实践部署,通常是管理、业务和存储网段是单独的网段,这时Nova Service的服务状态只能反映出管理网段的状态,不能反映出存储和业务网段的nova-compute节点的状态。

2)  Openstack没有对VM进行加锁,因此在进行Evacuate命令时,会出现脑裂&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值