金融云存储平台在与OpenStack对接时的要点以及高可用策略有哪些?

参与6

1同行回答

baimmibaimmi系统架构师中国银联股份有限公司
OpenStack是可以通过标准的API接口来管理整个底层架构资源。 OpenStack软件控制大规模资源池,包括计算、存储、网络,通过控制面板和OpenStack API来操作这些资源。OpenStack 提供块设备存储服务的组件是 Cinder,本质上是一个资源管理组件,将后端不同的存储设备进行封装,向外提...显示全部

OpenStack是可以通过标准的API接口来管理整个底层架构资源。 OpenStack软件控制大规模资源池,包括计算、存储、网络,通过控制面板和OpenStack API来操作这些资源。
OpenStack 提供块设备存储服务的组件是 Cinder,本质上是一个资源管理组件,将后端不同的存储设备进行封装,向外提供统一的API,本质上并不是一个存储系统,而是使用插件的方式,结合不同后端存储的驱动提供存储服务,核心是对卷的各种操作与管理。包括通过虚拟卷的方式为虚拟机提供云硬盘,或者可以用于存储并启动虚拟机实例。在虚拟机的各个生命周期中,具体能够实现如下几种操作:
1、在创建虚拟机的时候,需要对卷进行创建和挂载操作;
2、在使用虚拟机的时候,需要对卷进行扩展、备份操作;
3、在删除虚拟机的时候需要对卷进行分离、删除操作。
通过Cinder组件,用户可以方便、高效地管理虚拟机数据。

每个卷在 cinder 中都有一个对应的cinder-volume节点负责管理该卷,主要是为了解决卷操作的竞争问题,对于一个卷的所有操作(创建、挂载、卸载等)对会被 API 节点转发到对应的cinder-volume节点上处理。因此,如果某一个 cinder-volume 所在的节点产生故障,会导致该主机之前创建的所有卷无法操作,这显然存在严重的单点故障问题。
1、负载均衡 + pacemaker
为了避免单个cinder-volume服务故障导致cinder服务不可用,需要引入自动恢复机制,通常会使用pacemaker来管理,pacemaker轮询判断cinder-volume的存活状态,一旦发现挂了,pacemaker会尝试重启服务,如果依然重启失败,则尝试在另一台主机启动该服务,实现故障的自动恢复。
捕获.JPG

捕获.JPG

该方法大多数情况都是有效的,但依然存在诸多问题:
1) 在轮询服务状态间隔内产生故障,服务会不可用。即不能保证服务的连续性和服务状态的实时性;
2) 有时cinder-volume服务启动和停止都比较慢,导致服务恢复时间较长,甚至出现超时错误;
3) 有时运维不当或者pacemaker自身问题,可能出现同时启动了两个cinder-volume服务,出现如volume实例删不掉等问题。
2、利用 RabbitMQ的round-robin 调度策略
由于使用“负载均衡+pacemaker”的方式具有明显的短板,在具体的实施过程中,创新研究环境利用 RabbitMQ 的round-robin调度策略就是做到类似负载均衡的机制,实现cinder-volume的高可用。

收起
银行 · 2017-11-20
浏览2004

提问者

冯连进
技术经理picc
擅长领域: 大数据大数据平台数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-11-20
  • 关注会员:2 人
  • 问题浏览:4230
  • 最近回答:2017-11-20
  • X社区推广