Python中的greelet模块的线程安全问题

最近遇到一件很有趣事情,FVT team在对openstack进行压力测试时,偶尔的qunatum网络这块会抛异常,从日志看很无法理喻。经过长时间的摸索,找到的根源如下,见 openstack社区的一个patch, https://review.openstack.org/#/c/23198/10/nova/network/quantumv2 /__init__.py,这个patch做了这样一件事,将new_client= client.Client(**params) (是httplib2.Http一个子类)也就是一个socket对象放在缓存中在多个greenthread间共享了。你看完下面文章就知道是怎么一回事了,摘自:http://blog.eventlet.net/2010/03/18/safety/

我的想法,如果只是单纯的nova boot可能还没事,因为那是一个个进程。…

详细内容

Linux dmsetup 虚拟设备

尚观科技讲师kissingwolf@gmail.com原创文章
可以使用如下方法建立snapshot target的逻辑设备:
1.    分区并通知系统确认
o        #fdisk /dev/sda
o        分别创建/dev/sda7/dev/sda8/dev/sda9 分区均为 1G空间
o        #partprobe
o        其中/dev/sda7/dev/sda8用来制作镜像目标linear target逻辑设备,/dev/sda9用来作为COW设备。
2.    编写创建/dev/mapper/kevin_linear_dev , /dev/mapper/kevin_snapshot_base_dev/dev/mapper/kevin_snapshot_dev 三个设备的脚本
o    /dev/mapper/k…

详细内容

如何书写OpenStack rst帮助文档

关于openstack的文档,可参见:http://wiki.openstack.org/Documentation/HowTo

两类文档:

1) 程序员用的rest api文档用rst格式书写, 如http://docs.openstack.org/developer/nova/

2)其他一些如deployers, admins, and CLI and API users用Docbook书写,如http://github.com/openstack/openstack-manuals

本文要描述的是如何用rst格式写rest api文档

eclipse有一个支持对rst所见即所得的插件,下载地址:http://sourceforge.net/projects/resteditor/files/eclipse/

一个名为test.rst的rst文档的例…

详细内容

深入理解git rebase流程

 

如上图,rebase的步骤:

1)它首先要git checkout topic,即会将HEAD指针移到topic分支上

2)会将topic与master分支的共同祖先一直到topic分支的所有提交生成patch文件,即会为169a6, 2c33a生成patch文件

3)它强制git reset master分支上,这时候工作区内容都是master分支的内容,然后将上步的patch文件挨个patch上

4)一个个打patch完后,再一个个提交,提交时也会在master处重建那个topic分支。所以它始终是在topic分支提交的

根据http://www.zhaoxiaoqing.cn/a/php/php1/2012/1025/654.html中的git commit命令的流程是:git用暂存区域的文件创建一个新的提交,并把此时的节…

详细内容

Linux实现的IEEE 802.1Q VLAN

第一部分:VLAN的核心概念

说起IEEE 802.1q,都知道是VLAN,说起VLAN,基本上也没有盲区,网络基础。然而说到配置,基本所有人都能顺口溜一样说出Cisco或者H3C设备的配置命令,对于Linux的VLAN配置却存在大量的疑问。这些疑问之所以存在我觉得有两点原因:
1.对VLAN的本质还是没有理解。
不管你的Cisco/H3C命令敲得再熟练,如果看不懂Linux的vconfig,那么也将无法掩饰你对概念理解的浅显;
2.对Linux实现虚拟网络设备风格不熟悉

可能你已经十分理解802.1q了,也许还看过了IEEE的文档,然而却对Linux的Bridge,tap,bond等虚拟设备不是很理解,那么也将无法顺利配置VLAN。

对于VLAN概念的理解,有几点要强调:
1.VLAN分离了广播域;
2.单独的一个VLAN模拟了一个常规的交换以太网,因此VLAN将…

详细内容

梳理一下IceHouse Neutron新增加的Blueprint

