openstack cinder-volume 的高可用(HA)
http://blog.csdn.net/LL_JCB/article/details/51879378
为了保证云平台的稳定性,需要做很多部分的高可用。比如控制节点高可用、计算节点高可用、网络节点高可用、存储的高可用等;
控制节点的高可用与网络节点的高可用都有官方的文档,有详细的安装步骤,实现起来相对来说比较简单。存储的高可用在openstack这一块也不用考虑很多,比如ceph、glusterfs自带高可靠性。
当做了这些高可用后,我发现cinder-volume是一个瓶颈,如果它挂了的话,现有已经挂载的云硬盘是可以继续使用的。但是如果要对云硬盘进行管理(创建、挂载、卸载等操作)就不行了。任凭你后端存储高可靠性再NB也只能保证数据的可靠性,这时候的解决办法就只有对cinder-volume做高可用。
对cinder-volume做HA,第一个想到的就是负载均衡+keepalived来实现。经过验证这样的配置方式是可行的。不过我在测试过程中发现了一个有趣的问题:如果按照了cinder-volume的主机名一致那么,服务列表就只会显示一个cinder-volume服务。也就是说只要这两台服务器存储后端配置为同一种存储,如果使用ceph那么keyring保持一致,那么就可以实现高可用了,后面我就进行了测试:
1、开启两台服务器,主机名一致,均为ceph-node1,后端存储为ceph,控制节点服务列表如下:
上图显示只有一个cinder-volume服务
2、这时候我开启两台主机的日志,创建三块云硬盘:
通过上图可以看出它是随机选择了一台服务器进行创建的
3、为了验证高可靠性,现在关闭其中一台服务器
服务列表服务状态依然是up
4、删除云硬盘
这是未关闭服务的服务器的日志,也就是说,它可以继续管理云硬盘
总结:个人觉得这是最干脆的HA,只需要要主机名与存储后端一致即可预防单点故障。
但是AA HA模式目前还在开发中:
https://specs.openstack.org/openstack/cinder-specs/specs/mitaka/cinder-volume-active-active-support.html
直接启动多个cinder volume可以enable AA,但存在资源锁的问题,导致数据损坏。
openstack cinder-volume 的高可用(HA)的更多相关文章
- openstack pike 集群高可用  安装 部署   目录汇总
		# openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ... 
- corosync+pacemaker实现高可用(HA)集群
		corosync+pacemaker实现高可用(HA)集群(一) 重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与 ... 
- Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
		大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(H ... 
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
		1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ... 
- hadoop在zookeeper上的高可用HA
		(参考文章:https://www.linuxprobe.com/hadoop-high-available.html) 一.技术背景 影响HDFS集群不可用主要包括以下两种情况:一是NameNode ... 
- Hadoop 高可用(HA)的自动容灾配置
		参考链接 Hadoop 完全分布式安装 ZooKeeper 集群的安装部署 0. 说明 在 Hadoop 完全分布式安装 & ZooKeeper 集群的安装部署的基础之上进行 Hadoop 高 ... 
- 【高可用HA】Nginx (1) —— Mac下配置Nginx Http负载均衡(Load Balancer)之101实例
		[高可用HA]Nginx (1) -- Mac下配置Nginx Http负载均衡(Load Balancer)之101实例 nginx版本: nginx-1.9.8 参考来源: nginx.org [ ... 
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案
		http://aokunsang.iteye.com/blog/2053719 声明:以下仅为个人的一些总结和随写,如有不对之处,还请看到的网友指出,以免误导. (详细的配置方案请google,这 ... 
- web应用的负载均衡、集群、高可用(HA)解决方案
		看看别人的文章: 1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代 ... 
- 使用kubeadm进行单master(single master)和高可用(HA)kubernetes集群部署
		kubeadm部署k8s 使用kubeadm进行k8s的部署主要分为以下几个步骤: 环境预装: 主要安装docker.kubeadm等相关工具. 集群部署: 集群部署分为single master(单 ... 
随机推荐
- C#中Monitor类、Lock关键字和Mutex类
			线程:线程是进程的独立执行单元,每一个进程都有一个主线程,除了主线程可以包含其他的线程.多线程的意义:多线程有助于改善程序的总体响应性,提高CPU的效率.多线程的应用程序域是相当不稳定的,因为多个线程 ... 
- JSTL的test里的逻辑判断不能有空格
			前天遇到了一个bug,有一个jstl的判断语句怎么都进不去,看了半天都没有发现什么问题,最后使用最原始的方式,一行一行的删除代码,重要找到了原因,原来是jstl的test逻辑判断里面不能有空格导致的. 
- javascript 使用btoa和atob来进行Base64转码和解码
			javascript原生的api本来就支持,Base64,但是由于之前的javascript局限性,导致Base64基本中看不中用.当前html5标准正式化之际,Base64将有较大的转型空间,对于H ... 
- flash 自定义右键功能
			使用过程可能遇到的问题: MouseEvent.RIGHT_CLICK TypeError: Error #2007: 参数 type 不能为空. 首先在项目中设置编译参数. 如果是as项目,则在项目 ... 
- 用C#开发了四天的UWP应用有感
			第一个就是异步方法,async-await,所谓async关键字,并没有什么实际上的语法意义,只是写在函数签名的位置让编译器方便进行查找以及静态检查,并且提醒程序员这是一个异步方法而已.至于await ... 
- sqlite_
			应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作.我 ... 
- CRM 2016 js 奇怪现象
			假如 js 中如果定义了 两个字段的onchage 事件. 如果一个字段的onchange事件,改变了另一个字段的值,那么也会触发另一个字段的onchange事件!!!!???? 
- c#lock语句及在单例模式中应用
			C#中的lock语句是怎么回事,有什么作用? C#中的lock语句将lock中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问.他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作, ... 
- 创建线程方式-NSOperation
			*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ... 
- .Net的Excel 导出 格式设置
			添加引用:Microsoft Excel 11.0 Object Library ; 添加:using Microsoft.Office.Interop.Excel; 一.打开Exce ... 
