Docker使用OpenStack Cinder持久化volume原理分析及实践

1 背景知识 1.1 OpenStack Cinder简介 OpenStack Cinder为OpenStack提供块存储服务,其功能类似AWS的EBS服务,目前使用最多的是为OpenStack Nova虚拟机提供虚拟硬盘功能,即把volume挂载到虚拟机中,作为附加弹性硬盘使用,关于OpenStack Cinder volume挂载到虚拟机的过程分析可以参考之前写的博客OpenStack虚拟机挂载数据卷过程分析,这篇博客也是了解本文内容的基础。 ...

October 04, 2017 · 13 min · 6394 words · Ringi Lee

OpenStack中那些很少见但很有用的操作

写在前面 从2013年开始折腾OpenStack,到目前Pike版本已经发布,也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我不直接点明我要介绍什么,直接抛出以下几个问题: ...

September 25, 2017 · 13 min · 6511 words · Ringi Lee

OpenStack虚拟机挂载数据卷过程分析

1 关于OpenStack OpenStack是一个IaaS开源项目,实现公有云和私有云的部署及管理,目前已经成为了最流行的一种开源云解决方案。其中提供计算服务组件Nova、网络服务组件Neutron以及块存储服务组件Cinder是OpenStack的最为核心的组件。这里我们重点关注Nova和Cinder组件,Neutron组件将在下一篇文章中详细介绍。 ...

September 08, 2017 · 25 min · 12120 words · Ringi Lee

OpenStack工作流服务Mistral项目简介

1 Mistral背景 Mistral是一个OpenStack生态圈中比较新的项目,该项目的目标是: The project is to provide capability to define, execute and manage tasks and workflows without writing code. 截至到目前开发还不到2年,最初是由Mirantis公司贡献给Openstack社区的工作流组件,提供Workflow As a Service服务,类似AWS的SWS(Simple Workflow Serivce),Hadoop生态圈中的oozie服务。它虽然没有Nova、Cinder等核心组件那么流行,部署率也不是很高,社区Pike版本的统计还没有出来,Ocata统计中Mistral的成熟度为1/7,部署率为5%,参考OpenStack Mistral,但还是得到很多开发者和用户关注,项目活跃度还是比较高的。 ...

September 03, 2017 · 17 min · 8177 words · Ringi Lee

如何阅读OpenStack源码

1 OpenStack基础 1.1 OpenStack组件介绍 OpenStack是一个IaaS层的云计算平台开源实现,其对标产品为AWS。最开始OpenStack只有两个组件,分别为提供计算服务的Nova以及提供对象存储服务的Swift,其中Nova不仅提供计算服务,还包含了网络服务、块存储服务、镜像服务以及裸机管理服务。之后随着项目的不断发展,从Nova中根据功能拆分为多个独立的项目,如nova-volume拆分为Cinder项目提供块存储服务,nova-image拆分为Glance项目,提供镜像存储服务,nova-network则是neutron的前身,裸机管理也从Nova中分离出来为Ironic项目。最开始容器服务也是由Nova提供支持的,作为Nova的driver之一来实现,而后迁移到Heat,到现在已经独立为一个单独的项目Magnum,后来Magnum的愿景调整为主要提供容器编排服务,单纯的容器服务则由Zun项目接管。最开始OpenStack并没有认证功能,从E版开始才加入认证服务Keystone。 ...

August 28, 2017 · 13 min · 6493 words · Ringi Lee

OpenStack数据库版本控制工具简介

写在前面的话 自今年3月份以来就没有写过博客了,主要是由于工作的原因,加上拖延症,中断了大约半年时间。今天重新捡起来,准备好好总结反省这5个月时间的所得多学,记录下来防止以后又忘了。 ...

August 24, 2017 · 15 min · 7100 words · Ringi Lee

Cinder数据卷备份原理与实践

一、背景 1.1 数据保护技术概述 快照(Snapshot)、复制(Replication)、备份(Backup)是存储领域中最为常见的数据保护技术。快照用于捕捉数据卷在某一个时刻的状态,用户可以随时回滚到这个状态,也可以基于该快照创建新的数据卷。备份就是对数据进行导出拷贝并传输到远程存储设备中。当数据损坏时,用户可以从远端下载备份的数据,手动从备份数据中恢复,从而避免了数据损失。快照类似于git的commit操作,我们可以随时reset/checkout到任意历史commit中,但一旦保存git仓库的磁盘损坏,提交的commit信息将永久丢失,不能恢复。而备份则类似于git的push操作,即使本地的数据损坏,我们也能从远端的git仓库中恢复。简而言之,快照主要用于快速回溯,而备份则用于容灾,还能避免误删除操作造成数据丢失。数据复制则类似于mysql的master/slave主从同步,通常只有master支持写操作,slave不允许用户直接写数据,它只负责自动同步master的数据,但一旦master出现故障,slave能够提升为master接管写操作。因此复制不仅提供了实时备份的功能,还实现了故障自动恢复(即高可用)。 ...

March 30, 2017 · 17 min · 8370 words · Ringi Lee

cinder-volume服务如何实现AA高可用

1 何谓"锁" 锁是操作系统用来实现进程同步和数据一致性的常用手段之一,能够保证同一时刻只有一个进程访问互斥资源以及数据的完整性。计算机中的锁,根据运行环境可以大体分为以下三类: ...

March 16, 2017 · 11 min · 5324 words · Ringi Lee

Ceph RBD mirror功能介绍

1.Ceph RBD mirror简介 Ceph采用的是强一致性同步模型,所有副本都必须完成写操作才算一次写入成功,这就导致不能很好地支持跨域部署,因为如果副本在异地,网络延迟就会很大,拖垮整个集群的写性能。因此,Ceph集群很少有跨域部署的,也就缺乏异地容灾。Ceph RBD mirror是Ceph Jewel版本引入的新功能,支持两个Ceph集群数据同步,其原理非常类似mysql的主从同步机制,前者基于journaling,后者基于binlog,二者都是基于日志回放完成主从同步的。 ...

January 24, 2017 · 7 min · 3113 words · Ringi Lee

聊聊Nova Compute Driver的那些趣事

OpenStack设计准则 OpenStack是一个开源云计算平台项目,旨在为公共及私有云的建设与管理提供软件的开源实现。可扩展性和弹性是OpenStack设计的准则之一,即OpenStack的各个组件以及组件内部的模块都应该是可插拔的,并且可以随意的增加插件而不需要修改已有的接口。Driver机制就是其中的一个很好的例子,Nova通过不同的driver支持不同的hypervisor,Cinder通过不同的driver支持不同的存储后端,Neutron通过各种agent支持不同的网络类型,Sahara通过各种plugin支持不同的Hadoop发行版等等,在OpenStack几乎处处存在这样的影子。所有的driver都是可配置的,通过配置不同的driver,各个组件就能注册不同的驱动,从而支持不同的资源类型。 ...

January 07, 2017 · 8 min · 3540 words · Ringi Lee