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,但存在资源锁的问题,导致数据损坏。
最新文章
- <;canvas>;设置宽高遇到的问题
- 利用SimpleExpandableListAdapter为ExpandableListActivity提供数据
- spring Quartz多个定时任务的配置
- 输入事件驱动---evdev_handler的大致实现流程(修整版)
- EF自动生成的模型edmx代码分析
- Qt-note0906
- 通过CSS使文本框中输入的小写字母变大写字母
- apache开源项目--subversion
- 开源布局控件 WeifenLuo.WinFormsUI.Docking.dll使用
- merge into sql优化
- cf E. George and Cards
- 搭建Nuget
- 自己意淫的一个简陋的Python网站扫描器
- Android高德地图自定义Markers的例子
- 我所知道的AJAX
- [Offer收割] 编程练习赛63
- 解决Python图片处理模块pillow使用中出现的问题
- Nginx详解二十七:Nginx架构篇之安全篇
- Deep Learning系统实训之一:深度学习基础知识
- ASCII、Unicode和UTF-8编码的区别
热门文章
- My WelcomeApplet
- 【uTenux实验】写在开始实验之前
- Socket 连接";由于目标机器积极拒绝,无法连接"; 的诊断
- 整合Apache+PHP教程
- css如何实现多行文本时,内容溢出,出现省略号
- (转载)C#中使用GUID
- 65. Reverse Integer &;&; Palindrome Number
- Good Bye 2013 C
- Python TCP客户端
- Jquery实现简单到计时功能(setTimeout,setInterval)