今天过了一眼IceHouse Neutron新增加的Blueprint(https://blueprints.launchpad.net/neutron/), 先一睹今后Neutron的样子。我将看起来重要一点的blueprint前面加[*]了, 包括重要的特性,以及对于工程师来说必须关注的代码重构。

1,[*]为运行在同一个host上的vm或port灵活的分配带宽,https://blueprints.launchpad.net/neutron/+spec/support-rate-limiting
2, 为neutron client指定http timeout, https://blueprints.launchpad.net/neutron/+spec/specify-neutronclient-timeout
3, 支持定义哪些外部external networks可以…

详细内容

Rackspace公用云测试Rackspace私有云Openstack

上次看到Rackspace的官方blog,介绍如何利用Rackspace的公用云来测试Openstack,这个倒是比较有意思,当年测试vmware的ESX的过程,浮现在眼前。个人观点,一个IAAS是否成熟,就看能不能自己测试自己。现在外面讨论Openstack培训很多,我比较关心的问题就是:是否可以在Openstack的环境下进行配置,让学员搭建自己的Openstack环境。总不能天天喊虚拟化,但是培训的时候,却要使用实体服务器,有点说不过去。

原文:http://www.rackspace.com/blog/installing-rackspace-private-cloud-in-20-minutes-or-less/

Rackspace的公用云,是基于Openstack搭建,底层使用的是Xen Server。而Rackspace推出Openstack私有云,是采用KVM。…

详细内容

用Haproxy+OpenStack实现web application auto scaling

这个是根据本文章内容在china openstack user group会议上做的演讲: 
http://quake.github.com/slides/cosug-2012/ 

======分割线====== 

在用OpenStack实施云计算之前,要实现应用的水平扩展,通常是用这样的架构: 

s1 

一台Haproxy将动态请求转发到N台nginx服务器,当流量增加的时候,我们需要手工安装物理的服务器,将它添加到集群中去,然后再手工修改haproxy的配置,让它生效。就算用自动化的安装管理工具,这样扩展一台机器也差不多要3~4小时。 

用OpenStack实施云计算之后,整个架构和上图是一样的,但是我们可以通过几十行代码在5分钟内实现auto scaling,来看一下具体的步骤: 

首先,我们先在OpenStack上的一台虚拟机安装好nginx以及其…

详细内容

RedHat CloudForms+ManageIQ:构建OpenStack云

 

随着OpenStack设计峰会进行的如火如荼,越来越多的关注都集中到基础架构这个话题上,这也是红帽企业 Linux这种操作系统的基础。伴随着基础架构逐渐发展到可支持涵盖传统其企业级应用软件和新型云工作负载的混合应用软件模式,今年这个领域发生了巨大的变化。OpenStack把重点更多的是放在新型云工作负载上;庞大的开发者社区正在帮助这款产品成长为适用于无国界的,模块化的,以云为导向的应用软件的最佳平台。

不过,企业用户需要的不仅仅是OpenStack提供的云基础架构。他们还需要像费用返还,协议,报表和自动化这样的功能。他们不希望OpenStack成为一款独立于他们现有的和未来的企业级虚拟化平台和公有云之外的孤岛产品。红帽 CloudForms的推出就是要着眼解决这两个问题。

首先需要考虑的是运营管理工具的需求,这类管理工具包括了通过统一界面对虚拟基础架构和云基…

详细内容

OpenStack云平台的网络模式及其工作机制

文章作者: Kayven

网络,是OpenStack的部署中最容易出问题的,也是其结构中难以理清的部分。经常收到关于OneStack部署网络方面问题和OpenStack网络结构问题的邮件。下面根据自己的理解,谈一谈OpenStack的虚拟网络、网络拓扑和网络流。个人理解有限,仅抛砖引玉,有问题请指正,谢谢。

一、相关概念和要点(可跳过)

1、OpenStack中nova-network的作用

OpenStack 平台中有两种类型的物理节点,控制节点和计算节点。控制节点包括网络控制、调度管理、api服务、存储卷管理、数据库管理、身份管理和镜像管理等,计算节 点主要提供nova-compute服务。控制节点的服务可以分开在多个节点,我们把提供nova-network服务的节点称为网络控制器。

OpenStack的网络由nova-network(网络控制器)管理,它…

详细内容