int32bit's Blog

Stacker, Cepher, Docker, what's next?

Cinder磁盘备份原理与实践

OpenStack如何保证磁盘数据的可靠性

一、背景 1.1 数据保护技术概述 快照(Snapshot)、复制(Replication)、备份(Backup)是存储领域中最为常见的数据保护技术。快照用于捕捉数据卷在某一个时刻的状态,用户可以随时回滚到这个状态,也可以基于该快照创建新的数据卷。备份就是对数据进行导出拷贝并传输到远程存储设备中。当数据损坏时,用户可以从远端下载备份的数据,手动从备份数据中恢复,从而避免了数据损失。快照类...

cinder-volume如何实现AA高可用

分布式锁在OpenStack上的应用

1 何谓”锁” 锁(Lock),在我们生活当中再熟悉不过了,它的主要作用就是锁住某个物体或者某个区域空间,一方面阻止无锁者进入查看受隐私保护的东西,二来阻止恶意者实施破坏。比如我们都会对手机加锁来防止别人偷窥自己的隐私,我们通过锁门来阻止坏人进入家里偷窃等等。 图1 锁 在计算机的世界,锁同样重要,并且功能和我们生活当中的锁基本是一样的,只是管理的对象不一样而已。计算机的锁是为了锁...

Ceph RBD mirror介绍以及原理分析

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

聊聊Nova Compute Driver的那些趣事

Openstack设计准则 OpenStack是一个开源云计算平台项目,旨在为公共及私有云的建设与管理提供软件的开源实现。可扩展性和弹性是Openstack设计的准则之一,即Openstack的各个组件以及组件内部的模块都应该是可插拔的,并且可以随意的增加插件而不需要修改已有的接口。Driver机制就是其中的一个很好的例子,Nova通过不同的driver支持不同的hypervisor,Ci...

Openstack源码阅读的正确姿势

1 谈谈Openstack的发展历史 OpenStack是一个面向IaaS层的云管理平台开源项目,用于实现公有云和私有云的部署及管理。最开始Openstack只有两个组件,分别为提供计算服务的Nova项目以及提供对象存储服务的Swift,其中Nova不仅提供虚拟机服务,还包含了网络服务、块存储服务、镜像服务以及裸机管理服务。之后随着项目的不断发展,从Nova中拆分成多个独立的项目各自提供不...

深圳黑客松之旅

Openstack黑客松活动是我一直神往的活动,因为这个活动不仅能够让自己在黑客味笼罩的环境中全身心融入bug fix状态,还能有机会与Openstack各个项目的PTL、Core等大牛面对面交流(平时只能通过IRC或者邮件联系)。 2016年11月30日第五届OpenStack黑客松终于在深圳正式拉开帷幕,我有幸加入这个充满黑客味的神秘活动中。 周二一大早起床乘上早班飞机抵达深圳,匆忙...

盘点Openstack那些顽固bug

背景 Openstack从2010年7月A版本发布,截至现在(2016年11月27日)已经6岁半了。如今最新发布的版本为第14个版本,代号为Newton。Openstack从诞生到现在走过的6个年头,吸引了全世界的开发者参与,成为云计算领域开源项目中最火热的项目之一(其余项目分别为Spark、Docker、K8s等)。目前Openstack已经不仅仅包括基础的计算服务(Nova)、存储服务(...

Openstack虚拟机防止误删除操作的几种实现方法

Openstack源码分析系列

1.虚拟机保护的重要性 虚拟机是Openstack中最重要的角色之一,我们接触比较多的Nova服务就是通过虚拟机方式提供计算虚拟化服务。除此之外,还有很多高层服务也是完全依赖于Nova服务提供的虚拟机,比如Sahara大数据服务、Magnum容器编排服务、Manila文件共享服务以及Trove数据库服务等,这些服务底层都是基于虚拟机实现的。虚拟机的保护至关重要,不仅承载着用户活动的业务,还...

深入研究Openstack Nova组件对象模型以及数据库访问机制

Openstack源码分析系列

1. 背景介绍 在Openstack G版以前,Nova的所有服务(包括nova-compute服务)都是直接访问数据库的,数据库访问接口在nova/db/api.py模块中实现,而该模块只是调用了IMPL的方法,即该模块只是一个代理,真正实现由IMPL实现,IMPL是一个可配置的动态加载驱动模块,通常使用Python sqlalchemy库实现,对应的代码为nova.db.sqlalch...

使用Docker一键部署Ceph测试环境

Ceph是开源统一分布式存储系统,最初是Sage Weil在UCSC的PhD研究内容,目前由Inktank公司掌控Ceph的开发。Ceph同时支持块存储、对象存储以及文件系统存储,并且具有高扩展性、高可靠性、高性能的优点。Ceph目前最广泛的使用场景之一是作为Openstack的存储后端,为Openstack提供统一共享分布式存储服务。Openstack组件中Nova、Glance、Cind...