Jingh Blog

"志之所趋,无远弗届,穷山距海,不能限也"

OpenStack Nova组件对象模型以及数据库访问机制

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

OpenStack使用Ceph存储后端创建虚拟机快照原理剖析

OpenStack源码分析系列

1.背景知识 1.1 Ceph基础知识 Ceph是一个开源的统一分布式存储系统,最初由Sage Weill于2007年开发,其目标是设计基于POSIX的无单点故障的分布式存储系统,同时提了统一存储系统下的高可扩展的对象存储、块存储以及文件系统存储。其中rbd块存储目前最常见的应用场景之一是作为OpenStack的共享分布式存储后端,为OpenStack计算服务Nova、镜像服务Glanc...

OpenStack服务心跳机制和状态监控

OpenStack源码分析系列

1. 背景介绍 众所周知OpenStack是一个分布式系统,由分布在不同主机的各个服务组成来共同协同完成各项工作。以计算服务Nova为例,包括的基本组件为: nova-api nova-conductor nova-sheduler nova-compute nova-consoleauth … 以上服务除了nova-api是HTTP服务外,其它都是RPC服...

配置高效科学Linux开发环境

记得2010年刚读大二,在大神@btw的指导下折腾Linux,从那时开始一直使用Linux学习和工作,折腾了不少Linux发行版,其中包括Ubuntu、Debian、Mint、Gentoo、LFS、CentOS等,现在已经完全离不开Linux环境,沉陷在Linux的工作方式中,思维方式也完全Linux化,遇到问题时第一直觉是想有没有什么命令加上管道组合或者正则匹配来解决,而不是想到需要打开什...

Harbor命令行工具介绍

1 什么是Harbor? Harbor是由VMware中国研发团队负责开发的开源企业级Registry项目,项目地址为https://github.com/vmware/harbor,该项目发布5个多月以来,深受用户喜爱,在GitHub获得了1000多个点赞星星和200多个Forks。 它是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,...

缓存更新的套路

缓存更新的正确姿势

原文: 缓存更新的套路 作者: 陈皓 看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏...

处理并发之二:libevent的eventbuffer

并发, 事件驱动, 网络库

bufferevent这个结构体 struct bufferevent { struct event_base *ev_base; const struct bufferevent_ops *be_ops; struct event ev_read; struct event ev_write; struct evbu...

处理并发之一:LINUX Epoll机制介绍

并发, I/O多路复用

Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。 其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread Per Connection)模型,以及sele...

OpenStack使用ISO镜像启动云主机

1. 基础知识 大多数OpenStack新手都很疑惑一个问题,为什么OpenStack只能上传qcow2、raw格式镜像,而不是我们装系统的ISO格式镜像。其实OpenStack原生支持ISO镜像格式,只是使用方法和直接使用qcow2、raw等格式会有点不同。 1.1 什么是ISO镜像 ISO文件是电脑上光盘镜像存储格式之一,它是根据ISO-9660有关CD-ROM文件系统标准存储的文...

sparse文件处理与传输

0. 什么是sparse文件 当用户申请一块很大的存储空间时,最开始并没有写入数据(全是空),此时文件系统为了节省存储资源,提高资源利用率,不会分配实际存储空间,只有当真正写入数据时,操作系统才真正一点一点地分配空间,比如一次分64KB。于是这个文件看起来很大,而占用空间很小,实际占用空间只与用户填的数据量有关。该文件看起来像一个大盒子,开始装的东西不多,空洞很大,因此称为稀疏文件(Spa...